summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers')
-rw-r--r--src/mame/drivers/1942.c22
-rw-r--r--src/mame/drivers/1943.c14
-rw-r--r--src/mame/drivers/1945kiii.c11
-rw-r--r--src/mame/drivers/20pacgal.c22
-rw-r--r--src/mame/drivers/2mindril.c27
-rw-r--r--src/mame/drivers/30test.c13
-rw-r--r--src/mame/drivers/39in1.c8
-rw-r--r--src/mame/drivers/3do.c23
-rw-r--r--src/mame/drivers/40love.c113
-rw-r--r--src/mame/drivers/4enraya.c22
-rw-r--r--src/mame/drivers/4roses.c4
-rw-r--r--src/mame/drivers/5clown.c17
-rw-r--r--src/mame/drivers/8080bw.c82
-rw-r--r--src/mame/drivers/88games.c64
-rw-r--r--src/mame/drivers/ace.c37
-rw-r--r--src/mame/drivers/acefruit.c43
-rw-r--r--src/mame/drivers/aces1.c15
-rw-r--r--src/mame/drivers/acommand.c13
-rw-r--r--src/mame/drivers/actfancr.c36
-rw-r--r--src/mame/drivers/adp.c51
-rw-r--r--src/mame/drivers/aeroboto.c33
-rw-r--r--src/mame/drivers/aerofgt.c98
-rw-r--r--src/mame/drivers/airbustr.c77
-rw-r--r--src/mame/drivers/ajax.c3
-rw-r--r--src/mame/drivers/albazc.c12
-rw-r--r--src/mame/drivers/albazg.c33
-rw-r--r--src/mame/drivers/aleck64.c3
-rw-r--r--src/mame/drivers/alg.c30
-rw-r--r--src/mame/drivers/aliens.c31
-rw-r--r--src/mame/drivers/alpha68k.c150
-rw-r--r--src/mame/drivers/amaticmg.c40
-rw-r--r--src/mame/drivers/ambush.c1
-rw-r--r--src/mame/drivers/ampoker2.c4
-rw-r--r--src/mame/drivers/amspdwy.c27
-rw-r--r--src/mame/drivers/angelkds.c35
-rw-r--r--src/mame/drivers/appoooh.c30
-rw-r--r--src/mame/drivers/aquarium.c15
-rw-r--r--src/mame/drivers/arabian.c18
-rw-r--r--src/mame/drivers/arcadecl.c19
-rw-r--r--src/mame/drivers/arcadia.c6
-rw-r--r--src/mame/drivers/argus.c12
-rw-r--r--src/mame/drivers/aristmk4.c46
-rw-r--r--src/mame/drivers/aristmk5.c35
-rw-r--r--src/mame/drivers/aristmk6.c4
-rw-r--r--src/mame/drivers/arkanoid.c74
-rw-r--r--src/mame/drivers/armedf.c104
-rw-r--r--src/mame/drivers/artmagic.c31
-rw-r--r--src/mame/drivers/ashnojoe.c23
-rw-r--r--src/mame/drivers/asterix.c62
-rw-r--r--src/mame/drivers/asteroid.c1
-rw-r--r--src/mame/drivers/astinvad.c70
-rw-r--r--src/mame/drivers/astrafr.c72
-rw-r--r--src/mame/drivers/astrocde.c6
-rw-r--r--src/mame/drivers/astrocorp.c16
-rw-r--r--src/mame/drivers/astrof.c87
-rw-r--r--src/mame/drivers/asuka.c70
-rw-r--r--src/mame/drivers/atarifb.c112
-rw-r--r--src/mame/drivers/atarig1.c24
-rw-r--r--src/mame/drivers/atarig42.c30
-rw-r--r--src/mame/drivers/atarigt.c19
-rw-r--r--src/mame/drivers/atarigx2.c19
-rw-r--r--src/mame/drivers/atarisy1.c34
-rw-r--r--src/mame/drivers/atarisy2.c46
-rw-r--r--src/mame/drivers/atarisy4.c30
-rw-r--r--src/mame/drivers/ataxx.c4
-rw-r--r--src/mame/drivers/atetris.c26
-rw-r--r--src/mame/drivers/atlantis.c15
-rw-r--r--src/mame/drivers/atvtrack.c22
-rw-r--r--src/mame/drivers/avalnche.c12
-rw-r--r--src/mame/drivers/avt.c19
-rw-r--r--src/mame/drivers/aztarac.c6
-rw-r--r--src/mame/drivers/backfire.c48
-rw-r--r--src/mame/drivers/badlands.c49
-rw-r--r--src/mame/drivers/bagman.c18
-rw-r--r--src/mame/drivers/balsente.c3
-rw-r--r--src/mame/drivers/bankp.c10
-rw-r--r--src/mame/drivers/baraduke.c2
-rw-r--r--src/mame/drivers/batman.c26
-rw-r--r--src/mame/drivers/battlane.c21
-rw-r--r--src/mame/drivers/battlera.c1
-rw-r--r--src/mame/drivers/battlex.c25
-rw-r--r--src/mame/drivers/battlnts.c28
-rw-r--r--src/mame/drivers/bbusters.c4
-rw-r--r--src/mame/drivers/beaminv.c20
-rw-r--r--src/mame/drivers/beezer.c6
-rw-r--r--src/mame/drivers/berzerk.c44
-rw-r--r--src/mame/drivers/bestleag.c15
-rw-r--r--src/mame/drivers/bfcobra.c30
-rw-r--r--src/mame/drivers/bfm_sc1.c49
-rw-r--r--src/mame/drivers/bfm_sc2.c43
-rw-r--r--src/mame/drivers/bfm_sc4h.c47
-rw-r--r--src/mame/drivers/bfm_swp.c9
-rw-r--r--src/mame/drivers/bfmsys85.c37
-rw-r--r--src/mame/drivers/big10.c4
-rw-r--r--src/mame/drivers/bigevglf.c129
-rw-r--r--src/mame/drivers/bigstrkb.c1
-rw-r--r--src/mame/drivers/bingoc.c4
-rw-r--r--src/mame/drivers/bingor.c4
-rw-r--r--src/mame/drivers/bionicc.c33
-rw-r--r--src/mame/drivers/bishi.c25
-rw-r--r--src/mame/drivers/bking.c106
-rw-r--r--src/mame/drivers/blackt96.c39
-rw-r--r--src/mame/drivers/bladestl.c33
-rw-r--r--src/mame/drivers/blitz.c17
-rw-r--r--src/mame/drivers/blitz68k.c25
-rw-r--r--src/mame/drivers/blktiger.c55
-rw-r--r--src/mame/drivers/blmbycar.c34
-rw-r--r--src/mame/drivers/blockade.c24
-rw-r--r--src/mame/drivers/blockhl.c31
-rw-r--r--src/mame/drivers/blockout.c17
-rw-r--r--src/mame/drivers/bloodbro.c1
-rw-r--r--src/mame/drivers/blstroid.c19
-rw-r--r--src/mame/drivers/blueprnt.c18
-rw-r--r--src/mame/drivers/bmcbowl.c8
-rw-r--r--src/mame/drivers/bmcpokr.c4
-rw-r--r--src/mame/drivers/bnstars.c35
-rw-r--r--src/mame/drivers/bogeyman.c18
-rw-r--r--src/mame/drivers/bombjack.c17
-rw-r--r--src/mame/drivers/boogwing.c1
-rw-r--r--src/mame/drivers/bottom9.c49
-rw-r--r--src/mame/drivers/boxer.c34
-rw-r--r--src/mame/drivers/brkthru.c30
-rw-r--r--src/mame/drivers/bsktball.c90
-rw-r--r--src/mame/drivers/btime.c93
-rw-r--r--src/mame/drivers/bublbobl.c192
-rw-r--r--src/mame/drivers/buggychl.c48
-rw-r--r--src/mame/drivers/buster.c10
-rw-r--r--src/mame/drivers/bwing.c41
-rw-r--r--src/mame/drivers/byvid.c7
-rw-r--r--src/mame/drivers/bzone.c16
-rw-r--r--src/mame/drivers/cabal.c9
-rw-r--r--src/mame/drivers/cabaret.c20
-rw-r--r--src/mame/drivers/calchase.c25
-rw-r--r--src/mame/drivers/calomega.c2
-rw-r--r--src/mame/drivers/calorie.c25
-rw-r--r--src/mame/drivers/canyon.c12
-rw-r--r--src/mame/drivers/capbowl.c27
-rw-r--r--src/mame/drivers/cardline.c10
-rw-r--r--src/mame/drivers/carjmbre.c10
-rw-r--r--src/mame/drivers/carpolo.c4
-rw-r--r--src/mame/drivers/carrera.c8
-rw-r--r--src/mame/drivers/caswin.c15
-rw-r--r--src/mame/drivers/cave.c152
-rw-r--r--src/mame/drivers/cb2001.c31
-rw-r--r--src/mame/drivers/cball.c36
-rw-r--r--src/mame/drivers/cbasebal.c57
-rw-r--r--src/mame/drivers/cbuster.c25
-rw-r--r--src/mame/drivers/ccastles.c45
-rw-r--r--src/mame/drivers/cchance.c30
-rw-r--r--src/mame/drivers/cchasm.c1
-rw-r--r--src/mame/drivers/cclimber.c23
-rw-r--r--src/mame/drivers/cd32.c4
-rw-r--r--src/mame/drivers/cdi.c130
-rw-r--r--src/mame/drivers/centiped.c45
-rw-r--r--src/mame/drivers/cesclass.c6
-rw-r--r--src/mame/drivers/chaknpop.c38
-rw-r--r--src/mame/drivers/cham24.c41
-rw-r--r--src/mame/drivers/champbas.c61
-rw-r--r--src/mame/drivers/champbwl.c43
-rw-r--r--src/mame/drivers/chanbara.c45
-rw-r--r--src/mame/drivers/chance32.c23
-rw-r--r--src/mame/drivers/changela.c129
-rw-r--r--src/mame/drivers/cheekyms.c10
-rw-r--r--src/mame/drivers/chihiro.c25
-rw-r--r--src/mame/drivers/chinagat.c74
-rw-r--r--src/mame/drivers/chinsan.c44
-rw-r--r--src/mame/drivers/chqflag.c53
-rw-r--r--src/mame/drivers/cinemat.c31
-rw-r--r--src/mame/drivers/circus.c36
-rw-r--r--src/mame/drivers/circusc.c20
-rw-r--r--src/mame/drivers/cischeat.c8
-rw-r--r--src/mame/drivers/citycon.c15
-rw-r--r--src/mame/drivers/clayshoo.c20
-rw-r--r--src/mame/drivers/cliffhgr.c18
-rw-r--r--src/mame/drivers/cloak.c1
-rw-r--r--src/mame/drivers/cloud9.c41
-rw-r--r--src/mame/drivers/clshroad.c15
-rw-r--r--src/mame/drivers/cmmb.c8
-rw-r--r--src/mame/drivers/cninja.c32
-rw-r--r--src/mame/drivers/cntsteer.c125
-rw-r--r--src/mame/drivers/cobra.c36
-rw-r--r--src/mame/drivers/coinmstr.c7
-rw-r--r--src/mame/drivers/coinmvga.c8
-rw-r--r--src/mame/drivers/combatsc.c85
-rw-r--r--src/mame/drivers/commando.c23
-rw-r--r--src/mame/drivers/compgolf.c30
-rw-r--r--src/mame/drivers/contra.c16
-rw-r--r--src/mame/drivers/coolpool.c18
-rw-r--r--src/mame/drivers/coolridr.c17
-rw-r--r--src/mame/drivers/cop01.c38
-rw-r--r--src/mame/drivers/copsnrob.c23
-rw-r--r--src/mame/drivers/corona.c23
-rw-r--r--src/mame/drivers/cosmic.c52
-rw-r--r--src/mame/drivers/cps1.c37
-rw-r--r--src/mame/drivers/cps2.c15
-rw-r--r--src/mame/drivers/cps3.c42
-rw-r--r--src/mame/drivers/crbaloon.c12
-rw-r--r--src/mame/drivers/crgolf.c36
-rw-r--r--src/mame/drivers/crimfght.c26
-rw-r--r--src/mame/drivers/crospang.c15
-rw-r--r--src/mame/drivers/crshrace.c27
-rw-r--r--src/mame/drivers/crystal.c74
-rw-r--r--src/mame/drivers/cshooter.c25
-rw-r--r--src/mame/drivers/csplayh5.c11
-rw-r--r--src/mame/drivers/cubeqst.c35
-rw-r--r--src/mame/drivers/cultures.c63
-rw-r--r--src/mame/drivers/cvs.c76
-rw-r--r--src/mame/drivers/cyberbal.c57
-rw-r--r--src/mame/drivers/cybertnk.c17
-rw-r--r--src/mame/drivers/cyclemb.c20
-rw-r--r--src/mame/drivers/d9final.c15
-rw-r--r--src/mame/drivers/dacholer.c55
-rw-r--r--src/mame/drivers/dai3wksi.c32
-rw-r--r--src/mame/drivers/dambustr.c6
-rw-r--r--src/mame/drivers/darius.c117
-rw-r--r--src/mame/drivers/darkmist.c2
-rw-r--r--src/mame/drivers/darkseal.c1
-rw-r--r--src/mame/drivers/dassault.c1
-rw-r--r--src/mame/drivers/dblewing.c138
-rw-r--r--src/mame/drivers/dbz.c43
-rw-r--r--src/mame/drivers/dcheese.c22
-rw-r--r--src/mame/drivers/dcon.c2
-rw-r--r--src/mame/drivers/dday.c26
-rw-r--r--src/mame/drivers/ddayjlc.c63
-rw-r--r--src/mame/drivers/ddealer.c35
-rw-r--r--src/mame/drivers/ddenlovr.c438
-rw-r--r--src/mame/drivers/ddragon.c66
-rw-r--r--src/mame/drivers/ddragon3.c45
-rw-r--r--src/mame/drivers/ddribble.c46
-rw-r--r--src/mame/drivers/ddz.c6
-rw-r--r--src/mame/drivers/deadang.c1
-rw-r--r--src/mame/drivers/dec0.c16
-rw-r--r--src/mame/drivers/dec8.c116
-rw-r--r--src/mame/drivers/deco156.c14
-rw-r--r--src/mame/drivers/deco32.c27
-rw-r--r--src/mame/drivers/deco_ld.c4
-rw-r--r--src/mame/drivers/deco_mlc.c15
-rw-r--r--src/mame/drivers/decocass.c96
-rw-r--r--src/mame/drivers/deniam.c49
-rw-r--r--src/mame/drivers/deshoros.c9
-rw-r--r--src/mame/drivers/destroyr.c68
-rw-r--r--src/mame/drivers/dfruit.c4
-rw-r--r--src/mame/drivers/dgpix.c20
-rw-r--r--src/mame/drivers/dietgo.c10
-rw-r--r--src/mame/drivers/discoboy.c36
-rw-r--r--src/mame/drivers/diverboy.c11
-rw-r--r--src/mame/drivers/djboy.c81
-rw-r--r--src/mame/drivers/djmain.c41
-rw-r--r--src/mame/drivers/dkong.c143
-rw-r--r--src/mame/drivers/dlair.c30
-rw-r--r--src/mame/drivers/dmndrby.c25
-rw-r--r--src/mame/drivers/docastle.c40
-rw-r--r--src/mame/drivers/dogfgt.c40
-rw-r--r--src/mame/drivers/dominob.c6
-rw-r--r--src/mame/drivers/dooyong.c47
-rw-r--r--src/mame/drivers/dorachan.c16
-rw-r--r--src/mame/drivers/dotrikun.c14
-rw-r--r--src/mame/drivers/dragrace.c56
-rw-r--r--src/mame/drivers/dreamwld.c45
-rw-r--r--src/mame/drivers/drgnmst.c41
-rw-r--r--src/mame/drivers/dribling.c37
-rw-r--r--src/mame/drivers/drmicro.c24
-rw-r--r--src/mame/drivers/drtomy.c25
-rw-r--r--src/mame/drivers/drw80pkr.c24
-rw-r--r--src/mame/drivers/dunhuang.c109
-rw-r--r--src/mame/drivers/dwarfd.c98
-rw-r--r--src/mame/drivers/dynadice.c31
-rw-r--r--src/mame/drivers/dynax.c286
-rw-r--r--src/mame/drivers/dynduke.c1
-rw-r--r--src/mame/drivers/ecoinfr.c59
-rw-r--r--src/mame/drivers/egghunt.c35
-rw-r--r--src/mame/drivers/embargo.c22
-rw-r--r--src/mame/drivers/enigma2.c40
-rw-r--r--src/mame/drivers/eolith.c10
-rw-r--r--src/mame/drivers/eolith16.c15
-rw-r--r--src/mame/drivers/epos.c33
-rw-r--r--src/mame/drivers/eprom.c31
-rw-r--r--src/mame/drivers/equites.c108
-rw-r--r--src/mame/drivers/ertictac.c14
-rw-r--r--src/mame/drivers/esd16.c21
-rw-r--r--src/mame/drivers/esh.c16
-rw-r--r--src/mame/drivers/espial.c26
-rw-r--r--src/mame/drivers/esripsys.c1
-rw-r--r--src/mame/drivers/ettrivia.c21
-rw-r--r--src/mame/drivers/exedexes.c26
-rw-r--r--src/mame/drivers/exerion.c40
-rw-r--r--src/mame/drivers/exidy.c8
-rw-r--r--src/mame/drivers/exidy440.c18
-rw-r--r--src/mame/drivers/expro02.c15
-rw-r--r--src/mame/drivers/exprraid.c23
-rw-r--r--src/mame/drivers/exterm.c1
-rw-r--r--src/mame/drivers/f1gp.c57
-rw-r--r--src/mame/drivers/famibox.c53
-rw-r--r--src/mame/drivers/fantland.c92
-rw-r--r--src/mame/drivers/fastfred.c13
-rw-r--r--src/mame/drivers/fastlane.c14
-rw-r--r--src/mame/drivers/fcombat.c50
-rw-r--r--src/mame/drivers/fcrash.c55
-rw-r--r--src/mame/drivers/feversoc.c4
-rw-r--r--src/mame/drivers/fgoal.c56
-rw-r--r--src/mame/drivers/finalizr.c32
-rw-r--r--src/mame/drivers/firebeat.c52
-rw-r--r--src/mame/drivers/firefox.c28
-rw-r--r--src/mame/drivers/firetrap.c82
-rw-r--r--src/mame/drivers/firetrk.c15
-rw-r--r--src/mame/drivers/fitfight.c16
-rw-r--r--src/mame/drivers/flipjack.c31
-rw-r--r--src/mame/drivers/flkatck.c33
-rw-r--r--src/mame/drivers/flower.c2
-rw-r--r--src/mame/drivers/flstory.c154
-rw-r--r--src/mame/drivers/flyball.c67
-rw-r--r--src/mame/drivers/foodf.c22
-rw-r--r--src/mame/drivers/forte2.c14
-rw-r--r--src/mame/drivers/fortecar.c21
-rw-r--r--src/mame/drivers/freekick.c67
-rw-r--r--src/mame/drivers/fromanc2.c64
-rw-r--r--src/mame/drivers/fromance.c78
-rw-r--r--src/mame/drivers/funkball.c40
-rw-r--r--src/mame/drivers/funkybee.c14
-rw-r--r--src/mame/drivers/funkyjet.c12
-rw-r--r--src/mame/drivers/funworld.c6
-rw-r--r--src/mame/drivers/funybubl.c17
-rw-r--r--src/mame/drivers/fuukifg2.c27
-rw-r--r--src/mame/drivers/fuukifg3.c31
-rw-r--r--src/mame/drivers/gaelco.c17
-rw-r--r--src/mame/drivers/gaelco2.c12
-rw-r--r--src/mame/drivers/gaelco3d.c57
-rw-r--r--src/mame/drivers/gaiden.c88
-rw-r--r--src/mame/drivers/gal3.c10
-rw-r--r--src/mame/drivers/galaga.c64
-rw-r--r--src/mame/drivers/galastrm.c1
-rw-r--r--src/mame/drivers/galaxi.c53
-rw-r--r--src/mame/drivers/galaxia.c8
-rw-r--r--src/mame/drivers/galaxian.c10
-rw-r--r--src/mame/drivers/galaxold.c58
-rw-r--r--src/mame/drivers/galgame.c23
-rw-r--r--src/mame/drivers/galivan.c80
-rw-r--r--src/mame/drivers/galpani2.c7
-rw-r--r--src/mame/drivers/galpani3.c9
-rw-r--r--src/mame/drivers/galpanic.c4
-rw-r--r--src/mame/drivers/galspnbl.c7
-rw-r--r--src/mame/drivers/gamecstl.c29
-rw-r--r--src/mame/drivers/gameplan.c36
-rw-r--r--src/mame/drivers/gaplus.c10
-rw-r--r--src/mame/drivers/gatron.c2
-rw-r--r--src/mame/drivers/gauntlet.c28
-rw-r--r--src/mame/drivers/gberet.c34
-rw-r--r--src/mame/drivers/gbusters.c39
-rw-r--r--src/mame/drivers/gcpinbal.c57
-rw-r--r--src/mame/drivers/gei.c13
-rw-r--r--src/mame/drivers/ghosteo.c9
-rw-r--r--src/mame/drivers/gijoe.c27
-rw-r--r--src/mame/drivers/ginganin.c19
-rw-r--r--src/mame/drivers/gladiatr.c23
-rw-r--r--src/mame/drivers/glass.c25
-rw-r--r--src/mame/drivers/gng.c43
-rw-r--r--src/mame/drivers/go2000.c17
-rw-r--r--src/mame/drivers/goal92.c27
-rw-r--r--src/mame/drivers/goindol.c21
-rw-r--r--src/mame/drivers/goldngam.c8
-rw-r--r--src/mame/drivers/goldnpkr.c59
-rw-r--r--src/mame/drivers/goldstar.c108
-rw-r--r--src/mame/drivers/gomoku.c2
-rw-r--r--src/mame/drivers/good.c11
-rw-r--r--src/mame/drivers/gotcha.c23
-rw-r--r--src/mame/drivers/gottlieb.c59
-rw-r--r--src/mame/drivers/gotya.c20
-rw-r--r--src/mame/drivers/gpworld.c4
-rw-r--r--src/mame/drivers/gradius3.c39
-rw-r--r--src/mame/drivers/grchamp.c7
-rw-r--r--src/mame/drivers/gridlee.c30
-rw-r--r--src/mame/drivers/groundfx.c1
-rw-r--r--src/mame/drivers/gstream.c61
-rw-r--r--src/mame/drivers/gstriker.c6
-rw-r--r--src/mame/drivers/gsword.c21
-rw-r--r--src/mame/drivers/gticlub.c28
-rw-r--r--src/mame/drivers/guab.c20
-rw-r--r--src/mame/drivers/gumbo.c1
-rw-r--r--src/mame/drivers/gunbustr.c1
-rw-r--r--src/mame/drivers/gundealr.c27
-rw-r--r--src/mame/drivers/gunpey.c15
-rw-r--r--src/mame/drivers/gunsmoke.c30
-rw-r--r--src/mame/drivers/gyruss.c10
-rw-r--r--src/mame/drivers/halleys.c53
-rw-r--r--src/mame/drivers/hanaawas.c14
-rw-r--r--src/mame/drivers/harddriv.c6
-rw-r--r--src/mame/drivers/hcastle.c40
-rw-r--r--src/mame/drivers/hexion.c1
-rw-r--r--src/mame/drivers/higemaru.c2
-rw-r--r--src/mame/drivers/highvdeo.c7
-rw-r--r--src/mame/drivers/hikaru.c8
-rw-r--r--src/mame/drivers/himesiki.c25
-rw-r--r--src/mame/drivers/hitme.c22
-rw-r--r--src/mame/drivers/hitpoker.c11
-rw-r--r--src/mame/drivers/hnayayoi.c33
-rw-r--r--src/mame/drivers/hng64.c49
-rw-r--r--src/mame/drivers/holeland.c5
-rw-r--r--src/mame/drivers/homedata.c170
-rw-r--r--src/mame/drivers/homerun.c49
-rw-r--r--src/mame/drivers/hornet.c60
-rw-r--r--src/mame/drivers/hotblock.c7
-rw-r--r--src/mame/drivers/hotstuff.c4
-rw-r--r--src/mame/drivers/hvyunit.c33
-rw-r--r--src/mame/drivers/hyhoo.c1
-rw-r--r--src/mame/drivers/hyperspt.c4
-rw-r--r--src/mame/drivers/hyprduel.c47
-rw-r--r--src/mame/drivers/igs009.c62
-rw-r--r--src/mame/drivers/igs011.c9
-rw-r--r--src/mame/drivers/igs017.c90
-rw-r--r--src/mame/drivers/igs_m027.c15
-rw-r--r--src/mame/drivers/igspoker.c30
-rw-r--r--src/mame/drivers/ikki.c18
-rw-r--r--src/mame/drivers/imolagp.c57
-rw-r--r--src/mame/drivers/intrscti.c4
-rw-r--r--src/mame/drivers/inufuku.c57
-rw-r--r--src/mame/drivers/iqblock.c1
-rw-r--r--src/mame/drivers/irobot.c3
-rw-r--r--src/mame/drivers/ironhors.c28
-rw-r--r--src/mame/drivers/istellar.c14
-rw-r--r--src/mame/drivers/itech32.c27
-rw-r--r--src/mame/drivers/itech8.c27
-rw-r--r--src/mame/drivers/itgambl2.c23
-rw-r--r--src/mame/drivers/itgambl3.c23
-rw-r--r--src/mame/drivers/jack.c35
-rw-r--r--src/mame/drivers/jackal.c34
-rw-r--r--src/mame/drivers/jackie.c34
-rw-r--r--src/mame/drivers/jackpool.c4
-rw-r--r--src/mame/drivers/jailbrek.c18
-rw-r--r--src/mame/drivers/jalmah.c122
-rw-r--r--src/mame/drivers/jangou.c107
-rw-r--r--src/mame/drivers/jantotsu.c55
-rw-r--r--src/mame/drivers/jchan.c25
-rw-r--r--src/mame/drivers/jclub2.c28
-rw-r--r--src/mame/drivers/jedi.c20
-rw-r--r--src/mame/drivers/jokrwild.c11
-rw-r--r--src/mame/drivers/jollyjgr.c51
-rw-r--r--src/mame/drivers/jongkyo.c32
-rw-r--r--src/mame/drivers/jpmimpct.c78
-rw-r--r--src/mame/drivers/jpmsys5.c52
-rw-r--r--src/mame/drivers/jrpacman.c4
-rw-r--r--src/mame/drivers/jubilee.c11
-rw-r--r--src/mame/drivers/junofrst.c60
-rw-r--r--src/mame/drivers/kaneko16.c36
-rw-r--r--src/mame/drivers/kangaroo.c26
-rw-r--r--src/mame/drivers/karnov.c58
-rw-r--r--src/mame/drivers/kas89.c16
-rw-r--r--src/mame/drivers/kchamp.c37
-rw-r--r--src/mame/drivers/kickgoal.c48
-rw-r--r--src/mame/drivers/kingdrby.c33
-rw-r--r--src/mame/drivers/kingobox.c32
-rw-r--r--src/mame/drivers/kinst.c24
-rw-r--r--src/mame/drivers/klax.c19
-rw-r--r--src/mame/drivers/kncljoe.c32
-rw-r--r--src/mame/drivers/koftball.c11
-rw-r--r--src/mame/drivers/koikoi.c45
-rw-r--r--src/mame/drivers/konamigq.c19
-rw-r--r--src/mame/drivers/konamigv.c29
-rw-r--r--src/mame/drivers/konamigx.c52
-rw-r--r--src/mame/drivers/konamim2.c4
-rw-r--r--src/mame/drivers/kontest.c8
-rw-r--r--src/mame/drivers/kopunch.c16
-rw-r--r--src/mame/drivers/ksayakyu.c26
-rw-r--r--src/mame/drivers/ksys573.c14
-rw-r--r--src/mame/drivers/kungfur.c22
-rw-r--r--src/mame/drivers/kyugo.c45
-rw-r--r--src/mame/drivers/labyrunr.c12
-rw-r--r--src/mame/drivers/ladybug.c75
-rw-r--r--src/mame/drivers/ladyfrog.c37
-rw-r--r--src/mame/drivers/laserbas.c27
-rw-r--r--src/mame/drivers/laserbat.c125
-rw-r--r--src/mame/drivers/lasso.c42
-rw-r--r--src/mame/drivers/lastbank.c6
-rw-r--r--src/mame/drivers/lastduel.c32
-rw-r--r--src/mame/drivers/lastfght.c91
-rw-r--r--src/mame/drivers/lazercmd.c49
-rw-r--r--src/mame/drivers/legionna.c14
-rw-r--r--src/mame/drivers/leland.c4
-rw-r--r--src/mame/drivers/lemmings.c7
-rw-r--r--src/mame/drivers/lethal.c47
-rw-r--r--src/mame/drivers/lethalj.c1
-rw-r--r--src/mame/drivers/lgp.c9
-rw-r--r--src/mame/drivers/liberate.c52
-rw-r--r--src/mame/drivers/limenko.c20
-rw-r--r--src/mame/drivers/littlerb.c17
-rw-r--r--src/mame/drivers/lkage.c108
-rw-r--r--src/mame/drivers/lockon.c100
-rw-r--r--src/mame/drivers/looping.c24
-rw-r--r--src/mame/drivers/lordgun.c2
-rw-r--r--src/mame/drivers/lsasquad.c96
-rw-r--r--src/mame/drivers/ltcasino.c7
-rw-r--r--src/mame/drivers/luckgrln.c33
-rw-r--r--src/mame/drivers/lucky74.c2
-rw-r--r--src/mame/drivers/lvcards.c28
-rw-r--r--src/mame/drivers/lwings.c55
-rw-r--r--src/mame/drivers/m10.c46
-rw-r--r--src/mame/drivers/m107.c4
-rw-r--r--src/mame/drivers/m14.c29
-rw-r--r--src/mame/drivers/m52.c16
-rw-r--r--src/mame/drivers/m57.c2
-rw-r--r--src/mame/drivers/m58.c2
-rw-r--r--src/mame/drivers/m62.c66
-rw-r--r--src/mame/drivers/m63.c77
-rw-r--r--src/mame/drivers/m72.c123
-rw-r--r--src/mame/drivers/m90.c11
-rw-r--r--src/mame/drivers/m92.c22
-rw-r--r--src/mame/drivers/macrossp.c29
-rw-r--r--src/mame/drivers/macs.c30
-rw-r--r--src/mame/drivers/madmotor.c17
-rw-r--r--src/mame/drivers/magic10.c15
-rw-r--r--src/mame/drivers/magicard.c15
-rw-r--r--src/mame/drivers/magicfly.c53
-rw-r--r--src/mame/drivers/magictg.c4
-rw-r--r--src/mame/drivers/magmax.c22
-rw-r--r--src/mame/drivers/magtouch.c14
-rw-r--r--src/mame/drivers/mainevt.c34
-rw-r--r--src/mame/drivers/mainsnk.c2
-rw-r--r--src/mame/drivers/majorpkr.c13
-rw-r--r--src/mame/drivers/malzak.c35
-rw-r--r--src/mame/drivers/mappy.c54
-rw-r--r--src/mame/drivers/marineb.c37
-rw-r--r--src/mame/drivers/marinedt.c115
-rw-r--r--src/mame/drivers/mario.c2
-rw-r--r--src/mame/drivers/markham.c2
-rw-r--r--src/mame/drivers/mastboy.c28
-rw-r--r--src/mame/drivers/matmania.c85
-rw-r--r--src/mame/drivers/maxaflex.c16
-rw-r--r--src/mame/drivers/maygay1b.c19
-rw-r--r--src/mame/drivers/maygayv1.c30
-rw-r--r--src/mame/drivers/mayumi.c31
-rw-r--r--src/mame/drivers/mazerbla.c156
-rw-r--r--src/mame/drivers/mcatadv.c19
-rw-r--r--src/mame/drivers/mcr.c8
-rw-r--r--src/mame/drivers/mcr3.c10
-rw-r--r--src/mame/drivers/mcr68.c12
-rw-r--r--src/mame/drivers/meadows.c12
-rw-r--r--src/mame/drivers/mediagx.c48
-rw-r--r--src/mame/drivers/megaplay.c23
-rw-r--r--src/mame/drivers/megasys1.c40
-rw-r--r--src/mame/drivers/megatech.c21
-rw-r--r--src/mame/drivers/megazone.c24
-rw-r--r--src/mame/drivers/meijinsn.c36
-rw-r--r--src/mame/drivers/merit.c36
-rw-r--r--src/mame/drivers/meritm.c95
-rw-r--r--src/mame/drivers/mermaid.c76
-rw-r--r--src/mame/drivers/metalmx.c13
-rw-r--r--src/mame/drivers/metlclsh.c23
-rw-r--r--src/mame/drivers/metro.c180
-rw-r--r--src/mame/drivers/mexico86.c88
-rw-r--r--src/mame/drivers/meyc8088.c12
-rw-r--r--src/mame/drivers/mgolf.c41
-rw-r--r--src/mame/drivers/mhavoc.c2
-rw-r--r--src/mame/drivers/micro3d.c3
-rw-r--r--src/mame/drivers/midas.c14
-rw-r--r--src/mame/drivers/midqslvr.c49
-rw-r--r--src/mame/drivers/midtunit.c4
-rw-r--r--src/mame/drivers/midvunit.c54
-rw-r--r--src/mame/drivers/midwunit.c4
-rw-r--r--src/mame/drivers/midxunit.c4
-rw-r--r--src/mame/drivers/midyunit.c18
-rw-r--r--src/mame/drivers/midzeus.c47
-rw-r--r--src/mame/drivers/mikie.c22
-rw-r--r--src/mame/drivers/mil4000.c21
-rw-r--r--src/mame/drivers/miniboy7.c17
-rw-r--r--src/mame/drivers/mirage.c20
-rw-r--r--src/mame/drivers/mirax.c10
-rw-r--r--src/mame/drivers/missb2.c34
-rw-r--r--src/mame/drivers/missile.c42
-rw-r--r--src/mame/drivers/mitchell.c60
-rw-r--r--src/mame/drivers/mjkjidai.c1
-rw-r--r--src/mame/drivers/mjsister.c93
-rw-r--r--src/mame/drivers/mlanding.c23
-rw-r--r--src/mame/drivers/model1.c46
-rw-r--r--src/mame/drivers/model2.c133
-rw-r--r--src/mame/drivers/model3.c58
-rw-r--r--src/mame/drivers/mogura.c28
-rw-r--r--src/mame/drivers/mole.c31
-rw-r--r--src/mame/drivers/momoko.c58
-rw-r--r--src/mame/drivers/monzagp.c13
-rw-r--r--src/mame/drivers/moo.c62
-rw-r--r--src/mame/drivers/mosaic.c13
-rw-r--r--src/mame/drivers/mouser.c21
-rw-r--r--src/mame/drivers/mpoker.c10
-rw-r--r--src/mame/drivers/mpu3.c41
-rw-r--r--src/mame/drivers/mpu4dealem.c47
-rw-r--r--src/mame/drivers/mpu4hw.c108
-rw-r--r--src/mame/drivers/mpu4vid.c76
-rw-r--r--src/mame/drivers/mpu5hw.c9
-rw-r--r--src/mame/drivers/mquake.c10
-rw-r--r--src/mame/drivers/mrdo.c2
-rw-r--r--src/mame/drivers/mrflea.c32
-rw-r--r--src/mame/drivers/mrjong.c2
-rw-r--r--src/mame/drivers/ms32.c14
-rw-r--r--src/mame/drivers/msisaac.c52
-rw-r--r--src/mame/drivers/mugsmash.c9
-rw-r--r--src/mame/drivers/multfish.c60
-rw-r--r--src/mame/drivers/multigam.c113
-rw-r--r--src/mame/drivers/munchmo.c26
-rw-r--r--src/mame/drivers/murogem.c4
-rw-r--r--src/mame/drivers/murogmbl.c12
-rw-r--r--src/mame/drivers/mustache.c8
-rw-r--r--src/mame/drivers/mw8080bw.c99
-rw-r--r--src/mame/drivers/mwarr.c41
-rw-r--r--src/mame/drivers/mystwarr.c69
-rw-r--r--src/mame/drivers/n8080.c97
-rw-r--r--src/mame/drivers/namcofl.c24
-rw-r--r--src/mame/drivers/namcona1.c15
-rw-r--r--src/mame/drivers/namconb1.c17
-rw-r--r--src/mame/drivers/namcond1.c2
-rw-r--r--src/mame/drivers/namcos1.c2
-rw-r--r--src/mame/drivers/namcos10.c7
-rw-r--r--src/mame/drivers/namcos11.c8
-rw-r--r--src/mame/drivers/namcos12.c84
-rw-r--r--src/mame/drivers/namcos2.c32
-rw-r--r--src/mame/drivers/namcos21.c22
-rw-r--r--src/mame/drivers/namcos22.c10
-rw-r--r--src/mame/drivers/namcos23.c49
-rw-r--r--src/mame/drivers/namcos86.c9
-rw-r--r--src/mame/drivers/naomi.c11
-rw-r--r--src/mame/drivers/naughtyb.c4
-rw-r--r--src/mame/drivers/nbmj8688.c20
-rw-r--r--src/mame/drivers/nbmj8891.c15
-rw-r--r--src/mame/drivers/nbmj8900.c1
-rw-r--r--src/mame/drivers/nbmj8991.c18
-rw-r--r--src/mame/drivers/nbmj9195.c15
-rw-r--r--src/mame/drivers/nemesis.c92
-rw-r--r--src/mame/drivers/neogeo.c90
-rw-r--r--src/mame/drivers/neoprint.c13
-rw-r--r--src/mame/drivers/news.c13
-rw-r--r--src/mame/drivers/nexus3d.c10
-rw-r--r--src/mame/drivers/nightgal.c59
-rw-r--r--src/mame/drivers/ninjakd2.c30
-rw-r--r--src/mame/drivers/ninjaw.c66
-rw-r--r--src/mame/drivers/nitedrvr.c3
-rw-r--r--src/mame/drivers/niyanpai.c11
-rw-r--r--src/mame/drivers/nmg5.c37
-rw-r--r--src/mame/drivers/nmk16.c86
-rw-r--r--src/mame/drivers/norautp.c25
-rw-r--r--src/mame/drivers/nova2001.c19
-rw-r--r--src/mame/drivers/nsmpoker.c11
-rw-r--r--src/mame/drivers/nss.c28
-rw-r--r--src/mame/drivers/nwk-tr.c17
-rw-r--r--src/mame/drivers/nycaptor.c130
-rw-r--r--src/mame/drivers/nyny.c40
-rw-r--r--src/mame/drivers/offtwall.c19
-rw-r--r--src/mame/drivers/ohmygod.c29
-rw-r--r--src/mame/drivers/ojankohs.c100
-rw-r--r--src/mame/drivers/olibochu.c31
-rw-r--r--src/mame/drivers/omegrace.c6
-rw-r--r--src/mame/drivers/oneshot.c47
-rw-r--r--src/mame/drivers/onetwo.c20
-rw-r--r--src/mame/drivers/opwolf.c58
-rw-r--r--src/mame/drivers/orbit.c21
-rw-r--r--src/mame/drivers/othello.c72
-rw-r--r--src/mame/drivers/othldrby.c25
-rw-r--r--src/mame/drivers/othunder.c57
-rw-r--r--src/mame/drivers/overdriv.c52
-rw-r--r--src/mame/drivers/pachifev.c32
-rw-r--r--src/mame/drivers/pacland.c2
-rw-r--r--src/mame/drivers/pacman.c39
-rw-r--r--src/mame/drivers/pandoras.c44
-rw-r--r--src/mame/drivers/pangofun.c10
-rw-r--r--src/mame/drivers/panicr.c29
-rw-r--r--src/mame/drivers/paradise.c27
-rw-r--r--src/mame/drivers/parodius.c48
-rw-r--r--src/mame/drivers/pasha2.c27
-rw-r--r--src/mame/drivers/pass.c1
-rw-r--r--src/mame/drivers/pastelg.c4
-rw-r--r--src/mame/drivers/pbaction.c17
-rw-r--r--src/mame/drivers/pcat_dyn.c10
-rw-r--r--src/mame/drivers/pcat_nit.c14
-rw-r--r--src/mame/drivers/pcktgal.c1
-rw-r--r--src/mame/drivers/pcxt.c19
-rw-r--r--src/mame/drivers/pengadvb.c24
-rw-r--r--src/mame/drivers/pengo.c6
-rw-r--r--src/mame/drivers/peplus.c52
-rw-r--r--src/mame/drivers/peyper.c7
-rw-r--r--src/mame/drivers/pgm.c21
-rw-r--r--src/mame/drivers/pgm2.c12
-rw-r--r--src/mame/drivers/phoenix.c18
-rw-r--r--src/mame/drivers/photon.c12
-rw-r--r--src/mame/drivers/photon2.c21
-rw-r--r--src/mame/drivers/photoply.c21
-rw-r--r--src/mame/drivers/pingpong.c2
-rw-r--r--src/mame/drivers/pinkiri8.c4
-rw-r--r--src/mame/drivers/pipedrm.c60
-rw-r--r--src/mame/drivers/pipeline.c23
-rw-r--r--src/mame/drivers/pirates.c1
-rw-r--r--src/mame/drivers/pitnrun.c3
-rw-r--r--src/mame/drivers/pkscram.c37
-rw-r--r--src/mame/drivers/pktgaldx.c11
-rw-r--r--src/mame/drivers/playch10.c8
-rw-r--r--src/mame/drivers/playmark.c102
-rw-r--r--src/mame/drivers/pluto5.c9
-rw-r--r--src/mame/drivers/plygonet.c10
-rw-r--r--src/mame/drivers/pokechmp.c1
-rw-r--r--src/mame/drivers/poker72.c18
-rw-r--r--src/mame/drivers/polepos.c23
-rw-r--r--src/mame/drivers/policetr.c1
-rw-r--r--src/mame/drivers/polyplay.c28
-rw-r--r--src/mame/drivers/poo.c12
-rw-r--r--src/mame/drivers/poolshrk.c12
-rw-r--r--src/mame/drivers/pooyan.c16
-rw-r--r--src/mame/drivers/popeye.c8
-rw-r--r--src/mame/drivers/popobear.c4
-rw-r--r--src/mame/drivers/popper.c24
-rw-r--r--src/mame/drivers/portrait.c2
-rw-r--r--src/mame/drivers/potgoldu.c8
-rw-r--r--src/mame/drivers/powerbal.c31
-rw-r--r--src/mame/drivers/powerins.c7
-rw-r--r--src/mame/drivers/ppmast93.c11
-rw-r--r--src/mame/drivers/prehisle.c1
-rw-r--r--src/mame/drivers/proconn.c7
-rw-r--r--src/mame/drivers/progolf.c23
-rw-r--r--src/mame/drivers/psattack.c12
-rw-r--r--src/mame/drivers/psikyo.c40
-rw-r--r--src/mame/drivers/psikyo4.c19
-rw-r--r--src/mame/drivers/psikyosh.c9
-rw-r--r--src/mame/drivers/psychic5.c17
-rw-r--r--src/mame/drivers/pturn.c22
-rw-r--r--src/mame/drivers/punchout.c11
-rw-r--r--src/mame/drivers/pushman.c45
-rw-r--r--src/mame/drivers/pzletime.c33
-rw-r--r--src/mame/drivers/qdrmfgp.c34
-rw-r--r--src/mame/drivers/qix.c3
-rw-r--r--src/mame/drivers/quakeat.c15
-rw-r--r--src/mame/drivers/quasar.c30
-rw-r--r--src/mame/drivers/queen.c49
-rw-r--r--src/mame/drivers/quizdna.c1
-rw-r--r--src/mame/drivers/quizo.c8
-rw-r--r--src/mame/drivers/quizpani.c1
-rw-r--r--src/mame/drivers/quizpun2.c20
-rw-r--r--src/mame/drivers/quizshow.c28
-rw-r--r--src/mame/drivers/r2dtank.c11
-rw-r--r--src/mame/drivers/r2dx_v33.c26
-rw-r--r--src/mame/drivers/rabbit.c43
-rw-r--r--src/mame/drivers/raiden.c5
-rw-r--r--src/mame/drivers/raiden2.c79
-rw-r--r--src/mame/drivers/rainbow.c15
-rw-r--r--src/mame/drivers/rallyx.c40
-rw-r--r--src/mame/drivers/rampart.c21
-rw-r--r--src/mame/drivers/rastan.c38
-rw-r--r--src/mame/drivers/rbmk.c4
-rw-r--r--src/mame/drivers/realbrk.c1
-rw-r--r--src/mame/drivers/redclash.c54
-rw-r--r--src/mame/drivers/relief.c27
-rw-r--r--src/mame/drivers/renegade.c25
-rw-r--r--src/mame/drivers/retofinv.c2
-rw-r--r--src/mame/drivers/rgum.c4
-rw-r--r--src/mame/drivers/rltennis.c27
-rw-r--r--src/mame/drivers/rmhaihai.c15
-rw-r--r--src/mame/drivers/rockrage.c29
-rw-r--r--src/mame/drivers/rocnrope.c2
-rw-r--r--src/mame/drivers/rohga.c8
-rw-r--r--src/mame/drivers/rollerg.c33
-rw-r--r--src/mame/drivers/rollrace.c1
-rw-r--r--src/mame/drivers/roul.c15
-rw-r--r--src/mame/drivers/royalmah.c21
-rw-r--r--src/mame/drivers/rpunch.c6
-rw-r--r--src/mame/drivers/runaway.c15
-rw-r--r--src/mame/drivers/rungun.c49
-rw-r--r--src/mame/drivers/safarir.c46
-rw-r--r--src/mame/drivers/sandscrp.c5
-rw-r--r--src/mame/drivers/sangho.c41
-rw-r--r--src/mame/drivers/saturn.c266
-rw-r--r--src/mame/drivers/sauro.c4
-rw-r--r--src/mame/drivers/savquest.c25
-rw-r--r--src/mame/drivers/sbasketb.c2
-rw-r--r--src/mame/drivers/sbowling.c19
-rw-r--r--src/mame/drivers/sbrkout.c33
-rw-r--r--src/mame/drivers/sbugger.c2
-rw-r--r--src/mame/drivers/scobra.c30
-rw-r--r--src/mame/drivers/scotrsht.c2
-rw-r--r--src/mame/drivers/scramble.c50
-rw-r--r--src/mame/drivers/scregg.c52
-rw-r--r--src/mame/drivers/sderby.c4
-rw-r--r--src/mame/drivers/seattle.c104
-rw-r--r--src/mame/drivers/segac2.c46
-rw-r--r--src/mame/drivers/segag80r.c4
-rw-r--r--src/mame/drivers/segag80v.c15
-rw-r--r--src/mame/drivers/segajw.c4
-rw-r--r--src/mame/drivers/segald.c4
-rw-r--r--src/mame/drivers/segas24.c44
-rw-r--r--src/mame/drivers/segas32.c19
-rw-r--r--src/mame/drivers/seibuspi.c90
-rw-r--r--src/mame/drivers/seicross.c7
-rw-r--r--src/mame/drivers/senjyo.c7
-rw-r--r--src/mame/drivers/seta.c138
-rw-r--r--src/mame/drivers/seta2.c25
-rw-r--r--src/mame/drivers/sf.c25
-rw-r--r--src/mame/drivers/sfbonus.c45
-rw-r--r--src/mame/drivers/sfcbox.c22
-rw-r--r--src/mame/drivers/sfkick.c25
-rw-r--r--src/mame/drivers/shadfrce.c1
-rw-r--r--src/mame/drivers/shangha3.c3
-rw-r--r--src/mame/drivers/shanghai.c15
-rw-r--r--src/mame/drivers/shangkid.c20
-rw-r--r--src/mame/drivers/shaolins.c2
-rw-r--r--src/mame/drivers/shisen.c1
-rw-r--r--src/mame/drivers/shootout.c4
-rw-r--r--src/mame/drivers/shougi.c10
-rw-r--r--src/mame/drivers/shtzone.c12
-rw-r--r--src/mame/drivers/shuuz.c19
-rw-r--r--src/mame/drivers/sidearms.c3
-rw-r--r--src/mame/drivers/sidepckt.c2
-rw-r--r--src/mame/drivers/sigmab52.c22
-rw-r--r--src/mame/drivers/sigmab98.c7
-rw-r--r--src/mame/drivers/silkroad.c1
-rw-r--r--src/mame/drivers/silvmil.c30
-rw-r--r--src/mame/drivers/simpl156.c1
-rw-r--r--src/mame/drivers/simpsons.c2
-rw-r--r--src/mame/drivers/skeetsht.c13
-rw-r--r--src/mame/drivers/skimaxx.c25
-rw-r--r--src/mame/drivers/skullxbo.c19
-rw-r--r--src/mame/drivers/skyarmy.c17
-rw-r--r--src/mame/drivers/skydiver.c7
-rw-r--r--src/mame/drivers/skyfox.c19
-rw-r--r--src/mame/drivers/skykid.c10
-rw-r--r--src/mame/drivers/skylncr.c29
-rw-r--r--src/mame/drivers/skyraid.c44
-rw-r--r--src/mame/drivers/slapfght.c16
-rw-r--r--src/mame/drivers/slapshot.c27
-rw-r--r--src/mame/drivers/sliver.c9
-rw-r--r--src/mame/drivers/slotcarn.c9
-rw-r--r--src/mame/drivers/sms.c45
-rw-r--r--src/mame/drivers/snk.c26
-rw-r--r--src/mame/drivers/snk6502.c40
-rw-r--r--src/mame/drivers/snk68.c3
-rw-r--r--src/mame/drivers/snookr10.c6
-rw-r--r--src/mame/drivers/snowbros.c18
-rw-r--r--src/mame/drivers/solomon.c1
-rw-r--r--src/mame/drivers/sonson.c16
-rw-r--r--src/mame/drivers/sothello.c4
-rw-r--r--src/mame/drivers/spacefb.c20
-rw-r--r--src/mame/drivers/spaceg.c40
-rw-r--r--src/mame/drivers/spbactn.c1
-rw-r--r--src/mame/drivers/spcforce.c5
-rw-r--r--src/mame/drivers/spdodgeb.c26
-rw-r--r--src/mame/drivers/speedatk.c2
-rw-r--r--src/mame/drivers/speedbal.c1
-rw-r--r--src/mame/drivers/speedspn.c1
-rw-r--r--src/mame/drivers/speglsht.c18
-rw-r--r--src/mame/drivers/spiders.c14
-rw-r--r--src/mame/drivers/splash.c23
-rw-r--r--src/mame/drivers/spoker.c22
-rw-r--r--src/mame/drivers/spool99.c7
-rw-r--r--src/mame/drivers/sprcros2.c10
-rw-r--r--src/mame/drivers/sprint2.c2
-rw-r--r--src/mame/drivers/sprint4.c22
-rw-r--r--src/mame/drivers/sprint8.c10
-rw-r--r--src/mame/drivers/spy.c47
-rw-r--r--src/mame/drivers/srmp2.c27
-rw-r--r--src/mame/drivers/srmp5.c2
-rw-r--r--src/mame/drivers/srmp6.c17
-rw-r--r--src/mame/drivers/srumbler.c9
-rw-r--r--src/mame/drivers/ssfindo.c6
-rw-r--r--src/mame/drivers/sshangha.c4
-rw-r--r--src/mame/drivers/sshot.c15
-rw-r--r--src/mame/drivers/ssingles.c7
-rw-r--r--src/mame/drivers/sslam.c4
-rw-r--r--src/mame/drivers/ssozumo.c2
-rw-r--r--src/mame/drivers/sspeedr.c6
-rw-r--r--src/mame/drivers/ssrj.c10
-rw-r--r--src/mame/drivers/ssv.c15
-rw-r--r--src/mame/drivers/st0016.c2
-rw-r--r--src/mame/drivers/stactics.c10
-rw-r--r--src/mame/drivers/stadhero.c1
-rw-r--r--src/mame/drivers/starcrus.c2
-rw-r--r--src/mame/drivers/starfire.c1
-rw-r--r--src/mame/drivers/starshp1.c2
-rw-r--r--src/mame/drivers/starwars.c16
-rw-r--r--src/mame/drivers/statriv2.c23
-rw-r--r--src/mame/drivers/stfight.c3
-rw-r--r--src/mame/drivers/stlforce.c1
-rw-r--r--src/mame/drivers/strnskil.c2
-rw-r--r--src/mame/drivers/su2000.c37
-rw-r--r--src/mame/drivers/sub.c20
-rw-r--r--src/mame/drivers/subs.c12
-rw-r--r--src/mame/drivers/subsino.c84
-rw-r--r--src/mame/drivers/subsino2.c93
-rw-r--r--src/mame/drivers/summit.c8
-rw-r--r--src/mame/drivers/suna16.c13
-rw-r--r--src/mame/drivers/suna8.c28
-rw-r--r--src/mame/drivers/supbtime.c11
-rw-r--r--src/mame/drivers/supdrapo.c23
-rw-r--r--src/mame/drivers/superchs.c1
-rw-r--r--src/mame/drivers/superdq.c32
-rw-r--r--src/mame/drivers/superqix.c28
-rw-r--r--src/mame/drivers/supertnk.c30
-rw-r--r--src/mame/drivers/superwng.c39
-rw-r--r--src/mame/drivers/suprgolf.c24
-rw-r--r--src/mame/drivers/suprloco.c2
-rw-r--r--src/mame/drivers/suprnova.c57
-rw-r--r--src/mame/drivers/suprridr.c2
-rw-r--r--src/mame/drivers/suprslam.c25
-rw-r--r--src/mame/drivers/surpratk.c44
-rw-r--r--src/mame/drivers/system1.c42
-rw-r--r--src/mame/drivers/system16.c14
-rw-r--r--src/mame/drivers/tagteam.c2
-rw-r--r--src/mame/drivers/tail2nos.c37
-rw-r--r--src/mame/drivers/taito_b.c106
-rw-r--r--src/mame/drivers/taito_f2.c93
-rw-r--r--src/mame/drivers/taito_f3.c13
-rw-r--r--src/mame/drivers/taito_h.c28
-rw-r--r--src/mame/drivers/taito_l.c187
-rw-r--r--src/mame/drivers/taito_o.c8
-rw-r--r--src/mame/drivers/taito_x.c26
-rw-r--r--src/mame/drivers/taito_z.c108
-rw-r--r--src/mame/drivers/taitoair.c39
-rw-r--r--src/mame/drivers/taitogn.c20
-rw-r--r--src/mame/drivers/taitojc.c35
-rw-r--r--src/mame/drivers/taitopjc.c4
-rw-r--r--src/mame/drivers/taitosj.c3
-rw-r--r--src/mame/drivers/taitotz.c39
-rw-r--r--src/mame/drivers/taitowlf.c37
-rw-r--r--src/mame/drivers/tank8.c8
-rw-r--r--src/mame/drivers/tankbatt.c2
-rw-r--r--src/mame/drivers/tankbust.c14
-rw-r--r--src/mame/drivers/taotaido.c1
-rw-r--r--src/mame/drivers/tapatune.c4
-rw-r--r--src/mame/drivers/targeth.c1
-rw-r--r--src/mame/drivers/tasman.c7
-rw-r--r--src/mame/drivers/tatsumi.c16
-rw-r--r--src/mame/drivers/tattack.c15
-rw-r--r--src/mame/drivers/tbowl.c11
-rw-r--r--src/mame/drivers/tceptor.c22
-rw-r--r--src/mame/drivers/tcl.c4
-rw-r--r--src/mame/drivers/tecmo.c17
-rw-r--r--src/mame/drivers/tecmo16.c5
-rw-r--r--src/mame/drivers/tecmosys.c7
-rw-r--r--src/mame/drivers/tehkanwc.c1
-rw-r--r--src/mame/drivers/tempest.c7
-rw-r--r--src/mame/drivers/terracre.c15
-rw-r--r--src/mame/drivers/tetrisp2.c12
-rw-r--r--src/mame/drivers/thayers.c40
-rw-r--r--src/mame/drivers/thedeep.c24
-rw-r--r--src/mame/drivers/thepit.c4
-rw-r--r--src/mame/drivers/thief.c3
-rw-r--r--src/mame/drivers/thoop2.c1
-rw-r--r--src/mame/drivers/thunderj.c22
-rw-r--r--src/mame/drivers/thunderx.c71
-rw-r--r--src/mame/drivers/tiamc1.c10
-rw-r--r--src/mame/drivers/tickee.c34
-rw-r--r--src/mame/drivers/tigeroad.c1
-rw-r--r--src/mame/drivers/timelimt.c12
-rw-r--r--src/mame/drivers/timeplt.c16
-rw-r--r--src/mame/drivers/timetrv.c4
-rw-r--r--src/mame/drivers/tmaster.c58
-rw-r--r--src/mame/drivers/tmmjprd.c13
-rw-r--r--src/mame/drivers/tmnt.c143
-rw-r--r--src/mame/drivers/tmspoker.c27
-rw-r--r--src/mame/drivers/tnzs.c32
-rw-r--r--src/mame/drivers/toaplan1.c32
-rw-r--r--src/mame/drivers/toaplan2.c125
-rw-r--r--src/mame/drivers/toki.c2
-rw-r--r--src/mame/drivers/tomcat.c25
-rw-r--r--src/mame/drivers/tonton.c8
-rw-r--r--src/mame/drivers/toobin.c17
-rw-r--r--src/mame/drivers/topspeed.c52
-rw-r--r--src/mame/drivers/toratora.c30
-rw-r--r--src/mame/drivers/toypop.c16
-rw-r--r--src/mame/drivers/tp84.c8
-rw-r--r--src/mame/drivers/trackfld.c44
-rw-r--r--src/mame/drivers/travrusa.c12
-rw-r--r--src/mame/drivers/triforce.c12
-rw-r--r--src/mame/drivers/triplhnt.c20
-rw-r--r--src/mame/drivers/truco.c33
-rw-r--r--src/mame/drivers/trucocl.c2
-rw-r--r--src/mame/drivers/trvmadns.c16
-rw-r--r--src/mame/drivers/trvquest.c28
-rw-r--r--src/mame/drivers/tryout.c2
-rw-r--r--src/mame/drivers/tsamurai.c7
-rw-r--r--src/mame/drivers/ttchamp.c9
-rw-r--r--src/mame/drivers/tubep.c44
-rw-r--r--src/mame/drivers/tugboat.c16
-rw-r--r--src/mame/drivers/tumbleb.c93
-rw-r--r--src/mame/drivers/tumblep.c10
-rw-r--r--src/mame/drivers/tunhunt.c2
-rw-r--r--src/mame/drivers/turbo.c19
-rw-r--r--src/mame/drivers/tutankhm.c30
-rw-r--r--src/mame/drivers/twin16.c31
-rw-r--r--src/mame/drivers/twincobr.c4
-rw-r--r--src/mame/drivers/twinkle.c9
-rw-r--r--src/mame/drivers/twins.c16
-rw-r--r--src/mame/drivers/tx1.c18
-rw-r--r--src/mame/drivers/uapce.c7
-rw-r--r--src/mame/drivers/ultraman.c37
-rw-r--r--src/mame/drivers/ultratnk.c7
-rw-r--r--src/mame/drivers/ultrsprt.c11
-rw-r--r--src/mame/drivers/umipoker.c31
-rw-r--r--src/mame/drivers/undrfire.c2
-rw-r--r--src/mame/drivers/unico.c18
-rw-r--r--src/mame/drivers/unkhorse.c6
-rw-r--r--src/mame/drivers/upscope.c6
-rw-r--r--src/mame/drivers/usgames.c2
-rw-r--r--src/mame/drivers/vaportra.c22
-rw-r--r--src/mame/drivers/vastar.c6
-rw-r--r--src/mame/drivers/vball.c1
-rw-r--r--src/mame/drivers/vcombat.c22
-rw-r--r--src/mame/drivers/vectrex.c3
-rw-r--r--src/mame/drivers/vega.c19
-rw-r--r--src/mame/drivers/vegaeo.c8
-rw-r--r--src/mame/drivers/vegas.c82
-rw-r--r--src/mame/drivers/vendetta.c50
-rw-r--r--src/mame/drivers/vertigo.c2
-rw-r--r--src/mame/drivers/vicdual.c2
-rw-r--r--src/mame/drivers/victory.c1
-rw-r--r--src/mame/drivers/videopin.c11
-rw-r--r--src/mame/drivers/videopkr.c70
-rw-r--r--src/mame/drivers/vigilant.c6
-rw-r--r--src/mame/drivers/vindictr.c19
-rw-r--r--src/mame/drivers/viper.c24
-rw-r--r--src/mame/drivers/vmetal.c20
-rw-r--r--src/mame/drivers/volfied.c18
-rw-r--r--src/mame/drivers/voyager.c25
-rw-r--r--src/mame/drivers/vpoker.c13
-rw-r--r--src/mame/drivers/vroulet.c7
-rw-r--r--src/mame/drivers/vsnes.c16
-rw-r--r--src/mame/drivers/vulgus.c2
-rw-r--r--src/mame/drivers/wallc.c17
-rw-r--r--src/mame/drivers/wardner.c4
-rw-r--r--src/mame/drivers/warpsped.c23
-rw-r--r--src/mame/drivers/warpwarp.c12
-rw-r--r--src/mame/drivers/warriorb.c50
-rw-r--r--src/mame/drivers/wc90.c3
-rw-r--r--src/mame/drivers/wc90b.c1
-rw-r--r--src/mame/drivers/wecleman.c19
-rw-r--r--src/mame/drivers/welltris.c1
-rw-r--r--src/mame/drivers/wgp.c47
-rw-r--r--src/mame/drivers/wheelfir.c40
-rw-r--r--src/mame/drivers/whitestar.c22
-rw-r--r--src/mame/drivers/wildpkr.c12
-rw-r--r--src/mame/drivers/williams.c30
-rw-r--r--src/mame/drivers/wink.c14
-rw-r--r--src/mame/drivers/wiping.c1
-rw-r--r--src/mame/drivers/witch.c23
-rw-r--r--src/mame/drivers/wiz.c8
-rw-r--r--src/mame/drivers/wolfpack.c7
-rw-r--r--src/mame/drivers/wrally.c1
-rw-r--r--src/mame/drivers/wwfsstar.c1
-rw-r--r--src/mame/drivers/wwfwfest.c3
-rw-r--r--src/mame/drivers/xain.c12
-rw-r--r--src/mame/drivers/xexex.c91
-rw-r--r--src/mame/drivers/xmen.c62
-rw-r--r--src/mame/drivers/xorworld.c2
-rw-r--r--src/mame/drivers/xtom3d.c49
-rw-r--r--src/mame/drivers/xxmissio.c8
-rw-r--r--src/mame/drivers/xybots.c19
-rw-r--r--src/mame/drivers/xyonix.c2
-rw-r--r--src/mame/drivers/yiear.c14
-rw-r--r--src/mame/drivers/yunsun16.c22
-rw-r--r--src/mame/drivers/yunsung8.c45
-rw-r--r--src/mame/drivers/zac2650.c12
-rw-r--r--src/mame/drivers/zaccaria.c2
-rw-r--r--src/mame/drivers/zaxxon.c16
-rw-r--r--src/mame/drivers/zn.c135
-rw-r--r--src/mame/drivers/zodiack.c2
-rw-r--r--src/mame/drivers/zr107.c37
1057 files changed, 14332 insertions, 17024 deletions
diff --git a/src/mame/drivers/1942.c b/src/mame/drivers/1942.c
index f593d0763ab..4aaa35aab84 100644
--- a/src/mame/drivers/1942.c
+++ b/src/mame/drivers/1942.c
@@ -236,23 +236,21 @@ static GFXDECODE_START( 1942 )
GFXDECODE_END
-static MACHINE_START( 1942 )
+void _1942_state::machine_start()
{
- _1942_state *state = machine.driver_data<_1942_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_palette_bank));
- state->save_item(NAME(state->m_scroll));
+ save_item(NAME(m_palette_bank));
+ save_item(NAME(m_scroll));
}
-static MACHINE_RESET( 1942 )
+void _1942_state::machine_reset()
{
- _1942_state *state = machine.driver_data<_1942_state>();
- state->m_palette_bank = 0;
- state->m_scroll[0] = 0;
- state->m_scroll[1] = 0;
+ m_palette_bank = 0;
+ m_scroll[0] = 0;
+ m_scroll[1] = 0;
}
static MACHINE_CONFIG_START( 1942, _1942_state )
@@ -266,8 +264,6 @@ static MACHINE_CONFIG_START( 1942, _1942_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,4*60)
- MCFG_MACHINE_START(1942)
- MCFG_MACHINE_RESET(1942)
/* video hardware */
MCFG_GFXDECODE(1942)
@@ -280,8 +276,6 @@ static MACHINE_CONFIG_START( 1942, _1942_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(1942)
- MCFG_PALETTE_INIT(1942)
- MCFG_VIDEO_START(1942)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/1943.c b/src/mame/drivers/1943.c
index 19726e77a47..48e7a38c0ca 100644
--- a/src/mame/drivers/1943.c
+++ b/src/mame/drivers/1943.c
@@ -243,14 +243,13 @@ GFXDECODE_END
/* Machine Driver */
-static MACHINE_RESET( 1943 )
+void _1943_state::machine_reset()
{
- _1943_state *state = machine.driver_data<_1943_state>();
- state->m_char_on = 0;
- state->m_obj_on = 0;
- state->m_bg1_on = 0;
- state->m_bg2_on = 0;
+ m_char_on = 0;
+ m_obj_on = 0;
+ m_bg1_on = 0;
+ m_bg2_on = 0;
}
static MACHINE_CONFIG_START( 1943, _1943_state )
@@ -264,7 +263,6 @@ static MACHINE_CONFIG_START( 1943, _1943_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 4*60)
- MCFG_MACHINE_RESET(1943)
// video hardware
MCFG_SCREEN_ADD("screen", RASTER)
@@ -277,8 +275,6 @@ static MACHINE_CONFIG_START( 1943, _1943_state )
MCFG_GFXDECODE(1943)
MCFG_PALETTE_LENGTH(32*4+16*16+16*16+16*16)
- MCFG_PALETTE_INIT(1943)
- MCFG_VIDEO_START(1943)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/1945kiii.c b/src/mame/drivers/1945kiii.c
index 137a80e0a0f..7f5f0562737 100644
--- a/src/mame/drivers/1945kiii.c
+++ b/src/mame/drivers/1945kiii.c
@@ -75,6 +75,8 @@ public:
DECLARE_WRITE16_MEMBER(k3_scrolly_w);
DECLARE_WRITE16_MEMBER(k3_soundbanks_w);
TILE_GET_INFO_MEMBER(get_k3_bg_tile_info);
+ virtual void machine_start();
+ virtual void video_start();
};
@@ -90,10 +92,9 @@ TILE_GET_INFO_MEMBER(k3_state::get_k3_bg_tile_info)
SET_TILE_INFO_MEMBER(1, tileno, 0, 0);
}
-static VIDEO_START(k3)
+void k3_state::video_start()
{
- k3_state *state = machine.driver_data<k3_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(k3_state::get_k3_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 64);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k3_state::get_k3_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 64);
}
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
@@ -248,7 +249,7 @@ static GFXDECODE_START( 1945kiii )
GFXDECODE_END
-static MACHINE_START( 1945kiii )
+void k3_state::machine_start()
{
}
@@ -258,7 +259,6 @@ static MACHINE_CONFIG_START( k3, k3_state )
MCFG_CPU_PROGRAM_MAP(k3_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
- MCFG_MACHINE_START(1945kiii)
MCFG_GFXDECODE(1945kiii)
@@ -271,7 +271,6 @@ static MACHINE_CONFIG_START( k3, k3_state )
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(k3)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/20pacgal.c b/src/mame/drivers/20pacgal.c
index 319a3fd4236..cbe14fb11fd 100644
--- a/src/mame/drivers/20pacgal.c
+++ b/src/mame/drivers/20pacgal.c
@@ -341,25 +341,23 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_START( 20pacgal )
+void _20pacgal_state::machine_start()
{
- _20pacgal_state *state = machine.driver_data<_20pacgal_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_eeprom = machine.device("eeprom");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_eeprom = machine().device("eeprom");
- state->save_item(NAME(state->m_game_selected));
- state->save_item(NAME(state->m_ram_48000));
- state->save_item(NAME(state->m_irq_mask));
+ save_item(NAME(m_game_selected));
+ save_item(NAME(m_ram_48000));
+ save_item(NAME(m_irq_mask));
- machine.save().register_postload(save_prepost_delegate(FUNC(set_bankptr), &machine));
+ machine().save().register_postload(save_prepost_delegate(FUNC(set_bankptr), &machine()));
}
-static MACHINE_RESET( 20pacgal )
+void _20pacgal_state::machine_reset()
{
- _20pacgal_state *state = machine.driver_data<_20pacgal_state>();
- state->m_game_selected = 0;
+ m_game_selected = 0;
}
static INTERRUPT_GEN( vblank_irq )
@@ -378,8 +376,6 @@ static MACHINE_CONFIG_START( 20pacgal, _20pacgal_state )
MCFG_CPU_IO_MAP(20pacgal_io_map)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_START(20pacgal)
- MCFG_MACHINE_RESET(20pacgal)
MCFG_EEPROM_ADD("eeprom", _20pacgal_eeprom_intf)
diff --git a/src/mame/drivers/2mindril.c b/src/mame/drivers/2mindril.c
index 0edc6a15e63..dd3d35f38ee 100644
--- a/src/mame/drivers/2mindril.c
+++ b/src/mame/drivers/2mindril.c
@@ -61,6 +61,9 @@ public:
DECLARE_READ16_MEMBER(drill_irq_r);
DECLARE_WRITE16_MEMBER(drill_irq_w);
DECLARE_DRIVER_INIT(drill);
+ DECLARE_MACHINE_START(drill);
+ DECLARE_MACHINE_RESET(drill);
+
};
@@ -422,23 +425,21 @@ static const ym2610_interface ym2610_config =
};
-static MACHINE_START( drill )
+MACHINE_START_MEMBER(_2mindril_state,drill)
{
- _2mindril_state *state = machine.driver_data<_2mindril_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_defender_sensor));
- state->save_item(NAME(state->m_shutter_sensor));
+ save_item(NAME(m_defender_sensor));
+ save_item(NAME(m_shutter_sensor));
}
-static MACHINE_RESET( drill )
+MACHINE_RESET_MEMBER(_2mindril_state,drill)
{
- _2mindril_state *state = machine.driver_data<_2mindril_state>();
- state->m_defender_sensor = 0;
- state->m_shutter_sensor = 0;
- state->irq_reg = 0;
+ m_defender_sensor = 0;
+ m_shutter_sensor = 0;
+ irq_reg = 0;
}
static MACHINE_CONFIG_START( drill, _2mindril_state )
@@ -449,8 +450,8 @@ static MACHINE_CONFIG_START( drill, _2mindril_state )
//MCFG_CPU_PERIODIC_INT(drill_device_irq,60)
MCFG_GFXDECODE(2mindril)
- MCFG_MACHINE_START(drill)
- MCFG_MACHINE_RESET(drill)
+ MCFG_MACHINE_START_OVERRIDE(_2mindril_state,drill)
+ MCFG_MACHINE_RESET_OVERRIDE(_2mindril_state,drill)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -462,7 +463,7 @@ static MACHINE_CONFIG_START( drill, _2mindril_state )
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(f3)
+ MCFG_VIDEO_START_OVERRIDE(_2mindril_state,f3)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/30test.c b/src/mame/drivers/30test.c
index 41ba8e09189..62aba6d8d06 100644
--- a/src/mame/drivers/30test.c
+++ b/src/mame/drivers/30test.c
@@ -64,6 +64,8 @@ public:
DECLARE_WRITE8_MEMBER(hc11_mux_w);
DECLARE_READ8_MEMBER(hc11_okibank_r);
DECLARE_WRITE8_MEMBER(hc11_okibank_w);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -218,15 +220,14 @@ static INPUT_PORTS_START( 30test )
INPUT_PORTS_END
-static MACHINE_START( 30test )
+void namco_30test_state::machine_start()
{
- namco_30test_state *state = machine.driver_data<namco_30test_state>();
- state->save_item(NAME(state->m_mux_data));
- state->save_item(NAME(state->m_oki_bank));
+ save_item(NAME(m_mux_data));
+ save_item(NAME(m_oki_bank));
}
-static MACHINE_RESET( 30test )
+void namco_30test_state::machine_reset()
{
}
@@ -247,8 +248,6 @@ static MACHINE_CONFIG_START( 30test, namco_30test_state )
MCFG_CPU_IO_MAP(namco_30test_io)
MCFG_CPU_CONFIG(namco_30test_config)
- MCFG_MACHINE_START(30test)
- MCFG_MACHINE_RESET(30test)
/* no video! */
diff --git a/src/mame/drivers/39in1.c b/src/mame/drivers/39in1.c
index 17d6f1a9bce..994b6e2f1ed 100644
--- a/src/mame/drivers/39in1.c
+++ b/src/mame/drivers/39in1.c
@@ -73,6 +73,7 @@ public:
DECLARE_WRITE32_MEMBER(cpld_w);
DECLARE_READ32_MEMBER(prot_cheater_r);
DECLARE_DRIVER_INIT(39in1);
+ virtual void machine_start();
};
@@ -1567,9 +1568,9 @@ static void pxa255_start(running_machine& machine)
//pxa255_register_state_save(device);
}
-static MACHINE_START(39in1)
+void _39in1_state::machine_start()
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
int i;
for (i = 0; i < 0x80000; i += 2)
@@ -1583,7 +1584,7 @@ static MACHINE_START(39in1)
// }
}
- pxa255_start(machine);
+ pxa255_start(machine());
}
static MACHINE_CONFIG_START( 39in1, _39in1_state )
@@ -1603,7 +1604,6 @@ static MACHINE_CONFIG_START( 39in1, _39in1_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_MACHINE_START(39in1)
MCFG_EEPROM_93C66B_ADD("eeprom")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/3do.c b/src/mame/drivers/3do.c
index f65917ea3a0..b3e9653b783 100644
--- a/src/mame/drivers/3do.c
+++ b/src/mame/drivers/3do.c
@@ -129,24 +129,23 @@ static INPUT_PORTS_START( 3do )
INPUT_PORTS_END
-static MACHINE_RESET( 3do )
+void _3do_state::machine_reset()
{
- _3do_state *state = machine.driver_data<_3do_state>();
- state->m_maincpu = downcast<legacy_cpu_device*>( machine.device<cpu_device>("maincpu") );
+ m_maincpu = downcast<legacy_cpu_device*>( machine().device<cpu_device>("maincpu") );
- state->membank("bank2")->set_base(state->memregion("user1")->base());
+ membank("bank2")->set_base(memregion("user1")->base());
/* configure overlay */
- state->membank("bank1")->configure_entry(0, state->m_dram);
- state->membank("bank1")->configure_entry(1, state->memregion("user1")->base());
+ membank("bank1")->configure_entry(0, m_dram);
+ membank("bank1")->configure_entry(1, memregion("user1")->base());
/* start with overlay enabled */
- state->membank("bank1")->set_entry(1);
+ membank("bank1")->set_entry(1);
- _3do_slow2_init(machine);
- _3do_madam_init(machine);
- _3do_clio_init(machine, downcast<screen_device *>(machine.device("screen")));
+ _3do_slow2_init(machine());
+ _3do_madam_init(machine());
+ _3do_clio_init(machine(), downcast<screen_device *>(machine().device("screen")));
}
struct cdrom_interface _3do_cdrom =
@@ -161,9 +160,8 @@ static MACHINE_CONFIG_START( 3do, _3do_state )
MCFG_CPU_ADD( "maincpu", ARM7_BE, XTAL_50MHz/4 )
MCFG_CPU_PROGRAM_MAP( 3do_mem)
- MCFG_MACHINE_RESET( 3do )
- MCFG_VIDEO_START( _3do )
+ MCFG_VIDEO_START_OVERRIDE(_3do_state, _3do )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_NTSC / 2, 1592, 254, 1534, 263, 22, 262 )
@@ -179,7 +177,6 @@ static MACHINE_CONFIG_START( 3do_pal, _3do_state )
MCFG_CPU_ADD("maincpu", ARM7_BE, XTAL_50MHz/4 )
MCFG_CPU_PROGRAM_MAP( 3do_mem)
- MCFG_MACHINE_RESET( 3do )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_UPDATE_STATIC( _3do )
diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c
index 4da909fe01d..0ea5bf2d333 100644
--- a/src/mame/drivers/40love.c
+++ b/src/mame/drivers/40love.c
@@ -672,9 +672,8 @@ static ADDRESS_MAP_START( undoukai_map, AS_PROGRAM, 8, fortyl_state )
AM_RANGE(0xc000, 0xffff) AM_READWRITE(fortyl_pixram_r, fortyl_pixram_w)
ADDRESS_MAP_END
-static MACHINE_RESET( ta7630 )
+MACHINE_RESET_MEMBER(fortyl_state,ta7630)
{
- fortyl_state *state = machine.driver_data<fortyl_state>();
int i;
double db = 0.0;
@@ -683,8 +682,8 @@ static MACHINE_RESET( ta7630 )
for (i = 0; i < 16; i++)
{
double max = 100.0 / pow(10.0, db/20.0);
- state->m_vol_ctrl[15 - i] = max;
- /*logerror("vol_ctrl[%x] = %i (%f dB)\n", 15 - i, state->m_vol_ctrl[15 - i], db);*/
+ m_vol_ctrl[15 - i] = max;
+ /*logerror("vol_ctrl[%x] = %i (%f dB)\n", 15 - i, m_vol_ctrl[15 - i], db);*/
db += db_step;
db_step += db_step_inc;
}
@@ -974,88 +973,84 @@ static const msm5232_interface msm5232_config =
/*******************************************************************************/
-static MACHINE_START( 40love )
+MACHINE_START_MEMBER(fortyl_state,40love)
{
- fortyl_state *state = machine.driver_data<fortyl_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
/* video */
- state->save_item(NAME(state->m_pix1));
- state->save_item(NAME(state->m_pix2));
+ save_item(NAME(m_pix1));
+ save_item(NAME(m_pix2));
/* sound */
- state->save_item(NAME(state->m_sound_nmi_enable));
- state->save_item(NAME(state->m_pending_nmi));
- state->save_item(NAME(state->m_snd_data));
- state->save_item(NAME(state->m_snd_flag));
- state->save_item(NAME(state->m_vol_ctrl));
- state->save_item(NAME(state->m_snd_ctrl0));
- state->save_item(NAME(state->m_snd_ctrl1));
- state->save_item(NAME(state->m_snd_ctrl2));
- state->save_item(NAME(state->m_snd_ctrl3));
+ save_item(NAME(m_sound_nmi_enable));
+ save_item(NAME(m_pending_nmi));
+ save_item(NAME(m_snd_data));
+ save_item(NAME(m_snd_flag));
+ save_item(NAME(m_vol_ctrl));
+ save_item(NAME(m_snd_ctrl0));
+ save_item(NAME(m_snd_ctrl1));
+ save_item(NAME(m_snd_ctrl2));
+ save_item(NAME(m_snd_ctrl3));
}
-static MACHINE_START( undoukai )
+MACHINE_START_MEMBER(fortyl_state,undoukai)
{
- fortyl_state *state = machine.driver_data<fortyl_state>();
- MACHINE_START_CALL(40love);
+ MACHINE_START_CALL_MEMBER(40love);
/* fake mcu */
- state->save_item(NAME(state->m_from_mcu));
- state->save_item(NAME(state->m_mcu_cmd));
- state->save_item(NAME(state->m_mcu_in[0]));
- state->save_item(NAME(state->m_mcu_in[1]));
- state->save_item(NAME(state->m_mcu_out[0]));
- state->save_item(NAME(state->m_mcu_out[1]));
+ save_item(NAME(m_from_mcu));
+ save_item(NAME(m_mcu_cmd));
+ save_item(NAME(m_mcu_in[0]));
+ save_item(NAME(m_mcu_in[1]));
+ save_item(NAME(m_mcu_out[0]));
+ save_item(NAME(m_mcu_out[1]));
}
-static MACHINE_RESET( common )
+MACHINE_RESET_MEMBER(fortyl_state,common)
{
- fortyl_state *state = machine.driver_data<fortyl_state>();
- MACHINE_RESET_CALL(ta7630);
+ MACHINE_RESET_CALL_MEMBER(ta7630);
/* video */
- state->m_pix1 = 0;
- state->m_pix2[0] = 0;
- state->m_pix2[1] = 0;
+ m_pix1 = 0;
+ m_pix2[0] = 0;
+ m_pix2[1] = 0;
/* sound */
- state->m_sound_nmi_enable = 0;
- state->m_pending_nmi = 0;
- state->m_snd_data = 0;
- state->m_snd_flag = 0;
- state->m_snd_ctrl0 = 0;
- state->m_snd_ctrl1 = 0;
- state->m_snd_ctrl2 = 0;
- state->m_snd_ctrl3 = 0;
+ m_sound_nmi_enable = 0;
+ m_pending_nmi = 0;
+ m_snd_data = 0;
+ m_snd_flag = 0;
+ m_snd_ctrl0 = 0;
+ m_snd_ctrl1 = 0;
+ m_snd_ctrl2 = 0;
+ m_snd_ctrl3 = 0;
}
-static MACHINE_RESET( 40love )
+MACHINE_RESET_MEMBER(fortyl_state,40love)
{
- machine.device("mcu")->execute().set_input_line(0, CLEAR_LINE);
+ machine().device("mcu")->execute().set_input_line(0, CLEAR_LINE);
- MACHINE_RESET_CALL(common);
+ MACHINE_RESET_CALL_MEMBER(common);
}
-static MACHINE_RESET( undoukai )
+MACHINE_RESET_MEMBER(fortyl_state,undoukai)
{
- fortyl_state *state = machine.driver_data<fortyl_state>();
int i;
- MACHINE_RESET_CALL(common);
+ MACHINE_RESET_CALL_MEMBER(common);
/* fake mcu */
- state->m_from_mcu = 0xff;
- state->m_mcu_cmd = -1;
+ m_from_mcu = 0xff;
+ m_mcu_cmd = -1;
for (i = 0; i < 16; i++)
{
- state->m_mcu_in[0][i] = 0;
- state->m_mcu_in[1][i] = 0;
- state->m_mcu_out[0][i] = 0;
- state->m_mcu_out[1][i] = 0;
+ m_mcu_in[0][i] = 0;
+ m_mcu_in[1][i] = 0;
+ m_mcu_out[0][i] = 0;
+ m_mcu_out[1][i] = 0;
}
}
@@ -1075,8 +1070,8 @@ static MACHINE_CONFIG_START( 40love, fortyl_state )
MCFG_DEVICE_ADD("bmcu", BUGGYCHL_MCU, 0)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* high interleave to ensure proper synchronization of CPUs */
- MCFG_MACHINE_START(40love)
- MCFG_MACHINE_RESET(40love)
+ MCFG_MACHINE_START_OVERRIDE(fortyl_state,40love)
+ MCFG_MACHINE_RESET_OVERRIDE(fortyl_state,40love)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1089,8 +1084,6 @@ static MACHINE_CONFIG_START( 40love, fortyl_state )
MCFG_GFXDECODE(40love)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(fortyl)
- MCFG_VIDEO_START(fortyl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1132,8 +1125,8 @@ static MACHINE_CONFIG_START( undoukai, fortyl_state )
// MCFG_CPU_PROGRAM_MAP(buggychl_mcu_map)
// MCFG_DEVICE_ADD("bmcu", BUGGYCHL_MCU, 0)
- MCFG_MACHINE_START(undoukai)
- MCFG_MACHINE_RESET(undoukai) /* init machine */
+ MCFG_MACHINE_START_OVERRIDE(fortyl_state,undoukai)
+ MCFG_MACHINE_RESET_OVERRIDE(fortyl_state,undoukai) /* init machine */
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1146,8 +1139,6 @@ static MACHINE_CONFIG_START( undoukai, fortyl_state )
MCFG_GFXDECODE(40love)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(fortyl)
- MCFG_VIDEO_START(fortyl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/4enraya.c b/src/mame/drivers/4enraya.c
index d990715d565..d549a308d6a 100644
--- a/src/mame/drivers/4enraya.c
+++ b/src/mame/drivers/4enraya.c
@@ -292,29 +292,27 @@ static GFXDECODE_START( 4enraya )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 )
GFXDECODE_END
-static MACHINE_START( 4enraya )
+void _4enraya_state::machine_start()
{
- _4enraya_state *state = machine.driver_data<_4enraya_state>();
- state->save_item(NAME(state->m_soundlatch));
- state->save_item(NAME(state->m_last_snd_ctrl));
+ save_item(NAME(m_soundlatch));
+ save_item(NAME(m_last_snd_ctrl));
}
-static MACHINE_RESET( 4enraya )
+void _4enraya_state::machine_reset()
{
- _4enraya_state *state = machine.driver_data<_4enraya_state>();
- state->m_soundlatch = 0;
- state->m_last_snd_ctrl = 0;
+ m_soundlatch = 0;
+ m_last_snd_ctrl = 0;
}
-static PALETTE_INIT( 4enraya )
+void _4enraya_state::palette_init()
{
int i;
/* RGB format */
for(i=0;i<8;i++)
- palette_set_color(machine, i, MAKE_RGB(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2)));
+ palette_set_color(machine(), i, MAKE_RGB(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2)));
}
static MACHINE_CONFIG_START( 4enraya, _4enraya_state )
@@ -325,8 +323,6 @@ static MACHINE_CONFIG_START( 4enraya, _4enraya_state )
MCFG_CPU_IO_MAP(main_portmap)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,4*60) // unknown timing
- MCFG_MACHINE_START(4enraya)
- MCFG_MACHINE_RESET(4enraya)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -338,10 +334,8 @@ static MACHINE_CONFIG_START( 4enraya, _4enraya_state )
MCFG_GFXDECODE(4enraya)
- MCFG_PALETTE_INIT(4enraya)
MCFG_PALETTE_LENGTH(8)
- MCFG_VIDEO_START(4enraya)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/4roses.c b/src/mame/drivers/4roses.c
index 297ebcc6532..d2656839b80 100644
--- a/src/mame/drivers/4roses.c
+++ b/src/mame/drivers/4roses.c
@@ -401,8 +401,8 @@ static MACHINE_CONFIG_START( 4roses, _4roses_state )
MCFG_GFXDECODE(4roses)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_PALETTE_INIT(funworld)
- MCFG_VIDEO_START(funworld)
+ MCFG_PALETTE_INIT_OVERRIDE(_4roses_state,funworld)
+ MCFG_VIDEO_START_OVERRIDE(_4roses_state,funworld)
// MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/8, mc6845_intf) /* 2MHz, guess */
diff --git a/src/mame/drivers/5clown.c b/src/mame/drivers/5clown.c
index 3f70cc9fc3e..914f6521abb 100644
--- a/src/mame/drivers/5clown.c
+++ b/src/mame/drivers/5clown.c
@@ -484,6 +484,8 @@ public:
DECLARE_WRITE8_MEMBER(fclown_ay8910_w);
DECLARE_DRIVER_INIT(fclown);
TILE_GET_INFO_MEMBER(get_fclown_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -529,10 +531,9 @@ TILE_GET_INFO_MEMBER(_5clown_state::get_fclown_tile_info)
}
-static VIDEO_START(fclown)
+void _5clown_state::video_start()
{
- _5clown_state *state = machine.driver_data<_5clown_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_5clown_state::get_fclown_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(_5clown_state::get_fclown_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -543,9 +544,9 @@ static SCREEN_UPDATE_IND16( fclown )
return 0;
}
-static PALETTE_INIT( fclown )
+void _5clown_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
/*
7654 3210
---- ---x RED component.
@@ -560,7 +561,7 @@ static PALETTE_INIT( fclown )
if (color_prom == 0) return;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0, bit1, bit2, bit3, r, g, b, bk;
@@ -580,7 +581,7 @@ static PALETTE_INIT( fclown )
bit2 = (color_prom[i] >> 2) & 0x01;
b = bk * (bit2 * 0xff);
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -1084,9 +1085,7 @@ static MACHINE_CONFIG_START( fclown, _5clown_state )
MCFG_GFXDECODE(fclown)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(fclown)
- MCFG_VIDEO_START(fclown)
MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/16, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c
index e23d24af3b2..1b2804669d2 100644
--- a/src/mame/drivers/8080bw.c
+++ b/src/mame/drivers/8080bw.c
@@ -198,11 +198,11 @@
/* */
/*******************************************************/
-static MACHINE_START( extra_8080bw )
+MACHINE_START_MEMBER(_8080bw_state,extra_8080bw)
{
- MACHINE_START_CALL(extra_8080bw_sh);
- MACHINE_START_CALL(extra_8080bw_vh);
- MACHINE_START_CALL(mw8080bw);
+ MACHINE_START_CALL_MEMBER(extra_8080bw_sh);
+ MACHINE_START_CALL_MEMBER(extra_8080bw_vh);
+ MACHINE_START_CALL_MEMBER(mw8080bw);
}
/*******************************************************/
@@ -385,7 +385,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( invadpt2, mw8080bw_root, _8080bw_state )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(invadpt2_io_map)
- MCFG_MACHINE_START(extra_8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* 60 Hz signal clocks two LS161. Ripple carry will */
/* reset circuit, if LS161 not cleared before. */
@@ -444,7 +444,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( spcewars, mw8080bw_root, _8080bw_state )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(spcewars_io_map)
- MCFG_MACHINE_START(extra_8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -568,7 +568,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( cosmo, mw8080bw_root, _8080bw_state )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(cosmo_map)
MCFG_CPU_IO_MAP(cosmo_io_map)
- MCFG_MACHINE_START(extra_8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
@@ -795,7 +795,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( lrescue, mw8080bw_root, _8080bw_state )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(lrescue_io_map)
- MCFG_MACHINE_START(extra_8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -1044,17 +1044,17 @@ static INPUT_PORTS_START( schaser )
PORT_ADJUSTER( 70, "VR3 - Dot Volume" )
INPUT_PORTS_END
-static MACHINE_START( schaser )
+MACHINE_START_MEMBER(_8080bw_state,schaser)
{
- MACHINE_START_CALL(schaser_sh);
- MACHINE_START_CALL(extra_8080bw_vh);
- MACHINE_START_CALL(mw8080bw);
+ MACHINE_START_CALL_MEMBER(schaser_sh);
+ MACHINE_START_CALL_MEMBER(extra_8080bw_vh);
+ MACHINE_START_CALL_MEMBER(mw8080bw);
}
-static MACHINE_RESET( schaser )
+MACHINE_RESET_MEMBER(_8080bw_state,schaser)
{
- MACHINE_RESET_CALL(schaser_sh);
- MACHINE_RESET_CALL(mw8080bw);
+ MACHINE_RESET_CALL_MEMBER(schaser_sh);
+ MACHINE_RESET_CALL_MEMBER(mw8080bw);
}
static MACHINE_CONFIG_DERIVED_CLASS( schaser, mw8080bw_root, _8080bw_state )
@@ -1064,8 +1064,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( schaser, mw8080bw_root, _8080bw_state )
MCFG_CPU_PROGRAM_MAP(schaser_map)
MCFG_CPU_IO_MAP(schaser_io_map)
MCFG_WATCHDOG_VBLANK_INIT(255)
- MCFG_MACHINE_START(schaser)
- MCFG_MACHINE_RESET(schaser)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,schaser)
+ MCFG_MACHINE_RESET_OVERRIDE(_8080bw_state,schaser)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -1134,7 +1134,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( schasercv, mw8080bw_root, _8080bw_state )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(schaser_map)
MCFG_CPU_IO_MAP(schasercv_io_map)
- MCFG_MACHINE_START(extra_8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -1215,7 +1215,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( sflush, mw8080bw_root, _8080bw_state )
MCFG_CPU_REPLACE("maincpu",M6800,1500000) // ?
MCFG_CPU_PROGRAM_MAP(sflush_map)
MCFG_CPU_VBLANK_INT("screen",irq0_line_hold)
- MCFG_MACHINE_START(mw8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,mw8080bw)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -1322,7 +1322,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3, mw8080bw_root, _8080bw_state )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(lupin3_io_map)
- MCFG_MACHINE_START(extra_8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -1342,7 +1342,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3a, mw8080bw_root, _8080bw_state )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(schaser_map)
MCFG_CPU_IO_MAP(lupin3_io_map)
- MCFG_MACHINE_START(extra_8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -1375,13 +1375,12 @@ static INTERRUPT_GEN( polaris_interrupt )
}
}
-static MACHINE_START( polaris )
+MACHINE_START_MEMBER(_8080bw_state,polaris)
{
- _8080bw_state *state = machine.driver_data<_8080bw_state>();
- state->save_item(NAME(state->m_polaris_cloud_speed));
- state->save_item(NAME(state->m_polaris_cloud_pos));
+ save_item(NAME(m_polaris_cloud_speed));
+ save_item(NAME(m_polaris_cloud_pos));
- MACHINE_START_CALL(mw8080bw);
+ MACHINE_START_CALL_MEMBER(mw8080bw);
}
// Port 5 is used to reset the watchdog timer.
@@ -1463,7 +1462,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( polaris, mw8080bw_root, _8080bw_state )
MCFG_CPU_IO_MAP(polaris_io_map)
MCFG_WATCHDOG_VBLANK_INIT(255)
MCFG_CPU_VBLANK_INT("screen", polaris_interrupt)
- MCFG_MACHINE_START(polaris)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,polaris)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -1586,7 +1585,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( ballbomb, mw8080bw_root, _8080bw_state )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(ballbomb_io_map)
- MCFG_MACHINE_START(extra_8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -1661,7 +1660,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( yosakdon, mw8080bw_root, _8080bw_state )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(yosakdon_map)
MCFG_CPU_IO_MAP(yosakdon_io_map)
- MCFG_MACHINE_START(extra_8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -1757,7 +1756,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( indianbt, mw8080bw_root, _8080bw_state )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(indianbt_io_map)
- MCFG_MACHINE_START(extra_8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -1831,7 +1830,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( steelwkr, mw8080bw_root, _8080bw_state )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(steelwkr_io_map)
- MCFG_MACHINE_START(extra_8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -1968,7 +1967,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( shuttlei, mw8080bw_root, _8080bw_state )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(shuttlei_map)
MCFG_CPU_IO_MAP(shuttlei_io_map)
- MCFG_MACHINE_START(extra_8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
@@ -2005,13 +2004,13 @@ Another (same checksums) dump came from board labeled SI-7811M-2
*/
-static MACHINE_START( darthvdr )
+MACHINE_START_MEMBER(_8080bw_state,darthvdr)
{
/* do nothing for now - different interrupt system */
}
-static MACHINE_RESET( darthvdr )
+MACHINE_RESET_MEMBER(_8080bw_state,darthvdr)
{
/* do nothing for now - different interrupt system */
}
@@ -2077,8 +2076,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( darthvdr, mw8080bw_root, _8080bw_state )
MCFG_CPU_IO_MAP(darthvdr_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(darthvdr)
- MCFG_MACHINE_RESET(darthvdr)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,darthvdr)
+ MCFG_MACHINE_RESET_OVERRIDE(_8080bw_state,darthvdr)
MACHINE_CONFIG_END
@@ -2148,7 +2147,7 @@ MACHINE_CONFIG_DERIVED_CLASS( vortex, mw8080bw_root, _8080bw_state )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(vortex_io_map)
- MCFG_MACHINE_START(extra_8080bw)
+ MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
MCFG_WATCHDOG_TIME_INIT(attotime::from_usec(255000000 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)))
/* video hardware */
@@ -2529,13 +2528,12 @@ WRITE8_MEMBER(_8080bw_state::invmulti_bank_w)
membank("bank2")->set_base(memregion("maincpu")->base() + bank * 0x4000 + 0x2000);
}
-static MACHINE_RESET( invmulti )
+MACHINE_RESET_MEMBER(_8080bw_state,invmulti)
{
- _8080bw_state *state = machine.driver_data<_8080bw_state>();
- state->invmulti_bank_w(*state->m_maincpu->space(AS_PROGRAM), 0, 0);
+ invmulti_bank_w(*m_maincpu->space(AS_PROGRAM), 0, 0);
- MACHINE_RESET_CALL(mw8080bw);
+ MACHINE_RESET_CALL_MEMBER(mw8080bw);
}
MACHINE_CONFIG_DERIVED_CLASS( invmulti, invaders, _8080bw_state )
@@ -2546,7 +2544,7 @@ MACHINE_CONFIG_DERIVED_CLASS( invmulti, invaders, _8080bw_state )
MCFG_EEPROM_93C46_8BIT_ADD("eeprom")
- MCFG_MACHINE_RESET(invmulti)
+ MCFG_MACHINE_RESET_OVERRIDE(_8080bw_state,invmulti)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/88games.c b/src/mame/drivers/88games.c
index a741f630ad5..a58bc81b472 100644
--- a/src/mame/drivers/88games.c
+++ b/src/mame/drivers/88games.c
@@ -305,42 +305,40 @@ static KONAMI_SETLINES_CALLBACK( k88games_banking )
state->m_k88games_priority = lines & 0x80;
}
-static MACHINE_START( 88games )
+void _88games_state::machine_start()
{
- _88games_state *state = machine.driver_data<_88games_state>();
-
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k052109 = machine.device("k052109");
- state->m_k051960 = machine.device("k051960");
- state->m_k051316 = machine.device("k051316");
- state->m_upd_1 = machine.device("upd1");
- state->m_upd_2 = machine.device("upd2");
-
- state->save_item(NAME(state->m_videobank));
- state->save_item(NAME(state->m_zoomreadroms));
- state->save_item(NAME(state->m_speech_chip));
- state->save_item(NAME(state->m_layer_colorbase));
- state->save_item(NAME(state->m_k88games_priority));
- state->save_item(NAME(state->m_sprite_colorbase));
- state->save_item(NAME(state->m_zoom_colorbase));
+
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k052109 = machine().device("k052109");
+ m_k051960 = machine().device("k051960");
+ m_k051316 = machine().device("k051316");
+ m_upd_1 = machine().device("upd1");
+ m_upd_2 = machine().device("upd2");
+
+ save_item(NAME(m_videobank));
+ save_item(NAME(m_zoomreadroms));
+ save_item(NAME(m_speech_chip));
+ save_item(NAME(m_layer_colorbase));
+ save_item(NAME(m_k88games_priority));
+ save_item(NAME(m_sprite_colorbase));
+ save_item(NAME(m_zoom_colorbase));
}
-static MACHINE_RESET( 88games )
+void _88games_state::machine_reset()
{
- _88games_state *state = machine.driver_data<_88games_state>();
-
- konami_configure_set_lines(machine.device("maincpu"), k88games_banking);
- state->m_generic_paletteram_8.set_target(&state->memregion("maincpu")->base()[0x20000], 0x1000);
-
- state->m_videobank = 0;
- state->m_zoomreadroms = 0;
- state->m_speech_chip = 0;
- state->m_k88games_priority = 0;
- state->m_layer_colorbase[0] = 64;
- state->m_layer_colorbase[1] = 0;
- state->m_layer_colorbase[2] = 16;
- state->m_sprite_colorbase = 32;
- state->m_zoom_colorbase = 48;
+
+ konami_configure_set_lines(machine().device("maincpu"), k88games_banking);
+ m_generic_paletteram_8.set_target(&memregion("maincpu")->base()[0x20000], 0x1000);
+
+ m_videobank = 0;
+ m_zoomreadroms = 0;
+ m_speech_chip = 0;
+ m_k88games_priority = 0;
+ m_layer_colorbase[0] = 64;
+ m_layer_colorbase[1] = 0;
+ m_layer_colorbase[2] = 16;
+ m_sprite_colorbase = 32;
+ m_zoom_colorbase = 48;
}
static const k052109_interface _88games_k052109_intf =
@@ -377,8 +375,6 @@ static MACHINE_CONFIG_START( 88games, _88games_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(88games)
- MCFG_MACHINE_RESET(88games)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/ace.c b/src/mame/drivers/ace.c
index 45c2a79655a..7bdef149339 100644
--- a/src/mame/drivers/ace.c
+++ b/src/mame/drivers/ace.c
@@ -64,6 +64,10 @@ public:
DECLARE_WRITE8_MEMBER(ace_characterram_w);
DECLARE_WRITE8_MEMBER(ace_scoreram_w);
DECLARE_READ8_MEMBER(unk_r);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -79,13 +83,12 @@ READ8_MEMBER(aceal_state::ace_objpos_r)
}
#endif
-static VIDEO_START( ace )
+void aceal_state::video_start()
{
- aceal_state *state = machine.driver_data<aceal_state>();
- machine.gfx[1]->set_source(state->m_characterram);
- machine.gfx[2]->set_source(state->m_characterram);
- machine.gfx[3]->set_source(state->m_characterram);
- machine.gfx[4]->set_source(state->m_scoreram);
+ machine().gfx[1]->set_source(m_characterram);
+ machine().gfx[2]->set_source(m_characterram);
+ machine().gfx[3]->set_source(m_characterram);
+ machine().gfx[4]->set_source(m_scoreram);
}
static SCREEN_UPDATE_IND16( ace )
@@ -127,10 +130,10 @@ static SCREEN_UPDATE_IND16( ace )
}
-static PALETTE_INIT( ace )
+void aceal_state::palette_init()
{
- palette_set_color(machine, 0, MAKE_RGB(0x00,0x00,0x00)); /* black */
- palette_set_color(machine, 1, MAKE_RGB(0xff,0xff,0xff)); /* white */
+ palette_set_color(machine(), 0, MAKE_RGB(0x00,0x00,0x00)); /* black */
+ palette_set_color(machine(), 1, MAKE_RGB(0xff,0xff,0xff)); /* white */
}
@@ -329,20 +332,18 @@ static void ace_postload(running_machine &machine)
machine.gfx[4]->mark_dirty(0);
}
-static MACHINE_START( ace )
+void aceal_state::machine_start()
{
- aceal_state *state = machine.driver_data<aceal_state>();
- state->save_item(NAME(state->m_objpos));
- machine.save().register_postload(save_prepost_delegate(FUNC(ace_postload), &machine));
+ save_item(NAME(m_objpos));
+ machine().save().register_postload(save_prepost_delegate(FUNC(ace_postload), &machine()));
}
-static MACHINE_RESET( ace )
+void aceal_state::machine_reset()
{
- aceal_state *state = machine.driver_data<aceal_state>();
int i;
for (i = 0; i < 8; i++)
- state->m_objpos[i] = 0;
+ m_objpos[i] = 0;
}
static MACHINE_CONFIG_START( ace, aceal_state )
@@ -351,8 +352,6 @@ static MACHINE_CONFIG_START( ace, aceal_state )
MCFG_CPU_ADD("maincpu", I8080, MASTER_CLOCK/9) /* 2 MHz ? */
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(ace)
- MCFG_MACHINE_RESET(ace)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -365,8 +364,6 @@ static MACHINE_CONFIG_START( ace, aceal_state )
MCFG_GFXDECODE(ace)
MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT(ace)
- MCFG_VIDEO_START(ace)
/* sound hardware */
/* ???? */
diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c
index 8ea3225f422..8100daef70b 100644
--- a/src/mame/drivers/acefruit.c
+++ b/src/mame/drivers/acefruit.c
@@ -37,6 +37,8 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(starspnr_coinage_r);
DECLARE_CUSTOM_INPUT_MEMBER(starspnr_payout_r);
DECLARE_DRIVER_INIT(sidewndr);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -75,10 +77,9 @@ static TIMER_CALLBACK( acefruit_refresh )
state->m_refresh_timer->adjust( machine.primary_screen->time_until_pos(vpos) );
}
-static VIDEO_START( acefruit )
+void acefruit_state::video_start()
{
- acefruit_state *state = machine.driver_data<acefruit_state>();
- state->m_refresh_timer = machine.scheduler().timer_alloc(FUNC(acefruit_refresh));
+ m_refresh_timer = machine().scheduler().timer_alloc(FUNC(acefruit_refresh));
}
static INTERRUPT_GEN( acefruit_vblank )
@@ -262,27 +263,27 @@ WRITE8_MEMBER(acefruit_state::acefruit_solenoid_w)
}
}
-static PALETTE_INIT( acefruit )
+void acefruit_state::palette_init()
{
/* sprites */
- palette_set_color( machine, 0, MAKE_RGB(0x00, 0x00, 0x00) );
- palette_set_color( machine, 1, MAKE_RGB(0x00, 0x00, 0xff) );
- palette_set_color( machine, 2, MAKE_RGB(0x00, 0xff, 0x00) );
- palette_set_color( machine, 3, MAKE_RGB(0xff, 0x7f, 0x00) );
- palette_set_color( machine, 4, MAKE_RGB(0xff, 0x00, 0x00) );
- palette_set_color( machine, 5, MAKE_RGB(0xff, 0xff, 0x00) );
- palette_set_color( machine, 6, MAKE_RGB(0xff, 0xff, 0xff) );
- palette_set_color( machine, 7, MAKE_RGB(0x7f, 0x3f, 0x1f) );
+ palette_set_color( machine(), 0, MAKE_RGB(0x00, 0x00, 0x00) );
+ palette_set_color( machine(), 1, MAKE_RGB(0x00, 0x00, 0xff) );
+ palette_set_color( machine(), 2, MAKE_RGB(0x00, 0xff, 0x00) );
+ palette_set_color( machine(), 3, MAKE_RGB(0xff, 0x7f, 0x00) );
+ palette_set_color( machine(), 4, MAKE_RGB(0xff, 0x00, 0x00) );
+ palette_set_color( machine(), 5, MAKE_RGB(0xff, 0xff, 0x00) );
+ palette_set_color( machine(), 6, MAKE_RGB(0xff, 0xff, 0xff) );
+ palette_set_color( machine(), 7, MAKE_RGB(0x7f, 0x3f, 0x1f) );
/* tiles */
- palette_set_color( machine, 8, MAKE_RGB(0x00, 0x00, 0x00) );
- palette_set_color( machine, 9, MAKE_RGB(0xff, 0xff, 0xff) );
- palette_set_color( machine, 10, MAKE_RGB(0x00, 0x00, 0x00) );
- palette_set_color( machine, 11, MAKE_RGB(0x00, 0x00, 0xff) );
- palette_set_color( machine, 12, MAKE_RGB(0x00, 0x00, 0x00) );
- palette_set_color( machine, 13, MAKE_RGB(0x00, 0xff, 0x00) );
- palette_set_color( machine, 14, MAKE_RGB(0x00, 0x00, 0x00) );
- palette_set_color( machine, 15, MAKE_RGB(0xff, 0x00, 0x00) );
+ palette_set_color( machine(), 8, MAKE_RGB(0x00, 0x00, 0x00) );
+ palette_set_color( machine(), 9, MAKE_RGB(0xff, 0xff, 0xff) );
+ palette_set_color( machine(), 10, MAKE_RGB(0x00, 0x00, 0x00) );
+ palette_set_color( machine(), 11, MAKE_RGB(0x00, 0x00, 0xff) );
+ palette_set_color( machine(), 12, MAKE_RGB(0x00, 0x00, 0x00) );
+ palette_set_color( machine(), 13, MAKE_RGB(0x00, 0xff, 0x00) );
+ palette_set_color( machine(), 14, MAKE_RGB(0x00, 0x00, 0x00) );
+ palette_set_color( machine(), 15, MAKE_RGB(0xff, 0x00, 0x00) );
}
static ADDRESS_MAP_START( acefruit_map, AS_PROGRAM, 8, acefruit_state )
@@ -597,8 +598,6 @@ static MACHINE_CONFIG_START( acefruit, acefruit_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_PALETTE_INIT(acefruit)
- MCFG_VIDEO_START(acefruit)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/aces1.c b/src/mame/drivers/aces1.c
index ac3130184ba..93f3441196c 100644
--- a/src/mame/drivers/aces1.c
+++ b/src/mame/drivers/aces1.c
@@ -144,6 +144,8 @@ public:
required_device<cpu_device> m_maincpu;
DECLARE_DRIVER_INIT(aces1);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -174,16 +176,15 @@ static void aces1_create_timers(running_machine &machine)
state->m_aces1_nmi_timer = machine.scheduler().timer_alloc(FUNC(m_aces1_nmi_timer_callback), 0);
}
-static MACHINE_START( aces1 )
+void aces1_state::machine_start()
{
- aces1_create_timers(machine);
+ aces1_create_timers(machine());
}
-static MACHINE_RESET( aces1 )
+void aces1_state::machine_reset()
{
- aces1_state *state = machine.driver_data<aces1_state>();
- state->aces1_reset_nmi_timer();
- state->aces1_reset_irq_timer();
+ aces1_reset_nmi_timer();
+ aces1_reset_irq_timer();
}
static ADDRESS_MAP_START( aces1_map, AS_PROGRAM, 8, aces1_state )
@@ -315,8 +316,6 @@ static MACHINE_CONFIG_START( aces1, aces1_state )
MCFG_I8255A_ADD( "ppi8255_ic25", ppi8255_ic25_intf )
MCFG_I8255A_ADD( "ppi8255_ic37", ppi8255_ic37_intf )
- MCFG_MACHINE_START( aces1 )
- MCFG_MACHINE_RESET( aces1 )
MCFG_DEFAULT_LAYOUT(layout_aces1)
/* sound hardware */
diff --git a/src/mame/drivers/acommand.c b/src/mame/drivers/acommand.c
index 1894ebbd7e2..610644229c3 100644
--- a/src/mame/drivers/acommand.c
+++ b/src/mame/drivers/acommand.c
@@ -91,6 +91,7 @@ public:
TILEMAP_MAPPER_MEMBER(bg_scan);
TILE_GET_INFO_MEMBER(ac_get_bg_tile_info);
TILE_GET_INFO_MEMBER(ac_get_tx_tile_info);
+ virtual void video_start();
};
@@ -180,15 +181,14 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-static VIDEO_START( acommand )
+void acommand_state::video_start()
{
- acommand_state *state = machine.driver_data<acommand_state>();
- state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(acommand_state::ac_get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,512,32);
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(acommand_state::ac_get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(acommand_state::bg_scan),state),16,16,256,16);
+ m_tx_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(acommand_state::ac_get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,512,32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(acommand_state::ac_get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(acommand_state::bg_scan),this),16,16,256,16);
- state->m_ac_vregs = auto_alloc_array(machine, UINT16, 0x80/2);
+ m_ac_vregs = auto_alloc_array(machine(), UINT16, 0x80/2);
- state->m_tx_tilemap->set_transparent_pen(15);
+ m_tx_tilemap->set_transparent_pen(15);
}
@@ -614,7 +614,6 @@ static MACHINE_CONFIG_START( acommand, acommand_state )
MCFG_GFXDECODE(acommand)
MCFG_PALETTE_LENGTH(0x4000)
- MCFG_VIDEO_START(acommand)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/actfancr.c b/src/mame/drivers/actfancr.c
index 10f56fc6118..8abb946a694 100644
--- a/src/mame/drivers/actfancr.c
+++ b/src/mame/drivers/actfancr.c
@@ -289,35 +289,31 @@ static const ym3812_interface ym3812_config =
/******************************************************************************/
-static MACHINE_START( actfancr )
+MACHINE_START_MEMBER(actfancr_state,actfancr)
{
- actfancr_state *state = machine.driver_data<actfancr_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
}
-static MACHINE_START( triothep )
+MACHINE_START_MEMBER(actfancr_state,triothep)
{
- actfancr_state *state = machine.driver_data<actfancr_state>();
- MACHINE_START_CALL(actfancr);
+ MACHINE_START_CALL_MEMBER(actfancr);
- state->save_item(NAME(state->m_trio_control_select));
+ save_item(NAME(m_trio_control_select));
}
-static MACHINE_RESET( actfancr )
+MACHINE_RESET_MEMBER(actfancr_state,actfancr)
{
- actfancr_state *state = machine.driver_data<actfancr_state>();
- state->m_flipscreen = 0;
+ m_flipscreen = 0;
}
-static MACHINE_RESET( triothep )
+MACHINE_RESET_MEMBER(actfancr_state,triothep)
{
- actfancr_state *state = machine.driver_data<actfancr_state>();
- MACHINE_RESET_CALL(actfancr);
- state->m_trio_control_select = 0;
+ MACHINE_RESET_CALL_MEMBER(actfancr);
+ m_trio_control_select = 0;
}
/******************************************************************************/
@@ -332,8 +328,8 @@ static MACHINE_CONFIG_START( actfancr, actfancr_state )
MCFG_CPU_ADD("audiocpu",M6502, 1500000) /* Should be accurate */
MCFG_CPU_PROGRAM_MAP(dec0_s_map)
- MCFG_MACHINE_START(actfancr)
- MCFG_MACHINE_RESET(actfancr)
+ MCFG_MACHINE_START_OVERRIDE(actfancr_state,actfancr)
+ MCFG_MACHINE_RESET_OVERRIDE(actfancr_state,actfancr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -354,7 +350,6 @@ static MACHINE_CONFIG_START( actfancr, actfancr_state )
MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
deco_mxc06_device::set_gfx_region(*device, 1);
- MCFG_VIDEO_START(actfancr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -383,8 +378,8 @@ static MACHINE_CONFIG_START( triothep, actfancr_state )
MCFG_CPU_ADD("audiocpu",M6502, XTAL_12MHz/8) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(dec0_s_map)
- MCFG_MACHINE_START(triothep)
- MCFG_MACHINE_RESET(triothep)
+ MCFG_MACHINE_START_OVERRIDE(actfancr_state,triothep)
+ MCFG_MACHINE_RESET_OVERRIDE(actfancr_state,triothep)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -405,7 +400,6 @@ static MACHINE_CONFIG_START( triothep, actfancr_state )
MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
deco_mxc06_device::set_gfx_region(*device, 1);
- MCFG_VIDEO_START(actfancr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/adp.c b/src/mame/drivers/adp.c
index e68a9ca6f13..5fa12f6cbf9 100644
--- a/src/mame/drivers/adp.c
+++ b/src/mame/drivers/adp.c
@@ -180,6 +180,9 @@ public:
DECLARE_WRITE8_MEMBER(ramdac_io_w);
DECLARE_READ8_MEMBER(h63484_rom_r);
DECLARE_READ8_MEMBER(t2_r);
+ DECLARE_MACHINE_START(skattv);
+ DECLARE_MACHINE_RESET(skattv);
+ DECLARE_PALETTE_INIT(adp);
};
@@ -297,16 +300,15 @@ static const microtouch_interface adb_microtouch_config =
NULL
};
-static MACHINE_START( skattv )
+MACHINE_START_MEMBER(adp_state,skattv)
{
- adp_state *state = machine.driver_data<adp_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_duart = machine.device("duart68681");
- //state->m_h63484 = machine.device("h63484");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_duart = machine().device("duart68681");
+ //m_h63484 = machine().device("h63484");
- state->save_item(NAME(state->m_mux_data));
- state->save_item(NAME(state->m_register_active));
+ save_item(NAME(m_mux_data));
+ save_item(NAME(m_register_active));
#if 0
/*
@@ -320,10 +322,10 @@ static MACHINE_START( skattv )
// hack to handle acrt rom
{
- UINT16 *rom = (UINT16*)state->memregion("gfx1")->base();
+ UINT16 *rom = (UINT16*)memregion("gfx1")->base();
int i;
- device_t *hd63484 = machine.device("hd63484");
+ device_t *hd63484 = machine().device("hd63484");
for(i = 0; i < 0x40000/2; ++i)
{
@@ -336,12 +338,11 @@ static MACHINE_START( skattv )
#endif
}
-static MACHINE_RESET( skattv )
+MACHINE_RESET_MEMBER(adp_state,skattv)
{
- adp_state *state = machine.driver_data<adp_state>();
- state->m_mux_data = 0;
- state->m_register_active = 0;
+ m_mux_data = 0;
+ m_register_active = 0;
}
static const duart68681_config skattv_duart68681_config =
@@ -352,11 +353,11 @@ static const duart68681_config skattv_duart68681_config =
NULL
};
-static PALETTE_INIT( adp )
+PALETTE_INIT_MEMBER(adp_state,adp)
{
int i;
- for (i = 0; i < machine.total_colors(); i++)
+ for (i = 0; i < machine().total_colors(); i++)
{
int bit0, bit1, bit2, r, g, b;
@@ -377,7 +378,7 @@ static PALETTE_INIT( adp )
bit2 = (i >> 2) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r,g,b));
+ palette_set_color(machine(), i, MAKE_RGB(r,g,b));
}
}
@@ -665,8 +666,8 @@ static MACHINE_CONFIG_START( quickjac, adp_state )
MCFG_CPU_PROGRAM_MAP(quickjac_mem)
// MCFG_CPU_VBLANK_INT("screen", adp_int)
- MCFG_MACHINE_START(skattv)
- MCFG_MACHINE_RESET(skattv)
+ MCFG_MACHINE_START_OVERRIDE(adp_state,skattv)
+ MCFG_MACHINE_RESET_OVERRIDE(adp_state,skattv)
MCFG_DUART68681_ADD( "duart68681", XTAL_8_664MHz / 2, skattv_duart68681_config )
MCFG_MICROTOUCH_ADD( "microtouch", adb_microtouch_config )
@@ -680,7 +681,7 @@ static MACHINE_CONFIG_START( quickjac, adp_state )
MCFG_PALETTE_LENGTH(0x10)
- MCFG_PALETTE_INIT(adp)
+ MCFG_PALETTE_INIT_OVERRIDE(adp_state,adp)
MCFG_H63484_ADD("h63484", 0, adp_h63484_intf, adp_h63484_map)
@@ -697,8 +698,8 @@ static MACHINE_CONFIG_START( skattv, adp_state )
MCFG_CPU_PROGRAM_MAP(skattv_mem)
// MCFG_CPU_VBLANK_INT("screen", adp_int)
- MCFG_MACHINE_START(skattv)
- MCFG_MACHINE_RESET(skattv)
+ MCFG_MACHINE_START_OVERRIDE(adp_state,skattv)
+ MCFG_MACHINE_RESET_OVERRIDE(adp_state,skattv)
MCFG_DUART68681_ADD( "duart68681", XTAL_8_664MHz / 2, skattv_duart68681_config )
MCFG_MICROTOUCH_ADD( "microtouch", adb_microtouch_config )
@@ -712,7 +713,7 @@ static MACHINE_CONFIG_START( skattv, adp_state )
MCFG_PALETTE_LENGTH(0x10)
- MCFG_PALETTE_INIT(adp)
+ MCFG_PALETTE_INIT_OVERRIDE(adp_state,adp)
MCFG_H63484_ADD("h63484", 0, adp_h63484_intf, adp_h63484_map)
@@ -731,8 +732,8 @@ static MACHINE_CONFIG_START( backgamn, adp_state )
MCFG_DUART68681_ADD( "duart68681", XTAL_8_664MHz / 2, skattv_duart68681_config )
MCFG_MICROTOUCH_ADD( "microtouch", adb_microtouch_config )
- MCFG_MACHINE_START(skattv)
- MCFG_MACHINE_RESET(skattv)
+ MCFG_MACHINE_START_OVERRIDE(adp_state,skattv)
+ MCFG_MACHINE_RESET_OVERRIDE(adp_state,skattv)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -743,7 +744,7 @@ static MACHINE_CONFIG_START( backgamn, adp_state )
MCFG_PALETTE_LENGTH(0x10)
-// MCFG_PALETTE_INIT(adp)
+// MCFG_PALETTE_INIT_OVERRIDE(adp_state,adp)
MCFG_H63484_ADD("h63484", 0, adp_h63484_intf, adp_h63484_map)
diff --git a/src/mame/drivers/aeroboto.c b/src/mame/drivers/aeroboto.c
index 3e8cbe50c79..03453cfd449 100644
--- a/src/mame/drivers/aeroboto.c
+++ b/src/mame/drivers/aeroboto.c
@@ -223,30 +223,28 @@ static const ay8910_interface ay8910_config =
DEVCB_NULL
};
-static MACHINE_START( formatz )
+void aeroboto_state::machine_start()
{
- aeroboto_state *state = machine.driver_data<aeroboto_state>();
- state->m_stars_rom = state->memregion("gfx2")->base();
- state->m_stars_length = state->memregion("gfx2")->bytes();
+ m_stars_rom = memregion("gfx2")->base();
+ m_stars_length = memregion("gfx2")->bytes();
- state->save_item(NAME(state->m_disable_irq));
- state->save_item(NAME(state->m_count));
+ save_item(NAME(m_disable_irq));
+ save_item(NAME(m_count));
}
-static MACHINE_RESET( formatz )
+void aeroboto_state::machine_reset()
{
- aeroboto_state *state = machine.driver_data<aeroboto_state>();
- state->m_disable_irq = 0;
- state->m_count = 0;
+ m_disable_irq = 0;
+ m_count = 0;
- state->m_charbank = 0;
- state->m_starsoff = 0;
- state->m_ox = 0;
- state->m_oy = 0;
- state->m_sx = 0;
- state->m_sy = 0;
+ m_charbank = 0;
+ m_starsoff = 0;
+ m_ox = 0;
+ m_oy = 0;
+ m_sx = 0;
+ m_sy = 0;
}
static MACHINE_CONFIG_START( formatz, aeroboto_state )
@@ -260,8 +258,6 @@ static MACHINE_CONFIG_START( formatz, aeroboto_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(formatz)
- MCFG_MACHINE_RESET(formatz)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -276,7 +272,6 @@ static MACHINE_CONFIG_START( formatz, aeroboto_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(aeroboto)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c
index d04578c14d5..7bb74c18671 100644
--- a/src/mame/drivers/aerofgt.c
+++ b/src/mame/drivers/aerofgt.c
@@ -1294,34 +1294,32 @@ static const ym3812_interface ym3812_config =
};
-static MACHINE_START( common )
+MACHINE_START_MEMBER(aerofgt_state,common)
{
- aerofgt_state *state = machine.driver_data<aerofgt_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_pending_command));
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ save_item(NAME(m_pending_command));
}
-static MACHINE_START( aerofgt )
+MACHINE_START_MEMBER(aerofgt_state,aerofgt)
{
- UINT8 *rom = machine.root_device().memregion("audiocpu")->base();
+ UINT8 *rom = machine().root_device().memregion("audiocpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 4, &rom[0x10000], 0x8000);
+ machine().root_device().membank("bank1")->configure_entries(0, 4, &rom[0x10000], 0x8000);
- MACHINE_START_CALL(common);
+ MACHINE_START_CALL_MEMBER(common);
}
-static MACHINE_RESET( common )
+MACHINE_RESET_MEMBER(aerofgt_state,common)
{
- aerofgt_state *state = machine.driver_data<aerofgt_state>();
- state->m_pending_command = 0;
+ m_pending_command = 0;
}
-static MACHINE_RESET( aerofgt )
+MACHINE_RESET_MEMBER(aerofgt_state,aerofgt)
{
- MACHINE_RESET_CALL(common);
+ MACHINE_RESET_CALL_MEMBER(common);
- machine.root_device().membank("bank1")->set_entry(0); /* needed by spinlbrk */
+ machine().root_device().membank("bank1")->set_entry(0); /* needed by spinlbrk */
}
static MACHINE_CONFIG_START( pspikes, aerofgt_state )
@@ -1336,8 +1334,8 @@ static MACHINE_CONFIG_START( pspikes, aerofgt_state )
MCFG_CPU_IO_MAP(turbofrc_sound_portmap)
/* IRQs are triggered by the YM2610 */
- MCFG_MACHINE_START(aerofgt)
- MCFG_MACHINE_RESET(aerofgt)
+ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,aerofgt)
+ MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1350,7 +1348,7 @@ static MACHINE_CONFIG_START( pspikes, aerofgt_state )
MCFG_GFXDECODE(pspikes)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(pspikes)
+ MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1372,8 +1370,8 @@ static MACHINE_CONFIG_START( spikes91, aerofgt_state )
/* + Z80 for sound */
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1386,7 +1384,7 @@ static MACHINE_CONFIG_START( spikes91, aerofgt_state )
MCFG_GFXDECODE(spikes91)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(pspikes)
+ MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes)
/* sound hardware */
/* the sound hardware is completely different on this:
@@ -1404,8 +1402,8 @@ static MACHINE_CONFIG_START( pspikesb, aerofgt_state )
MCFG_CPU_PROGRAM_MAP(pspikesb_map)
MCFG_CPU_VBLANK_INT("screen", irq1_line_hold)/* all irq vectors are the same */
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1418,7 +1416,7 @@ static MACHINE_CONFIG_START( pspikesb, aerofgt_state )
MCFG_GFXDECODE(pspikesb)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(pspikes)
+ MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1434,8 +1432,8 @@ static MACHINE_CONFIG_START( pspikesc, aerofgt_state )
MCFG_CPU_PROGRAM_MAP(pspikesc_map)
MCFG_CPU_VBLANK_INT("screen", irq1_line_hold)/* all irq vectors are the same */
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1448,7 +1446,7 @@ static MACHINE_CONFIG_START( pspikesc, aerofgt_state )
MCFG_GFXDECODE(pspikes)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(pspikes)
+ MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1469,8 +1467,8 @@ static MACHINE_CONFIG_START( karatblz, aerofgt_state )
MCFG_CPU_IO_MAP(turbofrc_sound_portmap)
/* IRQs are triggered by the YM2610 */
- MCFG_MACHINE_START(aerofgt)
- MCFG_MACHINE_RESET(aerofgt)
+ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,aerofgt)
+ MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1483,7 +1481,7 @@ static MACHINE_CONFIG_START( karatblz, aerofgt_state )
MCFG_GFXDECODE(turbofrc)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(karatblz)
+ MCFG_VIDEO_START_OVERRIDE(aerofgt_state,karatblz)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1508,8 +1506,8 @@ static MACHINE_CONFIG_START( spinlbrk, aerofgt_state )
MCFG_CPU_IO_MAP(turbofrc_sound_portmap)
/* IRQs are triggered by the YM2610 */
- MCFG_MACHINE_START(aerofgt)
- MCFG_MACHINE_RESET(aerofgt)
+ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,aerofgt)
+ MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1522,7 +1520,7 @@ static MACHINE_CONFIG_START( spinlbrk, aerofgt_state )
MCFG_GFXDECODE(turbofrc)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(spinlbrk)
+ MCFG_VIDEO_START_OVERRIDE(aerofgt_state,spinlbrk)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1547,8 +1545,8 @@ static MACHINE_CONFIG_START( turbofrc, aerofgt_state )
MCFG_CPU_IO_MAP(turbofrc_sound_portmap)
/* IRQs are triggered by the YM2610 */
- MCFG_MACHINE_START(aerofgt)
- MCFG_MACHINE_RESET(aerofgt)
+ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,aerofgt)
+ MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1561,7 +1559,7 @@ static MACHINE_CONFIG_START( turbofrc, aerofgt_state )
MCFG_GFXDECODE(turbofrc)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(turbofrc)
+ MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1586,8 +1584,8 @@ static MACHINE_CONFIG_START( aerofgtb, aerofgt_state )
MCFG_CPU_IO_MAP(aerofgt_sound_portmap)
/* IRQs are triggered by the YM2610 */
- MCFG_MACHINE_START(aerofgt)
- MCFG_MACHINE_RESET(aerofgt)
+ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,aerofgt)
+ MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1601,7 +1599,7 @@ static MACHINE_CONFIG_START( aerofgtb, aerofgt_state )
MCFG_GFXDECODE(aerofgtb)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(turbofrc)
+ MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1626,8 +1624,8 @@ static MACHINE_CONFIG_START( aerofgt, aerofgt_state )
MCFG_CPU_IO_MAP(aerofgt_sound_portmap)
/* IRQs are triggered by the YM2610 */
- MCFG_MACHINE_START(aerofgt)
- MCFG_MACHINE_RESET(aerofgt)
+ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,aerofgt)
+ MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1641,7 +1639,7 @@ static MACHINE_CONFIG_START( aerofgt, aerofgt_state )
MCFG_GFXDECODE(aerofgt)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(turbofrc)
+ MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1664,8 +1662,8 @@ static MACHINE_CONFIG_START( aerfboot, aerofgt_state )
MCFG_CPU_ADD("audiocpu",Z80,8000000/2) /* 4 MHz ??? */
MCFG_CPU_PROGRAM_MAP(aerfboot_sound_map)
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1679,7 +1677,7 @@ static MACHINE_CONFIG_START( aerfboot, aerofgt_state )
MCFG_GFXDECODE(aerfboot)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(turbofrc)
+ MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1695,8 +1693,8 @@ static MACHINE_CONFIG_START( aerfboo2, aerofgt_state )
MCFG_CPU_PROGRAM_MAP(aerfboo2_map)
MCFG_CPU_VBLANK_INT("screen", irq2_line_hold)
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1710,7 +1708,7 @@ static MACHINE_CONFIG_START( aerfboo2, aerofgt_state )
MCFG_GFXDECODE(aerfboo2)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(turbofrc)
+ MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1729,8 +1727,8 @@ static MACHINE_CONFIG_START( wbbc97, aerofgt_state )
MCFG_CPU_ADD("audiocpu",Z80,8000000/2) /* 4 MHz ??? */
MCFG_CPU_PROGRAM_MAP(wbbc97_sound_map)
/* IRQs are triggered by the YM3812 */
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1743,7 +1741,7 @@ static MACHINE_CONFIG_START( wbbc97, aerofgt_state )
MCFG_GFXDECODE(wbbc97)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(wbbc97)
+ MCFG_VIDEO_START_OVERRIDE(aerofgt_state,wbbc97)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/airbustr.c b/src/mame/drivers/airbustr.c
index 6dd11b69e95..6932b2a06ab 100644
--- a/src/mame/drivers/airbustr.c
+++ b/src/mame/drivers/airbustr.c
@@ -568,48 +568,46 @@ static INTERRUPT_GEN( slave_interrupt )
/* Machine Initialization */
-static MACHINE_START( airbustr )
+void airbustr_state::machine_start()
{
- airbustr_state *state = machine.driver_data<airbustr_state>();
- UINT8 *MASTER = state->memregion("master")->base();
- UINT8 *SLAVE = state->memregion("slave")->base();
- UINT8 *AUDIO = state->memregion("audiocpu")->base();
-
- state->membank("bank1")->configure_entries(0, 3, &MASTER[0x00000], 0x4000);
- state->membank("bank1")->configure_entries(3, 5, &MASTER[0x10000], 0x4000);
- state->membank("bank2")->configure_entries(0, 3, &SLAVE[0x00000], 0x4000);
- state->membank("bank2")->configure_entries(3, 5, &SLAVE[0x10000], 0x4000);
- state->membank("bank3")->configure_entries(0, 3, &AUDIO[0x00000], 0x4000);
- state->membank("bank3")->configure_entries(3, 5, &AUDIO[0x10000], 0x4000);
-
- state->m_master = machine.device("master");
- state->m_slave = machine.device("slave");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_pandora = machine.device("pandora");
-
- state->save_item(NAME(state->m_soundlatch_status));
- state->save_item(NAME(state->m_soundlatch2_status));
- state->save_item(NAME(state->m_bg_scrollx));
- state->save_item(NAME(state->m_bg_scrolly));
- state->save_item(NAME(state->m_fg_scrollx));
- state->save_item(NAME(state->m_fg_scrolly));
- state->save_item(NAME(state->m_highbits));
+ UINT8 *MASTER = memregion("master")->base();
+ UINT8 *SLAVE = memregion("slave")->base();
+ UINT8 *AUDIO = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 3, &MASTER[0x00000], 0x4000);
+ membank("bank1")->configure_entries(3, 5, &MASTER[0x10000], 0x4000);
+ membank("bank2")->configure_entries(0, 3, &SLAVE[0x00000], 0x4000);
+ membank("bank2")->configure_entries(3, 5, &SLAVE[0x10000], 0x4000);
+ membank("bank3")->configure_entries(0, 3, &AUDIO[0x00000], 0x4000);
+ membank("bank3")->configure_entries(3, 5, &AUDIO[0x10000], 0x4000);
+
+ m_master = machine().device("master");
+ m_slave = machine().device("slave");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_pandora = machine().device("pandora");
+
+ save_item(NAME(m_soundlatch_status));
+ save_item(NAME(m_soundlatch2_status));
+ save_item(NAME(m_bg_scrollx));
+ save_item(NAME(m_bg_scrolly));
+ save_item(NAME(m_fg_scrollx));
+ save_item(NAME(m_fg_scrolly));
+ save_item(NAME(m_highbits));
}
-static MACHINE_RESET( airbustr )
+void airbustr_state::machine_reset()
{
- airbustr_state *state = machine.driver_data<airbustr_state>();
-
- state->m_soundlatch_status = state->m_soundlatch2_status = 0;
- state->m_bg_scrollx = 0;
- state->m_bg_scrolly = 0;
- state->m_fg_scrollx = 0;
- state->m_fg_scrolly = 0;
- state->m_highbits = 0;
-
- state->membank("bank1")->set_entry(0x02);
- state->membank("bank2")->set_entry(0x02);
- state->membank("bank3")->set_entry(0x02);
+
+ m_soundlatch_status = m_soundlatch2_status = 0;
+ m_bg_scrollx = 0;
+ m_bg_scrolly = 0;
+ m_fg_scrollx = 0;
+ m_fg_scrolly = 0;
+ m_highbits = 0;
+
+ membank("bank1")->set_entry(0x02);
+ membank("bank2")->set_entry(0x02);
+ membank("bank3")->set_entry(0x02);
}
/* Machine Driver */
@@ -641,8 +639,6 @@ static MACHINE_CONFIG_START( airbustr, airbustr_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // Palette RAM is filled by sub cpu with data supplied by main cpu
// Maybe a high value is safer in order to avoid glitches
- MCFG_MACHINE_START(airbustr)
- MCFG_MACHINE_RESET(airbustr)
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */
/* video hardware */
@@ -659,7 +655,6 @@ static MACHINE_CONFIG_START( airbustr, airbustr_state )
MCFG_KANEKO_PANDORA_ADD("pandora", airbustr_pandora_config)
- MCFG_VIDEO_START(airbustr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ajax.c b/src/mame/drivers/ajax.c
index 250d58a5c25..54360ba3260 100644
--- a/src/mame/drivers/ajax.c
+++ b/src/mame/drivers/ajax.c
@@ -220,8 +220,6 @@ static MACHINE_CONFIG_START( ajax, ajax_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_RESET(ajax)
- MCFG_MACHINE_START(ajax)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -235,7 +233,6 @@ static MACHINE_CONFIG_START( ajax, ajax_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(ajax)
MCFG_K052109_ADD("k052109", ajax_k052109_intf)
MCFG_K051960_ADD("k051960", ajax_k051960_intf)
diff --git a/src/mame/drivers/albazc.c b/src/mame/drivers/albazc.c
index a7d55daeb42..e79e9c8da27 100644
--- a/src/mame/drivers/albazc.c
+++ b/src/mame/drivers/albazc.c
@@ -32,15 +32,17 @@ public:
DECLARE_WRITE8_MEMBER(hanaroku_out_1_w);
DECLARE_WRITE8_MEMBER(hanaroku_out_2_w);
DECLARE_WRITE8_MEMBER(albazc_vregs_w);
+ virtual void video_start();
+ virtual void palette_init();
};
/* video */
-static PALETTE_INIT( hanaroku )
+void albazc_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
int r, g, b;
@@ -50,12 +52,12 @@ static PALETTE_INIT( hanaroku )
g = ((color_prom[i * 2 + 1] & 0xe0) | ((color_prom[i * 2 + 0]& 0x03) <<8)) >> 5;
r = (color_prom[i * 2 + 0] & 0x7c) >> 2;
- palette_set_color_rgb(machine, i, pal5bit(r), pal5bit(g), pal5bit(b));
+ palette_set_color_rgb(machine(), i, pal5bit(r), pal5bit(g), pal5bit(b));
}
}
-static VIDEO_START( hanaroku )
+void albazc_state::video_start()
{
}
@@ -281,8 +283,6 @@ static MACHINE_CONFIG_START( hanaroku, albazc_state )
MCFG_GFXDECODE(hanaroku)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT(hanaroku)
- MCFG_VIDEO_START(hanaroku)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/albazg.c b/src/mame/drivers/albazg.c
index 20ed3544c06..8680b0a3f7f 100644
--- a/src/mame/drivers/albazg.c
+++ b/src/mame/drivers/albazg.c
@@ -73,6 +73,9 @@ public:
DECLARE_WRITE8_MEMBER(mux_w);
DECLARE_WRITE8_MEMBER(yumefuda_output_w);
TILE_GET_INFO_MEMBER(y_get_bg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
TILE_GET_INFO_MEMBER(albazg_state::y_get_bg_tile_info)
@@ -88,10 +91,9 @@ TILE_GET_INFO_MEMBER(albazg_state::y_get_bg_tile_info)
}
-static VIDEO_START( yumefuda )
+void albazg_state::video_start()
{
- albazg_state *state = machine.driver_data<albazg_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(albazg_state::y_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(albazg_state::y_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
static SCREEN_UPDATE_IND16( yumefuda )
@@ -354,24 +356,22 @@ INPUT_PORTS_END
/***************************************************************************************/
-static MACHINE_START( yumefuda )
+void albazg_state::machine_start()
{
- albazg_state *state = machine.driver_data<albazg_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
- state->save_item(NAME(state->m_mux_data));
- state->save_item(NAME(state->m_bank));
- state->save_item(NAME(state->m_prot_lock));
+ save_item(NAME(m_mux_data));
+ save_item(NAME(m_bank));
+ save_item(NAME(m_prot_lock));
}
-static MACHINE_RESET( yumefuda )
+void albazg_state::machine_reset()
{
- albazg_state *state = machine.driver_data<albazg_state>();
- state->m_mux_data = 0;
- state->m_bank = -1;
- state->m_prot_lock = 0;
+ m_mux_data = 0;
+ m_bank = -1;
+ m_prot_lock = 0;
}
static MACHINE_CONFIG_START( yumefuda, albazg_state )
@@ -382,8 +382,6 @@ static MACHINE_CONFIG_START( yumefuda, albazg_state )
MCFG_CPU_IO_MAP(port_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(yumefuda)
- MCFG_MACHINE_RESET(yumefuda)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -404,7 +402,6 @@ static MACHINE_CONFIG_START( yumefuda, albazg_state )
MCFG_GFXDECODE( yumefuda )
MCFG_PALETTE_LENGTH(0x80)
- MCFG_VIDEO_START( yumefuda )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/aleck64.c b/src/mame/drivers/aleck64.c
index 4c64c5c5fd1..66e8acab5b0 100644
--- a/src/mame/drivers/aleck64.c
+++ b/src/mame/drivers/aleck64.c
@@ -811,8 +811,6 @@ static MACHINE_CONFIG_START( aleck64, n64_state )
MCFG_CPU_CONFIG(n64_rsp_config)
MCFG_CPU_PROGRAM_MAP(rsp_map)
- MCFG_MACHINE_START( n64 )
- MCFG_MACHINE_RESET( n64 )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -823,7 +821,6 @@ static MACHINE_CONFIG_START( aleck64, n64_state )
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(n64)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c
index 1f89e1b978b..97472725efc 100644
--- a/src/mame/drivers/alg.c
+++ b/src/mame/drivers/alg.c
@@ -56,6 +56,9 @@ public:
DECLARE_DRIVER_INIT(palr1);
DECLARE_DRIVER_INIT(none);
DECLARE_DRIVER_INIT(palr6);
+ DECLARE_MACHINE_START(alg);
+ DECLARE_MACHINE_RESET(alg);
+ DECLARE_VIDEO_START(alg);
};
static TIMER_CALLBACK( response_timer );
@@ -91,14 +94,14 @@ static int get_lightgun_pos(screen_device &screen, int player, int *x, int *y)
*
*************************************/
-static VIDEO_START( alg )
+VIDEO_START_MEMBER(alg_state,alg)
{
/* standard video start */
- VIDEO_START_CALL(amiga);
+ VIDEO_START_CALL_MEMBER(amiga);
/* configure pen 4096 as transparent in the renderer and use it for the genlock color */
- palette_set_color(machine, 4096, MAKE_ARGB(0,0,0,0));
- amiga_set_genlock_color(machine, 4096);
+ palette_set_color(machine(), 4096, MAKE_ARGB(0,0,0,0));
+ amiga_set_genlock_color(machine(), 4096);
}
@@ -109,18 +112,17 @@ static VIDEO_START( alg )
*
*************************************/
-static MACHINE_START( alg )
+MACHINE_START_MEMBER(alg_state,alg)
{
- alg_state *state = machine.driver_data<alg_state>();
- state->m_serial_timer = machine.scheduler().timer_alloc(FUNC(response_timer));
- state->m_serial_timer_active = FALSE;
+ m_serial_timer = machine().scheduler().timer_alloc(FUNC(response_timer));
+ m_serial_timer_active = FALSE;
}
-static MACHINE_RESET( alg )
+MACHINE_RESET_MEMBER(alg_state,alg)
{
- MACHINE_RESET_CALL(amiga);
+ MACHINE_RESET_CALL_MEMBER(amiga);
}
@@ -440,8 +442,8 @@ static MACHINE_CONFIG_START( alg_r1, alg_state )
MCFG_CPU_ADD("maincpu", M68000, AMIGA_68000_NTSC_CLOCK)
MCFG_CPU_PROGRAM_MAP(main_map_r1)
- MCFG_MACHINE_START(alg)
- MCFG_MACHINE_RESET(alg)
+ MCFG_MACHINE_START_OVERRIDE(alg_state,alg)
+ MCFG_MACHINE_RESET_OVERRIDE(alg_state,alg)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_LASERDISC_LDP1450_ADD("laserdisc")
@@ -455,9 +457,9 @@ static MACHINE_CONFIG_START( alg_r1, alg_state )
MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1)
MCFG_PALETTE_LENGTH(4097)
- MCFG_PALETTE_INIT(amiga)
+ MCFG_PALETTE_INIT_OVERRIDE(alg_state,amiga)
- MCFG_VIDEO_START(alg)
+ MCFG_VIDEO_START_OVERRIDE(alg_state,alg)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c
index b796a8452c2..1cefcb3cbef 100644
--- a/src/mame/drivers/aliens.c
+++ b/src/mame/drivers/aliens.c
@@ -226,30 +226,28 @@ static const k051960_interface aliens_k051960_intf =
aliens_sprite_callback
};
-static MACHINE_START( aliens )
+void aliens_state::machine_start()
{
- aliens_state *state = machine.driver_data<aliens_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 20, &ROM[0x10000], 0x2000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 20, &ROM[0x10000], 0x2000);
+ membank("bank1")->set_entry(0);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k007232 = machine.device("k007232");
- state->m_k052109 = machine.device("k052109");
- state->m_k051960 = machine.device("k051960");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k007232 = machine().device("k007232");
+ m_k052109 = machine().device("k052109");
+ m_k051960 = machine().device("k051960");
- state->save_item(NAME(state->m_palette_selected));
+ save_item(NAME(m_palette_selected));
}
-static MACHINE_RESET( aliens )
+void aliens_state::machine_reset()
{
- aliens_state *state = machine.driver_data<aliens_state>();
- konami_configure_set_lines(machine.device("maincpu"), aliens_banking);
+ konami_configure_set_lines(machine().device("maincpu"), aliens_banking);
- state->m_palette_selected = 0;
+ m_palette_selected = 0;
}
static MACHINE_CONFIG_START( aliens, aliens_state )
@@ -263,8 +261,6 @@ static MACHINE_CONFIG_START( aliens, aliens_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(aliens_sound_map)
- MCFG_MACHINE_START(aliens)
- MCFG_MACHINE_RESET(aliens)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -278,7 +274,6 @@ static MACHINE_CONFIG_START( aliens, aliens_state )
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(aliens)
MCFG_K052109_ADD("k052109", aliens_k052109_intf)
MCFG_K051960_ADD("k051960", aliens_k051960_intf)
diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c
index c9dd15f2737..b44ce979eb5 100644
--- a/src/mame/drivers/alpha68k.c
+++ b/src/mame/drivers/alpha68k.c
@@ -1863,86 +1863,80 @@ static const ym3812_interface ym3812_config =
/******************************************************************************/
-static MACHINE_START( common )
+MACHINE_START_MEMBER(alpha68k_state,common)
{
- alpha68k_state *state = machine.driver_data<alpha68k_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_trigstate));
- state->save_item(NAME(state->m_deposits1));
- state->save_item(NAME(state->m_deposits2));
- state->save_item(NAME(state->m_credits));
- state->save_item(NAME(state->m_coinvalue));
- state->save_item(NAME(state->m_microcontroller_data));
- state->save_item(NAME(state->m_latch));
- state->save_item(NAME(state->m_flipscreen));
+ save_item(NAME(m_trigstate));
+ save_item(NAME(m_deposits1));
+ save_item(NAME(m_deposits2));
+ save_item(NAME(m_credits));
+ save_item(NAME(m_coinvalue));
+ save_item(NAME(m_microcontroller_data));
+ save_item(NAME(m_latch));
+ save_item(NAME(m_flipscreen));
}
-static MACHINE_RESET( common )
+MACHINE_RESET_MEMBER(alpha68k_state,common)
{
- alpha68k_state *state = machine.driver_data<alpha68k_state>();
- state->m_trigstate = 0;
- state->m_deposits1 = 0;
- state->m_deposits2 = 0;
- state->m_credits = 0;
- state->m_coinvalue = 0;
- state->m_microcontroller_data = 0;
- state->m_latch = 0;
- state->m_flipscreen = 0;
+ m_trigstate = 0;
+ m_deposits1 = 0;
+ m_deposits2 = 0;
+ m_credits = 0;
+ m_coinvalue = 0;
+ m_microcontroller_data = 0;
+ m_latch = 0;
+ m_flipscreen = 0;
}
-static MACHINE_START( alpha68k_V )
+MACHINE_START_MEMBER(alpha68k_state,alpha68k_V)
{
- alpha68k_state *state = machine.driver_data<alpha68k_state>();
- UINT8 *ROM = state->memregion("audiocpu")->base();
+ UINT8 *ROM = memregion("audiocpu")->base();
- state->membank("bank7")->configure_entries(0, 32, &ROM[0x10000], 0x4000);
+ membank("bank7")->configure_entries(0, 32, &ROM[0x10000], 0x4000);
- MACHINE_START_CALL(common);
+ MACHINE_START_CALL_MEMBER(common);
- state->save_item(NAME(state->m_bank_base));
- state->save_item(NAME(state->m_last_bank));
+ save_item(NAME(m_bank_base));
+ save_item(NAME(m_last_bank));
}
-static MACHINE_RESET( alpha68k_V )
+MACHINE_RESET_MEMBER(alpha68k_state,alpha68k_V)
{
- alpha68k_state *state = machine.driver_data<alpha68k_state>();
- MACHINE_RESET_CALL(common);
+ MACHINE_RESET_CALL_MEMBER(common);
- state->m_bank_base = 0;
- state->m_last_bank = 0;
+ m_bank_base = 0;
+ m_last_bank = 0;
}
-static MACHINE_RESET( alpha68k_II )
+MACHINE_RESET_MEMBER(alpha68k_state,alpha68k_II)
{
- alpha68k_state *state = machine.driver_data<alpha68k_state>();
- MACHINE_RESET_CALL(common);
+ MACHINE_RESET_CALL_MEMBER(common);
- state->m_bank_base = 0;
- state->m_last_bank = 0;
- state->m_buffer_28 = 0;
- state->m_buffer_60 = 0;
- state->m_buffer_68 = 0;
+ m_bank_base = 0;
+ m_last_bank = 0;
+ m_buffer_28 = 0;
+ m_buffer_60 = 0;
+ m_buffer_68 = 0;
}
-static MACHINE_START( alpha68k_II )
+MACHINE_START_MEMBER(alpha68k_state,alpha68k_II)
{
- alpha68k_state *state = machine.driver_data<alpha68k_state>();
- UINT8 *ROM = state->memregion("audiocpu")->base();
+ UINT8 *ROM = memregion("audiocpu")->base();
- state->membank("bank7")->configure_entries(0, 28, &ROM[0x10000], 0x4000);
+ membank("bank7")->configure_entries(0, 28, &ROM[0x10000], 0x4000);
- MACHINE_START_CALL(common);
+ MACHINE_START_CALL_MEMBER(common);
- state->save_item(NAME(state->m_bank_base));
- state->save_item(NAME(state->m_last_bank));
- state->save_item(NAME(state->m_buffer_28));
- state->save_item(NAME(state->m_buffer_60));
- state->save_item(NAME(state->m_buffer_68));
+ save_item(NAME(m_bank_base));
+ save_item(NAME(m_last_bank));
+ save_item(NAME(m_buffer_28));
+ save_item(NAME(m_buffer_60));
+ save_item(NAME(m_buffer_68));
}
@@ -1975,8 +1969,8 @@ static MACHINE_CONFIG_START( sstingry, alpha68k_state )
MCFG_CPU_IO_MAP(i8748_portmap)
MCFG_DEVICE_DISABLE()
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(alpha68k_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(alpha68k_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1988,7 +1982,7 @@ static MACHINE_CONFIG_START( sstingry, alpha68k_state )
MCFG_GFXDECODE(sstingry)
MCFG_PALETTE_LENGTH(256 + 1)
- MCFG_PALETTE_INIT(kyros)
+ MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,kyros)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2020,8 +2014,8 @@ static MACHINE_CONFIG_START( kyros, alpha68k_state )
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 2*60)
MCFG_CPU_PERIODIC_INT(nmi_line_pulse, 4000)
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(alpha68k_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(alpha68k_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2034,7 +2028,7 @@ static MACHINE_CONFIG_START( kyros, alpha68k_state )
MCFG_GFXDECODE(kyros)
MCFG_PALETTE_LENGTH(256 + 1)
- MCFG_PALETTE_INIT(kyros)
+ MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,kyros)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2065,8 +2059,8 @@ static MACHINE_CONFIG_START( jongbou, alpha68k_state )
MCFG_CPU_IO_MAP(jongbou_sound_portmap)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 160*60)
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(alpha68k_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(alpha68k_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2079,7 +2073,7 @@ static MACHINE_CONFIG_START( jongbou, alpha68k_state )
MCFG_GFXDECODE(jongbou)
MCFG_PALETTE_LENGTH(256 + 1)
- MCFG_PALETTE_INIT(kyros)
+ MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,kyros)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2099,8 +2093,8 @@ static MACHINE_CONFIG_START( alpha68k_I, alpha68k_state )
MCFG_CPU_ADD("audiocpu", Z80, 4000000) // 4Mhz seems to yield the correct tone
MCFG_CPU_PROGRAM_MAP(alpha68k_I_s_map)
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(alpha68k_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(alpha68k_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2113,7 +2107,7 @@ static MACHINE_CONFIG_START( alpha68k_I, alpha68k_state )
MCFG_GFXDECODE(paddle)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(paddlem)
+ MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,paddlem)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2143,8 +2137,8 @@ static MACHINE_CONFIG_START( alpha68k_II, alpha68k_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_PERIODIC_INT(alpha68k_sound_nmi, 7500)
- MCFG_MACHINE_START(alpha68k_II)
- MCFG_MACHINE_RESET(alpha68k_II)
+ MCFG_MACHINE_START_OVERRIDE(alpha68k_state,alpha68k_II)
+ MCFG_MACHINE_RESET_OVERRIDE(alpha68k_state,alpha68k_II)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2157,7 +2151,7 @@ static MACHINE_CONFIG_START( alpha68k_II, alpha68k_state )
MCFG_GFXDECODE(alpha68k_II)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(alpha68k)
+ MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2192,8 +2186,8 @@ static MACHINE_CONFIG_START( alpha68k_II_gm, alpha68k_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_PERIODIC_INT(alpha68k_sound_nmi, 7500)
- MCFG_MACHINE_START(alpha68k_II)
- MCFG_MACHINE_RESET(alpha68k_II)
+ MCFG_MACHINE_START_OVERRIDE(alpha68k_state,alpha68k_II)
+ MCFG_MACHINE_RESET_OVERRIDE(alpha68k_state,alpha68k_II)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2206,7 +2200,7 @@ static MACHINE_CONFIG_START( alpha68k_II_gm, alpha68k_state )
MCFG_GFXDECODE(alpha68k_II)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(alpha68k)
+ MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2235,8 +2229,8 @@ static MACHINE_CONFIG_START( alpha68k_V, alpha68k_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_PERIODIC_INT(alpha68k_sound_nmi, 8500)
- MCFG_MACHINE_START(alpha68k_V)
- MCFG_MACHINE_RESET(alpha68k_V)
+ MCFG_MACHINE_START_OVERRIDE(alpha68k_state,alpha68k_V)
+ MCFG_MACHINE_RESET_OVERRIDE(alpha68k_state,alpha68k_V)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2249,7 +2243,7 @@ static MACHINE_CONFIG_START( alpha68k_V, alpha68k_state )
MCFG_GFXDECODE(alpha68k_V)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(alpha68k)
+ MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2277,8 +2271,8 @@ static MACHINE_CONFIG_START( alpha68k_V_sb, alpha68k_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_PERIODIC_INT(alpha68k_sound_nmi, 8500)
- MCFG_MACHINE_START(alpha68k_V)
- MCFG_MACHINE_RESET(alpha68k_V)
+ MCFG_MACHINE_START_OVERRIDE(alpha68k_state,alpha68k_V)
+ MCFG_MACHINE_RESET_OVERRIDE(alpha68k_state,alpha68k_V)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2291,7 +2285,7 @@ static MACHINE_CONFIG_START( alpha68k_V_sb, alpha68k_state )
MCFG_GFXDECODE(alpha68k_V)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(alpha68k)
+ MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2318,8 +2312,8 @@ static MACHINE_CONFIG_START( tnextspc, alpha68k_state )
MCFG_CPU_PROGRAM_MAP(tnextspc_sound_map)
MCFG_CPU_IO_MAP(tnextspc_sound_portmap)
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(alpha68k_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(alpha68k_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2332,7 +2326,7 @@ static MACHINE_CONFIG_START( tnextspc, alpha68k_state )
MCFG_GFXDECODE(tnextspc)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(paddlem)
+ MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,paddlem)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/amaticmg.c b/src/mame/drivers/amaticmg.c
index 0a33e4400eb..f20f73dfc8e 100644
--- a/src/mame/drivers/amaticmg.c
+++ b/src/mame/drivers/amaticmg.c
@@ -447,6 +447,11 @@ public:
DECLARE_DRIVER_INIT(ama8000_2_i);
DECLARE_DRIVER_INIT(ama8000_2_v);
DECLARE_DRIVER_INIT(ama8000_1_x);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
+ DECLARE_PALETTE_INIT(amaticmg2);
};
@@ -454,7 +459,7 @@ public:
* Video Hardware *
************************************/
-static VIDEO_START( amaticmg )
+void amaticmg_state::video_start()
{
}
@@ -509,9 +514,9 @@ static SCREEN_UPDATE_IND16( amaticmg2 )
return 0;
}
-static PALETTE_INIT( amaticmg )
+void amaticmg_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int bit0, bit1, bit2 , r, g, b;
int i;
@@ -530,25 +535,25 @@ static PALETTE_INIT( amaticmg )
bit2 = (color_prom[0] >> 5) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
color_prom++;
}
}
-static PALETTE_INIT( amaticmg2 )
+PALETTE_INIT_MEMBER(amaticmg_state,amaticmg2)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int r, g, b;
int i;
- for (i = 0; i < machine.root_device().memregion("proms")->bytes(); i+=2)
+ for (i = 0; i < machine().root_device().memregion("proms")->bytes(); i+=2)
{
b = ((color_prom[1] & 0xf8) >> 3);
g = ((color_prom[0] & 0xc0) >> 6) | ((color_prom[1] & 0x7) << 2);
r = ((color_prom[0] & 0x3e) >> 1);
- palette_set_color_rgb(machine, i >> 1, pal5bit(r), pal5bit(g), pal5bit(b));
+ palette_set_color_rgb(machine(), i >> 1, pal5bit(r), pal5bit(g), pal5bit(b));
color_prom+=2;
}
}
@@ -837,19 +842,18 @@ static I8255A_INTERFACE( ppi8255_intf_1 )
* Machine Start & Reset *
************************************/
-static MACHINE_START( amaticmg )
+void amaticmg_state::machine_start()
{
- UINT8 *rombank = machine.root_device().memregion("maincpu")->base();
+ UINT8 *rombank = machine().root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 0x10, &rombank[0x8000], 0x4000);
+ machine().root_device().membank("bank1")->configure_entries(0, 0x10, &rombank[0x8000], 0x4000);
}
-static MACHINE_RESET( amaticmg )
+void amaticmg_state::machine_reset()
{
- amaticmg_state *state = machine.driver_data<amaticmg_state>();
- state->membank("bank1")->set_entry(0);
- state->m_nmi_mask = 0;
+ membank("bank1")->set_entry(0);
+ m_nmi_mask = 0;
}
@@ -883,12 +887,8 @@ static MACHINE_CONFIG_START( amaticmg, amaticmg_state )
MCFG_GFXDECODE(amaticmg)
- MCFG_PALETTE_INIT(amaticmg)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_VIDEO_START(amaticmg)
- MCFG_MACHINE_START(amaticmg)
- MCFG_MACHINE_RESET(amaticmg)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -922,7 +922,7 @@ static MACHINE_CONFIG_DERIVED( amaticmg2, amaticmg )
MCFG_SCREEN_UPDATE_STATIC(amaticmg2)
MCFG_GFXDECODE(amaticmg2)
- MCFG_PALETTE_INIT(amaticmg2)
+ MCFG_PALETTE_INIT_OVERRIDE(amaticmg_state,amaticmg2)
MCFG_PALETTE_LENGTH(0x10000)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ambush.c b/src/mame/drivers/ambush.c
index 26c4b955da6..ff17cb4fc6e 100644
--- a/src/mame/drivers/ambush.c
+++ b/src/mame/drivers/ambush.c
@@ -245,7 +245,6 @@ static MACHINE_CONFIG_START( ambush, ambush_state )
MCFG_GFXDECODE(ambush)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(ambush)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ampoker2.c b/src/mame/drivers/ampoker2.c
index 1b022c260a0..3722ebcd6d0 100644
--- a/src/mame/drivers/ampoker2.c
+++ b/src/mame/drivers/ampoker2.c
@@ -1187,8 +1187,6 @@ static MACHINE_CONFIG_START( ampoker2, ampoker2_state )
MCFG_GFXDECODE(ampoker2)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(ampoker2)
- MCFG_VIDEO_START(ampoker2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1203,7 +1201,7 @@ static MACHINE_CONFIG_DERIVED( sigma2k, ampoker2 )
/* video hardware */
MCFG_GFXDECODE(sigma2k)
- MCFG_VIDEO_START(sigma2k)
+ MCFG_VIDEO_START_OVERRIDE(ampoker2_state,sigma2k)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/amspdwy.c b/src/mame/drivers/amspdwy.c
index 7337b6f82f2..a7cf7e6818e 100644
--- a/src/mame/drivers/amspdwy.c
+++ b/src/mame/drivers/amspdwy.c
@@ -250,25 +250,23 @@ static const ym2151_interface amspdwy_ym2151_interface =
DEVCB_LINE(irq_handler)
};
-static MACHINE_START( amspdwy )
+void amspdwy_state::machine_start()
{
- amspdwy_state *state = machine.driver_data<amspdwy_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_wheel_old));
- state->save_item(NAME(state->m_wheel_return));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_wheel_old));
+ save_item(NAME(m_wheel_return));
}
-static MACHINE_RESET( amspdwy )
+void amspdwy_state::machine_reset()
{
- amspdwy_state *state = machine.driver_data<amspdwy_state>();
- state->m_flipscreen = 0;
- state->m_wheel_old[0] = 0;
- state->m_wheel_old[1] = 0;
- state->m_wheel_return[0] = 0;
- state->m_wheel_return[1] = 0;
+ m_flipscreen = 0;
+ m_wheel_old[0] = 0;
+ m_wheel_old[1] = 0;
+ m_wheel_return[0] = 0;
+ m_wheel_return[1] = 0;
}
static MACHINE_CONFIG_START( amspdwy, amspdwy_state )
@@ -283,8 +281,6 @@ static MACHINE_CONFIG_START( amspdwy, amspdwy_state )
MCFG_CPU_PROGRAM_MAP(amspdwy_sound_map)
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_START(amspdwy)
- MCFG_MACHINE_RESET(amspdwy)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -297,7 +293,6 @@ static MACHINE_CONFIG_START( amspdwy, amspdwy_state )
MCFG_GFXDECODE(amspdwy)
MCFG_PALETTE_LENGTH(32)
- MCFG_VIDEO_START(amspdwy)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/angelkds.c b/src/mame/drivers/angelkds.c
index 1d30f634d68..68b0f6ec85d 100644
--- a/src/mame/drivers/angelkds.c
+++ b/src/mame/drivers/angelkds.c
@@ -568,35 +568,33 @@ GFXDECODE_END
*/
-static MACHINE_START( angelkds )
+void angelkds_state::machine_start()
{
- angelkds_state *state = machine.driver_data<angelkds_state>();
- state->m_subcpu = machine.device<cpu_device>("sub");
+ m_subcpu = machine().device<cpu_device>("sub");
- state->save_item(NAME(state->m_layer_ctrl));
- state->save_item(NAME(state->m_txbank));
- state->save_item(NAME(state->m_bgbotbank));
- state->save_item(NAME(state->m_bgtopbank));
- state->save_item(NAME(state->m_sound));
- state->save_item(NAME(state->m_sound2));
+ save_item(NAME(m_layer_ctrl));
+ save_item(NAME(m_txbank));
+ save_item(NAME(m_bgbotbank));
+ save_item(NAME(m_bgtopbank));
+ save_item(NAME(m_sound));
+ save_item(NAME(m_sound2));
}
-static MACHINE_RESET( angelkds )
+void angelkds_state::machine_reset()
{
- angelkds_state *state = machine.driver_data<angelkds_state>();
int i;
for (i = 0; i < 4; i++)
{
- state->m_sound[i] = 0;
- state->m_sound2[i] = 0;
+ m_sound[i] = 0;
+ m_sound2[i] = 0;
}
- state->m_layer_ctrl = 0;
- state->m_txbank = 0;
- state->m_bgbotbank = 0;
- state->m_bgtopbank = 0;
+ m_layer_ctrl = 0;
+ m_txbank = 0;
+ m_bgbotbank = 0;
+ m_bgtopbank = 0;
}
static MACHINE_CONFIG_START( angelkds, angelkds_state )
@@ -610,8 +608,6 @@ static MACHINE_CONFIG_START( angelkds, angelkds_state )
MCFG_CPU_PROGRAM_MAP(sub_map)
MCFG_CPU_IO_MAP(sub_portmap)
- MCFG_MACHINE_START(angelkds)
- MCFG_MACHINE_RESET(angelkds)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
@@ -626,7 +622,6 @@ static MACHINE_CONFIG_START( angelkds, angelkds_state )
MCFG_GFXDECODE(angelkds)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(angelkds)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/appoooh.c b/src/mame/drivers/appoooh.c
index b16a5364172..a24952b099d 100644
--- a/src/mame/drivers/appoooh.c
+++ b/src/mame/drivers/appoooh.c
@@ -410,25 +410,23 @@ static const sn76496_config psg_intf =
*
*************************************/
-static MACHINE_START( appoooh )
+void appoooh_state::machine_start()
{
- appoooh_state *state = machine.driver_data<appoooh_state>();
- state->m_adpcm = machine.device("msm");
+ m_adpcm = machine().device("msm");
- state->save_item(NAME(state->m_adpcm_data));
- state->save_item(NAME(state->m_adpcm_address));
+ save_item(NAME(m_adpcm_data));
+ save_item(NAME(m_adpcm_address));
}
-static MACHINE_RESET( appoooh )
+void appoooh_state::machine_reset()
{
- appoooh_state *state = machine.driver_data<appoooh_state>();
- state->m_adpcm_address = 0xffffffff;
- state->m_adpcm_data = 0;
- state->m_scroll_x = 0;
- state->m_priority = 0;
+ m_adpcm_address = 0xffffffff;
+ m_adpcm_data = 0;
+ m_scroll_x = 0;
+ m_priority = 0;
}
static INTERRUPT_GEN( vblank_irq )
@@ -447,8 +445,6 @@ static MACHINE_CONFIG_START( appoooh_common, appoooh_state )
MCFG_CPU_IO_MAP(main_portmap)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_START(appoooh)
- MCFG_MACHINE_RESET(appoooh)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -484,8 +480,8 @@ static MACHINE_CONFIG_DERIVED( appoooh, appoooh_common )
MCFG_GFXDECODE(appoooh)
MCFG_PALETTE_LENGTH(32*8+32*8)
- MCFG_PALETTE_INIT(appoooh)
- MCFG_VIDEO_START(appoooh)
+ MCFG_PALETTE_INIT_OVERRIDE(appoooh_state,appoooh)
+ MCFG_VIDEO_START_OVERRIDE(appoooh_state,appoooh)
MACHINE_CONFIG_END
@@ -502,8 +498,8 @@ static MACHINE_CONFIG_DERIVED( robowres, appoooh_common )
MCFG_GFXDECODE(robowres)
MCFG_PALETTE_LENGTH(32*8+32*8)
- MCFG_PALETTE_INIT(robowres)
- MCFG_VIDEO_START(appoooh)
+ MCFG_PALETTE_INIT_OVERRIDE(appoooh_state,robowres)
+ MCFG_VIDEO_START_OVERRIDE(appoooh_state,appoooh)
MACHINE_CONFIG_END
/*************************************
diff --git a/src/mame/drivers/aquarium.c b/src/mame/drivers/aquarium.c
index 7b6aa06f537..7b222739b16 100644
--- a/src/mame/drivers/aquarium.c
+++ b/src/mame/drivers/aquarium.c
@@ -300,19 +300,17 @@ static const ym2151_interface ym2151_config =
};
-static MACHINE_START( aquarium )
+void aquarium_state::machine_start()
{
- aquarium_state *state = machine.driver_data<aquarium_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_aquarium_snd_ack));
+ save_item(NAME(m_aquarium_snd_ack));
}
-static MACHINE_RESET( aquarium )
+void aquarium_state::machine_reset()
{
- aquarium_state *state = machine.driver_data<aquarium_state>();
- state->m_aquarium_snd_ack = 0;
+ m_aquarium_snd_ack = 0;
}
static MACHINE_CONFIG_START( aquarium, aquarium_state )
@@ -326,8 +324,6 @@ static MACHINE_CONFIG_START( aquarium, aquarium_state )
MCFG_CPU_PROGRAM_MAP(snd_map)
MCFG_CPU_IO_MAP(snd_portmap)
- MCFG_MACHINE_START(aquarium)
- MCFG_MACHINE_RESET(aquarium)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -340,7 +336,6 @@ static MACHINE_CONFIG_START( aquarium, aquarium_state )
MCFG_GFXDECODE(aquarium)
MCFG_PALETTE_LENGTH(0x1000/2)
- MCFG_VIDEO_START(aquarium)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/arabian.c b/src/mame/drivers/arabian.c
index 4e5f73e99cb..5ceab530ee3 100644
--- a/src/mame/drivers/arabian.c
+++ b/src/mame/drivers/arabian.c
@@ -340,20 +340,18 @@ static const ay8910_interface ay8910_config =
*
*************************************/
-static MACHINE_START( arabian )
+void arabian_state::machine_start()
{
- arabian_state *state = machine.driver_data<arabian_state>();
- state->save_item(NAME(state->m_mcu_port_o));
- state->save_item(NAME(state->m_mcu_port_p));
- state->save_item(NAME(state->m_mcu_port_r));
+ save_item(NAME(m_mcu_port_o));
+ save_item(NAME(m_mcu_port_p));
+ save_item(NAME(m_mcu_port_r));
}
-static MACHINE_RESET( arabian )
+void arabian_state::machine_reset()
{
- arabian_state *state = machine.driver_data<arabian_state>();
- state->m_video_control = 0;
+ m_video_control = 0;
}
static MACHINE_CONFIG_START( arabian, arabian_state )
@@ -369,8 +367,6 @@ static MACHINE_CONFIG_START( arabian, arabian_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(arabian)
- MCFG_MACHINE_RESET(arabian)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -382,8 +378,6 @@ static MACHINE_CONFIG_START( arabian, arabian_state )
MCFG_PALETTE_LENGTH(256*32)
- MCFG_PALETTE_INIT(arabian)
- MCFG_VIDEO_START(arabian)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/arcadecl.c b/src/mame/drivers/arcadecl.c
index 77a0317d940..ac026539275 100644
--- a/src/mame/drivers/arcadecl.c
+++ b/src/mame/drivers/arcadecl.c
@@ -104,19 +104,18 @@ static void scanline_update(screen_device &screen, int scanline)
*
*************************************/
-static MACHINE_START( arcadecl )
+MACHINE_START_MEMBER(arcadecl_state,arcadecl)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( arcadecl )
+MACHINE_RESET_MEMBER(arcadecl_state,arcadecl)
{
- arcadecl_state *state = machine.driver_data<arcadecl_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, scanline_update, 32);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, scanline_update, 32);
}
@@ -331,8 +330,8 @@ static MACHINE_CONFIG_START( arcadecl, arcadecl_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
- MCFG_MACHINE_START(arcadecl)
- MCFG_MACHINE_RESET(arcadecl)
+ MCFG_MACHINE_START_OVERRIDE(arcadecl_state,arcadecl)
+ MCFG_MACHINE_RESET_OVERRIDE(arcadecl_state,arcadecl)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -346,7 +345,7 @@ static MACHINE_CONFIG_START( arcadecl, arcadecl_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(arcadecl)
- MCFG_VIDEO_START(arcadecl)
+ MCFG_VIDEO_START_OVERRIDE(arcadecl_state,arcadecl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/arcadia.c b/src/mame/drivers/arcadia.c
index deec7d946a6..46060a6b935 100644
--- a/src/mame/drivers/arcadia.c
+++ b/src/mame/drivers/arcadia.c
@@ -314,7 +314,7 @@ static MACHINE_CONFIG_START( arcadia, arcadia_amiga_state )
MCFG_CPU_ADD("maincpu", M68000, AMIGA_68000_NTSC_CLOCK)
MCFG_CPU_PROGRAM_MAP(amiga_map)
- MCFG_MACHINE_RESET(amiga)
+ MCFG_MACHINE_RESET_OVERRIDE(arcadia_amiga_state,amiga)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -328,9 +328,9 @@ static MACHINE_CONFIG_START( arcadia, arcadia_amiga_state )
MCFG_SCREEN_UPDATE_STATIC(amiga)
MCFG_PALETTE_LENGTH(4096)
- MCFG_PALETTE_INIT(amiga)
+ MCFG_PALETTE_INIT_OVERRIDE(arcadia_amiga_state,amiga)
- MCFG_VIDEO_START(amiga)
+ MCFG_VIDEO_START_OVERRIDE(arcadia_amiga_state,amiga)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c
index 811c17b687c..98bc279163f 100644
--- a/src/mame/drivers/argus.c
+++ b/src/mame/drivers/argus.c
@@ -564,8 +564,8 @@ static MACHINE_CONFIG_START( argus, argus_state )
MCFG_GFXDECODE(argus)
MCFG_PALETTE_LENGTH(896)
- MCFG_VIDEO_START(argus)
- MCFG_VIDEO_RESET(argus)
+ MCFG_VIDEO_START_OVERRIDE(argus_state,argus)
+ MCFG_VIDEO_RESET_OVERRIDE(argus_state,argus)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -608,8 +608,8 @@ static MACHINE_CONFIG_START( valtric, argus_state )
MCFG_GFXDECODE(valtric)
MCFG_PALETTE_LENGTH(768)
- MCFG_VIDEO_START(valtric)
- MCFG_VIDEO_RESET(valtric)
+ MCFG_VIDEO_START_OVERRIDE(argus_state,valtric)
+ MCFG_VIDEO_RESET_OVERRIDE(argus_state,valtric)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -652,8 +652,8 @@ static MACHINE_CONFIG_START( butasan, argus_state )
MCFG_GFXDECODE(butasan)
MCFG_PALETTE_LENGTH(768)
- MCFG_VIDEO_START(butasan)
- MCFG_VIDEO_RESET(butasan)
+ MCFG_VIDEO_START_OVERRIDE(argus_state,butasan)
+ MCFG_VIDEO_RESET_OVERRIDE(argus_state,butasan)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/aristmk4.c b/src/mame/drivers/aristmk4.c
index 26f5eb2f12b..12f516c57d9 100644
--- a/src/mame/drivers/aristmk4.c
+++ b/src/mame/drivers/aristmk4.c
@@ -316,17 +316,22 @@ public:
DECLARE_READ8_MEMBER(pb1_r);
DECLARE_READ8_MEMBER(pc1_r);
DECLARE_DRIVER_INIT(aristmk4);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
+ DECLARE_PALETTE_INIT(lions);
};
/* Partial Cashcade protocol */
static const UINT8 cashcade_p[] ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0};
-static VIDEO_START(aristmk4)
+void aristmk4_state::video_start()
{
int tile;
- for (tile = 0; tile < machine.gfx[0]->elements(); tile++)
+ for (tile = 0; tile < machine().gfx[0]->elements(); tile++)
{
- machine.gfx[0]->decode(tile);
+ machine().gfx[0]->decode(tile);
}
}
@@ -1597,12 +1602,12 @@ static I8255A_INTERFACE( ppi8255_intf )
/* same as Casino Winner HW */
-static PALETTE_INIT( aristmk4 )
+void aristmk4_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0,bit1,bit2,r,g,b;
@@ -1618,7 +1623,7 @@ static PALETTE_INIT( aristmk4 )
bit2 = (color_prom[0] >> 7) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
color_prom++;
}
}
@@ -1630,24 +1635,23 @@ DRIVER_INIT_MEMBER(aristmk4_state,aristmk4)
m_nvram = auto_alloc_array(machine(), UINT8, 0x1000);
}
-static MACHINE_START( aristmk4 )
+void aristmk4_state::machine_start()
{
- aristmk4_state *state = machine.driver_data<aristmk4_state>();
- state->m_samples = machine.device<samples_device>("samples");
- state_save_register_global_pointer(machine, state->m_nvram, 0x1000); // state->m_nvram
+ m_samples = machine().device<samples_device>("samples");
+ state_save_register_global_pointer(machine(), m_nvram, 0x1000); // m_nvram
}
-static MACHINE_RESET( aristmk4 )
+void aristmk4_state::machine_reset()
{
/* mark 4 has a link on the motherboard to switch between 1.5MHz and 3MHz clock speed */
- switch(machine.root_device().ioport("LK13")->read()) // CPU speed control... 3mhz or 1.5MHz
+ switch(machine().root_device().ioport("LK13")->read()) // CPU speed control... 3mhz or 1.5MHz
{
case 0x00:
- machine.device("maincpu")->set_unscaled_clock(MAIN_CLOCK/4); // 3 MHz
+ machine().device("maincpu")->set_unscaled_clock(MAIN_CLOCK/4); // 3 MHz
break;
case 0x10:
- machine.device("maincpu")->set_unscaled_clock(MAIN_CLOCK/8); // 1.5 MHz
+ machine().device("maincpu")->set_unscaled_clock(MAIN_CLOCK/8); // 1.5 MHz
break;
}
}
@@ -1682,8 +1686,6 @@ static MACHINE_CONFIG_START( aristmk4, aristmk4_state )
MCFG_CPU_PROGRAM_MAP(aristmk4_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(aristmk4)
- MCFG_MACHINE_RESET(aristmk4 )
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_TIMER_ADD_PERIODIC("power_fail", aristmk4_pf,attotime::from_hz(1)) // not real but required to simulate power failure to access robot test. How else can we do this ?
@@ -1696,9 +1698,7 @@ static MACHINE_CONFIG_START( aristmk4, aristmk4_state )
MCFG_GFXDECODE(aristmk4)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(aristmk4)
- MCFG_VIDEO_START(aristmk4)
MCFG_SCREEN_UPDATE_STATIC(aristmk4)
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_intf )
@@ -1731,11 +1731,11 @@ static MACHINE_CONFIG_DERIVED( aristmk4_poker, aristmk4 )
MACHINE_CONFIG_END
/* same as Aristocrat Mark-IV HW color offset 7 */
-static PALETTE_INIT( lions )
+PALETTE_INIT_MEMBER(aristmk4_state,lions)
{
int i;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0,bit1,r,g,b;
@@ -1749,12 +1749,12 @@ static PALETTE_INIT( lions )
bit1 = (i >> 5) & 0x01;
r = 0x4f * bit0 + 0xa8 * bit1;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
static MACHINE_CONFIG_DERIVED( 86lions, aristmk4 )
- MCFG_PALETTE_INIT(lions)
+ MCFG_PALETTE_INIT_OVERRIDE(aristmk4_state,lions)
MACHINE_CONFIG_END
ROM_START( 3bagflvt )
diff --git a/src/mame/drivers/aristmk5.c b/src/mame/drivers/aristmk5.c
index 15970e84a25..1af554f2472 100644
--- a/src/mame/drivers/aristmk5.c
+++ b/src/mame/drivers/aristmk5.c
@@ -81,6 +81,8 @@ public:
DECLARE_READ32_MEMBER(Ns5r50);
DECLARE_WRITE32_MEMBER(sram_banksel_w);
DECLARE_DRIVER_INIT(aristmk5);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -370,38 +372,36 @@ DRIVER_INIT_MEMBER(aristmk5_state,aristmk5)
}
-static MACHINE_START( aristmk5 )
+void aristmk5_state::machine_start()
{
- aristmk5_state *state = machine.driver_data<aristmk5_state>();
- archimedes_init(machine);
+ archimedes_init(machine());
// reset the DAC to centerline
- //machine.device<dac_device>("dac")->write_signed8(0x80);
+ //machine().device<dac_device>("dac")->write_signed8(0x80);
- state->m_mk5_2KHz_timer = machine.scheduler().timer_alloc(FUNC(mk5_2KHz_callback));
- state->m_mk5_VSYNC_timer = machine.scheduler().timer_alloc(FUNC(mk5_VSYNC_callback));
+ m_mk5_2KHz_timer = machine().scheduler().timer_alloc(FUNC(mk5_2KHz_callback));
+ m_mk5_VSYNC_timer = machine().scheduler().timer_alloc(FUNC(mk5_VSYNC_callback));
}
-static MACHINE_RESET( aristmk5 )
+void aristmk5_state::machine_reset()
{
- aristmk5_state *state = machine.driver_data<aristmk5_state>();
- archimedes_reset(machine);
- state->m_mk5_2KHz_timer->adjust(attotime::from_hz(1953.125)); // 8MHz / 4096
- state->m_mk5_VSYNC_timer->adjust(attotime::from_hz(50000)); // default bit 1 & bit 2 == 0
+ archimedes_reset(machine());
+ m_mk5_2KHz_timer->adjust(attotime::from_hz(1953.125)); // 8MHz / 4096
+ m_mk5_VSYNC_timer->adjust(attotime::from_hz(50000)); // default bit 1 & bit 2 == 0
ioc_regs[IRQ_STATUS_B] |= 0x40; //hack, set keyboard irq empty to be ON
/* load the roms according to what the operator wants */
{
- UINT8 *ROM = state->memregion("maincpu")->base();
- UINT8 *PRG;// = state->memregion("prg_code")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
+ UINT8 *PRG;// = memregion("prg_code")->base();
int i;
UINT8 op_mode;
static const char *const rom_region[] = { "set_chip_4.04", "set_chip_4.4", "clear_chip", "game_prg" };
- op_mode = machine.root_device().ioport("ROM_LOAD")->read();
+ op_mode = machine().root_device().ioport("ROM_LOAD")->read();
- PRG = machine.root_device().memregion(rom_region[op_mode & 3])->base();
+ PRG = machine().root_device().memregion(rom_region[op_mode & 3])->base();
if(PRG!=NULL)
@@ -424,8 +424,6 @@ static MACHINE_CONFIG_START( aristmk5, aristmk5_state )
MCFG_CPU_ADD("maincpu", ARM, 12000000)
MCFG_CPU_PROGRAM_MAP(aristmk5_drame_map)
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(2)) /* 1.6 - 2 seconds */
- MCFG_MACHINE_START( aristmk5 )
- MCFG_MACHINE_RESET( aristmk5 )
// MCFG_I2CMEM_ADD("i2cmem",i2cmem_interface)
@@ -437,7 +435,6 @@ static MACHINE_CONFIG_START( aristmk5, aristmk5_state )
MCFG_PALETTE_LENGTH(0x200)
- MCFG_VIDEO_START(archimds_vidc)
MCFG_SCREEN_UPDATE_STATIC(archimds_vidc)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -470,8 +467,6 @@ static MACHINE_CONFIG_START( aristmk5_usa, aristmk5_state )
MCFG_CPU_ADD("maincpu", ARM, 12000000)
MCFG_CPU_PROGRAM_MAP(aristmk5_map)
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(2)) /* 1.6 - 2 seconds */
- MCFG_MACHINE_START( aristmk5 )
- MCFG_MACHINE_RESET( aristmk5 )
// MCFG_I2CMEM_ADD("i2cmem",i2cmem_interface)
diff --git a/src/mame/drivers/aristmk6.c b/src/mame/drivers/aristmk6.c
index ebf807da47a..adeccbdf856 100644
--- a/src/mame/drivers/aristmk6.c
+++ b/src/mame/drivers/aristmk6.c
@@ -17,10 +17,11 @@ public:
UINT32 m_test_x,m_test_y,m_start_offs;
UINT8 m_type;
DECLARE_READ64_MEMBER(test_r);
+ virtual void video_start();
};
-VIDEO_START(aristmk6)
+void aristmk6_state::video_start()
{
}
@@ -146,7 +147,6 @@ static MACHINE_CONFIG_START( aristmk6, aristmk6_state )
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(aristmk6)
MACHINE_CONFIG_END
ROM_START( aristmk6 )
diff --git a/src/mame/drivers/arkanoid.c b/src/mame/drivers/arkanoid.c
index 7e4a7072482..773f5a06a52 100644
--- a/src/mame/drivers/arkanoid.c
+++ b/src/mame/drivers/arkanoid.c
@@ -972,49 +972,47 @@ static const ay8910_interface hexa_ay8910_config =
/* Machine Drivers */
-static MACHINE_START( arkanoid )
+MACHINE_START_MEMBER(arkanoid_state,arkanoid)
{
- arkanoid_state *state = machine.driver_data<arkanoid_state>();
- state->m_mcu = machine.device("mcu");
+ m_mcu = machine().device("mcu");
- state->save_item(NAME(state->m_bootleg_cmd));
+ save_item(NAME(m_bootleg_cmd));
- state->save_item(NAME(state->m_paddle_select));
- state->save_item(NAME(state->m_z80write));
- state->save_item(NAME(state->m_fromz80));
- state->save_item(NAME(state->m_m68705write));
- state->save_item(NAME(state->m_toz80));
+ save_item(NAME(m_paddle_select));
+ save_item(NAME(m_z80write));
+ save_item(NAME(m_fromz80));
+ save_item(NAME(m_m68705write));
+ save_item(NAME(m_toz80));
- state->save_item(NAME(state->m_port_a_in));
- state->save_item(NAME(state->m_port_a_out));
- state->save_item(NAME(state->m_ddr_a));
+ save_item(NAME(m_port_a_in));
+ save_item(NAME(m_port_a_out));
+ save_item(NAME(m_ddr_a));
- state->save_item(NAME(state->m_port_c_out));
- state->save_item(NAME(state->m_ddr_c));
+ save_item(NAME(m_port_c_out));
+ save_item(NAME(m_ddr_c));
- state->save_item(NAME(state->m_gfxbank));
- state->save_item(NAME(state->m_palettebank));
+ save_item(NAME(m_gfxbank));
+ save_item(NAME(m_palettebank));
}
-static MACHINE_RESET( arkanoid )
+MACHINE_RESET_MEMBER(arkanoid_state,arkanoid)
{
- arkanoid_state *state = machine.driver_data<arkanoid_state>();
- state->m_port_a_in = 0;
- state->m_port_a_out = 0;
- state->m_z80write = 0;
- state->m_m68705write = 0;
-
- state->m_bootleg_cmd = 0;
- state->m_paddle_select = 0;
- state->m_fromz80 = 0;
- state->m_toz80 = 0;
- state->m_ddr_a = 0;
- state->m_ddr_c = 0;
- state->m_port_c_out = 0;
- state->m_gfxbank = 0;
- state->m_palettebank = 0;
+ m_port_a_in = 0;
+ m_port_a_out = 0;
+ m_z80write = 0;
+ m_m68705write = 0;
+
+ m_bootleg_cmd = 0;
+ m_paddle_select = 0;
+ m_fromz80 = 0;
+ m_toz80 = 0;
+ m_ddr_a = 0;
+ m_ddr_c = 0;
+ m_port_c_out = 0;
+ m_gfxbank = 0;
+ m_palettebank = 0;
}
static MACHINE_CONFIG_START( arkanoid, arkanoid_state )
@@ -1029,8 +1027,8 @@ static MACHINE_CONFIG_START( arkanoid, arkanoid_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per second to synchronize between the MCU and the main CPU
- MCFG_MACHINE_START(arkanoid)
- MCFG_MACHINE_RESET(arkanoid)
+ MCFG_MACHINE_START_OVERRIDE(arkanoid_state,arkanoid)
+ MCFG_MACHINE_RESET_OVERRIDE(arkanoid_state,arkanoid)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1044,7 +1042,7 @@ static MACHINE_CONFIG_START( arkanoid, arkanoid_state )
MCFG_PALETTE_LENGTH(512)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(arkanoid)
+ MCFG_VIDEO_START_OVERRIDE(arkanoid_state,arkanoid)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1062,8 +1060,8 @@ static MACHINE_CONFIG_START( hexa, arkanoid_state )
MCFG_CPU_PROGRAM_MAP(hexa_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(arkanoid)
- MCFG_MACHINE_RESET(arkanoid)
+ MCFG_MACHINE_START_OVERRIDE(arkanoid_state,arkanoid)
+ MCFG_MACHINE_RESET_OVERRIDE(arkanoid_state,arkanoid)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1077,7 +1075,7 @@ static MACHINE_CONFIG_START( hexa, arkanoid_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(arkanoid)
+ MCFG_VIDEO_START_OVERRIDE(arkanoid_state,arkanoid)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/armedf.c b/src/mame/drivers/armedf.c
index 7a5fdeaf905..bbc27cc8f5c 100644
--- a/src/mame/drivers/armedf.c
+++ b/src/mame/drivers/armedf.c
@@ -1147,32 +1147,30 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( armedf )
+MACHINE_START_MEMBER(armedf_state,armedf)
{
- armedf_state *state = machine.driver_data<armedf_state>();
-
- state->save_item(NAME(state->m_old_mcu_mode));
- state->save_item(NAME(state->m_scroll_msb));
- state->save_item(NAME(state->m_waiting_msb));
- state->save_item(NAME(state->m_vreg));
- state->save_item(NAME(state->m_fg_scrollx));
- state->save_item(NAME(state->m_fg_scrolly));
- state->save_item(NAME(state->m_bg_scrollx));
- state->save_item(NAME(state->m_bg_scrolly));
+
+ save_item(NAME(m_old_mcu_mode));
+ save_item(NAME(m_scroll_msb));
+ save_item(NAME(m_waiting_msb));
+ save_item(NAME(m_vreg));
+ save_item(NAME(m_fg_scrollx));
+ save_item(NAME(m_fg_scrolly));
+ save_item(NAME(m_bg_scrollx));
+ save_item(NAME(m_bg_scrolly));
}
-static MACHINE_RESET( armedf )
+MACHINE_RESET_MEMBER(armedf_state,armedf)
{
- armedf_state *state = machine.driver_data<armedf_state>();
-
- state->m_old_mcu_mode = 0;
- state->m_scroll_msb = 0;
- state->m_waiting_msb = 0;
- state->m_vreg = 0;
- state->m_fg_scrollx = 0;
- state->m_fg_scrolly = 0;
- state->m_bg_scrollx = 0;
- state->m_bg_scrolly = 0;
+
+ m_old_mcu_mode = 0;
+ m_scroll_msb = 0;
+ m_waiting_msb = 0;
+ m_vreg = 0;
+ m_fg_scrollx = 0;
+ m_fg_scrolly = 0;
+ m_bg_scrollx = 0;
+ m_bg_scrolly = 0;
}
@@ -1188,8 +1186,8 @@ static MACHINE_CONFIG_START( terraf, armedf_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, XTAL_8MHz/2/512) // ?
- MCFG_MACHINE_START(armedf)
- MCFG_MACHINE_RESET(armedf)
+ MCFG_MACHINE_START_OVERRIDE(armedf_state,armedf)
+ MCFG_MACHINE_RESET_OVERRIDE(armedf_state,armedf)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1198,7 +1196,7 @@ static MACHINE_CONFIG_START( terraf, armedf_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
- MCFG_VIDEO_START(terraf)
+ MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
@@ -1237,8 +1235,8 @@ static MACHINE_CONFIG_START( terrafb, armedf_state )
MCFG_CPU_PROGRAM_MAP(terrafb_extraz80_map)
MCFG_CPU_IO_MAP(terrafb_extraz80_portmap)
- MCFG_MACHINE_START(armedf)
- MCFG_MACHINE_RESET(armedf)
+ MCFG_MACHINE_START_OVERRIDE(armedf_state,armedf)
+ MCFG_MACHINE_RESET_OVERRIDE(armedf_state,armedf)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1247,7 +1245,7 @@ static MACHINE_CONFIG_START( terrafb, armedf_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
- MCFG_VIDEO_START(terraf)
+ MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
@@ -1281,8 +1279,8 @@ static MACHINE_CONFIG_START( kozure, armedf_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, XTAL_8MHz/2/512) // ?
- MCFG_MACHINE_START(armedf)
- MCFG_MACHINE_RESET(armedf)
+ MCFG_MACHINE_START_OVERRIDE(armedf_state,armedf)
+ MCFG_MACHINE_RESET_OVERRIDE(armedf_state,armedf)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1291,7 +1289,7 @@ static MACHINE_CONFIG_START( kozure, armedf_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) // 320 x 240, trusted
- MCFG_VIDEO_START(terraf)
+ MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
@@ -1325,8 +1323,8 @@ static MACHINE_CONFIG_START( armedf, armedf_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, XTAL_8MHz/2/512) // ?
- MCFG_MACHINE_START(armedf)
- MCFG_MACHINE_RESET(armedf)
+ MCFG_MACHINE_START_OVERRIDE(armedf_state,armedf)
+ MCFG_MACHINE_RESET_OVERRIDE(armedf_state,armedf)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1335,7 +1333,7 @@ static MACHINE_CONFIG_START( armedf, armedf_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
- MCFG_VIDEO_START(armedf)
+ MCFG_VIDEO_START_OVERRIDE(armedf_state,armedf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
@@ -1369,8 +1367,8 @@ static MACHINE_CONFIG_START( cclimbr2, armedf_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, XTAL_8MHz/2/512) // ?
- MCFG_MACHINE_START(armedf)
- MCFG_MACHINE_RESET(armedf)
+ MCFG_MACHINE_START_OVERRIDE(armedf_state,armedf)
+ MCFG_MACHINE_RESET_OVERRIDE(armedf_state,armedf)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1379,7 +1377,7 @@ static MACHINE_CONFIG_START( cclimbr2, armedf_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_VIDEO_START(terraf)
+ MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
@@ -1413,8 +1411,8 @@ static MACHINE_CONFIG_START( legion, armedf_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, XTAL_8MHz/2/512) // ?
- MCFG_MACHINE_START(armedf)
- MCFG_MACHINE_RESET(armedf)
+ MCFG_MACHINE_START_OVERRIDE(armedf_state,armedf)
+ MCFG_MACHINE_RESET_OVERRIDE(armedf_state,armedf)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1423,7 +1421,7 @@ static MACHINE_CONFIG_START( legion, armedf_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_VIDEO_START(terraf)
+ MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
@@ -1457,8 +1455,8 @@ static MACHINE_CONFIG_START( legiono, armedf_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, XTAL_8MHz/2/512) // ?
- MCFG_MACHINE_START(armedf)
- MCFG_MACHINE_RESET(armedf)
+ MCFG_MACHINE_START_OVERRIDE(armedf_state,armedf)
+ MCFG_MACHINE_RESET_OVERRIDE(armedf_state,armedf)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1467,7 +1465,7 @@ static MACHINE_CONFIG_START( legiono, armedf_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_VIDEO_START(terraf)
+ MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
@@ -1489,20 +1487,18 @@ static MACHINE_CONFIG_START( legiono, armedf_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MACHINE_CONFIG_END
-static MACHINE_START( bigfghtr )
+MACHINE_START_MEMBER(bigfghtr_state,bigfghtr)
{
- bigfghtr_state *state = machine.driver_data<bigfghtr_state>();
- MACHINE_START_CALL(armedf);
- state->save_item(NAME(state->m_read_latch));
+ MACHINE_START_CALL_MEMBER(armedf);
+ save_item(NAME(m_read_latch));
}
-static MACHINE_RESET( bigfghtr )
+MACHINE_RESET_MEMBER(bigfghtr_state,bigfghtr)
{
- bigfghtr_state *state = machine.driver_data<bigfghtr_state>();
- MACHINE_RESET_CALL(armedf);
- state->m_read_latch = 0;
+ MACHINE_RESET_CALL_MEMBER(armedf);
+ m_read_latch = 0;
}
static MACHINE_CONFIG_START( bigfghtr, bigfghtr_state )
@@ -1516,8 +1512,8 @@ static MACHINE_CONFIG_START( bigfghtr, bigfghtr_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, XTAL_8MHz/2/512) // ?
- MCFG_MACHINE_START(bigfghtr)
- MCFG_MACHINE_RESET(bigfghtr)
+ MCFG_MACHINE_START_OVERRIDE(bigfghtr_state,bigfghtr)
+ MCFG_MACHINE_RESET_OVERRIDE(bigfghtr_state,bigfghtr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1526,7 +1522,7 @@ static MACHINE_CONFIG_START( bigfghtr, bigfghtr_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
- MCFG_VIDEO_START(armedf)
+ MCFG_VIDEO_START_OVERRIDE(armedf_state,armedf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
diff --git a/src/mame/drivers/artmagic.c b/src/mame/drivers/artmagic.c
index 7753cd3e8f7..28d80cf0871 100644
--- a/src/mame/drivers/artmagic.c
+++ b/src/mame/drivers/artmagic.c
@@ -65,25 +65,23 @@ static void m68k_gen_int(device_t *device, int state)
*
*************************************/
-static MACHINE_START( artmagic )
+void artmagic_state::machine_start()
{
- artmagic_state *state = machine.driver_data<artmagic_state>();
- state_save_register_global(machine, state->m_tms_irq);
- state_save_register_global(machine, state->m_hack_irq);
- state_save_register_global(machine, state->m_prot_input_index);
- state_save_register_global(machine, state->m_prot_output_index);
- state_save_register_global(machine, state->m_prot_output_bit);
- state_save_register_global(machine, state->m_prot_bit_index);
- state_save_register_global(machine, state->m_prot_save);
- state_save_register_global_array(machine, state->m_prot_input);
- state_save_register_global_array(machine, state->m_prot_output);
+ state_save_register_global(machine(), m_tms_irq);
+ state_save_register_global(machine(), m_hack_irq);
+ state_save_register_global(machine(), m_prot_input_index);
+ state_save_register_global(machine(), m_prot_output_index);
+ state_save_register_global(machine(), m_prot_output_bit);
+ state_save_register_global(machine(), m_prot_bit_index);
+ state_save_register_global(machine(), m_prot_save);
+ state_save_register_global_array(machine(), m_prot_input);
+ state_save_register_global_array(machine(), m_prot_output);
}
-static MACHINE_RESET( artmagic )
+void artmagic_state::machine_reset()
{
- artmagic_state *state = machine.driver_data<artmagic_state>();
- state->m_tms_irq = state->m_hack_irq = 0;
- update_irq_state(machine);
+ m_tms_irq = m_hack_irq = 0;
+ update_irq_state(machine());
}
@@ -843,15 +841,12 @@ static MACHINE_CONFIG_START( artmagic, artmagic_state )
MCFG_CPU_CONFIG(tms_config)
MCFG_CPU_PROGRAM_MAP(tms_map)
- MCFG_MACHINE_START(artmagic)
- MCFG_MACHINE_RESET(artmagic)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
MCFG_NVRAM_ADD_1FILL("nvram")
/* video hardware */
MCFG_TLC34076_ADD("tlc34076", tlc34076_6_bit_intf)
- MCFG_VIDEO_START(artmagic)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_40MHz/6, 428, 0, 320, 313, 0, 256)
diff --git a/src/mame/drivers/ashnojoe.c b/src/mame/drivers/ashnojoe.c
index 1069985986b..6bed7ee151e 100644
--- a/src/mame/drivers/ashnojoe.c
+++ b/src/mame/drivers/ashnojoe.c
@@ -327,24 +327,22 @@ static const msm5205_interface msm5205_config =
};
-static MACHINE_START( ashnojoe )
+void ashnojoe_state::machine_start()
{
- ashnojoe_state *state = machine.driver_data<ashnojoe_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_adpcm_byte));
- state->save_item(NAME(state->m_soundlatch_status));
- state->save_item(NAME(state->m_msm5205_vclk_toggle));
+ save_item(NAME(m_adpcm_byte));
+ save_item(NAME(m_soundlatch_status));
+ save_item(NAME(m_msm5205_vclk_toggle));
}
-static MACHINE_RESET( ashnojoe )
+void ashnojoe_state::machine_reset()
{
- ashnojoe_state *state = machine.driver_data<ashnojoe_state>();
- state->m_adpcm_byte = 0;
- state->m_soundlatch_status = 0;
- state->m_msm5205_vclk_toggle = 0;
+ m_adpcm_byte = 0;
+ m_soundlatch_status = 0;
+ m_msm5205_vclk_toggle = 0;
}
@@ -359,8 +357,6 @@ static MACHINE_CONFIG_START( ashnojoe, ashnojoe_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(sound_portmap)
- MCFG_MACHINE_START(ashnojoe)
- MCFG_MACHINE_RESET(ashnojoe)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -373,7 +369,6 @@ static MACHINE_CONFIG_START( ashnojoe, ashnojoe_state )
MCFG_GFXDECODE(ashnojoe)
MCFG_PALETTE_LENGTH(0x1000/2)
- MCFG_VIDEO_START(ashnojoe)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/asterix.c b/src/mame/drivers/asterix.c
index d0ac20aa339..826e1c0fbb5 100644
--- a/src/mame/drivers/asterix.c
+++ b/src/mame/drivers/asterix.c
@@ -243,48 +243,46 @@ static const k05324x_interface asterix_k05324x_intf =
asterix_sprite_callback
};
-static MACHINE_START( asterix )
+void asterix_state::machine_start()
{
- asterix_state *state = machine.driver_data<asterix_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k053260 = machine.device("k053260");
- state->m_k056832 = machine.device("k056832");
- state->m_k053244 = machine.device("k053244");
- state->m_k053251 = machine.device("k053251");
-
- state->save_item(NAME(state->m_cur_control2));
- state->save_item(NAME(state->m_prot));
-
- state->save_item(NAME(state->m_sprite_colorbase));
- state->save_item(NAME(state->m_spritebank));
- state->save_item(NAME(state->m_layerpri));
- state->save_item(NAME(state->m_layer_colorbase));
- state->save_item(NAME(state->m_tilebanks));
- state->save_item(NAME(state->m_spritebanks));
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k053260 = machine().device("k053260");
+ m_k056832 = machine().device("k056832");
+ m_k053244 = machine().device("k053244");
+ m_k053251 = machine().device("k053251");
+
+ save_item(NAME(m_cur_control2));
+ save_item(NAME(m_prot));
+
+ save_item(NAME(m_sprite_colorbase));
+ save_item(NAME(m_spritebank));
+ save_item(NAME(m_layerpri));
+ save_item(NAME(m_layer_colorbase));
+ save_item(NAME(m_tilebanks));
+ save_item(NAME(m_spritebanks));
}
-static MACHINE_RESET( asterix )
+void asterix_state::machine_reset()
{
- asterix_state *state = machine.driver_data<asterix_state>();
int i;
- state->m_cur_control2 = 0;
- state->m_prot[0] = 0;
- state->m_prot[1] = 0;
+ m_cur_control2 = 0;
+ m_prot[0] = 0;
+ m_prot[1] = 0;
- state->m_sprite_colorbase = 0;
- state->m_spritebank = 0;
- state->m_layerpri[0] = 0;
- state->m_layerpri[1] = 0;
- state->m_layerpri[2] = 0;
+ m_sprite_colorbase = 0;
+ m_spritebank = 0;
+ m_layerpri[0] = 0;
+ m_layerpri[1] = 0;
+ m_layerpri[2] = 0;
for (i = 0; i < 4; i++)
{
- state->m_layer_colorbase[i] = 0;
- state->m_tilebanks[i] = 0;
- state->m_spritebanks[i] = 0;
+ m_layer_colorbase[i] = 0;
+ m_tilebanks[i] = 0;
+ m_spritebanks[i] = 0;
}
}
@@ -298,8 +296,6 @@ static MACHINE_CONFIG_START( asterix, asterix_state )
MCFG_CPU_ADD("audiocpu", Z80, 8000000)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(asterix)
- MCFG_MACHINE_RESET(asterix)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
diff --git a/src/mame/drivers/asteroid.c b/src/mame/drivers/asteroid.c
index b71d4b081d7..466dc1e137d 100644
--- a/src/mame/drivers/asteroid.c
+++ b/src/mame/drivers/asteroid.c
@@ -617,7 +617,6 @@ static MACHINE_CONFIG_START( asteroid, asteroid_state )
MCFG_CPU_PROGRAM_MAP(asteroid_map)
MCFG_CPU_PERIODIC_INT(asteroid_interrupt, (double)MASTER_CLOCK/4096/12)
- MCFG_MACHINE_RESET(asteroid)
/* video hardware */
MCFG_SCREEN_ADD("screen", VECTOR)
diff --git a/src/mame/drivers/astinvad.c b/src/mame/drivers/astinvad.c
index 7cc5c206a38..c01646523f0 100644
--- a/src/mame/drivers/astinvad.c
+++ b/src/mame/drivers/astinvad.c
@@ -76,6 +76,11 @@ public:
DECLARE_WRITE8_MEMBER(astinvad_sound2_w);
DECLARE_DRIVER_INIT(kamikaze);
DECLARE_DRIVER_INIT(spcking2);
+ DECLARE_MACHINE_START(kamikaze);
+ DECLARE_MACHINE_RESET(kamikaze);
+ DECLARE_MACHINE_START(spaceint);
+ DECLARE_MACHINE_RESET(spaceint);
+ DECLARE_VIDEO_START(spaceint);
};
@@ -116,13 +121,12 @@ static I8255A_INTERFACE( ppi8255_1_intf )
*
*************************************/
-static VIDEO_START( spaceint )
+VIDEO_START_MEMBER(astinvad_state,spaceint)
{
- astinvad_state *state = machine.driver_data<astinvad_state>();
- state->m_colorram = auto_alloc_array(machine, UINT8, state->m_videoram.bytes());
+ m_colorram = auto_alloc_array(machine(), UINT8, m_videoram.bytes());
- state->save_item(NAME(state->m_color_latch));
- state->save_pointer(NAME(state->m_colorram), state->m_videoram.bytes());
+ save_item(NAME(m_color_latch));
+ save_pointer(NAME(m_colorram), m_videoram.bytes());
}
@@ -235,49 +239,45 @@ static TIMER_CALLBACK( kamizake_int_gen )
}
-static MACHINE_START( kamikaze )
+MACHINE_START_MEMBER(astinvad_state,kamikaze)
{
- astinvad_state *state = machine.driver_data<astinvad_state>();
- state->m_samples = machine.device<samples_device>("samples");
+ m_samples = machine().device<samples_device>("samples");
- state->m_int_timer = machine.scheduler().timer_alloc(FUNC(kamizake_int_gen));
- state->m_int_timer->adjust(machine.primary_screen->time_until_pos(128), 128);
+ m_int_timer = machine().scheduler().timer_alloc(FUNC(kamizake_int_gen));
+ m_int_timer->adjust(machine().primary_screen->time_until_pos(128), 128);
- state->save_item(NAME(state->m_screen_flip));
- state->save_item(NAME(state->m_screen_red));
- state->save_item(NAME(state->m_sound_state));
+ save_item(NAME(m_screen_flip));
+ save_item(NAME(m_screen_red));
+ save_item(NAME(m_sound_state));
}
-static MACHINE_RESET( kamikaze )
+MACHINE_RESET_MEMBER(astinvad_state,kamikaze)
{
- astinvad_state *state = machine.driver_data<astinvad_state>();
- state->m_screen_flip = 0;
- state->m_screen_red = 0;
- state->m_sound_state[0] = 0;
- state->m_sound_state[1] = 0;
+ m_screen_flip = 0;
+ m_screen_red = 0;
+ m_sound_state[0] = 0;
+ m_sound_state[1] = 0;
}
-static MACHINE_START( spaceint )
+MACHINE_START_MEMBER(astinvad_state,spaceint)
{
- astinvad_state *state = machine.driver_data<astinvad_state>();
- state->m_samples = machine.device<samples_device>("samples");
+ m_samples = machine().device<samples_device>("samples");
- state->save_item(NAME(state->m_screen_flip));
- state->save_item(NAME(state->m_sound_state));
+ save_item(NAME(m_screen_flip));
+ save_item(NAME(m_sound_state));
}
-static MACHINE_RESET( spaceint )
+MACHINE_RESET_MEMBER(astinvad_state,spaceint)
{
- astinvad_state *state = machine.driver_data<astinvad_state>();
- state->m_screen_flip = 0;
- state->m_sound_state[0] = 0;
- state->m_sound_state[1] = 0;
- state->m_color_latch = 0;
+ m_screen_flip = 0;
+ m_sound_state[0] = 0;
+ m_sound_state[1] = 0;
+ m_color_latch = 0;
}
@@ -592,8 +592,8 @@ static MACHINE_CONFIG_START( kamikaze, astinvad_state )
MCFG_CPU_PROGRAM_MAP(kamikaze_map)
MCFG_CPU_IO_MAP(kamikaze_portmap)
- MCFG_MACHINE_START(kamikaze)
- MCFG_MACHINE_RESET(kamikaze)
+ MCFG_MACHINE_START_OVERRIDE(astinvad_state,kamikaze)
+ MCFG_MACHINE_RESET_OVERRIDE(astinvad_state,kamikaze)
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf )
MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf )
@@ -627,11 +627,11 @@ static MACHINE_CONFIG_START( spaceint, astinvad_state )
MCFG_CPU_IO_MAP(spaceint_portmap)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(spaceint)
- MCFG_MACHINE_RESET(spaceint)
+ MCFG_MACHINE_START_OVERRIDE(astinvad_state,spaceint)
+ MCFG_MACHINE_RESET_OVERRIDE(astinvad_state,spaceint)
/* video hardware */
- MCFG_VIDEO_START(spaceint)
+ MCFG_VIDEO_START_OVERRIDE(astinvad_state,spaceint)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_SIZE(32*8, 32*8)
diff --git a/src/mame/drivers/astrafr.c b/src/mame/drivers/astrafr.c
index 6fe2205c0a5..6c8a453683c 100644
--- a/src/mame/drivers/astrafr.c
+++ b/src/mame/drivers/astrafr.c
@@ -120,6 +120,10 @@ public:
DECLARE_DRIVER_INIT(astradec);
DECLARE_DRIVER_INIT(astradec_dual);
DECLARE_DRIVER_INIT(astradec_sml_dual);
+ DECLARE_MACHINE_START(astra_common);
+ DECLARE_MACHINE_START(astra_2e);
+ DECLARE_MACHINE_START(astra_37);
+ DECLARE_MACHINE_START(astra_57);
};
@@ -260,38 +264,35 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( astrafr )
INPUT_PORTS_END
-static MACHINE_START( astra_common )
+MACHINE_START_MEMBER(astrafr_state,astra_common)
{
- astrafr_state *state = machine.driver_data<astrafr_state>();
- state->m_cpuregion = (UINT32*)state->memregion( "maincpu" )->base();
- state->m_cpuregion_size = state->memregion( "maincpu" )->bytes()/4;
- state->m_mainram = (UINT32*)auto_alloc_array_clear(machine, UINT32, 0x10000);
+ m_cpuregion = (UINT32*)memregion( "maincpu" )->base();
+ m_cpuregion_size = memregion( "maincpu" )->bytes()/4;
+ m_mainram = (UINT32*)auto_alloc_array_clear(machine(), UINT32, 0x10000);
- state->m_slavecpuregion = (UINT32*)state->memregion( "slavecpu" )->base();
- state->m_slavecpuregion_size = state->memregion( "slavecpu" )->bytes()/4;
- state->m_slaveram = (UINT32*)auto_alloc_array_clear(machine, UINT32, 0x10000);
+ m_slavecpuregion = (UINT32*)memregion( "slavecpu" )->base();
+ m_slavecpuregion_size = memregion( "slavecpu" )->bytes()/4;
+ m_slaveram = (UINT32*)auto_alloc_array_clear(machine(), UINT32, 0x10000);
}
/* the FPGA area read/write addresses move around ... */
-static MACHINE_START( astra_37 )
+MACHINE_START_MEMBER(astrafr_state,astra_37)
{
- astrafr_state *state = machine.driver_data<astrafr_state>();
- state->fgpa_after_rom_write_addr = 0x30;
- state->fgpa_first_read_addr = 0x33;
- state->fgpa_rom_write_addr = 0x37;
- MACHINE_START_CALL(astra_common);
+ fgpa_after_rom_write_addr = 0x30;
+ fgpa_first_read_addr = 0x33;
+ fgpa_rom_write_addr = 0x37;
+ MACHINE_START_CALL_MEMBER(astra_common);
}
-static MACHINE_START( astra_2e )
+MACHINE_START_MEMBER(astrafr_state,astra_2e)
{
- astrafr_state *state = machine.driver_data<astrafr_state>();
- state->fgpa_after_rom_write_addr = 0x20;
- state->fgpa_first_read_addr = 0x23;
- state->fgpa_rom_write_addr = 0x2e;
- MACHINE_START_CALL(astra_common);
+ fgpa_after_rom_write_addr = 0x20;
+ fgpa_first_read_addr = 0x23;
+ fgpa_rom_write_addr = 0x2e;
+ MACHINE_START_CALL_MEMBER(astra_common);
}
@@ -302,15 +303,15 @@ static MACHINE_CONFIG_START( astrafr_dual, astrafr_state )
MCFG_CPU_ADD("slavecpu", M68340, 16000000)
MCFG_CPU_PROGRAM_MAP(astrafr_slave_map)
- MCFG_MACHINE_START( astra_common )
+ MCFG_MACHINE_START_OVERRIDE(astrafr_state, astra_common )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( astrafr_dual_2e, astrafr_dual )
- MCFG_MACHINE_START( astra_2e )
+ MCFG_MACHINE_START_OVERRIDE(astrafr_state, astra_2e )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( astrafr_dual_37, astrafr_dual )
- MCFG_MACHINE_START( astra_37 )
+ MCFG_MACHINE_START_OVERRIDE(astrafr_state, astra_37 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( astrafr_dual_alt, astrafr_state )
@@ -322,7 +323,7 @@ static MACHINE_CONFIG_START( astrafr_dual_alt, astrafr_state )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( astrafr_dual_alt_37, astrafr_dual_alt )
- MCFG_MACHINE_START( astra_37 )
+ MCFG_MACHINE_START_OVERRIDE(astrafr_state, astra_37 )
MACHINE_CONFIG_END
@@ -330,39 +331,38 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( astra_single, astrafr_state )
MCFG_CPU_ADD("maincpu", M68340, 16000000)
MCFG_CPU_PROGRAM_MAP(astra_map)
- MCFG_MACHINE_START( astra_common )
+ MCFG_MACHINE_START_OVERRIDE(astrafr_state, astra_common )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( astra_single_37, astra_single )
- MCFG_MACHINE_START( astra_37 )
+ MCFG_MACHINE_START_OVERRIDE(astrafr_state, astra_37 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( astra_single_2e, astra_single )
- MCFG_MACHINE_START( astra_2e )
+ MCFG_MACHINE_START_OVERRIDE(astrafr_state, astra_2e )
MACHINE_CONFIG_END
-static MACHINE_START( astra_57 )
+MACHINE_START_MEMBER(astrafr_state,astra_57)
{
- astrafr_state *state = machine.driver_data<astrafr_state>();
-// state->fgpa_after_rom_write_addr = 0x20;
-// state->fgpa_first_read_addr = 0x23;
- state->fgpa_rom_write_addr = 0x57;
- MACHINE_START_CALL(astra_common);
+// fgpa_after_rom_write_addr = 0x20;
+// fgpa_first_read_addr = 0x23;
+ fgpa_rom_write_addr = 0x57;
+ MACHINE_START_CALL_MEMBER(astra_common);
}
static MACHINE_CONFIG_START( astra_single_alt, astrafr_state )
MCFG_CPU_ADD("maincpu", M68340, 16000000)
MCFG_CPU_PROGRAM_MAP(astra_map)
- MCFG_MACHINE_START( astra_common )
+ MCFG_MACHINE_START_OVERRIDE(astrafr_state, astra_common )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( astra_single_alt_57, astra_single_alt )
- MCFG_MACHINE_START( astra_57 )
+ MCFG_MACHINE_START_OVERRIDE(astrafr_state, astra_57 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( astra_single_alt_37, astra_single_alt )
- MCFG_MACHINE_START( astra_37 )
+ MCFG_MACHINE_START_OVERRIDE(astrafr_state, astra_37 )
MACHINE_CONFIG_END
/* are the ptM roms Master and ptS roms Slave?
diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c
index e056eb712a8..f291cc0b532 100644
--- a/src/mame/drivers/astrocde.c
+++ b/src/mame/drivers/astrocde.c
@@ -1300,8 +1300,6 @@ static MACHINE_CONFIG_START( astrocade_base, astrocde_state )
MCFG_SCREEN_DEFAULT_POSITION(1.1, 0.0, 1.18, -0.018) /* clip out borders */
MCFG_SCREEN_UPDATE_STATIC(astrocde)
- MCFG_PALETTE_INIT(astrocde)
- MCFG_VIDEO_START(astrocde)
MACHINE_CONFIG_END
@@ -1313,8 +1311,8 @@ static MACHINE_CONFIG_DERIVED( astrocade_16color_base, astrocade_base )
/* video hardware */
MCFG_PALETTE_LENGTH(4096)
- MCFG_PALETTE_INIT(profpac)
- MCFG_VIDEO_START(profpac)
+ MCFG_PALETTE_INIT_OVERRIDE(astrocde_state,profpac)
+ MCFG_VIDEO_START_OVERRIDE(astrocde_state,profpac)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(profpac)
diff --git a/src/mame/drivers/astrocorp.c b/src/mame/drivers/astrocorp.c
index 7446a151d0f..db0bda7a4f9 100644
--- a/src/mame/drivers/astrocorp.c
+++ b/src/mame/drivers/astrocorp.c
@@ -63,21 +63,21 @@ public:
DECLARE_WRITE16_MEMBER(skilldrp_sound_bank_w);
DECLARE_DRIVER_INIT(showhanc);
DECLARE_DRIVER_INIT(showhand);
+ DECLARE_VIDEO_START(astrocorp);
};
/***************************************************************************
Video
***************************************************************************/
-static VIDEO_START( astrocorp )
+VIDEO_START_MEMBER(astrocorp_state,astrocorp)
{
- astrocorp_state *state = machine.driver_data<astrocorp_state>();
- machine.primary_screen->register_screen_bitmap(state->m_bitmap);
+ machine().primary_screen->register_screen_bitmap(m_bitmap);
- state->save_item(NAME(state->m_bitmap));
- state->save_item (NAME(state->m_screen_enable));
- state->save_item (NAME(state->m_draw_sprites));
+ save_item(NAME(m_bitmap));
+ save_item (NAME(m_screen_enable));
+ save_item (NAME(m_draw_sprites));
}
/***************************************************************************
@@ -492,7 +492,7 @@ static MACHINE_CONFIG_START( showhand, astrocorp_state )
MCFG_GFXDECODE(astrocorp)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(astrocorp)
+ MCFG_VIDEO_START_OVERRIDE(astrocorp_state,astrocorp)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -543,7 +543,7 @@ static MACHINE_CONFIG_START( skilldrp, astrocorp_state )
MCFG_GFXDECODE(astrocorp)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(astrocorp)
+ MCFG_VIDEO_START_OVERRIDE(astrocorp_state,astrocorp)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/astrof.c b/src/mame/drivers/astrof.c
index 1932d383b8b..7039cec625a 100644
--- a/src/mame/drivers/astrof.c
+++ b/src/mame/drivers/astrof.c
@@ -168,13 +168,12 @@ CUSTOM_INPUT_MEMBER(astrof_state::tomahawk_controls_r)
#define TOMAHAWK_NUM_PENS (0x20)
-static VIDEO_START( astrof )
+void astrof_state::video_start()
{
- astrof_state *state = machine.driver_data<astrof_state>();
/* allocate the color RAM -- half the size of the video RAM as A0 is not connected */
- state->m_colorram = auto_alloc_array(machine, UINT8, state->m_videoram.bytes() / 2);
- state->save_pointer(NAME(state->m_colorram), state->m_videoram.bytes() / 2);
+ m_colorram = auto_alloc_array(machine(), UINT8, m_videoram.bytes() / 2);
+ save_pointer(NAME(m_colorram), m_videoram.bytes() / 2);
}
@@ -483,73 +482,69 @@ READ8_MEMBER(astrof_state::tomahawk_protection_r)
*
*************************************/
-static MACHINE_START( astrof )
+MACHINE_START_MEMBER(astrof_state,astrof)
{
- astrof_state *state = machine.driver_data<astrof_state>();
/* the 74175 outputs all HI's if not otherwise set */
- astrof_set_video_control_2(machine, 0xff);
+ astrof_set_video_control_2(machine(), 0xff);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_samples = machine.device<samples_device>("samples");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_samples = machine().device<samples_device>("samples");
/* register for state saving */
- state->save_item(NAME(state->m_red_on));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_screen_off));
- state->save_item(NAME(state->m_astrof_palette_bank));
- state->save_item(NAME(state->m_port_1_last));
- state->save_item(NAME(state->m_port_2_last));
- state->save_item(NAME(state->m_astrof_start_explosion));
- state->save_item(NAME(state->m_astrof_death_playing));
- state->save_item(NAME(state->m_astrof_bosskill_playing));
+ save_item(NAME(m_red_on));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_screen_off));
+ save_item(NAME(m_astrof_palette_bank));
+ save_item(NAME(m_port_1_last));
+ save_item(NAME(m_port_2_last));
+ save_item(NAME(m_astrof_start_explosion));
+ save_item(NAME(m_astrof_death_playing));
+ save_item(NAME(m_astrof_bosskill_playing));
}
-static MACHINE_START( abattle )
+MACHINE_START_MEMBER(astrof_state,abattle)
{
- astrof_state *state = machine.driver_data<astrof_state>();
/* register for state saving */
- state->save_item(NAME(state->m_abattle_count));
+ save_item(NAME(m_abattle_count));
- MACHINE_START_CALL(astrof);
+ MACHINE_START_CALL_MEMBER(astrof);
}
-static MACHINE_START( spfghmk2 )
+MACHINE_START_MEMBER(astrof_state,spfghmk2)
{
- astrof_state *state = machine.driver_data<astrof_state>();
/* the 74175 outputs all HI's if not otherwise set */
- spfghmk2_set_video_control_2(machine, 0xff);
+ spfghmk2_set_video_control_2(machine(), 0xff);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
/* the red background circuit is disabled */
- state->m_red_on = FALSE;
+ m_red_on = FALSE;
/* register for state saving */
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_screen_off));
- state->save_item(NAME(state->m_astrof_palette_bank));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_screen_off));
+ save_item(NAME(m_astrof_palette_bank));
}
-static MACHINE_START( tomahawk )
+MACHINE_START_MEMBER(astrof_state,tomahawk)
{
- astrof_state *state = machine.driver_data<astrof_state>();
/* the 74175 outputs all HI's if not otherwise set */
- tomahawk_set_video_control_2(machine, 0xff);
+ tomahawk_set_video_control_2(machine(), 0xff);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_sn = machine.device("snsnd");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_sn = machine().device("snsnd");
/* register for state saving */
- state->save_item(NAME(state->m_red_on));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_screen_off));
+ save_item(NAME(m_red_on));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_screen_off));
}
@@ -560,10 +555,9 @@ static MACHINE_START( tomahawk )
*
*************************************/
-static MACHINE_RESET( abattle )
+MACHINE_RESET_MEMBER(astrof_state,abattle)
{
- astrof_state *state = machine.driver_data<astrof_state>();
- state->m_abattle_count = 0;
+ m_abattle_count = 0;
}
@@ -952,7 +946,6 @@ static MACHINE_CONFIG_START( base, astrof_state )
MCFG_TIMER_ADD_SCANLINE("vblank", irq_callback, "screen", VBSTART, 0)
/* video hardware */
- MCFG_VIDEO_START(astrof)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
@@ -965,7 +958,7 @@ static MACHINE_CONFIG_DERIVED( astrof, base )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(astrof_map)
- MCFG_MACHINE_START(astrof)
+ MCFG_MACHINE_START_OVERRIDE(astrof_state,astrof)
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
@@ -980,8 +973,8 @@ static MACHINE_CONFIG_DERIVED( abattle, astrof )
/* basic machine hardware */
- MCFG_MACHINE_START(abattle)
- MCFG_MACHINE_RESET(abattle)
+ MCFG_MACHINE_START_OVERRIDE(astrof_state,abattle)
+ MCFG_MACHINE_RESET_OVERRIDE(astrof_state,abattle)
MACHINE_CONFIG_END
@@ -991,7 +984,7 @@ static MACHINE_CONFIG_DERIVED( spfghmk2, base )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(spfghmk2_map)
- MCFG_MACHINE_START(spfghmk2)
+ MCFG_MACHINE_START_OVERRIDE(astrof_state,spfghmk2)
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
@@ -1008,7 +1001,7 @@ static MACHINE_CONFIG_DERIVED( tomahawk, base )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(tomahawk_map)
- MCFG_MACHINE_START(tomahawk)
+ MCFG_MACHINE_START_OVERRIDE(astrof_state,tomahawk)
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c
index de793b3dd9b..e4aca9360e0 100644
--- a/src/mame/drivers/asuka.c
+++ b/src/mame/drivers/asuka.c
@@ -831,45 +831,43 @@ static const tc0110pcr_interface asuka_tc0110pcr_intf =
};
-static MACHINE_START( asuka )
+void asuka_state::machine_start()
{
- asuka_state *state = machine.driver_data<asuka_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_pc090oj = machine.device("pc090oj");
- state->m_tc0100scn = machine.device("tc0100scn");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_pc090oj = machine().device("pc090oj");
+ m_tc0100scn = machine().device("tc0100scn");
/* configure the banks */
- state->membank("bank1")->configure_entry(0, state->memregion("audiocpu")->base());
- state->membank("bank1")->configure_entries(1, 3, state->memregion("audiocpu")->base() + 0x10000, 0x04000);
-
- state->save_item(NAME(state->m_adpcm_pos));
- state->save_item(NAME(state->m_adpcm_data));
-
- state->save_item(NAME(state->m_current_round));
- state->save_item(NAME(state->m_current_bank));
- state->save_item(NAME(state->m_video_ctrl));
- state->save_item(NAME(state->m_video_mask));
- state->save_item(NAME(state->m_cc_port));
- state->save_item(NAME(state->m_restart_status));
- state->save_item(NAME(state->m_cval));
+ membank("bank1")->configure_entry(0, memregion("audiocpu")->base());
+ membank("bank1")->configure_entries(1, 3, memregion("audiocpu")->base() + 0x10000, 0x04000);
+
+ save_item(NAME(m_adpcm_pos));
+ save_item(NAME(m_adpcm_data));
+
+ save_item(NAME(m_current_round));
+ save_item(NAME(m_current_bank));
+ save_item(NAME(m_video_ctrl));
+ save_item(NAME(m_video_mask));
+ save_item(NAME(m_cc_port));
+ save_item(NAME(m_restart_status));
+ save_item(NAME(m_cval));
}
-static MACHINE_RESET( asuka )
+void asuka_state::machine_reset()
{
- asuka_state *state = machine.driver_data<asuka_state>();
- state->m_adpcm_pos = 0;
- state->m_adpcm_data = -1;
- state->m_current_round = 0;
- state->m_current_bank = 0;
- state->m_video_ctrl = 0;
- state->m_video_mask = 0;
- state->m_cc_port = 0;
- state->m_restart_status = 0;
+ m_adpcm_pos = 0;
+ m_adpcm_data = -1;
+ m_current_round = 0;
+ m_current_bank = 0;
+ m_video_ctrl = 0;
+ m_video_mask = 0;
+ m_cc_port = 0;
+ m_restart_status = 0;
- memset(state->m_cval, 0, 26);
+ memset(m_cval, 0, 26);
}
static SCREEN_VBLANK( asuka )
@@ -904,8 +902,6 @@ static MACHINE_CONFIG_START( bonzeadv, asuka_state )
MCFG_CPU_ADD("audiocpu", Z80,4000000) /* sound CPU, also required for test mode */
MCFG_CPU_PROGRAM_MAP(bonzeadv_z80_map)
- MCFG_MACHINE_START(asuka)
- MCFG_MACHINE_RESET(asuka)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
@@ -947,8 +943,6 @@ static MACHINE_CONFIG_START( asuka, asuka_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_16MHz/4) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(z80_map)
- MCFG_MACHINE_START(asuka)
- MCFG_MACHINE_RESET(asuka)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
@@ -999,8 +993,6 @@ static MACHINE_CONFIG_START( cadash, asuka_state )
MCFG_CPU_PROGRAM_MAP(cadash_sub_map)
MCFG_CPU_IO_MAP(cadash_sub_io)
- MCFG_MACHINE_START(asuka)
- MCFG_MACHINE_RESET(asuka)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
@@ -1043,8 +1035,6 @@ static MACHINE_CONFIG_START( mofflott, asuka_state )
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* 4 MHz ??? */
MCFG_CPU_PROGRAM_MAP(z80_map)
- MCFG_MACHINE_START(asuka)
- MCFG_MACHINE_RESET(asuka)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
@@ -1091,8 +1081,6 @@ static MACHINE_CONFIG_START( galmedes, asuka_state )
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* 4 MHz ??? */
MCFG_CPU_PROGRAM_MAP(cadash_z80_map)
- MCFG_MACHINE_START(asuka)
- MCFG_MACHINE_RESET(asuka)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
@@ -1135,8 +1123,6 @@ static MACHINE_CONFIG_START( eto, asuka_state )
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* 4 MHz ??? */
MCFG_CPU_PROGRAM_MAP(cadash_z80_map)
- MCFG_MACHINE_START(asuka)
- MCFG_MACHINE_RESET(asuka)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
diff --git a/src/mame/drivers/atarifb.c b/src/mame/drivers/atarifb.c
index 0c20f665b02..b59119ce99b 100644
--- a/src/mame/drivers/atarifb.c
+++ b/src/mame/drivers/atarifb.c
@@ -117,25 +117,25 @@
*
*************************************/
-static PALETTE_INIT( atarifb )
+void atarifb_state::palette_init()
{
/* chars */
- palette_set_color(machine, 0, MAKE_RGB(0xff,0xff,0xff)); /* white */
- palette_set_color(machine, 1, MAKE_RGB(0x00,0x00,0x00)); /* black */
+ palette_set_color(machine(), 0, MAKE_RGB(0xff,0xff,0xff)); /* white */
+ palette_set_color(machine(), 1, MAKE_RGB(0x00,0x00,0x00)); /* black */
/* sprites */
- palette_set_color(machine, 2, MAKE_RGB(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
- palette_set_color(machine, 3, MAKE_RGB(0xff,0xff,0xff)); /* white */
- palette_set_color(machine, 4, MAKE_RGB(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
- palette_set_color(machine, 5, MAKE_RGB(0x00,0x00,0x00)); /* black */
+ palette_set_color(machine(), 2, MAKE_RGB(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
+ palette_set_color(machine(), 3, MAKE_RGB(0xff,0xff,0xff)); /* white */
+ palette_set_color(machine(), 4, MAKE_RGB(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
+ palette_set_color(machine(), 5, MAKE_RGB(0x00,0x00,0x00)); /* black */
/* sprite masks */
- palette_set_color(machine, 6, MAKE_RGB(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
- palette_set_color(machine, 7, MAKE_RGB(0x80,0x80,0x80)); /* grey */
- palette_set_color(machine, 8, MAKE_RGB(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
- palette_set_color(machine, 9, MAKE_RGB(0x00,0x00,0x00)); /* black */
- palette_set_color(machine, 10, MAKE_RGB(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
- palette_set_color(machine, 11, MAKE_RGB(0xff,0xff,0xff)); /* white */
+ palette_set_color(machine(), 6, MAKE_RGB(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
+ palette_set_color(machine(), 7, MAKE_RGB(0x80,0x80,0x80)); /* grey */
+ palette_set_color(machine(), 8, MAKE_RGB(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
+ palette_set_color(machine(), 9, MAKE_RGB(0x00,0x00,0x00)); /* black */
+ palette_set_color(machine(), 10, MAKE_RGB(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
+ palette_set_color(machine(), 11, MAKE_RGB(0xff,0xff,0xff)); /* white */
}
@@ -504,52 +504,50 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( atarifb )
+void atarifb_state::machine_start()
{
- atarifb_state *state = machine.driver_data<atarifb_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
-
- state->save_item(NAME(state->m_CTRLD));
- state->save_item(NAME(state->m_sign_x_1));
- state->save_item(NAME(state->m_sign_x_2));
- state->save_item(NAME(state->m_sign_x_3));
- state->save_item(NAME(state->m_sign_x_4));
- state->save_item(NAME(state->m_sign_y_1));
- state->save_item(NAME(state->m_sign_y_2));
- state->save_item(NAME(state->m_sign_y_3));
- state->save_item(NAME(state->m_sign_y_4));
- state->save_item(NAME(state->m_counter_x_in0));
- state->save_item(NAME(state->m_counter_y_in0));
- state->save_item(NAME(state->m_counter_x_in0b));
- state->save_item(NAME(state->m_counter_y_in0b));
- state->save_item(NAME(state->m_counter_x_in2));
- state->save_item(NAME(state->m_counter_y_in2));
- state->save_item(NAME(state->m_counter_x_in2b));
- state->save_item(NAME(state->m_counter_y_in2b));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+
+ save_item(NAME(m_CTRLD));
+ save_item(NAME(m_sign_x_1));
+ save_item(NAME(m_sign_x_2));
+ save_item(NAME(m_sign_x_3));
+ save_item(NAME(m_sign_x_4));
+ save_item(NAME(m_sign_y_1));
+ save_item(NAME(m_sign_y_2));
+ save_item(NAME(m_sign_y_3));
+ save_item(NAME(m_sign_y_4));
+ save_item(NAME(m_counter_x_in0));
+ save_item(NAME(m_counter_y_in0));
+ save_item(NAME(m_counter_x_in0b));
+ save_item(NAME(m_counter_y_in0b));
+ save_item(NAME(m_counter_x_in2));
+ save_item(NAME(m_counter_y_in2));
+ save_item(NAME(m_counter_x_in2b));
+ save_item(NAME(m_counter_y_in2b));
}
-static MACHINE_RESET( atarifb )
+void atarifb_state::machine_reset()
{
- atarifb_state *state = machine.driver_data<atarifb_state>();
-
- state->m_CTRLD = 0;
- state->m_sign_x_1 = 0;
- state->m_sign_y_1 = 0;
- state->m_sign_x_2 = 0;
- state->m_sign_y_2 = 0;
- state->m_sign_x_3 = 0;
- state->m_sign_y_3 = 0;
- state->m_sign_x_4 = 0;
- state->m_sign_y_4 = 0;
- state->m_counter_x_in0 = 0;
- state->m_counter_y_in0 = 0;
- state->m_counter_x_in0b = 0;
- state->m_counter_y_in0b = 0;
- state->m_counter_x_in2 = 0;
- state->m_counter_y_in2 = 0;
- state->m_counter_x_in2b = 0;
- state->m_counter_y_in2b = 0;
+
+ m_CTRLD = 0;
+ m_sign_x_1 = 0;
+ m_sign_y_1 = 0;
+ m_sign_x_2 = 0;
+ m_sign_y_2 = 0;
+ m_sign_x_3 = 0;
+ m_sign_y_3 = 0;
+ m_sign_x_4 = 0;
+ m_sign_y_4 = 0;
+ m_counter_x_in0 = 0;
+ m_counter_y_in0 = 0;
+ m_counter_x_in0b = 0;
+ m_counter_y_in0b = 0;
+ m_counter_x_in2 = 0;
+ m_counter_y_in2 = 0;
+ m_counter_x_in2b = 0;
+ m_counter_y_in2b = 0;
}
static MACHINE_CONFIG_START( atarifb, atarifb_state )
@@ -559,8 +557,6 @@ static MACHINE_CONFIG_START( atarifb, atarifb_state )
MCFG_CPU_PROGRAM_MAP(atarifb_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,4*60)
- MCFG_MACHINE_START(atarifb)
- MCFG_MACHINE_RESET(atarifb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -573,8 +569,6 @@ static MACHINE_CONFIG_START( atarifb, atarifb_state )
MCFG_GFXDECODE(atarifb)
MCFG_PALETTE_LENGTH(12)
- MCFG_PALETTE_INIT(atarifb)
- MCFG_VIDEO_START(atarifb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/atarig1.c b/src/mame/drivers/atarig1.c
index eca5cc3d8cb..09618e0f558 100644
--- a/src/mame/drivers/atarig1.c
+++ b/src/mame/drivers/atarig1.c
@@ -40,22 +40,20 @@ static void update_interrupts(running_machine &machine)
}
-static MACHINE_START( atarig1 )
+MACHINE_START_MEMBER(atarig1_state,atarig1)
{
- atarig1_state *state = machine.driver_data<atarig1_state>();
- atarigen_init(machine);
- state->save_item(NAME(state->m_which_input));
+ atarigen_init(machine());
+ save_item(NAME(m_which_input));
}
-static MACHINE_RESET( atarig1 )
+MACHINE_RESET_MEMBER(atarig1_state,atarig1)
{
- atarig1_state *state = machine.driver_data<atarig1_state>();
- atarigen_eeprom_reset(state);
- atarigen_slapstic_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, atarig1_scanline_update, 8);
+ atarigen_eeprom_reset(this);
+ atarigen_slapstic_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, atarig1_scanline_update, 8);
atarijsa_reset();
}
@@ -453,8 +451,8 @@ static MACHINE_CONFIG_START( atarig1, atarig1_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
- MCFG_MACHINE_START(atarig1)
- MCFG_MACHINE_RESET(atarig1)
+ MCFG_MACHINE_START_OVERRIDE(atarig1_state,atarig1)
+ MCFG_MACHINE_RESET_OVERRIDE(atarig1_state,atarig1)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -468,7 +466,7 @@ static MACHINE_CONFIG_START( atarig1, atarig1_state )
MCFG_SCREEN_UPDATE_STATIC(atarig1)
MCFG_SCREEN_VBLANK_STATIC(atarig1)
- MCFG_VIDEO_START(atarig1)
+ MCFG_VIDEO_START_OVERRIDE(atarig1_state,atarig1)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_ii_mono)
diff --git a/src/mame/drivers/atarig42.c b/src/mame/drivers/atarig42.c
index bcd249ca82d..fc2d3b16c80 100644
--- a/src/mame/drivers/atarig42.c
+++ b/src/mame/drivers/atarig42.c
@@ -39,26 +39,24 @@ static void update_interrupts(running_machine &machine)
}
-static MACHINE_START( atarig42 )
+MACHINE_START_MEMBER(atarig42_state,atarig42)
{
- atarig42_state *state = machine.driver_data<atarig42_state>();
- atarigen_init(machine);
+ atarigen_init(machine());
- state->save_item(NAME(state->m_analog_data));
- state->save_item(NAME(state->m_sloop_bank));
- state->save_item(NAME(state->m_sloop_next_bank));
- state->save_item(NAME(state->m_sloop_offset));
- state->save_item(NAME(state->m_sloop_state));
+ save_item(NAME(m_analog_data));
+ save_item(NAME(m_sloop_bank));
+ save_item(NAME(m_sloop_next_bank));
+ save_item(NAME(m_sloop_offset));
+ save_item(NAME(m_sloop_state));
}
-static MACHINE_RESET( atarig42 )
+MACHINE_RESET_MEMBER(atarig42_state,atarig42)
{
- atarig42_state *state = machine.driver_data<atarig42_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, atarig42_scanline_update, 8);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, atarig42_scanline_update, 8);
atarijsa_reset();
}
@@ -558,8 +556,8 @@ static MACHINE_CONFIG_START( atarig42, atarig42_state )
/* ASIC65 */
MCFG_FRAGMENT_ADD(asic65)
- MCFG_MACHINE_START(atarig42)
- MCFG_MACHINE_RESET(atarig42)
+ MCFG_MACHINE_START_OVERRIDE(atarig42_state,atarig42)
+ MCFG_MACHINE_RESET_OVERRIDE(atarig42_state,atarig42)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -574,7 +572,7 @@ static MACHINE_CONFIG_START( atarig42, atarig42_state )
MCFG_SCREEN_UPDATE_STATIC(atarig42)
MCFG_SCREEN_VBLANK_STATIC(atarig42)
- MCFG_VIDEO_START(atarig42)
+ MCFG_VIDEO_START_OVERRIDE(atarig42_state,atarig42)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_iii_mono)
diff --git a/src/mame/drivers/atarigt.c b/src/mame/drivers/atarigt.c
index 2c6c3a71f0f..6855d359f83 100644
--- a/src/mame/drivers/atarigt.c
+++ b/src/mame/drivers/atarigt.c
@@ -56,19 +56,18 @@ static void update_interrupts(running_machine &machine)
}
-static MACHINE_START( atarigt )
+MACHINE_START_MEMBER(atarigt_state,atarigt)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( atarigt )
+MACHINE_RESET_MEMBER(atarigt_state,atarigt)
{
- atarigt_state *state = machine.driver_data<atarigt_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, atarigt_scanline_update, 8);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, atarigt_scanline_update, 8);
}
@@ -814,8 +813,8 @@ static MACHINE_CONFIG_START( atarigt, atarigt_state )
MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
MCFG_CPU_PERIODIC_INT(atarigen_scanline_int_gen, 250)
- MCFG_MACHINE_START(atarigt)
- MCFG_MACHINE_RESET(atarigt)
+ MCFG_MACHINE_START_OVERRIDE(atarigt_state,atarigt)
+ MCFG_MACHINE_RESET_OVERRIDE(atarigt_state,atarigt)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -830,7 +829,7 @@ static MACHINE_CONFIG_START( atarigt, atarigt_state )
MCFG_SCREEN_UPDATE_STATIC(atarigt)
MCFG_SCREEN_VBLANK_STATIC(atarigt)
- MCFG_VIDEO_START(atarigt)
+ MCFG_VIDEO_START_OVERRIDE(atarigt_state,atarigt)
MCFG_ATARIRLE_ADD("rle", modesc)
diff --git a/src/mame/drivers/atarigx2.c b/src/mame/drivers/atarigx2.c
index 2d694213191..326dea91a2c 100644
--- a/src/mame/drivers/atarigx2.c
+++ b/src/mame/drivers/atarigx2.c
@@ -41,19 +41,18 @@ static void update_interrupts(running_machine &machine)
}
-static MACHINE_START( atarigx2 )
+MACHINE_START_MEMBER(atarigx2_state,atarigx2)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( atarigx2 )
+MACHINE_RESET_MEMBER(atarigx2_state,atarigx2)
{
- atarigx2_state *state = machine.driver_data<atarigx2_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, atarigx2_scanline_update, 8);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, atarigx2_scanline_update, 8);
atarijsa_reset();
}
@@ -1434,8 +1433,8 @@ static MACHINE_CONFIG_START( atarigx2, atarigx2_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
- MCFG_MACHINE_START(atarigx2)
- MCFG_MACHINE_RESET(atarigx2)
+ MCFG_MACHINE_START_OVERRIDE(atarigx2_state,atarigx2)
+ MCFG_MACHINE_RESET_OVERRIDE(atarigx2_state,atarigx2)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -1450,7 +1449,7 @@ static MACHINE_CONFIG_START( atarigx2, atarigx2_state )
MCFG_SCREEN_UPDATE_STATIC(atarigx2)
MCFG_SCREEN_VBLANK_STATIC(atarigx2)
- MCFG_VIDEO_START(atarigx2)
+ MCFG_VIDEO_START_OVERRIDE(atarigx2_state,atarigx2)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_iiis_stereo)
diff --git a/src/mame/drivers/atarisy1.c b/src/mame/drivers/atarisy1.c
index 5c37513c45f..823ae9eef54 100644
--- a/src/mame/drivers/atarisy1.c
+++ b/src/mame/drivers/atarisy1.c
@@ -217,31 +217,29 @@ static void update_interrupts(running_machine &machine)
}
-static MACHINE_START( atarisy1 )
+MACHINE_START_MEMBER(atarisy1_state,atarisy1)
{
- atarisy1_state *state = machine.driver_data<atarisy1_state>();
- atarigen_init(machine);
+ atarigen_init(machine());
- state->save_item(NAME(state->m_joystick_int));
- state->save_item(NAME(state->m_joystick_int_enable));
- state->save_item(NAME(state->m_joystick_value));
+ save_item(NAME(m_joystick_int));
+ save_item(NAME(m_joystick_int_enable));
+ save_item(NAME(m_joystick_value));
}
-static MACHINE_RESET( atarisy1 )
+MACHINE_RESET_MEMBER(atarisy1_state,atarisy1)
{
- atarisy1_state *state = machine.driver_data<atarisy1_state>();
/* initialize the system */
- atarigen_eeprom_reset(state);
- atarigen_slapstic_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_sound_io_reset(machine.device("audiocpu"));
+ atarigen_eeprom_reset(this);
+ atarigen_slapstic_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_sound_io_reset(machine().device("audiocpu"));
/* reset the joystick parameters */
- state->m_joystick_value = 0;
- state->m_joystick_int = 0;
- state->m_joystick_int_enable = 0;
+ m_joystick_value = 0;
+ m_joystick_int = 0;
+ m_joystick_int_enable = 0;
}
@@ -769,8 +767,8 @@ static MACHINE_CONFIG_START( atarisy1, atarisy1_state )
MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(atarisy1)
- MCFG_MACHINE_RESET(atarisy1)
+ MCFG_MACHINE_START_OVERRIDE(atarisy1_state,atarisy1)
+ MCFG_MACHINE_RESET_OVERRIDE(atarisy1_state,atarisy1)
MCFG_NVRAM_ADD_1FILL("eeprom")
MCFG_TIMER_ADD("joystick_timer", delayed_joystick_int)
@@ -789,7 +787,7 @@ static MACHINE_CONFIG_START( atarisy1, atarisy1_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(atarisy1)
- MCFG_VIDEO_START(atarisy1)
+ MCFG_VIDEO_START_OVERRIDE(atarisy1_state,atarisy1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c
index 6bbf86a5828..c9152a31413 100644
--- a/src/mame/drivers/atarisy2.c
+++ b/src/mame/drivers/atarisy2.c
@@ -220,37 +220,35 @@ DIRECT_UPDATE_MEMBER( atarisy2_state::atarisy2_direct_handler )
}
-static MACHINE_START( atarisy2 )
+MACHINE_START_MEMBER(atarisy2_state,atarisy2)
{
- atarisy2_state *state = machine.driver_data<atarisy2_state>();
- atarigen_init(machine);
-
- state->save_item(NAME(state->m_interrupt_enable));
- state->save_item(NAME(state->m_which_adc));
- state->save_item(NAME(state->m_p2portwr_state));
- state->save_item(NAME(state->m_p2portrd_state));
- machine.save().register_postload(save_prepost_delegate(FUNC(bankselect_postload), &machine));
- state->save_item(NAME(state->m_sound_reset_state));
+ atarigen_init(machine());
+
+ save_item(NAME(m_interrupt_enable));
+ save_item(NAME(m_which_adc));
+ save_item(NAME(m_p2portwr_state));
+ save_item(NAME(m_p2portrd_state));
+ machine().save().register_postload(save_prepost_delegate(FUNC(bankselect_postload), &machine()));
+ save_item(NAME(m_sound_reset_state));
}
-static MACHINE_RESET( atarisy2 )
+MACHINE_RESET_MEMBER(atarisy2_state,atarisy2)
{
- atarisy2_state *state = machine.driver_data<atarisy2_state>();
- atarigen_eeprom_reset(state);
+ atarigen_eeprom_reset(this);
slapstic_reset();
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_sound_io_reset(machine.device("soundcpu"));
- atarigen_scanline_timer_reset(*machine.primary_screen, scanline_update, 64);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_sound_io_reset(machine().device("soundcpu"));
+ atarigen_scanline_timer_reset(*machine().primary_screen, scanline_update, 64);
- address_space *main = machine.device<t11_device>("maincpu")->space(AS_PROGRAM);
- main->set_direct_update_handler(direct_update_delegate(FUNC(atarisy2_state::atarisy2_direct_handler), state));
+ address_space *main = machine().device<t11_device>("maincpu")->space(AS_PROGRAM);
+ main->set_direct_update_handler(direct_update_delegate(FUNC(atarisy2_state::atarisy2_direct_handler), this));
- state->m_p2portwr_state = 0;
- state->m_p2portrd_state = 0;
+ m_p2portwr_state = 0;
+ m_p2portrd_state = 0;
- state->m_which_adc = 0;
+ m_which_adc = 0;
}
@@ -1270,8 +1268,8 @@ static MACHINE_CONFIG_START( atarisy2, atarisy2_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(atarigen_6502_irq_gen, (double)MASTER_CLOCK/2/16/16/16/10)
- MCFG_MACHINE_START(atarisy2)
- MCFG_MACHINE_RESET(atarisy2)
+ MCFG_MACHINE_START_OVERRIDE(atarisy2_state,atarisy2)
+ MCFG_MACHINE_RESET_OVERRIDE(atarisy2_state,atarisy2)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -1283,7 +1281,7 @@ static MACHINE_CONFIG_START( atarisy2, atarisy2_state )
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 640, 0, 512, 416, 0, 384)
MCFG_SCREEN_UPDATE_STATIC(atarisy2)
- MCFG_VIDEO_START(atarisy2)
+ MCFG_VIDEO_START_OVERRIDE(atarisy2_state,atarisy2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/atarisy4.c b/src/mame/drivers/atarisy4.c
index a19c95d6e28..42e38aaf249 100644
--- a/src/mame/drivers/atarisy4.c
+++ b/src/mame/drivers/atarisy4.c
@@ -54,6 +54,10 @@ public:
DECLARE_READ16_MEMBER(analog_r);
DECLARE_DRIVER_INIT(airrace);
DECLARE_DRIVER_INIT(laststar);
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void video_reset();
+ DECLARE_MACHINE_RESET(airrace);
};
@@ -132,8 +136,8 @@ struct _poly_extra_data
*************************************/
-static MACHINE_RESET( atarisy4 );
-static MACHINE_RESET( airrace );
+
+
/*************************************
@@ -142,13 +146,12 @@ static MACHINE_RESET( airrace );
*
*************************************/
-static VIDEO_START( atarisy4 )
+void atarisy4_state::video_start()
{
- atarisy4_state *state = machine.driver_data<atarisy4_state>();
- state->m_poly = poly_alloc(machine, 1024, sizeof(poly_extra_data), POLYFLAG_NO_WORK_QUEUE);
+ m_poly = poly_alloc(machine(), 1024, sizeof(poly_extra_data), POLYFLAG_NO_WORK_QUEUE);
}
-static VIDEO_RESET( atarisy4 )
+void atarisy4_state::video_reset()
{
gpu.vblank_wait = 0;
}
@@ -734,8 +737,6 @@ static MACHINE_CONFIG_START( atarisy4, atarisy4_state )
MCFG_CPU_PROGRAM_MAP(dsp0_map)
MCFG_CPU_IO_MAP(dsp0_io_map)
- MCFG_VIDEO_RESET(atarisy4)
- MCFG_MACHINE_RESET(atarisy4)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(32000000/2, 660, 0, 512, 404, 0, 384)
@@ -743,7 +744,6 @@ static MACHINE_CONFIG_START( atarisy4, atarisy4_state )
MCFG_SCREEN_UPDATE_STATIC(atarisy4)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(atarisy4)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( airrace, atarisy4 )
@@ -752,7 +752,7 @@ static MACHINE_CONFIG_DERIVED( airrace, atarisy4 )
MCFG_CPU_PROGRAM_MAP(dsp1_map)
MCFG_CPU_IO_MAP(dsp1_io_map)
- MCFG_MACHINE_RESET(airrace)
+ MCFG_MACHINE_RESET_OVERRIDE(atarisy4_state,airrace)
MACHINE_CONFIG_END
@@ -999,15 +999,15 @@ DRIVER_INIT_MEMBER(atarisy4_state,airrace)
load_ldafile(machine().device("dsp1")->memory().space(AS_PROGRAM), memregion("dsp")->base());
}
-static MACHINE_RESET( atarisy4 )
+void atarisy4_state::machine_reset()
{
- machine.device("dsp0")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("dsp0")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
-static MACHINE_RESET( airrace )
+MACHINE_RESET_MEMBER(atarisy4_state,airrace)
{
- machine.device("dsp0")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- machine.device("dsp1")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("dsp0")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("dsp1")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
diff --git a/src/mame/drivers/ataxx.c b/src/mame/drivers/ataxx.c
index c4ff2d27f3a..5a7f8e0e750 100644
--- a/src/mame/drivers/ataxx.c
+++ b/src/mame/drivers/ataxx.c
@@ -325,8 +325,8 @@ static MACHINE_CONFIG_START( ataxx, leland_state )
MCFG_CPU_PROGRAM_MAP(leland_80186_map_program)
MCFG_CPU_IO_MAP(ataxx_80186_map_io)
- MCFG_MACHINE_START(ataxx)
- MCFG_MACHINE_RESET(ataxx)
+ MCFG_MACHINE_START_OVERRIDE(leland_state,ataxx)
+ MCFG_MACHINE_RESET_OVERRIDE(leland_state,ataxx)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
MCFG_NVRAM_ADD_0FILL("battery")
diff --git a/src/mame/drivers/atetris.c b/src/mame/drivers/atetris.c
index 6048e2310b2..f78b2bc97c3 100644
--- a/src/mame/drivers/atetris.c
+++ b/src/mame/drivers/atetris.c
@@ -103,31 +103,29 @@ static void reset_bank(running_machine &machine)
}
-static MACHINE_START( atetris )
+void atetris_state::machine_start()
{
- atetris_state *state = machine.driver_data<atetris_state>();
/* Allocate interrupt timer */
- state->m_interrupt_timer = machine.scheduler().timer_alloc(FUNC(interrupt_gen));
+ m_interrupt_timer = machine().scheduler().timer_alloc(FUNC(interrupt_gen));
/* Set up save state */
- state->save_item(NAME(state->m_current_bank));
- state->save_item(NAME(state->m_nvram_write_enable));
- machine.save().register_postload(save_prepost_delegate(FUNC(reset_bank), &machine));
+ save_item(NAME(m_current_bank));
+ save_item(NAME(m_nvram_write_enable));
+ machine().save().register_postload(save_prepost_delegate(FUNC(reset_bank), &machine()));
}
-static MACHINE_RESET( atetris )
+void atetris_state::machine_reset()
{
- atetris_state *state = machine.driver_data<atetris_state>();
/* reset the slapstic */
slapstic_reset();
- state->m_current_bank = slapstic_bank() & 1;
- reset_bank(machine);
+ m_current_bank = slapstic_bank() & 1;
+ reset_bank(machine());
/* start interrupts going (32V clocked by 16V) */
- state->m_interrupt_timer->adjust(machine.primary_screen->time_until_pos(48), 48);
+ m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(48), 48);
}
@@ -346,8 +344,6 @@ static MACHINE_CONFIG_START( atetris, atetris_state )
MCFG_CPU_ADD("maincpu", M6502,MASTER_CLOCK/8)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(atetris)
- MCFG_MACHINE_RESET(atetris)
MCFG_NVRAM_ADD_1FILL("nvram")
/* video hardware */
@@ -360,7 +356,6 @@ static MACHINE_CONFIG_START( atetris, atetris_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(atetris)
- MCFG_VIDEO_START(atetris)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -381,8 +376,6 @@ static MACHINE_CONFIG_START( atetrisb2, atetris_state )
MCFG_CPU_ADD("maincpu", M6502,BOOTLEG_CLOCK/8)
MCFG_CPU_PROGRAM_MAP(atetrisb2_map)
- MCFG_MACHINE_START(atetris)
- MCFG_MACHINE_RESET(atetris)
MCFG_NVRAM_ADD_1FILL("nvram")
/* video hardware */
@@ -395,7 +388,6 @@ static MACHINE_CONFIG_START( atetrisb2, atetris_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(atetris)
- MCFG_VIDEO_START(atetris)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/atlantis.c b/src/mame/drivers/atlantis.c
index 59649eab3f8..cfec190a0c7 100644
--- a/src/mame/drivers/atlantis.c
+++ b/src/mame/drivers/atlantis.c
@@ -46,6 +46,8 @@ public:
atlantis_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) {}
DECLARE_DRIVER_INIT(mwskins);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -55,11 +57,10 @@ public:
*
*************************************/
-static MACHINE_START( mwskins )
+void atlantis_state::machine_start()
{
-// atlantis_state *state = machine.driver_data<atlantis_state>();
/* set the fastest DRC options */
- mips3drc_set_options(machine.device("maincpu"), MIPS3DRC_FASTEST_OPTIONS);
+ mips3drc_set_options(machine().device("maincpu"), MIPS3DRC_FASTEST_OPTIONS);
}
@@ -70,10 +71,10 @@ static MACHINE_START( mwskins )
*
*************************************/
-static MACHINE_RESET( mwskins )
+void atlantis_state::machine_reset()
{
- dcs_reset_w(machine, 1);
- dcs_reset_w(machine, 0);
+ dcs_reset_w(machine(), 1);
+ dcs_reset_w(machine(), 0);
}
@@ -154,8 +155,6 @@ static MACHINE_CONFIG_START( mwskins, atlantis_state )
MCFG_CPU_CONFIG(r4310_config)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(mwskins)
- MCFG_MACHINE_RESET(mwskins)
MCFG_IDE_CONTROLLER_ADD("ide", ide_intf, ide_devices, "hdd", NULL, true)
diff --git a/src/mame/drivers/atvtrack.c b/src/mame/drivers/atvtrack.c
index 77c00d3131a..9e60ee416c1 100644
--- a/src/mame/drivers/atvtrack.c
+++ b/src/mame/drivers/atvtrack.c
@@ -82,6 +82,9 @@ public:
DECLARE_WRITE64_MEMBER(area4_w);
DECLARE_READ64_MEMBER(ioport_r);
DECLARE_WRITE64_MEMBER(ioport_w);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
static void logbinary(UINT32 data,int high=31,int low=0)
@@ -311,7 +314,7 @@ WRITE64_MEMBER(atvtrack_state::ioport_w)
#endif
}
-VIDEO_START(atvtrack)
+void atvtrack_state::video_start()
{
}
@@ -320,21 +323,21 @@ SCREEN_UPDATE_RGB32(atvtrack)
return 0;
}
-static MACHINE_START(atvtrack)
+void atvtrack_state::machine_start()
{
UINT8 *src, *dst;
address_space *as;
nandaddressstep = 0;
- nandregion = machine.root_device().memregion("maincpu");
- as = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ nandregion = machine().root_device().memregion("maincpu");
+ as = machine().device("maincpu")->memory().space(AS_PROGRAM);
dst = (UINT8 *)(as->get_write_ptr(0x0c7f0000));
src = nandregion->base()+0x10;
// copy 0x10000 bytes from region "maincpu" offset 0x10 to 0x0c7f0000
memcpy(dst, src, 0x10000);
}
-static MACHINE_RESET(atvtrack)
+void atvtrack_state::machine_reset()
{
address_space *as;
@@ -342,12 +345,12 @@ static MACHINE_RESET(atvtrack)
// The routine initializes the cpu, copies the boot program from the flash memories into the cpu sdram
// and finally executes it.
// Here there is the setup of the cpu, the boot program is copied in machine_start
- as = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ as = machine().device("maincpu")->memory().space(AS_PROGRAM);
// set cpu PC register to 0x0c7f0000
- machine.device("maincpu")->state().set_pc(0x0c7f0000);
+ machine().device("maincpu")->state().set_pc(0x0c7f0000);
// set BCR2 to 1
sh4_internal_w(as, 0x3001, 1, 0xffffffff);
- device_execute_interface *exec = dynamic_cast<device_execute_interface *>(machine.device("subcpu"));
+ device_execute_interface *exec = dynamic_cast<device_execute_interface *>(machine().device("subcpu"));
exec->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
@@ -404,9 +407,6 @@ static MACHINE_CONFIG_START( atvtrack, atvtrack_state )
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_MACHINE_RESET(atvtrack)
- MCFG_MACHINE_START(atvtrack)
- MCFG_VIDEO_START(atvtrack)
MACHINE_CONFIG_END
ROM_START( atvtrack )
diff --git a/src/mame/drivers/avalnche.c b/src/mame/drivers/avalnche.c
index c9913392430..635b8b7c1af 100644
--- a/src/mame/drivers/avalnche.c
+++ b/src/mame/drivers/avalnche.c
@@ -232,18 +232,16 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_START( avalnche )
+void avalnche_state::machine_start()
{
- avalnche_state *state = machine.driver_data<avalnche_state>();
- state->save_item(NAME(state->m_avalance_video_inverted));
+ save_item(NAME(m_avalance_video_inverted));
}
-static MACHINE_RESET( avalnche )
+void avalnche_state::machine_reset()
{
- avalnche_state *state = machine.driver_data<avalnche_state>();
- state->m_avalance_video_inverted = 0;
+ m_avalance_video_inverted = 0;
}
static MACHINE_CONFIG_START( avalnche, avalnche_state )
@@ -253,8 +251,6 @@ static MACHINE_CONFIG_START( avalnche, avalnche_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,8*60)
- MCFG_MACHINE_START(avalnche)
- MCFG_MACHINE_RESET(avalnche)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/avt.c b/src/mame/drivers/avt.c
index 4b208680a26..477a6c82b65 100644
--- a/src/mame/drivers/avt.c
+++ b/src/mame/drivers/avt.c
@@ -442,6 +442,8 @@ public:
DECLARE_WRITE8_MEMBER(debug_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
#define mc6845_h_char_total (state->m_crtc_vreg[0])
@@ -496,10 +498,9 @@ TILE_GET_INFO_MEMBER(avt_state::get_bg_tile_info)
}
-static VIDEO_START( avt )
+void avt_state::video_start()
{
- avt_state *state = machine.driver_data<avt_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(avt_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 28, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(avt_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 28, 32);
}
@@ -529,9 +530,9 @@ static SCREEN_UPDATE_IND16( avt )
}
-static PALETTE_INIT( avt )
+void avt_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
/* prom bits
7654 3210
---- ---x Intensity?.
@@ -545,7 +546,7 @@ static PALETTE_INIT( avt )
/* 0000BGRI */
if (color_prom == 0) return;
- for (j = 0; j < machine.total_colors(); j++)
+ for (j = 0; j < machine().total_colors(); j++)
{
int bit1, bit2, bit3, r, g, b, inten, intenmin, intenmax, i;
@@ -574,9 +575,9 @@ static PALETTE_INIT( avt )
/* hack to switch cyan->magenta for highlighted background */
if (j == 0x40)
- palette_set_color(machine, j, MAKE_RGB(g, r, b)); // Why this one has R-G swapped?...
+ palette_set_color(machine(), j, MAKE_RGB(g, r, b)); // Why this one has R-G swapped?...
else
- palette_set_color(machine, j, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), j, MAKE_RGB(r, g, b));
}
}
@@ -905,10 +906,8 @@ static MACHINE_CONFIG_START( avt, avt_state )
MCFG_GFXDECODE(avt)
- MCFG_PALETTE_INIT(avt)
MCFG_PALETTE_LENGTH(8*16)
- MCFG_VIDEO_START(avt)
MCFG_MC6845_ADD("crtc", MC6845, CRTC_CLOCK, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/aztarac.c b/src/mame/drivers/aztarac.c
index 944cb38d599..cc589560ab4 100644
--- a/src/mame/drivers/aztarac.c
+++ b/src/mame/drivers/aztarac.c
@@ -35,9 +35,9 @@ static IRQ_CALLBACK(aztarac_irq_callback)
}
-static MACHINE_RESET( aztarac )
+void aztarac_state::machine_reset()
{
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(aztarac_irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(aztarac_irq_callback);
}
@@ -155,7 +155,6 @@ static MACHINE_CONFIG_START( aztarac, aztarac_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(aztarac_snd_timed_irq, 100)
- MCFG_MACHINE_RESET(aztarac)
MCFG_NVRAM_ADD_1FILL("nvram")
/* video hardware */
@@ -165,7 +164,6 @@ static MACHINE_CONFIG_START( aztarac, aztarac_state )
MCFG_SCREEN_VISIBLE_AREA(0, 1024-1, 0, 768-1)
MCFG_SCREEN_UPDATE_STATIC(vector)
- MCFG_VIDEO_START(aztarac)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c
index 2874fad2e74..1b841dd01d4 100644
--- a/src/mame/drivers/backfire.c
+++ b/src/mame/drivers/backfire.c
@@ -77,32 +77,33 @@ public:
DECLARE_READ32_MEMBER(backfire_eeprom_r);
DECLARE_WRITE32_MEMBER(backfire_eeprom_w);
DECLARE_DRIVER_INIT(backfire);
+ virtual void machine_start();
+ virtual void video_start();
};
//UINT32 *backfire_180010, *backfire_188010;
/* I'm using the functions in deco16ic.c ... same chips, why duplicate code? */
-static VIDEO_START( backfire )
+void backfire_state::video_start()
{
- backfire_state *state = machine.driver_data<backfire_state>();
- state->m_spriteram_1 = auto_alloc_array(machine, UINT16, 0x2000/2);
- state->m_spriteram_2 = auto_alloc_array(machine, UINT16, 0x2000/2);
+ m_spriteram_1 = auto_alloc_array(machine(), UINT16, 0x2000/2);
+ m_spriteram_2 = auto_alloc_array(machine(), UINT16, 0x2000/2);
/* and register the allocated ram so that save states still work */
- state->save_item(NAME(state->m_pf1_rowscroll));
- state->save_item(NAME(state->m_pf2_rowscroll));
- state->save_item(NAME(state->m_pf3_rowscroll));
- state->save_item(NAME(state->m_pf4_rowscroll));
+ save_item(NAME(m_pf1_rowscroll));
+ save_item(NAME(m_pf2_rowscroll));
+ save_item(NAME(m_pf3_rowscroll));
+ save_item(NAME(m_pf4_rowscroll));
- state->m_left = auto_bitmap_ind16_alloc(machine, 80*8, 32*8);
- state->m_right = auto_bitmap_ind16_alloc(machine, 80*8, 32*8);
+ m_left = auto_bitmap_ind16_alloc(machine(), 80*8, 32*8);
+ m_right = auto_bitmap_ind16_alloc(machine(), 80*8, 32*8);
- state->save_pointer(NAME(state->m_spriteram_1), 0x2000/2);
- state->save_pointer(NAME(state->m_spriteram_2), 0x2000/2);
+ save_pointer(NAME(m_spriteram_1), 0x2000/2);
+ save_pointer(NAME(m_spriteram_2), 0x2000/2);
- state->save_item(NAME(*state->m_left));
- state->save_item(NAME(*state->m_right));
+ save_item(NAME(*m_left));
+ save_item(NAME(*m_right));
}
@@ -471,16 +472,15 @@ static const deco16ic_interface backfire_deco16ic_tilegen2_intf =
2,3
};
-static MACHINE_START( backfire )
+void backfire_state::machine_start()
{
- backfire_state *state = machine.driver_data<backfire_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_deco_tilegen1 = machine.device("tilegen1");
- state->m_deco_tilegen2 = machine.device("tilegen2");
- state->m_lscreen = machine.device("lscreen");
- state->m_rscreen = machine.device("rscreen");
- state->m_eeprom = machine.device<eeprom_device>("eeprom");
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_deco_tilegen1 = machine().device("tilegen1");
+ m_deco_tilegen2 = machine().device("tilegen2");
+ m_lscreen = machine().device("lscreen");
+ m_rscreen = machine().device("rscreen");
+ m_eeprom = machine().device<eeprom_device>("eeprom");
}
UINT16 backfire_pri_callback(UINT16 x)
@@ -504,7 +504,6 @@ static MACHINE_CONFIG_START( backfire, backfire_state )
MCFG_EEPROM_93C46_ADD("eeprom")
- MCFG_MACHINE_START(backfire)
/* video hardware */
MCFG_PALETTE_LENGTH(2048)
@@ -525,7 +524,6 @@ static MACHINE_CONFIG_START( backfire, backfire_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_STATIC(backfire_right)
- MCFG_VIDEO_START(backfire)
MCFG_DECO16IC_ADD("tilegen1", backfire_deco16ic_tilegen1_intf)
MCFG_DECO16IC_ADD("tilegen2", backfire_deco16ic_tilegen2_intf)
diff --git a/src/mame/drivers/badlands.c b/src/mame/drivers/badlands.c
index 0c8c378bcfd..3ed13d7e18e 100644
--- a/src/mame/drivers/badlands.c
+++ b/src/mame/drivers/badlands.c
@@ -197,28 +197,26 @@ static void scanline_update(screen_device &screen, int scanline)
}
-static MACHINE_START( badlands )
+MACHINE_START_MEMBER(badlands_state,badlands)
{
- badlands_state *state = machine.driver_data<badlands_state>();
- atarigen_init(machine);
+ atarigen_init(machine());
- state->save_item(NAME(state->m_pedal_value));
+ save_item(NAME(m_pedal_value));
}
-static MACHINE_RESET( badlands )
+MACHINE_RESET_MEMBER(badlands_state,badlands)
{
- badlands_state *state = machine.driver_data<badlands_state>();
- state->m_pedal_value[0] = state->m_pedal_value[1] = 0x80;
+ m_pedal_value[0] = m_pedal_value[1] = 0x80;
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, scanline_update, 32);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, scanline_update, 32);
- atarigen_sound_io_reset(machine.device("audiocpu"));
- memcpy(state->m_bank_base, &state->m_bank_source_data[0x0000], 0x1000);
+ atarigen_sound_io_reset(machine().device("audiocpu"));
+ memcpy(m_bank_base, &m_bank_source_data[0x0000], 0x1000);
}
@@ -509,8 +507,8 @@ static MACHINE_CONFIG_START( badlands, badlands_state )
MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8)
MCFG_CPU_PROGRAM_MAP(audio_map)
- MCFG_MACHINE_START(badlands)
- MCFG_MACHINE_RESET(badlands)
+ MCFG_MACHINE_START_OVERRIDE(badlands_state,badlands)
+ MCFG_MACHINE_RESET_OVERRIDE(badlands_state,badlands)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -524,7 +522,7 @@ static MACHINE_CONFIG_START( badlands, badlands_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(badlands)
- MCFG_VIDEO_START(badlands)
+ MCFG_VIDEO_START_OVERRIDE(badlands_state,badlands)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -693,17 +691,16 @@ static void scanline_update_bootleg(screen_device &screen, int scanline)
-static MACHINE_RESET( badlandsb )
+MACHINE_RESET_MEMBER(badlands_state,badlandsb)
{
- badlands_state *state = machine.driver_data<badlands_state>();
-// state->m_pedal_value[0] = state->m_pedal_value[1] = 0x80;
+// m_pedal_value[0] = m_pedal_value[1] = 0x80;
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts_bootleg);
- atarigen_scanline_timer_reset(*machine.primary_screen, scanline_update_bootleg, 32);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts_bootleg);
+ atarigen_scanline_timer_reset(*machine().primary_screen, scanline_update_bootleg, 32);
-// atarigen_sound_io_reset(machine.device("audiocpu"));
-// memcpy(state->m_bank_base, &state->m_bank_source_data[0x0000], 0x1000);
+// atarigen_sound_io_reset(machine().device("audiocpu"));
+// memcpy(m_bank_base, &m_bank_source_data[0x0000], 0x1000);
}
static MACHINE_CONFIG_START( badlandsb, badlands_state )
@@ -716,8 +713,8 @@ static MACHINE_CONFIG_START( badlandsb, badlands_state )
// MCFG_CPU_ADD("audiocpu", Z80, XTAL_20MHz/12) /* Divisor estimated */
// MCFG_CPU_PROGRAM_MAP(bootleg_soundmap)
- MCFG_MACHINE_START(badlands)
- MCFG_MACHINE_RESET(badlandsb)
+ MCFG_MACHINE_START_OVERRIDE(badlands_state,badlands)
+ MCFG_MACHINE_RESET_OVERRIDE(badlands_state,badlandsb)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -731,7 +728,7 @@ static MACHINE_CONFIG_START( badlandsb, badlands_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(badlands)
- MCFG_VIDEO_START(badlands)
+ MCFG_VIDEO_START_OVERRIDE(badlands_state,badlands)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c
index 5eb87cfd2a4..12bbb8e79c7 100644
--- a/src/mame/drivers/bagman.c
+++ b/src/mame/drivers/bagman.c
@@ -479,7 +479,7 @@ static MACHINE_CONFIG_START( bagman, bagman_state )
MCFG_CPU_IO_MAP(main_portmap)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_RESET(bagman)
+ MCFG_MACHINE_RESET_OVERRIDE(bagman_state,bagman)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -489,8 +489,8 @@ static MACHINE_CONFIG_START( bagman, bagman_state )
MCFG_GFXDECODE(bagman)
MCFG_PALETTE_LENGTH(64)
- MCFG_PALETTE_INIT(bagman)
- MCFG_VIDEO_START(bagman)
+ MCFG_PALETTE_INIT_OVERRIDE(bagman_state,bagman)
+ MCFG_VIDEO_START_OVERRIDE(bagman_state,bagman)
MCFG_DEVICE_ADD("tmsprom", TMSPROM, 640000 / 2) /* rom clock */
MCFG_DEVICE_CONFIG(prom_intf)
@@ -515,7 +515,7 @@ static MACHINE_CONFIG_START( pickin, bagman_state )
MCFG_CPU_IO_MAP(main_portmap)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_RESET(bagman)
+ MCFG_MACHINE_RESET_OVERRIDE(bagman_state,bagman)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -525,8 +525,8 @@ static MACHINE_CONFIG_START( pickin, bagman_state )
MCFG_GFXDECODE(pickin)
MCFG_PALETTE_LENGTH(64)
- MCFG_PALETTE_INIT(bagman)
- MCFG_VIDEO_START(bagman)
+ MCFG_PALETTE_INIT_OVERRIDE(bagman_state,bagman)
+ MCFG_VIDEO_START_OVERRIDE(bagman_state,bagman)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -567,7 +567,7 @@ static MACHINE_CONFIG_START( botanic, bagman_state )
MCFG_CPU_IO_MAP(main_portmap)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_RESET(bagman)
+ MCFG_MACHINE_RESET_OVERRIDE(bagman_state,bagman)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -577,8 +577,8 @@ static MACHINE_CONFIG_START( botanic, bagman_state )
MCFG_GFXDECODE(bagman)
MCFG_PALETTE_LENGTH(64)
- MCFG_PALETTE_INIT(bagman)
- MCFG_VIDEO_START(bagman)
+ MCFG_PALETTE_INIT_OVERRIDE(bagman_state,bagman)
+ MCFG_VIDEO_START_OVERRIDE(bagman_state,bagman)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/balsente.c b/src/mame/drivers/balsente.c
index 28ca52de413..9286cf2bf7d 100644
--- a/src/mame/drivers/balsente.c
+++ b/src/mame/drivers/balsente.c
@@ -1210,8 +1210,6 @@ static MACHINE_CONFIG_START( balsente, balsente_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(balsente)
- MCFG_MACHINE_RESET(balsente)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_TIMER_ADD("scan_timer", balsente_interrupt_timer)
@@ -1228,7 +1226,6 @@ static MACHINE_CONFIG_START( balsente, balsente_state )
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(balsente)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bankp.c b/src/mame/drivers/bankp.c
index d085b507989..47bde28cf22 100644
--- a/src/mame/drivers/bankp.c
+++ b/src/mame/drivers/bankp.c
@@ -282,12 +282,11 @@ static const sn76496_config psg_intf =
*
*************************************/
-static MACHINE_RESET( bankp )
+void bankp_state::machine_reset()
{
- bankp_state *state = machine.driver_data<bankp_state>();
- state->m_scroll_x = 0;
- state->m_priority = 0;
+ m_scroll_x = 0;
+ m_priority = 0;
}
static INTERRUPT_GEN( vblank_irq )
@@ -306,7 +305,6 @@ static MACHINE_CONFIG_START( bankp, bankp_state )
MCFG_CPU_IO_MAP(bankp_io_map)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_RESET(bankp)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -316,8 +314,6 @@ static MACHINE_CONFIG_START( bankp, bankp_state )
MCFG_GFXDECODE(bankp)
MCFG_PALETTE_LENGTH(32*4+16*8)
- MCFG_PALETTE_INIT(bankp)
- MCFG_VIDEO_START(bankp)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/baraduke.c b/src/mame/drivers/baraduke.c
index 6794c056ae5..c0fcae8e5ba 100644
--- a/src/mame/drivers/baraduke.c
+++ b/src/mame/drivers/baraduke.c
@@ -400,8 +400,6 @@ static MACHINE_CONFIG_START( baraduke, baraduke_state )
MCFG_GFXDECODE(baraduke)
MCFG_PALETTE_LENGTH(2048)
- MCFG_PALETTE_INIT(baraduke)
- MCFG_VIDEO_START(baraduke)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/batman.c b/src/mame/drivers/batman.c
index accadf81652..a5c53f052cd 100644
--- a/src/mame/drivers/batman.c
+++ b/src/mame/drivers/batman.c
@@ -39,24 +39,22 @@ static void update_interrupts(running_machine &machine)
}
-static MACHINE_START( batman )
+MACHINE_START_MEMBER(batman_state,batman)
{
- batman_state *state = machine.driver_data<batman_state>();
- atarigen_init(machine);
+ atarigen_init(machine());
- state->save_item(NAME(state->m_latch_data));
- state->save_item(NAME(state->m_alpha_tile_bank));
+ save_item(NAME(m_latch_data));
+ save_item(NAME(m_alpha_tile_bank));
}
-static MACHINE_RESET( batman )
+MACHINE_RESET_MEMBER(batman_state,batman)
{
- batman_state *state = machine.driver_data<batman_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarivc_reset(*machine.primary_screen, state->m_atarivc_eof_data, 2);
- atarigen_scanline_timer_reset(*machine.primary_screen, batman_scanline_update, 8);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarivc_reset(*machine().primary_screen, m_atarivc_eof_data, 2);
+ atarigen_scanline_timer_reset(*machine().primary_screen, batman_scanline_update, 8);
atarijsa_reset();
}
@@ -237,8 +235,8 @@ static MACHINE_CONFIG_START( batman, batman_state )
MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(batman)
- MCFG_MACHINE_RESET(batman)
+ MCFG_MACHINE_START_OVERRIDE(batman_state,batman)
+ MCFG_MACHINE_RESET_OVERRIDE(batman_state,batman)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -252,7 +250,7 @@ static MACHINE_CONFIG_START( batman, batman_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(batman)
- MCFG_VIDEO_START(batman)
+ MCFG_VIDEO_START_OVERRIDE(batman_state,batman)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_iii_mono)
diff --git a/src/mame/drivers/battlane.c b/src/mame/drivers/battlane.c
index ae38679f403..b801bc1c609 100644
--- a/src/mame/drivers/battlane.c
+++ b/src/mame/drivers/battlane.c
@@ -267,23 +267,21 @@ static const ym3526_interface ym3526_config =
*
*************************************/
-static MACHINE_START( battlane )
+void battlane_state::machine_start()
{
- battlane_state *state = machine.driver_data<battlane_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_subcpu = machine().device<cpu_device>("sub");
- state->save_item(NAME(state->m_video_ctrl));
- state->save_item(NAME(state->m_cpu_control));
+ save_item(NAME(m_video_ctrl));
+ save_item(NAME(m_cpu_control));
}
-static MACHINE_RESET( battlane )
+void battlane_state::machine_reset()
{
- battlane_state *state = machine.driver_data<battlane_state>();
- state->m_video_ctrl = 0;
- state->m_cpu_control = 0;
+ m_video_ctrl = 0;
+ m_cpu_control = 0;
}
static MACHINE_CONFIG_START( battlane, battlane_state )
@@ -298,8 +296,6 @@ static MACHINE_CONFIG_START( battlane, battlane_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(battlane)
- MCFG_MACHINE_RESET(battlane)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -312,7 +308,6 @@ static MACHINE_CONFIG_START( battlane, battlane_state )
MCFG_GFXDECODE(battlane)
MCFG_PALETTE_LENGTH(64)
- MCFG_VIDEO_START(battlane)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/battlera.c b/src/mame/drivers/battlera.c
index 59de81e8bfd..e3de7eedbcf 100644
--- a/src/mame/drivers/battlera.c
+++ b/src/mame/drivers/battlera.c
@@ -250,7 +250,6 @@ static MACHINE_CONFIG_START( battlera, battlera_state )
MCFG_GFXDECODE(battlera)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(battlera)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/battlex.c b/src/mame/drivers/battlex.c
index 9b79911ad99..4ff9b742cad 100644
--- a/src/mame/drivers/battlex.c
+++ b/src/mame/drivers/battlex.c
@@ -225,25 +225,23 @@ static const ay8910_interface battlex_ay8910_interface =
DEVCB_NULL
};
-static MACHINE_START( battlex )
+void battlex_state::machine_start()
{
- battlex_state *state = machine.driver_data<battlex_state>();
/* register for save states */
- state->save_item(NAME(state->m_scroll_lsb));
- state->save_item(NAME(state->m_scroll_msb));
- state->save_item(NAME(state->m_starfield_enabled));
- state->save_item(NAME(state->m_in0_b4));
+ save_item(NAME(m_scroll_lsb));
+ save_item(NAME(m_scroll_msb));
+ save_item(NAME(m_starfield_enabled));
+ save_item(NAME(m_in0_b4));
}
-static MACHINE_RESET( battlex )
+void battlex_state::machine_reset()
{
- battlex_state *state = machine.driver_data<battlex_state>();
- state->m_scroll_lsb = 0;
- state->m_scroll_msb = 0;
- state->m_starfield_enabled = 0;
- state->m_in0_b4 = 0;
+ m_scroll_lsb = 0;
+ m_scroll_msb = 0;
+ m_starfield_enabled = 0;
+ m_in0_b4 = 0;
}
static MACHINE_CONFIG_START( battlex, battlex_state )
@@ -254,8 +252,6 @@ static MACHINE_CONFIG_START( battlex, battlex_state )
MCFG_CPU_IO_MAP(io_map)
MCFG_CPU_PERIODIC_INT(battlex_interrupt,400) /* controls game speed? */
- MCFG_MACHINE_START(battlex)
- MCFG_MACHINE_RESET(battlex)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -267,7 +263,6 @@ static MACHINE_CONFIG_START( battlex, battlex_state )
MCFG_GFXDECODE(battlex)
MCFG_PALETTE_LENGTH(64)
- MCFG_VIDEO_START(battlex)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/battlnts.c b/src/mame/drivers/battlnts.c
index a3feee626ac..a1dd2153f81 100644
--- a/src/mame/drivers/battlnts.c
+++ b/src/mame/drivers/battlnts.c
@@ -221,28 +221,26 @@ static const k007420_interface bladestl_k007420_intf =
};
-static MACHINE_START( battlnts )
+void battlnts_state::machine_start()
{
- battlnts_state *state = machine.driver_data<battlnts_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k007342 = machine.device("k007342");
- state->m_k007420 = machine.device("k007420");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k007342 = machine().device("k007342");
+ m_k007420 = machine().device("k007420");
- state->save_item(NAME(state->m_spritebank));
- state->save_item(NAME(state->m_layer_colorbase));
+ save_item(NAME(m_spritebank));
+ save_item(NAME(m_layer_colorbase));
}
-static MACHINE_RESET( battlnts )
+void battlnts_state::machine_reset()
{
- battlnts_state *state = machine.driver_data<battlnts_state>();
- state->m_layer_colorbase[0] = 0;
- state->m_layer_colorbase[1] = 0;
- state->m_spritebank = 0;
+ m_layer_colorbase[0] = 0;
+ m_layer_colorbase[1] = 0;
+ m_spritebank = 0;
}
static MACHINE_CONFIG_START( battlnts, battlnts_state )
@@ -255,8 +253,6 @@ static MACHINE_CONFIG_START( battlnts, battlnts_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_24MHz / 6 /* 3579545? */)
MCFG_CPU_PROGRAM_MAP(battlnts_sound_map)
- MCFG_MACHINE_START(battlnts)
- MCFG_MACHINE_RESET(battlnts)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c
index 15aff6dcdc5..dfe6f82070b 100644
--- a/src/mame/drivers/bbusters.c
+++ b/src/mame/drivers/bbusters.c
@@ -690,7 +690,7 @@ static MACHINE_CONFIG_START( bbusters, bbusters_state )
MCFG_GFXDECODE(bbusters)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(bbuster)
+ MCFG_VIDEO_START_OVERRIDE(bbusters_state,bbuster)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2")
@@ -728,7 +728,7 @@ static MACHINE_CONFIG_START( mechatt, bbusters_state )
MCFG_GFXDECODE(mechatt)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(mechatt)
+ MCFG_VIDEO_START_OVERRIDE(bbusters_state,mechatt)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
diff --git a/src/mame/drivers/beaminv.c b/src/mame/drivers/beaminv.c
index 86c621828fa..7bc565902af 100644
--- a/src/mame/drivers/beaminv.c
+++ b/src/mame/drivers/beaminv.c
@@ -77,6 +77,8 @@ public:
DECLARE_READ8_MEMBER(v128_r);
DECLARE_WRITE8_MEMBER(controller_select_w);
DECLARE_READ8_MEMBER(controller_r);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -133,15 +135,14 @@ static void start_interrupt_timer( running_machine &machine )
*
*************************************/
-static MACHINE_START( beaminv )
+void beaminv_state::machine_start()
{
- beaminv_state *state = machine.driver_data<beaminv_state>();
- create_interrupt_timer(machine);
+ create_interrupt_timer(machine());
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
/* setup for save states */
- state->save_item(NAME(state->m_controller_select));
+ save_item(NAME(m_controller_select));
}
@@ -152,12 +153,11 @@ static MACHINE_START( beaminv )
*
*************************************/
-static MACHINE_RESET( beaminv )
+void beaminv_state::machine_reset()
{
- beaminv_state *state = machine.driver_data<beaminv_state>();
- start_interrupt_timer(machine);
+ start_interrupt_timer(machine());
- state->m_controller_select = 0;
+ m_controller_select = 0;
}
@@ -336,8 +336,6 @@ static MACHINE_CONFIG_START( beaminv, beaminv_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_IO_MAP(main_io_map)
- MCFG_MACHINE_START(beaminv)
- MCFG_MACHINE_RESET(beaminv)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/beezer.c b/src/mame/drivers/beezer.c
index ef4f2dc38ca..1fcb02f381f 100644
--- a/src/mame/drivers/beezer.c
+++ b/src/mame/drivers/beezer.c
@@ -77,11 +77,10 @@ static INPUT_PORTS_START( beezer )
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
INPUT_PORTS_END
-static MACHINE_START(beezer)
+void beezer_state::machine_start()
{
- beezer_state *state = machine.driver_data<beezer_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
}
static MACHINE_CONFIG_START( beezer, beezer_state )
@@ -104,7 +103,6 @@ static MACHINE_CONFIG_START( beezer, beezer_state )
MCFG_PALETTE_LENGTH(16)
- MCFG_MACHINE_START(beezer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/berzerk.c b/src/mame/drivers/berzerk.c
index 1381f8c639d..e84438e7415 100644
--- a/src/mame/drivers/berzerk.c
+++ b/src/mame/drivers/berzerk.c
@@ -55,6 +55,9 @@ public:
DECLARE_READ8_MEMBER(moonwarp_p1_r);
DECLARE_READ8_MEMBER(moonwarp_p2_r);
DECLARE_DRIVER_INIT(moonwarp);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -302,18 +305,17 @@ static void start_nmi_timer(running_machine &machine)
*
*************************************/
-static MACHINE_START( berzerk )
+void berzerk_state::machine_start()
{
- berzerk_state *state = machine.driver_data<berzerk_state>();
- create_irq_timer(machine);
- create_nmi_timer(machine);
+ create_irq_timer(machine());
+ create_nmi_timer(machine());
/* register for state saving */
- state_save_register_global(machine, state->m_magicram_control);
- state_save_register_global(machine, state->m_last_shift_data);
- state_save_register_global(machine, state->m_intercept);
- state_save_register_global(machine, state->m_irq_enabled);
- state_save_register_global(machine, state->m_nmi_enabled);
+ state_save_register_global(machine(), m_magicram_control);
+ state_save_register_global(machine(), m_last_shift_data);
+ state_save_register_global(machine(), m_intercept);
+ state_save_register_global(machine(), m_irq_enabled);
+ state_save_register_global(machine(), m_nmi_enabled);
}
@@ -324,16 +326,15 @@ static MACHINE_START( berzerk )
*
*************************************/
-static MACHINE_RESET( berzerk )
+void berzerk_state::machine_reset()
{
- berzerk_state *state = machine.driver_data<berzerk_state>();
- state->m_irq_enabled = 0;
- state->m_nmi_enabled = 0;
- set_led_status(machine, 0, 0);
- state->m_magicram_control = 0;
+ m_irq_enabled = 0;
+ m_nmi_enabled = 0;
+ set_led_status(machine(), 0, 0);
+ m_magicram_control = 0;
- start_irq_timer(machine);
- start_nmi_timer(machine);
+ start_irq_timer(machine());
+ start_nmi_timer(machine());
}
@@ -350,12 +351,12 @@ static MACHINE_RESET( berzerk )
#define LS181_10C (1)
-static VIDEO_START( berzerk )
+void berzerk_state::video_start()
{
- TTL74181_config(machine, LS181_12C, 0);
+ TTL74181_config(machine(), LS181_12C, 0);
TTL74181_write(LS181_12C, TTL74181_INPUT_M, 1, 1);
- TTL74181_config(machine, LS181_10C, 0);
+ TTL74181_config(machine(), LS181_10C, 0);
TTL74181_write(LS181_10C, TTL74181_INPUT_M, 1, 1);
}
@@ -1084,13 +1085,10 @@ static MACHINE_CONFIG_START( berzerk, berzerk_state )
MCFG_CPU_PROGRAM_MAP(berzerk_map)
MCFG_CPU_IO_MAP(berzerk_io_map)
- MCFG_MACHINE_START(berzerk)
- MCFG_MACHINE_RESET(berzerk)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_VIDEO_START(berzerk)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
diff --git a/src/mame/drivers/bestleag.c b/src/mame/drivers/bestleag.c
index 84a390819ec..a9756a05c5d 100644
--- a/src/mame/drivers/bestleag.c
+++ b/src/mame/drivers/bestleag.c
@@ -50,6 +50,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILEMAP_MAPPER_MEMBER(bsb_bg_scan);
+ virtual void video_start();
};
@@ -100,15 +101,14 @@ TILEMAP_MAPPER_MEMBER(bestleag_state::bsb_bg_scan)
return offset;
}
-static VIDEO_START(bestleag)
+void bestleag_state::video_start()
{
- bestleag_state *state = machine.driver_data<bestleag_state>();
- state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bestleag_state::get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,256, 32);
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bestleag_state::get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(bestleag_state::bsb_bg_scan),state),16,16,128, 64);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bestleag_state::get_fg_tile_info),state),tilemap_mapper_delegate(FUNC(bestleag_state::bsb_bg_scan),state),16,16,128, 64);
+ m_tx_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(bestleag_state::get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,256, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(bestleag_state::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(bestleag_state::bsb_bg_scan),this),16,16,128, 64);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(bestleag_state::get_fg_tile_info),this),tilemap_mapper_delegate(FUNC(bestleag_state::bsb_bg_scan),this),16,16,128, 64);
- state->m_tx_tilemap->set_transparent_pen(15);
- state->m_fg_tilemap->set_transparent_pen(15);
+ m_tx_tilemap->set_transparent_pen(15);
+ m_fg_tilemap->set_transparent_pen(15);
}
/*
@@ -377,7 +377,6 @@ static MACHINE_CONFIG_START( bestleag, bestleag_state )
MCFG_GFXDECODE(bestleag)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(bestleag)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c
index aa378719e25..e8162756c42 100644
--- a/src/mame/drivers/bfcobra.c
+++ b/src/mame/drivers/bfcobra.c
@@ -297,6 +297,8 @@ public:
DECLARE_READ_LINE_MEMBER(data_acia_rx_r);
DECLARE_WRITE_LINE_MEMBER(data_acia_tx_w);
DECLARE_DRIVER_INIT(bfcobra);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -343,25 +345,24 @@ static const UINT8 col3bit_default[16]=
static const UINT8 col76index[] = {0, 2, 4, 7};
-static VIDEO_START( bfcobra )
+void bfcobra_state::video_start()
{
- bfcobra_state *state = machine.driver_data<bfcobra_state>();
int i;
- memcpy(state->m_col4bit, col4bit_default, sizeof(state->m_col4bit));
- memcpy(state->m_col3bit, col3bit_default, sizeof(state->m_col3bit));
+ memcpy(m_col4bit, col4bit_default, sizeof(m_col4bit));
+ memcpy(m_col3bit, col3bit_default, sizeof(m_col3bit));
for (i = 0; i < 256; ++i)
{
UINT8 col;
- state->m_col8bit[i] = i;
+ m_col8bit[i] = i;
col = i & 0x7f;
col = (col & 0x1f) | (col76index[ ( (col & 0x60) >> 5 ) & 3] << 5);
- state->m_col7bit[i] = col;
+ m_col7bit[i] = col;
col = (col & 3) | (col76index[( (col & 0x0c) >> 2) & 3] << 2 ) |
(col76index[( (col & 0x30) >> 4) & 3] << 5 );
- state->m_col6bit[i] = col;
+ m_col6bit[i] = col;
}
}
@@ -1320,21 +1321,20 @@ WRITE8_MEMBER(bfcobra_state::fd_ctrl_w)
}
#endif
-static MACHINE_RESET( bfcobra )
+void bfcobra_state::machine_reset()
{
- bfcobra_state *state = machine.driver_data<bfcobra_state>();
unsigned int pal;
for (pal = 0; pal < 256; ++pal)
{
- palette_set_color_rgb(machine, pal, pal3bit((pal>>5)&7), pal3bit((pal>>2)&7), pal2bit(pal&3));
+ palette_set_color_rgb(machine(), pal, pal3bit((pal>>5)&7), pal3bit((pal>>2)&7), pal2bit(pal&3));
}
- state->m_bank_data[0] = 1;
- memset(&state->m_ramdac, 0, sizeof(state->m_ramdac));
- reset_fdc(machine);
+ m_bank_data[0] = 1;
+ memset(&m_ramdac, 0, sizeof(m_ramdac));
+ reset_fdc(machine());
- state->m_irq_state = state->m_blitter_irq = state->m_vblank_irq = state->m_acia_irq = 0;
+ m_irq_state = m_blitter_irq = m_vblank_irq = m_acia_irq = 0;
}
/***************************************************************************
@@ -1787,7 +1787,6 @@ static MACHINE_CONFIG_START( bfcobra, bfcobra_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_MACHINE_RESET(bfcobra)
/* TODO */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1807,7 +1806,6 @@ static MACHINE_CONFIG_START( bfcobra, bfcobra_state )
MCFG_SOUND_ADD("upd", UPD7759, UPD7759_STANDARD_CLOCK)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
- MCFG_VIDEO_START(bfcobra)
/* ACIAs */
MCFG_ACIA6850_ADD("acia6850_0", z80_acia_if)
diff --git a/src/mame/drivers/bfm_sc1.c b/src/mame/drivers/bfm_sc1.c
index 3b6793ec4da..c629d961d69 100644
--- a/src/mame/drivers/bfm_sc1.c
+++ b/src/mame/drivers/bfm_sc1.c
@@ -174,6 +174,7 @@ public:
DECLARE_DRIVER_INIT(clatt);
DECLARE_DRIVER_INIT(rou029);
DECLARE_DRIVER_INIT(nocrypt);
+ virtual void machine_reset();
};
#define VFD_RESET 0x20
@@ -637,25 +638,24 @@ READ8_MEMBER(bfm_sc1_state::vid_uart_ctrl_r)
// machine start (called only once) /////////////////////////////////////////////////
-static MACHINE_RESET( bfm_sc1 )
+void bfm_sc1_state::machine_reset()
{
- bfm_sc1_state *state = machine.driver_data<bfm_sc1_state>();
- state->m_vfd_latch = 0;
- state->m_mmtr_latch = 0;
- state->m_triac_latch = 0;
- state->m_irq_status = 0;
- state->m_is_timer_enabled = 1;
- state->m_coin_inhibits = 0;
- state->m_mux1_outputlatch = 0x08; // clock HIGH
- state->m_mux1_datalo = 0;
- state->m_mux1_datahi = 0;
- state->m_mux1_input = 0;
- state->m_mux2_outputlatch = 0x08; // clock HIGH
- state->m_mux2_datalo = 0;
- state->m_mux2_datahi = 0;
- state->m_mux2_input = 0;
-
- state->m_vfd0->reset();
+ m_vfd_latch = 0;
+ m_mmtr_latch = 0;
+ m_triac_latch = 0;
+ m_irq_status = 0;
+ m_is_timer_enabled = 1;
+ m_coin_inhibits = 0;
+ m_mux1_outputlatch = 0x08; // clock HIGH
+ m_mux1_datalo = 0;
+ m_mux1_datahi = 0;
+ m_mux1_input = 0;
+ m_mux2_outputlatch = 0x08; // clock HIGH
+ m_mux2_datalo = 0;
+ m_mux2_datahi = 0;
+ m_mux2_input = 0;
+
+ m_vfd0->reset();
// reset stepper motors /////////////////////////////////////////////////////////////
{
@@ -667,19 +667,19 @@ static MACHINE_RESET( bfm_sc1 )
if ( stepper_optic_state(i) ) pattern |= 1<<i;
}
- state->m_optic_pattern = pattern;
+ m_optic_pattern = pattern;
}
- state->m_acia_status = 0x02; // MC6850 transmit buffer empty !!!
- state->m_locked = 0x07; // hardware is locked
+ m_acia_status = 0x02; // MC6850 transmit buffer empty !!!
+ m_locked = 0x07; // hardware is locked
// init rom bank ////////////////////////////////////////////////////////////////////
{
- UINT8 *rom = machine.root_device().memregion("maincpu")->base();
+ UINT8 *rom = machine().root_device().memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &rom[0x0000], 0x02000);
- state->membank("bank1")->set_entry(state->m_defaultbank);
+ membank("bank1")->configure_entries(0, 4, &rom[0x0000], 0x02000);
+ membank("bank1")->set_entry(m_defaultbank);
}
}
@@ -1093,7 +1093,6 @@ INPUT_PORTS_END
/////////////////////////////////////////////////////////////////////////////////////
static MACHINE_CONFIG_START( scorpion1, bfm_sc1_state )
- MCFG_MACHINE_RESET(bfm_sc1) // main scorpion1 board initialisation
MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4) // 6809 CPU at 1 Mhz
MCFG_CPU_PROGRAM_MAP(sc1_base) // setup read and write memorymap
MCFG_CPU_PERIODIC_INT(timer_irq, 1000 ) // generate 1000 IRQ's per second
diff --git a/src/mame/drivers/bfm_sc2.c b/src/mame/drivers/bfm_sc2.c
index bd2aa0d28a0..a8d2d9086a1 100644
--- a/src/mame/drivers/bfm_sc2.c
+++ b/src/mame/drivers/bfm_sc2.c
@@ -298,6 +298,10 @@ public:
DECLARE_DRIVER_INIT(focus);
DECLARE_DRIVER_INIT(drwho);
DECLARE_DRIVER_INIT(drwho_common);
+ DECLARE_MACHINE_RESET(init);
+ DECLARE_MACHINE_RESET(awp_init);
+ DECLARE_MACHINE_START(sc2dmd);
+ DECLARE_MACHINE_RESET(dm01_init);
};
@@ -1416,15 +1420,14 @@ static int read_e2ram(running_machine &machine)
// machine init (called only once) ////////////////////////////////////////
-static MACHINE_RESET( init )
+MACHINE_RESET_MEMBER(bfm_sc2_state,init)
{
- bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
// reset the board //////////////////////////////////////////////////////
- on_scorpion2_reset(machine);
- state->m_vfd0->reset();
- state->m_vfd1->reset();
+ on_scorpion2_reset(machine());
+ m_vfd0->reset();
+ m_vfd1->reset();
}
@@ -2150,7 +2153,7 @@ INPUT_PORTS_END
///////////////////////////////////////////////////////////////////////////
static MACHINE_CONFIG_START( scorpion2_vid, bfm_sc2_state )
- MCFG_MACHINE_RESET( init ) // main scorpion2 board initialisation
+ MCFG_MACHINE_RESET_OVERRIDE(bfm_sc2_state, init ) // main scorpion2 board initialisation
MCFG_QUANTUM_TIME(attotime::from_hz(960)) // needed for serial communication !!
MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4 ) // 6809 CPU at 2 Mhz
MCFG_CPU_PROGRAM_MAP(memmap_vid) // setup scorpion2 board memorymap
@@ -2598,19 +2601,18 @@ static const bfmdm01_interface dm01_interface =
};
/* machine init (called only once) */
-static MACHINE_RESET( awp_init )
+MACHINE_RESET_MEMBER(bfm_sc2_state,awp_init)
{
- bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
- on_scorpion2_reset(machine);
- state->m_vfd0->reset();
- state->m_vfd1->reset();
+ on_scorpion2_reset(machine());
+ m_vfd0->reset();
+ m_vfd1->reset();
}
-static MACHINE_RESET( dm01_init )
+MACHINE_RESET_MEMBER(bfm_sc2_state,dm01_init)
{
- on_scorpion2_reset(machine);
+ on_scorpion2_reset(machine());
}
@@ -3689,19 +3691,18 @@ WRITE8_MEMBER(bfm_sc2_state::dmd_reset_w)
//TODO: Reset callback for DMD
}
-static MACHINE_START( sc2dmd )
+MACHINE_START_MEMBER(bfm_sc2_state,sc2dmd)
{
- bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- space->install_write_handler(0x2800, 0x2800, 0, 0, write8_delegate(FUNC(bfm_sc2_state::vfd1_dmd_w),state));
- space->install_write_handler(0x2900, 0x2900, 0, 0, write8_delegate(FUNC(bfm_sc2_state::dmd_reset_w),state));
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ space->install_write_handler(0x2800, 0x2800, 0, 0, write8_delegate(FUNC(bfm_sc2_state::vfd1_dmd_w),this));
+ space->install_write_handler(0x2900, 0x2900, 0, 0, write8_delegate(FUNC(bfm_sc2_state::dmd_reset_w),this));
}
/* machine driver for scorpion2 board */
static MACHINE_CONFIG_START( scorpion2, bfm_sc2_state )
- MCFG_MACHINE_RESET(awp_init)
+ MCFG_MACHINE_RESET_OVERRIDE(bfm_sc2_state,awp_init)
MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4 )
MCFG_CPU_PROGRAM_MAP(sc2_basemap)
MCFG_CPU_PERIODIC_INT(timer_irq, 1000 )
@@ -3734,7 +3735,7 @@ MACHINE_CONFIG_END
/* machine driver for scorpion2 board + matrix board */
static MACHINE_CONFIG_START( scorpion2_dm01, bfm_sc2_state )
- MCFG_MACHINE_RESET(dm01_init)
+ MCFG_MACHINE_RESET_OVERRIDE(bfm_sc2_state,dm01_init)
MCFG_QUANTUM_TIME(attotime::from_hz(960)) // needed for serial communication !!
MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4 )
MCFG_CPU_PROGRAM_MAP(sc2_basemap)
@@ -3745,7 +3746,7 @@ static MACHINE_CONFIG_START( scorpion2_dm01, bfm_sc2_state )
MCFG_SOUND_ADD("ymsnd",YM2413, XTAL_3_579545MHz)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_MACHINE_START(sc2dmd)
+ MCFG_MACHINE_START_OVERRIDE(bfm_sc2_state,sc2dmd)
MCFG_SOUND_ADD("upd",UPD7759, UPD7759_STANDARD_CLOCK)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
diff --git a/src/mame/drivers/bfm_sc4h.c b/src/mame/drivers/bfm_sc4h.c
index 8df89405220..9bb15d8182a 100644
--- a/src/mame/drivers/bfm_sc4h.c
+++ b/src/mame/drivers/bfm_sc4h.c
@@ -586,22 +586,21 @@ UINT16 bfm_sc4_68307_portb_r(address_space *space, bool dedicated, UINT16 line_m
}
}
-static MACHINE_RESET( sc4 )
+MACHINE_RESET_MEMBER(sc4_state,sc4)
{
- sc4_state *state = machine.driver_data<sc4_state>();
int pattern =0, i;
- for ( i = 0; i < state->m_reels; i++)
+ for ( i = 0; i < m_reels; i++)
{
stepper_reset_position(i);
if ( stepper_optic_state(i) ) pattern |= 1<<i;
}
- state->m_dochk41 = true;
+ m_dochk41 = true;
- state->m_optic_pattern = pattern;
- state->sec.reset();
+ m_optic_pattern = pattern;
+ sec.reset();
}
static NVRAM_HANDLER( bfm_sc4 )
@@ -622,26 +621,25 @@ static NVRAM_HANDLER( bfm_sc4 )
-static MACHINE_START( sc4 )
+MACHINE_START_MEMBER(sc4_state,sc4)
{
- sc4_state *state = machine.driver_data<sc4_state>();
- state->m_cpuregion = (UINT16*)state->memregion( "maincpu" )->base();
- state->m_mainram = (UINT16*)auto_alloc_array_clear(machine, UINT16, 0x10000);
- state->m_duart = machine.device("duart68681");
- state->m_ymz = machine.device("ymz");
- m68307_set_port_callbacks(machine.device("maincpu"),
+ m_cpuregion = (UINT16*)memregion( "maincpu" )->base();
+ m_mainram = (UINT16*)auto_alloc_array_clear(machine(), UINT16, 0x10000);
+ m_duart = machine().device("duart68681");
+ m_ymz = machine().device("ymz");
+ m68307_set_port_callbacks(machine().device("maincpu"),
bfm_sc4_68307_porta_r,
bfm_sc4_68307_porta_w,
bfm_sc4_68307_portb_r,
bfm_sc4_68307_portb_w );
- m68307_set_duart68681(machine.device("maincpu"),machine.device("m68307_68681"));
+ m68307_set_duart68681(machine().device("maincpu"),machine().device("m68307_68681"));
int reels = 6;
- state->m_reels=reels;
+ m_reels=reels;
for ( int n = 0; n < reels; n++ )
{
- if (state->m_reel_setup[n]) stepper_config(machine, n, state->m_reel_setup[n]);
+ if (m_reel_setup[n]) stepper_config(machine(), n, m_reel_setup[n]);
}
}
@@ -764,8 +762,8 @@ MACHINE_CONFIG_START( sc4, sc4_state )
// internal duart of the 68307... paired in machine start
MCFG_DUART68681_ADD("m68307_68681", 16000000/4, m68307_duart68681_config) // ?? Mhz
- MCFG_MACHINE_START( sc4 )
- MCFG_MACHINE_RESET( sc4 )
+ MCFG_MACHINE_START_OVERRIDE(sc4_state, sc4 )
+ MCFG_MACHINE_RESET_OVERRIDE(sc4_state, sc4 )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -785,19 +783,18 @@ MACHINE_CONFIG_END
-static MACHINE_START( adder4 )
+MACHINE_START_MEMBER(sc4_adder4_state,adder4)
{
- sc4_adder4_state *state = machine.driver_data<sc4_adder4_state>();
- state->m_adder4cpuregion = (UINT32*)state->memregion( "adder4" )->base();
- state->m_adder4ram = (UINT32*)auto_alloc_array_clear(machine, UINT32, 0x10000);
- MACHINE_START_CALL(sc4);
+ m_adder4cpuregion = (UINT32*)memregion( "adder4" )->base();
+ m_adder4ram = (UINT32*)auto_alloc_array_clear(machine(), UINT32, 0x10000);
+ MACHINE_START_CALL_MEMBER(sc4);
}
MACHINE_CONFIG_DERIVED_CLASS( sc4_adder4, sc4, sc4_adder4_state )
MCFG_CPU_ADD("adder4", M68340, 25175000) // 68340 (CPU32 core)
MCFG_CPU_PROGRAM_MAP(sc4_adder4_map)
- MCFG_MACHINE_START( adder4 )
+ MCFG_MACHINE_START_OVERRIDE(sc4_adder4_state, adder4 )
MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED_CLASS( sc4dmd, sc4, sc4_state )
@@ -808,7 +805,7 @@ MACHINE_CONFIG_DERIVED_CLASS( sc4dmd, sc4, sc4_state )
MCFG_CPU_PROGRAM_MAP(bfm_dm01_memmap)
MCFG_CPU_PERIODIC_INT(bfm_dm01_vbl, 1500 ) /* generate 1500 NMI's per second ?? what is the exact freq?? */
- MCFG_MACHINE_START( sc4 )
+ MCFG_MACHINE_START_OVERRIDE(sc4_state, sc4 )
MACHINE_CONFIG_END
INPUT_PORTS_START( sc4_base )
diff --git a/src/mame/drivers/bfm_swp.c b/src/mame/drivers/bfm_swp.c
index f594b0bc49f..378ca27ff46 100644
--- a/src/mame/drivers/bfm_swp.c
+++ b/src/mame/drivers/bfm_swp.c
@@ -139,6 +139,7 @@ protected:
// devices
required_device<cpu_device> m_maincpu;
+ virtual void machine_start();
};
@@ -199,11 +200,10 @@ static INPUT_PORTS_START( bfm_swp )
INPUT_PORTS_END
-static MACHINE_START( bfm_swp )
+void bfm_swp_state::machine_start()
{
- bfm_swp_state *state = machine.driver_data<bfm_swp_state>();
- state->m_cpuregion = (UINT32*)state->memregion( "maincpu" )->base();
- state->m_mainram = (UINT32*)auto_alloc_array_clear(machine, UINT32, 0x10000);
+ m_cpuregion = (UINT32*)memregion( "maincpu" )->base();
+ m_mainram = (UINT32*)auto_alloc_array_clear(machine(), UINT32, 0x10000);
}
@@ -214,7 +214,6 @@ static MACHINE_CONFIG_START( bfm_swp, bfm_swp_state )
MCFG_CPU_ADD("maincpu", M68340, 16000000)
MCFG_CPU_PROGRAM_MAP(bfm_swp_map)
- MCFG_MACHINE_START( bfm_swp )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
diff --git a/src/mame/drivers/bfmsys85.c b/src/mame/drivers/bfmsys85.c
index 8e52f53f5f0..d117e747d35 100644
--- a/src/mame/drivers/bfmsys85.c
+++ b/src/mame/drivers/bfmsys85.c
@@ -110,6 +110,8 @@ public:
DECLARE_READ_LINE_MEMBER(sys85_data_r);
DECLARE_WRITE_LINE_MEMBER(sys85_data_w);
DECLARE_DRIVER_INIT(decode);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -147,20 +149,19 @@ static ACIA6850_INTERFACE( m6809_acia_if )
// called if board is reset ///////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
-static MACHINE_RESET( bfm_sys85 )
+void bfmsys85_state::machine_reset()
{
- bfmsys85_state *state = machine.driver_data<bfmsys85_state>();
- state->m_alpha_clock = 0;
- state->m_mmtr_latch = 0;
- state->m_triac_latch = 0;
- state->m_irq_status = 0;
- state->m_is_timer_enabled = 1;
- state->m_coin_inhibits = 0;
- state->m_mux_output_strobe = 0;
- state->m_mux_input_strobe = 0;
- state->m_mux_input = 0;
-
- state->m_vfd->reset(); // reset display1
+ m_alpha_clock = 0;
+ m_mmtr_latch = 0;
+ m_triac_latch = 0;
+ m_irq_status = 0;
+ m_is_timer_enabled = 1;
+ m_coin_inhibits = 0;
+ m_mux_output_strobe = 0;
+ m_mux_input_strobe = 0;
+ m_mux_input = 0;
+
+ m_vfd->reset(); // reset display1
// reset stepper motors ///////////////////////////////////////////////////
{
@@ -171,9 +172,9 @@ static MACHINE_RESET( bfm_sys85 )
stepper_reset_position(i);
if ( stepper_optic_state(i) ) pattern |= 1<<i;
}
- state->m_optic_pattern = pattern;
+ m_optic_pattern = pattern;
}
- state->m_locked = 0x00; // hardware is open
+ m_locked = 0x00; // hardware is open
}
///////////////////////////////////////////////////////////////////////////
@@ -368,12 +369,12 @@ READ8_MEMBER(bfmsys85_state::triac_r)
// machine start (called only once) ////////////////////////////////////////
-static MACHINE_START( bfm_sys85 )
+void bfmsys85_state::machine_start()
{
int i;
for ( i = 0; i < 4; i++ )
{
- stepper_config(machine, i, &starpoint_interface_48step);
+ stepper_config(machine(), i, &starpoint_interface_48step);
}
}
@@ -415,8 +416,6 @@ ADDRESS_MAP_END
// machine driver for system85 board //////////////////////////////////////
static MACHINE_CONFIG_START( bfmsys85, bfmsys85_state )
- MCFG_MACHINE_START(bfm_sys85) // main system85 board initialisation
- MCFG_MACHINE_RESET(bfm_sys85)
MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4) // 6809 CPU at 1 Mhz
MCFG_CPU_PROGRAM_MAP(memmap) // setup read and write memorymap
MCFG_CPU_PERIODIC_INT(timer_irq, 1000 ) // generate 1000 IRQ's per second
diff --git a/src/mame/drivers/big10.c b/src/mame/drivers/big10.c
index 9f52d765de2..bd608fbcca8 100644
--- a/src/mame/drivers/big10.c
+++ b/src/mame/drivers/big10.c
@@ -74,6 +74,7 @@ public:
UINT8 m_mux_data;
DECLARE_READ8_MEMBER(mux_r);
DECLARE_WRITE8_MEMBER(mux_w);
+ virtual void machine_reset();
};
@@ -100,7 +101,7 @@ static TIMER_DEVICE_CALLBACK( big10_interrupt )
* Machine Reset *
*************************************/
-static MACHINE_RESET(big10)
+void big10_state::machine_reset()
{
}
@@ -248,7 +249,6 @@ static MACHINE_CONFIG_START( big10, big10_state )
MCFG_CPU_IO_MAP(main_io)
MCFG_TIMER_ADD_SCANLINE("scantimer", big10_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(big10)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/bigevglf.c b/src/mame/drivers/bigevglf.c
index fda5173534d..f80d0cfb797 100644
--- a/src/mame/drivers/bigevglf.c
+++ b/src/mame/drivers/bigevglf.c
@@ -416,76 +416,74 @@ static const msm5232_interface msm5232_config =
{ 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 } /* 0.65 (???) uF capacitors */
};
-static MACHINE_START( bigevglf )
+void bigevglf_state::machine_start()
{
- bigevglf_state *state = machine.driver_data<bigevglf_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_mcu = machine.device("mcu");
-
- state->save_item(NAME(state->m_vidram_bank));
- state->save_item(NAME(state->m_plane_selected));
- state->save_item(NAME(state->m_plane_visible));
-
- state->save_item(NAME(state->m_beg13_ls74));
- state->save_item(NAME(state->m_beg_bank));
- state->save_item(NAME(state->m_port_select));
-
- state->save_item(NAME(state->m_sound_nmi_enable));
- state->save_item(NAME(state->m_pending_nmi));
- state->save_item(NAME(state->m_for_sound));
- state->save_item(NAME(state->m_from_sound));
- state->save_item(NAME(state->m_sound_state));
-
- state->save_item(NAME(state->m_main_sent));
- state->save_item(NAME(state->m_mcu_sent));
- state->save_item(NAME(state->m_mcu_coin_bit5));
-
- state->save_item(NAME(state->m_port_a_in));
- state->save_item(NAME(state->m_port_a_out));
- state->save_item(NAME(state->m_ddr_a));
- state->save_item(NAME(state->m_port_b_in));
- state->save_item(NAME(state->m_port_b_out));
- state->save_item(NAME(state->m_ddr_b));
- state->save_item(NAME(state->m_port_c_in));
- state->save_item(NAME(state->m_port_c_out));
- state->save_item(NAME(state->m_ddr_c));
- state->save_item(NAME(state->m_from_mcu));
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_mcu = machine().device("mcu");
+
+ save_item(NAME(m_vidram_bank));
+ save_item(NAME(m_plane_selected));
+ save_item(NAME(m_plane_visible));
+
+ save_item(NAME(m_beg13_ls74));
+ save_item(NAME(m_beg_bank));
+ save_item(NAME(m_port_select));
+
+ save_item(NAME(m_sound_nmi_enable));
+ save_item(NAME(m_pending_nmi));
+ save_item(NAME(m_for_sound));
+ save_item(NAME(m_from_sound));
+ save_item(NAME(m_sound_state));
+
+ save_item(NAME(m_main_sent));
+ save_item(NAME(m_mcu_sent));
+ save_item(NAME(m_mcu_coin_bit5));
+
+ save_item(NAME(m_port_a_in));
+ save_item(NAME(m_port_a_out));
+ save_item(NAME(m_ddr_a));
+ save_item(NAME(m_port_b_in));
+ save_item(NAME(m_port_b_out));
+ save_item(NAME(m_ddr_b));
+ save_item(NAME(m_port_c_in));
+ save_item(NAME(m_port_c_out));
+ save_item(NAME(m_ddr_c));
+ save_item(NAME(m_from_mcu));
}
-static MACHINE_RESET( bigevglf )
+void bigevglf_state::machine_reset()
{
- bigevglf_state *state = machine.driver_data<bigevglf_state>();
- state->m_vidram_bank = 0;
- state->m_plane_selected = 0;
- state->m_plane_visible = 0;
-
- state->m_beg13_ls74[0] = 0;
- state->m_beg13_ls74[1] = 0;
- state->m_beg_bank = 0;
- state->m_port_select = 0;
-
- state->m_sound_nmi_enable = 0;
- state->m_pending_nmi = 0;
- state->m_for_sound = 0;
- state->m_from_sound = 0;
- state->m_sound_state = 0;
-
- state->m_main_sent = 0;
- state->m_mcu_sent = 0;
- state->m_mcu_coin_bit5 = 0;
-
- state->m_port_a_in = 0;
- state->m_port_a_out = 0;
- state->m_ddr_a = 0;
- state->m_port_b_in = 0;
- state->m_port_b_out = 0;
- state->m_ddr_b = 0;
- state->m_port_c_in = 0;
- state->m_port_c_out = 0;
- state->m_ddr_c = 0;
- state->m_from_mcu = 0;
+ m_vidram_bank = 0;
+ m_plane_selected = 0;
+ m_plane_visible = 0;
+
+ m_beg13_ls74[0] = 0;
+ m_beg13_ls74[1] = 0;
+ m_beg_bank = 0;
+ m_port_select = 0;
+
+ m_sound_nmi_enable = 0;
+ m_pending_nmi = 0;
+ m_for_sound = 0;
+ m_from_sound = 0;
+ m_sound_state = 0;
+
+ m_main_sent = 0;
+ m_mcu_sent = 0;
+ m_mcu_coin_bit5 = 0;
+
+ m_port_a_in = 0;
+ m_port_a_out = 0;
+ m_ddr_a = 0;
+ m_port_b_in = 0;
+ m_port_b_out = 0;
+ m_ddr_b = 0;
+ m_port_c_in = 0;
+ m_port_c_out = 0;
+ m_ddr_c = 0;
+ m_from_mcu = 0;
}
@@ -513,8 +511,6 @@ static MACHINE_CONFIG_START( bigevglf, bigevglf_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - interleaving is forced on the fly */
- MCFG_MACHINE_START(bigevglf)
- MCFG_MACHINE_RESET(bigevglf)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -526,7 +522,6 @@ static MACHINE_CONFIG_START( bigevglf, bigevglf_state )
MCFG_GFXDECODE(bigevglf)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(bigevglf)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bigstrkb.c b/src/mame/drivers/bigstrkb.c
index 968dbe2d396..b3d496b7098 100644
--- a/src/mame/drivers/bigstrkb.c
+++ b/src/mame/drivers/bigstrkb.c
@@ -211,7 +211,6 @@ static MACHINE_CONFIG_START( bigstrkb, bigstrkb_state )
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(bigstrkb)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
// MCFG_SOUND_ADD("ymsnd", YM2151, ym2151_config)
diff --git a/src/mame/drivers/bingoc.c b/src/mame/drivers/bingoc.c
index 3981e3fac30..8715e85627b 100644
--- a/src/mame/drivers/bingoc.c
+++ b/src/mame/drivers/bingoc.c
@@ -45,12 +45,13 @@ public:
DECLARE_READ8_MEMBER(sound_test_r);
DECLARE_WRITE16_MEMBER(main_sound_latch_w);
DECLARE_WRITE8_MEMBER(bingoc_play_w);
+ virtual void video_start();
};
#define SOUND_TEST 0
-static VIDEO_START(bingoc)
+void bingoc_state::video_start()
{
}
@@ -163,7 +164,6 @@ static MACHINE_CONFIG_START( bingoc, bingoc_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(bingoc)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") //might just be mono...
diff --git a/src/mame/drivers/bingor.c b/src/mame/drivers/bingor.c
index ccc18592925..f74486fe2f4 100644
--- a/src/mame/drivers/bingor.c
+++ b/src/mame/drivers/bingor.c
@@ -453,10 +453,11 @@ public:
required_shared_ptr<UINT16> m_blit_ram;
DECLARE_READ16_MEMBER(test_r);
DECLARE_READ8_MEMBER(test8_r);
+ virtual void video_start();
};
-static VIDEO_START(bingor)
+void bingor_state::video_start()
{
}
@@ -638,7 +639,6 @@ static MACHINE_CONFIG_START( bingor, bingor_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(bingor)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("saa", SAA1099, 6000000 )
diff --git a/src/mame/drivers/bionicc.c b/src/mame/drivers/bionicc.c
index 19f599a6e79..04e4785a47a 100644
--- a/src/mame/drivers/bionicc.c
+++ b/src/mame/drivers/bionicc.c
@@ -328,27 +328,25 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( bionicc )
+void bionicc_state::machine_start()
{
- bionicc_state *state = machine.driver_data<bionicc_state>();
- state->save_item(NAME(state->m_soundcommand));
- state->save_item(NAME(state->m_inp));
- state->save_item(NAME(state->m_scroll));
+ save_item(NAME(m_soundcommand));
+ save_item(NAME(m_inp));
+ save_item(NAME(m_scroll));
}
-static MACHINE_RESET( bionicc )
+void bionicc_state::machine_reset()
{
- bionicc_state *state = machine.driver_data<bionicc_state>();
-
- state->m_inp[0] = 0;
- state->m_inp[1] = 0;
- state->m_inp[2] = 0;
- state->m_scroll[0] = 0;
- state->m_scroll[1] = 0;
- state->m_scroll[2] = 0;
- state->m_scroll[3] = 0;
- state->m_soundcommand = 0;
+
+ m_inp[0] = 0;
+ m_inp[1] = 0;
+ m_inp[2] = 0;
+ m_scroll[0] = 0;
+ m_scroll[1] = 0;
+ m_scroll[2] = 0;
+ m_scroll[3] = 0;
+ m_soundcommand = 0;
}
static MACHINE_CONFIG_START( bionicc, bionicc_state )
@@ -366,8 +364,6 @@ static MACHINE_CONFIG_START( bionicc, bionicc_state )
*/
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,4*60)
- MCFG_MACHINE_START(bionicc)
- MCFG_MACHINE_RESET(bionicc)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -381,7 +377,6 @@ static MACHINE_CONFIG_START( bionicc, bionicc_state )
MCFG_GFXDECODE(bionicc)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(bionicc)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
diff --git a/src/mame/drivers/bishi.c b/src/mame/drivers/bishi.c
index 28ff0f899ce..a5edbb3ddf9 100644
--- a/src/mame/drivers/bishi.c
+++ b/src/mame/drivers/bishi.c
@@ -388,24 +388,22 @@ static const k054338_interface bishi_k054338_intf =
"none"
};
-static MACHINE_START( bishi )
+void bishi_state::machine_start()
{
- bishi_state *state = machine.driver_data<bishi_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_k056832 = machine.device("k056832");
- state->m_k054338 = machine.device("k054338");
- state->m_k055555 = machine.device("k055555");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_k056832 = machine().device("k056832");
+ m_k054338 = machine().device("k054338");
+ m_k055555 = machine().device("k055555");
- state->save_item(NAME(state->m_cur_control));
- state->save_item(NAME(state->m_cur_control2));
+ save_item(NAME(m_cur_control));
+ save_item(NAME(m_cur_control2));
}
-static MACHINE_RESET( bishi )
+void bishi_state::machine_reset()
{
- bishi_state *state = machine.driver_data<bishi_state>();
- state->m_cur_control = 0;
- state->m_cur_control2 = 0;
+ m_cur_control = 0;
+ m_cur_control2 = 0;
}
static MACHINE_CONFIG_START( bishi, bishi_state )
@@ -415,8 +413,6 @@ static MACHINE_CONFIG_START( bishi, bishi_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", bishi_scanline, "screen", 0, 1)
- MCFG_MACHINE_START(bishi)
- MCFG_MACHINE_RESET(bishi)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
@@ -430,7 +426,6 @@ static MACHINE_CONFIG_START( bishi, bishi_state )
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(bishi)
MCFG_K056832_ADD("k056832", bishi_k056832_intf)
MCFG_K054338_ADD("k054338", bishi_k054338_intf)
diff --git a/src/mame/drivers/bking.c b/src/mame/drivers/bking.c
index 897e915470b..f136636ba05 100644
--- a/src/mame/drivers/bking.c
+++ b/src/mame/drivers/bking.c
@@ -388,82 +388,78 @@ static const ay8910_interface ay8910_config =
DEVCB_DRIVER_MEMBER(bking_state,port_b_w)
};
-static MACHINE_START( bking )
+void bking_state::machine_start()
{
- bking_state *state = machine.driver_data<bking_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
/* video */
- state->save_item(NAME(state->m_pc3259_output));
- state->save_item(NAME(state->m_pc3259_mask));
- state->save_item(NAME(state->m_xld1));
- state->save_item(NAME(state->m_xld2));
- state->save_item(NAME(state->m_xld3));
- state->save_item(NAME(state->m_yld1));
- state->save_item(NAME(state->m_yld2));
- state->save_item(NAME(state->m_yld3));
- state->save_item(NAME(state->m_ball1_pic));
- state->save_item(NAME(state->m_ball2_pic));
- state->save_item(NAME(state->m_crow_pic));
- state->save_item(NAME(state->m_crow_flip));
- state->save_item(NAME(state->m_palette_bank));
- state->save_item(NAME(state->m_controller));
- state->save_item(NAME(state->m_hit));
+ save_item(NAME(m_pc3259_output));
+ save_item(NAME(m_pc3259_mask));
+ save_item(NAME(m_xld1));
+ save_item(NAME(m_xld2));
+ save_item(NAME(m_xld3));
+ save_item(NAME(m_yld1));
+ save_item(NAME(m_yld2));
+ save_item(NAME(m_yld3));
+ save_item(NAME(m_ball1_pic));
+ save_item(NAME(m_ball2_pic));
+ save_item(NAME(m_crow_pic));
+ save_item(NAME(m_crow_flip));
+ save_item(NAME(m_palette_bank));
+ save_item(NAME(m_controller));
+ save_item(NAME(m_hit));
/* sound */
- state->save_item(NAME(state->m_sound_nmi_enable));
+ save_item(NAME(m_sound_nmi_enable));
}
-static MACHINE_START( bking3 )
+MACHINE_START_MEMBER(bking_state,bking3)
{
- bking_state *state = machine.driver_data<bking_state>();
- MACHINE_START_CALL(bking);
+ bking_state::machine_start();
/* misc */
- state->save_item(NAME(state->m_addr_h));
- state->save_item(NAME(state->m_addr_l));
+ save_item(NAME(m_addr_h));
+ save_item(NAME(m_addr_l));
}
-static MACHINE_RESET( bking )
+void bking_state::machine_reset()
{
- bking_state *state = machine.driver_data<bking_state>();
/* video */
- state->m_pc3259_output[0] = 0;
- state->m_pc3259_output[1] = 0;
- state->m_pc3259_output[2] = 0;
- state->m_pc3259_output[3] = 0;
- state->m_pc3259_mask = 0;
- state->m_xld1 = 0;
- state->m_xld2 = 0;
- state->m_xld3 = 0;
- state->m_yld1 = 0;
- state->m_yld2 = 0;
- state->m_yld3 = 0;
- state->m_ball1_pic = 0;
- state->m_ball2_pic = 0;
- state->m_crow_pic = 0;
- state->m_crow_flip = 0;
- state->m_palette_bank = 0;
- state->m_controller = 0;
- state->m_hit = 0;
+ m_pc3259_output[0] = 0;
+ m_pc3259_output[1] = 0;
+ m_pc3259_output[2] = 0;
+ m_pc3259_output[3] = 0;
+ m_pc3259_mask = 0;
+ m_xld1 = 0;
+ m_xld2 = 0;
+ m_xld3 = 0;
+ m_yld1 = 0;
+ m_yld2 = 0;
+ m_yld3 = 0;
+ m_ball1_pic = 0;
+ m_ball2_pic = 0;
+ m_crow_pic = 0;
+ m_crow_flip = 0;
+ m_palette_bank = 0;
+ m_controller = 0;
+ m_hit = 0;
/* sound */
- state->m_sound_nmi_enable = 1;
+ m_sound_nmi_enable = 1;
}
-static MACHINE_RESET( bking3 )
+MACHINE_RESET_MEMBER(bking_state,bking3)
{
- bking_state *state = machine.driver_data<bking_state>();
- machine.device("mcu")->execute().set_input_line(0, CLEAR_LINE);
+ machine().device("mcu")->execute().set_input_line(0, CLEAR_LINE);
- MACHINE_RESET_CALL(bking);
+ bking_state::machine_reset();
/* misc */
- state->m_addr_h = 0;
- state->m_addr_l = 0;
+ m_addr_h = 0;
+ m_addr_l = 0;
}
static MACHINE_CONFIG_START( bking, bking_state )
@@ -482,8 +478,6 @@ static MACHINE_CONFIG_START( bking, bking_state )
/* - periodic IRQ, with frequency 6000000/(4*16*16*10*16) = 36.621 Hz, */
MCFG_CPU_PERIODIC_INT(irq0_line_hold, (double)6000000/(4*16*16*10*16))
- MCFG_MACHINE_START(bking)
- MCFG_MACHINE_RESET(bking)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -497,8 +491,6 @@ static MACHINE_CONFIG_START( bking, bking_state )
MCFG_GFXDECODE(bking)
MCFG_PALETTE_LENGTH(4*8+4*4+4*2+4*2)
- MCFG_PALETTE_INIT(bking)
- MCFG_VIDEO_START(bking)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -523,8 +515,8 @@ static MACHINE_CONFIG_DERIVED( bking3, bking )
MCFG_CPU_PROGRAM_MAP(buggychl_mcu_map)
MCFG_DEVICE_ADD("bmcu", BUGGYCHL_MCU, 0)
- MCFG_MACHINE_START(bking3)
- MCFG_MACHINE_RESET(bking3)
+ MCFG_MACHINE_START_OVERRIDE(bking_state,bking3)
+ MCFG_MACHINE_RESET_OVERRIDE(bking_state,bking3)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/blackt96.c b/src/mame/drivers/blackt96.c
index 55941f860b6..352d4215baa 100644
--- a/src/mame/drivers/blackt96.c
+++ b/src/mame/drivers/blackt96.c
@@ -130,6 +130,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg5_tile_info);
TILE_GET_INFO_MEMBER(get_bg6_tile_info);
TILE_GET_INFO_MEMBER(get_bg7_tile_info);
+ virtual void video_start();
};
#define GET_INFO( ram ) \
@@ -159,27 +160,26 @@ WRITE16_MEMBER(blackt96_state::bg_videoram5_w) { COMBINE_DATA(&m_spriteram5[offs
WRITE16_MEMBER(blackt96_state::bg_videoram6_w) { COMBINE_DATA(&m_spriteram6[offset]); m_bg_tilemap[6]->mark_tile_dirty(offset/2); }
WRITE16_MEMBER(blackt96_state::bg_videoram7_w) { COMBINE_DATA(&m_spriteram7[offset]); m_bg_tilemap[7]->mark_tile_dirty(offset/2); }
-static VIDEO_START( blackt96 )
+void blackt96_state::video_start()
{
- blackt96_state *state = machine.driver_data<blackt96_state>();
- state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg0_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg1_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- state->m_bg_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg2_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- state->m_bg_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg3_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- state->m_bg_tilemap[4] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg4_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- state->m_bg_tilemap[5] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg5_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- state->m_bg_tilemap[6] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg6_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- state->m_bg_tilemap[7] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg7_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
-
- state->m_spriteram[0] = state->m_spriteram0;
- state->m_spriteram[1] = state->m_spriteram1;
- state->m_spriteram[2] = state->m_spriteram2;
- state->m_spriteram[3] = state->m_spriteram3;
- state->m_spriteram[4] = state->m_spriteram4;
- state->m_spriteram[5] = state->m_spriteram5;
- state->m_spriteram[6] = state->m_spriteram6;
- state->m_spriteram[7] = state->m_spriteram7;
+ m_bg_tilemap[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg0_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg1_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_bg_tilemap[2] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg2_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_bg_tilemap[3] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg3_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_bg_tilemap[4] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg4_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_bg_tilemap[5] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg5_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_bg_tilemap[6] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg6_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_bg_tilemap[7] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg7_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+
+ m_spriteram[0] = m_spriteram0;
+ m_spriteram[1] = m_spriteram1;
+ m_spriteram[2] = m_spriteram2;
+ m_spriteram[3] = m_spriteram3;
+ m_spriteram[4] = m_spriteram4;
+ m_spriteram[5] = m_spriteram5;
+ m_spriteram[6] = m_spriteram6;
+ m_spriteram[7] = m_spriteram7;
}
static void draw_strip(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int page, int column, int bg)
@@ -625,7 +625,6 @@ static MACHINE_CONFIG_START( blackt96, blackt96_state )
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(blackt96)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/bladestl.c b/src/mame/drivers/bladestl.c
index 7d5a9296c3c..2e612ac28e5 100644
--- a/src/mame/drivers/bladestl.c
+++ b/src/mame/drivers/bladestl.c
@@ -301,33 +301,31 @@ static const k007420_interface bladestl_k007420_intf =
};
-static MACHINE_START( bladestl )
+void bladestl_state::machine_start()
{
- bladestl_state *state = machine.driver_data<bladestl_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k007342 = machine.device("k007342");
- state->m_k007420 = machine.device("k007420");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k007342 = machine().device("k007342");
+ m_k007420 = machine().device("k007420");
- state->save_item(NAME(state->m_spritebank));
- state->save_item(NAME(state->m_layer_colorbase));
- state->save_item(NAME(state->m_last_track));
+ save_item(NAME(m_spritebank));
+ save_item(NAME(m_layer_colorbase));
+ save_item(NAME(m_last_track));
}
-static MACHINE_RESET( bladestl )
+void bladestl_state::machine_reset()
{
- bladestl_state *state = machine.driver_data<bladestl_state>();
int i;
- state->m_layer_colorbase[0] = 0;
- state->m_layer_colorbase[1] = 1;
- state->m_spritebank = 0;
+ m_layer_colorbase[0] = 0;
+ m_layer_colorbase[1] = 1;
+ m_spritebank = 0;
for (i = 0; i < 4 ; i++)
- state->m_last_track[i] = 0;
+ m_last_track[i] = 0;
}
static MACHINE_CONFIG_START( bladestl, bladestl_state )
@@ -342,8 +340,6 @@ static MACHINE_CONFIG_START( bladestl, bladestl_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(bladestl)
- MCFG_MACHINE_RESET(bladestl)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -354,7 +350,6 @@ static MACHINE_CONFIG_START( bladestl, bladestl_state )
MCFG_SCREEN_UPDATE_STATIC(bladestl)
MCFG_GFXDECODE(bladestl)
- MCFG_PALETTE_INIT(bladestl)
MCFG_PALETTE_LENGTH(32 + 16*16)
MCFG_K007342_ADD("k007342", bladestl_k007342_intf)
diff --git a/src/mame/drivers/blitz.c b/src/mame/drivers/blitz.c
index 9cd27e039b6..53fd019dfb2 100644
--- a/src/mame/drivers/blitz.c
+++ b/src/mame/drivers/blitz.c
@@ -311,6 +311,8 @@ public:
DECLARE_WRITE8_MEMBER(lamps_a_w);
DECLARE_WRITE8_MEMBER(sound_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -352,10 +354,9 @@ TILE_GET_INFO_MEMBER(blitz_state::get_bg_tile_info)
}
-static VIDEO_START( megadpkr )
+void blitz_state::video_start()
{
- blitz_state *state = machine.driver_data<blitz_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blitz_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blitz_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
static SCREEN_UPDATE_IND16( megadpkr )
@@ -366,9 +367,9 @@ static SCREEN_UPDATE_IND16( megadpkr )
}
-static PALETTE_INIT( megadpkr )
+void blitz_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
/*
This hardware has a feature called BLUE KILLER.
Using the original intensity line, the PCB has a bridge
@@ -387,7 +388,7 @@ static PALETTE_INIT( megadpkr )
if (color_prom == 0) return;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0, bit1, bit2, bit3, r, g, b, bk;
@@ -407,7 +408,7 @@ static PALETTE_INIT( megadpkr )
bit2 = (color_prom[i] >> 2) & 0x01;
b = bk * (bit2 * 0xff);
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -814,9 +815,7 @@ static MACHINE_CONFIG_START( megadpkr, blitz_state )
MCFG_MC6845_ADD("crtc", MC6845, CPU_CLOCK, mc6845_intf)
MCFG_GFXDECODE(megadpkr)
- MCFG_PALETTE_INIT(megadpkr)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(megadpkr)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/blitz68k.c b/src/mame/drivers/blitz68k.c
index e42343d09a8..6e701be6207 100644
--- a/src/mame/drivers/blitz68k.c
+++ b/src/mame/drivers/blitz68k.c
@@ -171,6 +171,8 @@ public:
DECLARE_DRIVER_INIT(megadblj);
DECLARE_DRIVER_INIT(hermit);
DECLARE_DRIVER_INIT(dualgame);
+ DECLARE_VIDEO_START(blitz68k);
+ DECLARE_VIDEO_START(blitz68k_addr_factor1);
};
/*************************************************************************************************************
@@ -192,16 +194,15 @@ struct blit_t
int addr_factor;
} blit;
-static VIDEO_START(blitz68k)
+VIDEO_START_MEMBER(blitz68k_state,blitz68k)
{
- blitz68k_state *state = machine.driver_data<blitz68k_state>();
- state->m_blit_buffer = auto_alloc_array(machine, UINT8, 512*256);
+ m_blit_buffer = auto_alloc_array(machine(), UINT8, 512*256);
blit.addr_factor = 2;
}
-static VIDEO_START(blitz68k_addr_factor1)
+VIDEO_START_MEMBER(blitz68k_state,blitz68k_addr_factor1)
{
- VIDEO_START_CALL(blitz68k);
+ VIDEO_START_CALL_MEMBER(blitz68k);
blit.addr_factor = 1;
}
@@ -1727,7 +1728,7 @@ static MACHINE_CONFIG_START( ilpag, blitz68k_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(blitz68k)
+ MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k)
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
@@ -1802,7 +1803,7 @@ static MACHINE_CONFIG_START( cjffruit, blitz68k_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(blitz68k)
+ MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k)
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1834,7 +1835,7 @@ static MACHINE_CONFIG_START( bankrob, blitz68k_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(blitz68k)
+ MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k)
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1864,7 +1865,7 @@ static MACHINE_CONFIG_START( bankroba, blitz68k_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(blitz68k_addr_factor1)
+ MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k_addr_factor1)
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1893,7 +1894,7 @@ static MACHINE_CONFIG_START( deucesw2, blitz68k_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(blitz68k)
+ MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k)
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1924,7 +1925,7 @@ static MACHINE_CONFIG_START( dualgame, blitz68k_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(blitz68k)
+ MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k)
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1953,7 +1954,7 @@ static MACHINE_CONFIG_START( hermit, blitz68k_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(blitz68k)
+ MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k)
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/blktiger.c b/src/mame/drivers/blktiger.c
index 570ad95a5d2..4ea40332110 100644
--- a/src/mame/drivers/blktiger.c
+++ b/src/mame/drivers/blktiger.c
@@ -275,42 +275,40 @@ static const ym2203_interface ym2203_config =
DEVCB_LINE(irqhandler)
};
-static MACHINE_START( blktiger )
+void blktiger_state::machine_start()
{
- blktiger_state *state = machine.driver_data<blktiger_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_mcu = machine.device("mcu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_mcu = machine().device("mcu");
/* configure bankswitching */
- state->membank("bank1")->configure_entries(0, 16, state->memregion("maincpu")->base() + 0x10000, 0x4000);
-
- state->save_item(NAME(state->m_scroll_bank));
- state->save_item(NAME(state->m_screen_layout));
- state->save_item(NAME(state->m_chon));
- state->save_item(NAME(state->m_objon));
- state->save_item(NAME(state->m_bgon));
- state->save_item(NAME(state->m_z80_latch));
- state->save_item(NAME(state->m_i8751_latch));
- state->save_item(NAME(state->m_scroll_x));
- state->save_item(NAME(state->m_scroll_y));
+ membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
+
+ save_item(NAME(m_scroll_bank));
+ save_item(NAME(m_screen_layout));
+ save_item(NAME(m_chon));
+ save_item(NAME(m_objon));
+ save_item(NAME(m_bgon));
+ save_item(NAME(m_z80_latch));
+ save_item(NAME(m_i8751_latch));
+ save_item(NAME(m_scroll_x));
+ save_item(NAME(m_scroll_y));
}
-static MACHINE_RESET( blktiger )
+void blktiger_state::machine_reset()
{
- blktiger_state *state = machine.driver_data<blktiger_state>();
/* configure bankswitching */
- state->membank("bank1")->configure_entries(0, 16, state->memregion("maincpu")->base() + 0x10000, 0x4000);
-
- state->m_scroll_x[0] = 0;
- state->m_scroll_x[1] = 0;
- state->m_scroll_y[0] = 0;
- state->m_scroll_y[1] = 0;
- state->m_scroll_bank = 0;
- state->m_screen_layout = 0;
- state->m_z80_latch = 0;
- state->m_i8751_latch = 0;
+ membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
+
+ m_scroll_x[0] = 0;
+ m_scroll_x[1] = 0;
+ m_scroll_y[0] = 0;
+ m_scroll_y[1] = 0;
+ m_scroll_bank = 0;
+ m_screen_layout = 0;
+ m_z80_latch = 0;
+ m_i8751_latch = 0;
}
static MACHINE_CONFIG_START( blktiger, blktiger_state )
@@ -329,8 +327,6 @@ static MACHINE_CONFIG_START( blktiger, blktiger_state )
MCFG_CPU_IO_MAP(blktiger_mcu_io_map)
//MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(blktiger)
- MCFG_MACHINE_RESET(blktiger)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -344,7 +340,6 @@ static MACHINE_CONFIG_START( blktiger, blktiger_state )
MCFG_GFXDECODE(blktiger)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(blktiger)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
diff --git a/src/mame/drivers/blmbycar.c b/src/mame/drivers/blmbycar.c
index 9f5acc4d0a4..840572d22d7 100644
--- a/src/mame/drivers/blmbycar.c
+++ b/src/mame/drivers/blmbycar.c
@@ -335,20 +335,18 @@ GFXDECODE_END
***************************************************************************/
-static MACHINE_START( blmbycar )
+MACHINE_START_MEMBER(blmbycar_state,blmbycar)
{
- blmbycar_state *state = machine.driver_data<blmbycar_state>();
- state->save_item(NAME(state->m_pot_wheel));
- state->save_item(NAME(state->m_old_val));
+ save_item(NAME(m_pot_wheel));
+ save_item(NAME(m_old_val));
}
-static MACHINE_RESET( blmbycar )
+MACHINE_RESET_MEMBER(blmbycar_state,blmbycar)
{
- blmbycar_state *state = machine.driver_data<blmbycar_state>();
- state->m_pot_wheel = 0;
- state->m_old_val = 0;
+ m_pot_wheel = 0;
+ m_old_val = 0;
}
@@ -359,8 +357,8 @@ static MACHINE_CONFIG_START( blmbycar, blmbycar_state )
MCFG_CPU_PROGRAM_MAP(blmbycar_map)
MCFG_CPU_VBLANK_INT("screen", irq1_line_hold)
- MCFG_MACHINE_START(blmbycar)
- MCFG_MACHINE_RESET(blmbycar)
+ MCFG_MACHINE_START_OVERRIDE(blmbycar_state,blmbycar)
+ MCFG_MACHINE_RESET_OVERRIDE(blmbycar_state,blmbycar)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -373,7 +371,6 @@ static MACHINE_CONFIG_START( blmbycar, blmbycar_state )
MCFG_GFXDECODE(blmbycar)
MCFG_PALETTE_LENGTH(0x300)
- MCFG_VIDEO_START(blmbycar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -384,18 +381,16 @@ static MACHINE_CONFIG_START( blmbycar, blmbycar_state )
MACHINE_CONFIG_END
-static MACHINE_START( watrball )
+MACHINE_START_MEMBER(blmbycar_state,watrball)
{
- blmbycar_state *state = machine.driver_data<blmbycar_state>();
- state->save_item(NAME(state->m_retvalue));
+ save_item(NAME(m_retvalue));
}
-static MACHINE_RESET( watrball )
+MACHINE_RESET_MEMBER(blmbycar_state,watrball)
{
- blmbycar_state *state = machine.driver_data<blmbycar_state>();
- state->m_retvalue = 0;
+ m_retvalue = 0;
}
static MACHINE_CONFIG_START( watrball, blmbycar_state )
@@ -405,8 +400,8 @@ static MACHINE_CONFIG_START( watrball, blmbycar_state )
MCFG_CPU_PROGRAM_MAP(watrball_map)
MCFG_CPU_VBLANK_INT("screen", irq1_line_hold)
- MCFG_MACHINE_START(watrball)
- MCFG_MACHINE_RESET(watrball)
+ MCFG_MACHINE_START_OVERRIDE(blmbycar_state,watrball)
+ MCFG_MACHINE_RESET_OVERRIDE(blmbycar_state,watrball)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -419,7 +414,6 @@ static MACHINE_CONFIG_START( watrball, blmbycar_state )
MCFG_GFXDECODE(blmbycar)
MCFG_PALETTE_LENGTH(0x300)
- MCFG_VIDEO_START(blmbycar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/blockade.c b/src/mame/drivers/blockade.c
index 49ee1fc5965..a19d7cc77e6 100644
--- a/src/mame/drivers/blockade.c
+++ b/src/mame/drivers/blockade.c
@@ -439,10 +439,10 @@ static GFXDECODE_START( blasto )
GFXDECODE_ENTRY( "gfx1", 0x0000, blasto_layout, 0, 1 )
GFXDECODE_END
-static PALETTE_INIT( blockade )
+void blockade_state::palette_init()
{
- palette_set_color(machine,0,MAKE_RGB(0x00,0x00,0x00)); /* BLACK */
- palette_set_color(machine,1,MAKE_RGB(0xff,0xff,0xff)); /* WHITE */
+ palette_set_color(machine(),0,MAKE_RGB(0x00,0x00,0x00)); /* BLACK */
+ palette_set_color(machine(),1,MAKE_RGB(0xff,0xff,0xff)); /* WHITE */
}
@@ -452,20 +452,18 @@ static PALETTE_INIT( blockade )
*
*************************************/
-static MACHINE_START( blockade )
+void blockade_state::machine_start()
{
- blockade_state *state = machine.driver_data<blockade_state>();
- state->save_item(NAME(state->m_coin_latch));
- state->save_item(NAME(state->m_just_been_reset));
+ save_item(NAME(m_coin_latch));
+ save_item(NAME(m_just_been_reset));
}
-static MACHINE_RESET( blockade )
+void blockade_state::machine_reset()
{
- blockade_state *state = machine.driver_data<blockade_state>();
- state->m_coin_latch = 1;
- state->m_just_been_reset = 0;
+ m_coin_latch = 1;
+ m_just_been_reset = 0;
}
static MACHINE_CONFIG_START( blockade, blockade_state )
@@ -476,8 +474,6 @@ static MACHINE_CONFIG_START( blockade, blockade_state )
MCFG_CPU_IO_MAP(main_io_map)
MCFG_CPU_VBLANK_INT("screen", blockade_interrupt)
- MCFG_MACHINE_START(blockade)
- MCFG_MACHINE_RESET(blockade)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -490,8 +486,6 @@ static MACHINE_CONFIG_START( blockade, blockade_state )
MCFG_GFXDECODE(blockade)
MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT(blockade)
- MCFG_VIDEO_START(blockade)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/blockhl.c b/src/mame/drivers/blockhl.c
index fa53f9e224a..05aaf75c538 100644
--- a/src/mame/drivers/blockhl.c
+++ b/src/mame/drivers/blockhl.c
@@ -186,30 +186,28 @@ static const k051960_interface blockhl_k051960_intf =
blockhl_sprite_callback
};
-static MACHINE_START( blockhl )
+void blockhl_state::machine_start()
{
- blockhl_state *state = machine.driver_data<blockhl_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k052109 = machine.device("k052109");
- state->m_k051960 = machine.device("k051960");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k052109 = machine().device("k052109");
+ m_k051960 = machine().device("k051960");
- state->save_item(NAME(state->m_palette_selected));
- state->save_item(NAME(state->m_rombank));
+ save_item(NAME(m_palette_selected));
+ save_item(NAME(m_rombank));
}
-static MACHINE_RESET( blockhl )
+void blockhl_state::machine_reset()
{
- blockhl_state *state = machine.driver_data<blockhl_state>();
- konami_configure_set_lines(machine.device("maincpu"), blockhl_banking);
+ konami_configure_set_lines(machine().device("maincpu"), blockhl_banking);
- state->m_palette_selected = 0;
- state->m_rombank = 0;
+ m_palette_selected = 0;
+ m_rombank = 0;
}
static MACHINE_CONFIG_START( blockhl, blockhl_state )
@@ -222,8 +220,6 @@ static MACHINE_CONFIG_START( blockhl, blockhl_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545)
MCFG_CPU_PROGRAM_MAP(audio_map)
- MCFG_MACHINE_START(blockhl)
- MCFG_MACHINE_RESET(blockhl)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -237,7 +233,6 @@ static MACHINE_CONFIG_START( blockhl, blockhl_state )
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(blockhl)
MCFG_K052109_ADD("k052109", blockhl_k052109_intf)
MCFG_K051960_ADD("k051960", blockhl_k051960_intf)
diff --git a/src/mame/drivers/blockout.c b/src/mame/drivers/blockout.c
index 1ea6719df85..00633d433b3 100644
--- a/src/mame/drivers/blockout.c
+++ b/src/mame/drivers/blockout.c
@@ -278,21 +278,19 @@ static const ym2151_interface ym2151_config =
*
*************************************/
-static MACHINE_START( blockout )
+void blockout_state::machine_start()
{
- blockout_state *state = machine.driver_data<blockout_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_color));
+ save_item(NAME(m_color));
}
-static MACHINE_RESET( blockout )
+void blockout_state::machine_reset()
{
- blockout_state *state = machine.driver_data<blockout_state>();
- state->m_color = 0;
+ m_color = 0;
}
static TIMER_DEVICE_CALLBACK( blockout_scanline )
@@ -317,8 +315,6 @@ static MACHINE_CONFIG_START( blockout, blockout_state )
MCFG_CPU_ADD("audiocpu", Z80, AUDIO_CLOCK) /* 3.579545 MHz */
MCFG_CPU_PROGRAM_MAP(audio_map)
- MCFG_MACHINE_START(blockout)
- MCFG_MACHINE_RESET(blockout)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -330,7 +326,6 @@ static MACHINE_CONFIG_START( blockout, blockout_state )
MCFG_PALETTE_LENGTH(513)
- MCFG_VIDEO_START(blockout)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/bloodbro.c b/src/mame/drivers/bloodbro.c
index b39c8a9c7ef..d5d462376f7 100644
--- a/src/mame/drivers/bloodbro.c
+++ b/src/mame/drivers/bloodbro.c
@@ -454,7 +454,6 @@ static MACHINE_CONFIG_START( bloodbro, bloodbro_state )
MCFG_GFXDECODE(bloodbro)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(bloodbro)
// sound hardware
SEIBU_SOUND_SYSTEM_YM3812_RAIDEN_INTERFACE(XTAL_7_15909MHz/2, XTAL_12MHz/12)
diff --git a/src/mame/drivers/blstroid.c b/src/mame/drivers/blstroid.c
index bbd838cf680..4cc18aa8220 100644
--- a/src/mame/drivers/blstroid.c
+++ b/src/mame/drivers/blstroid.c
@@ -47,19 +47,18 @@ WRITE16_MEMBER(blstroid_state::blstroid_halt_until_hblank_0_w)
}
-static MACHINE_START( blstroid )
+MACHINE_START_MEMBER(blstroid_state,blstroid)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( blstroid )
+MACHINE_RESET_MEMBER(blstroid_state,blstroid)
{
- blstroid_state *state = machine.driver_data<blstroid_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, blstroid_scanline_update, 8);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, blstroid_scanline_update, 8);
atarijsa_reset();
}
@@ -207,8 +206,8 @@ static MACHINE_CONFIG_START( blstroid, blstroid_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
- MCFG_MACHINE_START(blstroid)
- MCFG_MACHINE_RESET(blstroid)
+ MCFG_MACHINE_START_OVERRIDE(blstroid_state,blstroid)
+ MCFG_MACHINE_RESET_OVERRIDE(blstroid_state,blstroid)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -222,7 +221,7 @@ static MACHINE_CONFIG_START( blstroid, blstroid_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 320*2, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(blstroid)
- MCFG_VIDEO_START(blstroid)
+ MCFG_VIDEO_START_OVERRIDE(blstroid_state,blstroid)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_i_stereo)
diff --git a/src/mame/drivers/blueprnt.c b/src/mame/drivers/blueprnt.c
index 4ca76660a32..be92f5ebdb4 100644
--- a/src/mame/drivers/blueprnt.c
+++ b/src/mame/drivers/blueprnt.c
@@ -275,21 +275,19 @@ static const ay8910_interface ay8910_interface_2 =
*
*************************************/
-static MACHINE_START( blueprnt )
+void blueprnt_state::machine_start()
{
- blueprnt_state *state = machine.driver_data<blueprnt_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_dipsw));
+ save_item(NAME(m_dipsw));
}
-static MACHINE_RESET( blueprnt )
+void blueprnt_state::machine_reset()
{
- blueprnt_state *state = machine.driver_data<blueprnt_state>();
- state->m_gfx_bank = 0;
- state->m_dipsw = 0;
+ m_gfx_bank = 0;
+ m_dipsw = 0;
}
@@ -305,8 +303,6 @@ static MACHINE_CONFIG_START( blueprnt, blueprnt_state )
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 4*60) // IRQs connected to 32V
// NMIs are caused by the main CPU
- MCFG_MACHINE_START(blueprnt)
- MCFG_MACHINE_RESET(blueprnt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -319,8 +315,6 @@ static MACHINE_CONFIG_START( blueprnt, blueprnt_state )
MCFG_GFXDECODE(blueprnt)
MCFG_PALETTE_LENGTH(128*4+8)
- MCFG_PALETTE_INIT(blueprnt)
- MCFG_VIDEO_START(blueprnt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bmcbowl.c b/src/mame/drivers/bmcbowl.c
index 0e374573a19..804ebdc30d1 100644
--- a/src/mame/drivers/bmcbowl.c
+++ b/src/mame/drivers/bmcbowl.c
@@ -135,6 +135,8 @@ public:
DECLARE_READ8_MEMBER(dips1_r);
DECLARE_WRITE8_MEMBER(input_mux_w);
DECLARE_DRIVER_INIT(bmcbowl);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -142,7 +144,7 @@ public:
#define NVRAM_HACK
-static VIDEO_START( bmcbowl )
+void bmcbowl_state::video_start()
{
}
@@ -494,7 +496,7 @@ static const via6522_interface via_interface =
/*irq */ DEVCB_DRIVER_MEMBER(bmcbowl_state,via_irq)
};
-static MACHINE_RESET( bmcbowl )
+void bmcbowl_state::machine_reset()
{
}
@@ -512,10 +514,8 @@ static MACHINE_CONFIG_START( bmcbowl, bmcbowl_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(bmcbowl)
MCFG_NVRAM_HANDLER(bmcbowl)
- MCFG_MACHINE_RESET(bmcbowl)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/bmcpokr.c b/src/mame/drivers/bmcpokr.c
index 2111acc7d9f..b9dc2ccca9a 100644
--- a/src/mame/drivers/bmcpokr.c
+++ b/src/mame/drivers/bmcpokr.c
@@ -59,6 +59,7 @@ public:
required_device<cpu_device> m_maincpu;
required_shared_ptr<UINT16> m_videoram;
+ virtual void video_start();
};
@@ -220,7 +221,7 @@ SCREEN_UPDATE_IND16( bmcpokr )
return 0;
}
-VIDEO_START(bmcpokr)
+void bmcpokr_state::video_start()
{
}
@@ -242,7 +243,6 @@ static MACHINE_CONFIG_START( bmcpokr, bmcpokr_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(bmcpokr)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/bnstars.c b/src/mame/drivers/bnstars.c
index ed86bd1a57b..e5203e771ac 100644
--- a/src/mame/drivers/bnstars.c
+++ b/src/mame/drivers/bnstars.c
@@ -153,6 +153,8 @@ public:
TILE_GET_INFO_MEMBER(get_ms32_bg1_tile_info);
TILE_GET_INFO_MEMBER(get_ms32_roz0_tile_info);
TILE_GET_INFO_MEMBER(get_ms32_roz1_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -504,23 +506,22 @@ WRITE32_MEMBER(bnstars_state::ms32_spramx_w)
}
-static VIDEO_START(bnstars)
+void bnstars_state::video_start()
{
- bnstars_state *state = machine.driver_data<bnstars_state>();
- state->m_ms32_tx_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_tx0_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,64);
- state->m_ms32_tx_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_tx1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,64);
- state->m_ms32_tx_tilemap[0]->set_transparent_pen(0);
- state->m_ms32_tx_tilemap[1]->set_transparent_pen(0);
+ m_ms32_tx_tilemap[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_tx0_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,64);
+ m_ms32_tx_tilemap[1] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_tx1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,64);
+ m_ms32_tx_tilemap[0]->set_transparent_pen(0);
+ m_ms32_tx_tilemap[1]->set_transparent_pen(0);
- state->m_ms32_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_bg0_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,64);
- state->m_ms32_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_bg1_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,64);
- state->m_ms32_bg_tilemap[0]->set_transparent_pen(0);
- state->m_ms32_bg_tilemap[1]->set_transparent_pen(0);
+ m_ms32_bg_tilemap[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_bg0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,64);
+ m_ms32_bg_tilemap[1] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_bg1_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,64);
+ m_ms32_bg_tilemap[0]->set_transparent_pen(0);
+ m_ms32_bg_tilemap[1]->set_transparent_pen(0);
- state->m_ms32_roz_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_roz0_tile_info),state),TILEMAP_SCAN_ROWS,16,16,128,128);
- state->m_ms32_roz_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_roz1_tile_info),state),TILEMAP_SCAN_ROWS,16,16,128,128);
- state->m_ms32_roz_tilemap[0]->set_transparent_pen(0);
- state->m_ms32_roz_tilemap[1]->set_transparent_pen(0);
+ m_ms32_roz_tilemap[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_roz0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,128,128);
+ m_ms32_roz_tilemap[1] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_roz1_tile_info),this),TILEMAP_SCAN_ROWS,16,16,128,128);
+ m_ms32_roz_tilemap[0]->set_transparent_pen(0);
+ m_ms32_roz_tilemap[1]->set_transparent_pen(0);
}
@@ -1366,9 +1367,9 @@ static TIMER_DEVICE_CALLBACK(ms32_interrupt)
if( (scanline % 8) == 0 && scanline <= 224 ) irq_raise(timer.machine(), 0);
}
-static MACHINE_RESET( ms32 )
+void bnstars_state::machine_reset()
{
- irq_init(machine);
+ irq_init(machine());
}
@@ -1384,7 +1385,6 @@ static MACHINE_CONFIG_START( bnstars, bnstars_state )
MCFG_QUANTUM_TIME(attotime::from_hz(60000))
- MCFG_MACHINE_RESET(ms32)
MCFG_GFXDECODE(bnstars)
MCFG_PALETTE_LENGTH(0x8000*2)
@@ -1405,7 +1405,6 @@ static MACHINE_CONFIG_START( bnstars, bnstars_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_STATIC(bnstars_right)
- MCFG_VIDEO_START(bnstars)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/bogeyman.c b/src/mame/drivers/bogeyman.c
index e947d5dd261..80ea4db1bdd 100644
--- a/src/mame/drivers/bogeyman.c
+++ b/src/mame/drivers/bogeyman.c
@@ -202,20 +202,18 @@ GFXDECODE_END
/* Machine Driver */
-static MACHINE_START( bogeyman )
+void bogeyman_state::machine_start()
{
- bogeyman_state *state = machine.driver_data<bogeyman_state>();
- state->save_item(NAME(state->m_psg_latch));
- state->save_item(NAME(state->m_last_write));
+ save_item(NAME(m_psg_latch));
+ save_item(NAME(m_last_write));
}
-static MACHINE_RESET( bogeyman )
+void bogeyman_state::machine_reset()
{
- bogeyman_state *state = machine.driver_data<bogeyman_state>();
- state->m_psg_latch = 0;
- state->m_last_write = 0;
+ m_psg_latch = 0;
+ m_last_write = 0;
}
WRITE8_MEMBER(bogeyman_state::bogeyman_colbank_w)
@@ -245,8 +243,6 @@ static MACHINE_CONFIG_START( bogeyman, bogeyman_state )
MCFG_CPU_PROGRAM_MAP(bogeyman_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 16*60) // Controls sound
- MCFG_MACHINE_START(bogeyman)
- MCFG_MACHINE_RESET(bogeyman)
// video hardware
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -261,8 +257,6 @@ static MACHINE_CONFIG_START( bogeyman, bogeyman_state )
MCFG_GFXDECODE(bogeyman)
MCFG_PALETTE_LENGTH(16+256)
- MCFG_PALETTE_INIT(bogeyman)
- MCFG_VIDEO_START(bogeyman)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bombjack.c b/src/mame/drivers/bombjack.c
index fa3b91586f2..7d712f285a6 100644
--- a/src/mame/drivers/bombjack.c
+++ b/src/mame/drivers/bombjack.c
@@ -331,21 +331,19 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( bombjack )
+void bombjack_state::machine_start()
{
- bombjack_state *state = machine.driver_data<bombjack_state>();
- state->save_item(NAME(state->m_latch));
- state->save_item(NAME(state->m_background_image));
+ save_item(NAME(m_latch));
+ save_item(NAME(m_background_image));
}
-static MACHINE_RESET( bombjack )
+void bombjack_state::machine_reset()
{
- bombjack_state *state = machine.driver_data<bombjack_state>();
- state->m_latch = 0;
- state->m_background_image = 0;
+ m_latch = 0;
+ m_background_image = 0;
}
@@ -369,8 +367,6 @@ static MACHINE_CONFIG_START( bombjack, bombjack_state )
MCFG_CPU_IO_MAP(audio_io_map)
MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse)
- MCFG_MACHINE_START(bombjack)
- MCFG_MACHINE_RESET(bombjack)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -383,7 +379,6 @@ static MACHINE_CONFIG_START( bombjack, bombjack_state )
MCFG_GFXDECODE(bombjack)
MCFG_PALETTE_LENGTH(128)
- MCFG_VIDEO_START(bombjack)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/boogwing.c b/src/mame/drivers/boogwing.c
index 040be8d428b..7bc6501d96c 100644
--- a/src/mame/drivers/boogwing.c
+++ b/src/mame/drivers/boogwing.c
@@ -359,7 +359,6 @@ static MACHINE_CONFIG_START( boogwing, boogwing_state )
MCFG_PALETTE_LENGTH(2048)
MCFG_GFXDECODE(boogwing)
- MCFG_VIDEO_START(boogwing)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2")
diff --git a/src/mame/drivers/bottom9.c b/src/mame/drivers/bottom9.c
index 4ae64346731..aec462323cf 100644
--- a/src/mame/drivers/bottom9.c
+++ b/src/mame/drivers/bottom9.c
@@ -319,35 +319,33 @@ static const k051316_interface bottom9_k051316_intf =
bottom9_zoom_callback
};
-static MACHINE_START( bottom9 )
+void bottom9_state::machine_start()
{
- bottom9_state *state = machine.driver_data<bottom9_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
-
- state->membank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x2000);
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k052109 = machine.device("k052109");
- state->m_k051960 = machine.device("k051960");
- state->m_k051316 = machine.device("k051316");
- state->m_k007232_1 = machine.device("k007232_1");
- state->m_k007232_2 = machine.device("k007232_2");
-
- state->save_item(NAME(state->m_video_enable));
- state->save_item(NAME(state->m_zoomreadroms));
- state->save_item(NAME(state->m_k052109_selected));
- state->save_item(NAME(state->m_nmienable));
+ UINT8 *ROM = memregion("maincpu")->base();
+
+ membank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x2000);
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k052109 = machine().device("k052109");
+ m_k051960 = machine().device("k051960");
+ m_k051316 = machine().device("k051316");
+ m_k007232_1 = machine().device("k007232_1");
+ m_k007232_2 = machine().device("k007232_2");
+
+ save_item(NAME(m_video_enable));
+ save_item(NAME(m_zoomreadroms));
+ save_item(NAME(m_k052109_selected));
+ save_item(NAME(m_nmienable));
}
-static MACHINE_RESET( bottom9 )
+void bottom9_state::machine_reset()
{
- bottom9_state *state = machine.driver_data<bottom9_state>();
- state->m_video_enable = 0;
- state->m_zoomreadroms = 0;
- state->m_k052109_selected = 0;
- state->m_nmienable = 0;
+ m_video_enable = 0;
+ m_zoomreadroms = 0;
+ m_k052109_selected = 0;
+ m_nmienable = 0;
}
static MACHINE_CONFIG_START( bottom9, bottom9_state )
@@ -361,8 +359,6 @@ static MACHINE_CONFIG_START( bottom9, bottom9_state )
MCFG_CPU_PROGRAM_MAP(audio_map)
MCFG_CPU_PERIODIC_INT(bottom9_sound_interrupt,8*60) /* irq is triggered by the main CPU */
- MCFG_MACHINE_START(bottom9)
- MCFG_MACHINE_RESET(bottom9)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -376,7 +372,6 @@ static MACHINE_CONFIG_START( bottom9, bottom9_state )
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(bottom9)
MCFG_K052109_ADD("k052109", bottom9_k052109_intf)
MCFG_K051960_ADD("k051960", bottom9_k051960_intf)
diff --git a/src/mame/drivers/boxer.c b/src/mame/drivers/boxer.c
index beabae8fdb6..39d033416b7 100644
--- a/src/mame/drivers/boxer.c
+++ b/src/mame/drivers/boxer.c
@@ -46,6 +46,9 @@ public:
DECLARE_WRITE8_MEMBER(boxer_irq_reset_w);
DECLARE_WRITE8_MEMBER(boxer_crowd_w);
DECLARE_WRITE8_MEMBER(boxer_led_w);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void palette_init();
};
/*************************************
@@ -110,13 +113,13 @@ static TIMER_CALLBACK( periodic_callback )
*
*************************************/
-static PALETTE_INIT( boxer )
+void boxer_state::palette_init()
{
- palette_set_color(machine,0, MAKE_RGB(0x00,0x00,0x00));
- palette_set_color(machine,1, MAKE_RGB(0xff,0xff,0xff));
+ palette_set_color(machine(),0, MAKE_RGB(0x00,0x00,0x00));
+ palette_set_color(machine(),1, MAKE_RGB(0xff,0xff,0xff));
- palette_set_color(machine,2, MAKE_RGB(0xff,0xff,0xff));
- palette_set_color(machine,3, MAKE_RGB(0x00,0x00,0x00));
+ palette_set_color(machine(),2, MAKE_RGB(0xff,0xff,0xff));
+ palette_set_color(machine(),3, MAKE_RGB(0x00,0x00,0x00));
}
static void draw_boxer( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
@@ -422,23 +425,21 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( boxer )
+void boxer_state::machine_start()
{
- boxer_state *state = machine.driver_data<boxer_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_pot_state));
- state->save_item(NAME(state->m_pot_latch));
+ save_item(NAME(m_pot_state));
+ save_item(NAME(m_pot_latch));
}
-static MACHINE_RESET( boxer )
+void boxer_state::machine_reset()
{
- boxer_state *state = machine.driver_data<boxer_state>();
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(0), FUNC(periodic_callback));
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), FUNC(periodic_callback));
- state->m_pot_state = 0;
- state->m_pot_latch = 0;
+ m_pot_state = 0;
+ m_pot_latch = 0;
}
@@ -448,8 +449,6 @@ static MACHINE_CONFIG_START( boxer, boxer_state )
MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK / 16)
MCFG_CPU_PROGRAM_MAP(boxer_map)
- MCFG_MACHINE_START(boxer)
- MCFG_MACHINE_RESET(boxer)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -460,7 +459,6 @@ static MACHINE_CONFIG_START( boxer, boxer_state )
MCFG_GFXDECODE(boxer)
MCFG_PALETTE_LENGTH(4)
- MCFG_PALETTE_INIT(boxer)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/brkthru.c b/src/mame/drivers/brkthru.c
index 39a26245eed..7bebce964b9 100644
--- a/src/mame/drivers/brkthru.c
+++ b/src/mame/drivers/brkthru.c
@@ -362,25 +362,23 @@ static const ym3526_interface ym3526_config =
*
*************************************/
-static MACHINE_START( brkthru )
+void brkthru_state::machine_start()
{
- brkthru_state *state = machine.driver_data<brkthru_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_bgscroll));
- state->save_item(NAME(state->m_bgbasecolor));
- state->save_item(NAME(state->m_flipscreen));
+ save_item(NAME(m_bgscroll));
+ save_item(NAME(m_bgbasecolor));
+ save_item(NAME(m_flipscreen));
}
-static MACHINE_RESET( brkthru )
+void brkthru_state::machine_reset()
{
- brkthru_state *state = machine.driver_data<brkthru_state>();
- state->m_bgscroll = 0;
- state->m_bgbasecolor = 0;
- state->m_flipscreen = 0;
+ m_bgscroll = 0;
+ m_bgbasecolor = 0;
+ m_flipscreen = 0;
}
static INTERRUPT_GEN( vblank_irq )
@@ -401,8 +399,6 @@ static MACHINE_CONFIG_START( brkthru, brkthru_state )
MCFG_CPU_ADD("audiocpu", M6809, MASTER_CLOCK/8) /* 1.5 MHz ? */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(brkthru)
- MCFG_MACHINE_RESET(brkthru)
/* video hardware */
MCFG_GFXDECODE(brkthru)
@@ -413,8 +409,6 @@ static MACHINE_CONFIG_START( brkthru, brkthru_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 8, 248, 272, 8, 248)
MCFG_SCREEN_UPDATE_STATIC(brkthru)
- MCFG_PALETTE_INIT(brkthru)
- MCFG_VIDEO_START(brkthru)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -441,8 +435,6 @@ static MACHINE_CONFIG_START( darwin, brkthru_state )
MCFG_CPU_ADD("audiocpu", M6809, MASTER_CLOCK/8) /* 1.5 MHz ? */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(brkthru)
- MCFG_MACHINE_RESET(brkthru)
/* video hardware */
MCFG_GFXDECODE(brkthru)
@@ -464,8 +456,6 @@ static MACHINE_CONFIG_START( darwin, brkthru_state )
tuned by Shingo SUZUKI(VSyncMAME Project) 2000/10/19 */
MCFG_SCREEN_UPDATE_STATIC(brkthru)
- MCFG_PALETTE_INIT(brkthru)
- MCFG_VIDEO_START(brkthru)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bsktball.c b/src/mame/drivers/bsktball.c
index a91246c628f..5aa482356e3 100644
--- a/src/mame/drivers/bsktball.c
+++ b/src/mame/drivers/bsktball.c
@@ -35,33 +35,33 @@
*
*************************************/
-static PALETTE_INIT( bsktball )
+void bsktball_state::palette_init()
{
int i;
- machine.colortable = colortable_alloc(machine, 4);
+ machine().colortable = colortable_alloc(machine(), 4);
- colortable_palette_set_color(machine.colortable,0,MAKE_RGB(0x00,0x00,0x00)); /* BLACK */
- colortable_palette_set_color(machine.colortable,1,MAKE_RGB(0x80,0x80,0x80)); /* LIGHT GREY */
- colortable_palette_set_color(machine.colortable,2,MAKE_RGB(0x50,0x50,0x50)); /* DARK GREY */
- colortable_palette_set_color(machine.colortable,3,MAKE_RGB(0xff,0xff,0xff)); /* WHITE */
+ colortable_palette_set_color(machine().colortable,0,MAKE_RGB(0x00,0x00,0x00)); /* BLACK */
+ colortable_palette_set_color(machine().colortable,1,MAKE_RGB(0x80,0x80,0x80)); /* LIGHT GREY */
+ colortable_palette_set_color(machine().colortable,2,MAKE_RGB(0x50,0x50,0x50)); /* DARK GREY */
+ colortable_palette_set_color(machine().colortable,3,MAKE_RGB(0xff,0xff,0xff)); /* WHITE */
/* playfield */
for (i = 0; i < 2; i++)
{
- colortable_entry_set_value(machine.colortable, i*4 + 0, 1);
- colortable_entry_set_value(machine.colortable, i*4 + 1, 3 * i);
- colortable_entry_set_value(machine.colortable, i*4 + 2, 3 * i);
- colortable_entry_set_value(machine.colortable, i*4 + 3, 3 * i);
+ colortable_entry_set_value(machine().colortable, i*4 + 0, 1);
+ colortable_entry_set_value(machine().colortable, i*4 + 1, 3 * i);
+ colortable_entry_set_value(machine().colortable, i*4 + 2, 3 * i);
+ colortable_entry_set_value(machine().colortable, i*4 + 3, 3 * i);
}
/* motion */
for (i = 0; i < 4*4*4; i++)
{
- colortable_entry_set_value(machine.colortable, 2*4 + i*4 + 0, 1);
- colortable_entry_set_value(machine.colortable, 2*4 + i*4 + 1, (i >> 2) & 3);
- colortable_entry_set_value(machine.colortable, 2*4 + i*4 + 2, (i >> 0) & 3);
- colortable_entry_set_value(machine.colortable, 2*4 + i*4 + 3, (i >> 4) & 3);
+ colortable_entry_set_value(machine().colortable, 2*4 + i*4 + 0, 1);
+ colortable_entry_set_value(machine().colortable, 2*4 + i*4 + 1, (i >> 2) & 3);
+ colortable_entry_set_value(machine().colortable, 2*4 + i*4 + 2, (i >> 0) & 3);
+ colortable_entry_set_value(machine().colortable, 2*4 + i*4 + 3, (i >> 4) & 3);
}
}
@@ -209,40 +209,38 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( bsktball )
+void bsktball_state::machine_start()
{
- bsktball_state *state = machine.driver_data<bsktball_state>();
-
- state->save_item(NAME(state->m_nmi_on));
-// state->save_item(NAME(state->m_i256v));
- state->save_item(NAME(state->m_ld1));
- state->save_item(NAME(state->m_ld2));
- state->save_item(NAME(state->m_dir0));
- state->save_item(NAME(state->m_dir1));
- state->save_item(NAME(state->m_dir2));
- state->save_item(NAME(state->m_dir3));
- state->save_item(NAME(state->m_last_p1_horiz));
- state->save_item(NAME(state->m_last_p1_vert));
- state->save_item(NAME(state->m_last_p2_horiz));
- state->save_item(NAME(state->m_last_p2_vert));
+
+ save_item(NAME(m_nmi_on));
+// save_item(NAME(m_i256v));
+ save_item(NAME(m_ld1));
+ save_item(NAME(m_ld2));
+ save_item(NAME(m_dir0));
+ save_item(NAME(m_dir1));
+ save_item(NAME(m_dir2));
+ save_item(NAME(m_dir3));
+ save_item(NAME(m_last_p1_horiz));
+ save_item(NAME(m_last_p1_vert));
+ save_item(NAME(m_last_p2_horiz));
+ save_item(NAME(m_last_p2_vert));
}
-static MACHINE_RESET( bsktball )
+void bsktball_state::machine_reset()
{
- bsktball_state *state = machine.driver_data<bsktball_state>();
-
- state->m_nmi_on = 0;
-// state->m_i256v = 0;
- state->m_ld1 = 0;
- state->m_ld2 = 0;
- state->m_dir0 = 0;
- state->m_dir1 = 0;
- state->m_dir2 = 0;
- state->m_dir3 = 0;
- state->m_last_p1_horiz = 0;
- state->m_last_p1_vert = 0;
- state->m_last_p2_horiz = 0;
- state->m_last_p2_vert = 0;
+
+ m_nmi_on = 0;
+// m_i256v = 0;
+ m_ld1 = 0;
+ m_ld2 = 0;
+ m_dir0 = 0;
+ m_dir1 = 0;
+ m_dir2 = 0;
+ m_dir3 = 0;
+ m_last_p1_horiz = 0;
+ m_last_p1_vert = 0;
+ m_last_p2_horiz = 0;
+ m_last_p2_vert = 0;
}
@@ -253,8 +251,6 @@ static MACHINE_CONFIG_START( bsktball, bsktball_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", bsktball_scanline, "screen", 0, 1)
- MCFG_MACHINE_START(bsktball)
- MCFG_MACHINE_RESET(bsktball)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -267,8 +263,6 @@ static MACHINE_CONFIG_START( bsktball, bsktball_state )
MCFG_GFXDECODE(bsktball)
MCFG_PALETTE_LENGTH(2*4 + 4*4*4*4)
- MCFG_PALETTE_INIT(bsktball)
- MCFG_VIDEO_START(bsktball)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c
index 9a806d4f2ca..3dd318c9e42 100644
--- a/src/mame/drivers/btime.c
+++ b/src/mame/drivers/btime.c
@@ -1396,68 +1396,63 @@ static DISCRETE_SOUND_START( btime_sound )
DISCRETE_SOUND_END
-static MACHINE_START( btime )
+MACHINE_START_MEMBER(btime_state,btime)
{
- btime_state *state = machine.driver_data<btime_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_btime_palette));
- state->save_item(NAME(state->m_bnj_scroll1));
- state->save_item(NAME(state->m_bnj_scroll2));
- state->save_item(NAME(state->m_btime_tilemap));
- state->save_item(NAME(state->m_audio_nmi_enabled));
- state->save_item(NAME(state->m_audio_nmi_state));
+ save_item(NAME(m_btime_palette));
+ save_item(NAME(m_bnj_scroll1));
+ save_item(NAME(m_bnj_scroll2));
+ save_item(NAME(m_btime_tilemap));
+ save_item(NAME(m_audio_nmi_enabled));
+ save_item(NAME(m_audio_nmi_state));
}
-static MACHINE_START( mmonkey )
+MACHINE_START_MEMBER(btime_state,mmonkey)
{
- btime_state *state = machine.driver_data<btime_state>();
- MACHINE_START_CALL(btime);
+ MACHINE_START_CALL_MEMBER(btime);
- state->save_item(NAME(state->m_protection_command));
- state->save_item(NAME(state->m_protection_status));
- state->save_item(NAME(state->m_protection_value));
- state->save_item(NAME(state->m_protection_ret));
+ save_item(NAME(m_protection_command));
+ save_item(NAME(m_protection_status));
+ save_item(NAME(m_protection_value));
+ save_item(NAME(m_protection_ret));
}
-static MACHINE_RESET( btime )
+MACHINE_RESET_MEMBER(btime_state,btime)
{
- btime_state *state = machine.driver_data<btime_state>();
/* by default, the audio NMI is disabled, except for bootlegs which don't use the enable */
- state->m_audio_nmi_enabled = (state->m_audio_nmi_enable_type == AUDIO_ENABLE_NONE);
-
- state->m_btime_palette = 0;
- state->m_bnj_scroll1 = 0;
- state->m_bnj_scroll2 = 0;
- state->m_btime_tilemap[0] = 0;
- state->m_btime_tilemap[1] = 0;
- state->m_btime_tilemap[2] = 0;
- state->m_btime_tilemap[3] = 0;
- state->m_audio_nmi_state = 0;
+ m_audio_nmi_enabled = (m_audio_nmi_enable_type == AUDIO_ENABLE_NONE);
+
+ m_btime_palette = 0;
+ m_bnj_scroll1 = 0;
+ m_bnj_scroll2 = 0;
+ m_btime_tilemap[0] = 0;
+ m_btime_tilemap[1] = 0;
+ m_btime_tilemap[2] = 0;
+ m_btime_tilemap[3] = 0;
+ m_audio_nmi_state = 0;
}
-static MACHINE_RESET( lnc )
+MACHINE_RESET_MEMBER(btime_state,lnc)
{
- btime_state *state = machine.driver_data<btime_state>();
- *state->m_lnc_charbank = 1;
+ *m_lnc_charbank = 1;
- MACHINE_RESET_CALL(btime);
+ MACHINE_RESET_CALL_MEMBER(btime);
}
-static MACHINE_RESET( mmonkey )
+MACHINE_RESET_MEMBER(btime_state,mmonkey)
{
- btime_state *state = machine.driver_data<btime_state>();
- MACHINE_RESET_CALL(lnc);
+ MACHINE_RESET_CALL_MEMBER(lnc);
- state->m_protection_command = 0;
- state->m_protection_status = 0;
- state->m_protection_value = 0;
- state->m_protection_ret = 0;
+ m_protection_command = 0;
+ m_protection_status = 0;
+ m_protection_value = 0;
+ m_protection_ret = 0;
}
static MACHINE_CONFIG_START( btime, btime_state )
@@ -1475,14 +1470,14 @@ static MACHINE_CONFIG_START( btime, btime_state )
MCFG_SCREEN_RAW_PARAMS(HCLK, 384, 8, 248, 272, 8, 248)
MCFG_SCREEN_UPDATE_STATIC(btime)
- MCFG_MACHINE_START(btime)
- MCFG_MACHINE_RESET(btime)
+ MCFG_MACHINE_START_OVERRIDE(btime_state,btime)
+ MCFG_MACHINE_RESET_OVERRIDE(btime_state,btime)
MCFG_GFXDECODE(btime)
MCFG_PALETTE_LENGTH(16)
- MCFG_PALETTE_INIT(btime)
- MCFG_VIDEO_START(btime)
+ MCFG_PALETTE_INIT_OVERRIDE(btime_state,btime)
+ MCFG_VIDEO_START_OVERRIDE(btime_state,btime)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1529,13 +1524,13 @@ static MACHINE_CONFIG_DERIVED( lnc, btime )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(lnc_map)
- MCFG_MACHINE_RESET(lnc)
+ MCFG_MACHINE_RESET_OVERRIDE(btime_state,lnc)
/* video hardware */
MCFG_GFXDECODE(lnc)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(lnc)
+ MCFG_PALETTE_INIT_OVERRIDE(btime_state,lnc)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(lnc)
MACHINE_CONFIG_END
@@ -1557,8 +1552,8 @@ static MACHINE_CONFIG_DERIVED( mmonkey, wtennis )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(mmonkey_map)
- MCFG_MACHINE_START(mmonkey)
- MCFG_MACHINE_RESET(mmonkey)
+ MCFG_MACHINE_START_OVERRIDE(btime_state,mmonkey)
+ MCFG_MACHINE_RESET_OVERRIDE(btime_state,mmonkey)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( sdtennis, btime )
@@ -1572,7 +1567,7 @@ static MACHINE_CONFIG_DERIVED( sdtennis, btime )
MCFG_GFXDECODE(bnj)
MCFG_PALETTE_LENGTH(16)
- MCFG_VIDEO_START(bnj)
+ MCFG_VIDEO_START_OVERRIDE(btime_state,bnj)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(bnj)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/bublbobl.c b/src/mame/drivers/bublbobl.c
index ad26d6a9935..5642dd0addf 100644
--- a/src/mame/drivers/bublbobl.c
+++ b/src/mame/drivers/bublbobl.c
@@ -720,47 +720,43 @@ static const ym2203_interface ym2203_config =
*
*************************************/
-static MACHINE_START( common )
+MACHINE_START_MEMBER(bublbobl_state,common)
{
- bublbobl_state *state = machine.driver_data<bublbobl_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_mcu = machine.device("mcu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_slave = machine.device("slave");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_mcu = machine().device("mcu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_slave = machine().device("slave");
- state->save_item(NAME(state->m_sound_nmi_enable));
- state->save_item(NAME(state->m_pending_nmi));
- state->save_item(NAME(state->m_sound_status));
- state->save_item(NAME(state->m_video_enable));
+ save_item(NAME(m_sound_nmi_enable));
+ save_item(NAME(m_pending_nmi));
+ save_item(NAME(m_sound_status));
+ save_item(NAME(m_video_enable));
}
-static MACHINE_RESET( common )
+MACHINE_RESET_MEMBER(bublbobl_state,common)
{
- bublbobl_state *state = machine.driver_data<bublbobl_state>();
- state->m_sound_nmi_enable = 0;
- state->m_pending_nmi = 0;
- state->m_sound_status = 0;
+ m_sound_nmi_enable = 0;
+ m_pending_nmi = 0;
+ m_sound_status = 0;
}
-static MACHINE_START( tokio )
+MACHINE_START_MEMBER(bublbobl_state,tokio)
{
- bublbobl_state *state = machine.driver_data<bublbobl_state>();
- MACHINE_START_CALL(common);
+ MACHINE_START_CALL_MEMBER(common);
- state->save_item(NAME(state->m_tokio_prot_count));
+ save_item(NAME(m_tokio_prot_count));
}
-static MACHINE_RESET( tokio )
+MACHINE_RESET_MEMBER(bublbobl_state,tokio)
{
- bublbobl_state *state = machine.driver_data<bublbobl_state>();
- MACHINE_RESET_CALL(common);
+ MACHINE_RESET_CALL_MEMBER(common);
- state->m_tokio_prot_count = 0;
+ m_tokio_prot_count = 0;
}
static MACHINE_CONFIG_START( tokio, bublbobl_state )
@@ -779,8 +775,8 @@ static MACHINE_CONFIG_START( tokio, bublbobl_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
- MCFG_MACHINE_START(tokio)
- MCFG_MACHINE_RESET(tokio)
+ MCFG_MACHINE_START_OVERRIDE(bublbobl_state,tokio)
+ MCFG_MACHINE_RESET_OVERRIDE(bublbobl_state,tokio)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -802,44 +798,42 @@ static MACHINE_CONFIG_START( tokio, bublbobl_state )
MACHINE_CONFIG_END
-static MACHINE_START( bublbobl )
+MACHINE_START_MEMBER(bublbobl_state,bublbobl)
{
- bublbobl_state *state = machine.driver_data<bublbobl_state>();
-
- MACHINE_START_CALL(common);
-
- state->save_item(NAME(state->m_ddr1));
- state->save_item(NAME(state->m_ddr2));
- state->save_item(NAME(state->m_ddr3));
- state->save_item(NAME(state->m_ddr4));
- state->save_item(NAME(state->m_port1_in));
- state->save_item(NAME(state->m_port2_in));
- state->save_item(NAME(state->m_port3_in));
- state->save_item(NAME(state->m_port4_in));
- state->save_item(NAME(state->m_port1_out));
- state->save_item(NAME(state->m_port2_out));
- state->save_item(NAME(state->m_port3_out));
- state->save_item(NAME(state->m_port4_out));
+
+ MACHINE_START_CALL_MEMBER(common);
+
+ save_item(NAME(m_ddr1));
+ save_item(NAME(m_ddr2));
+ save_item(NAME(m_ddr3));
+ save_item(NAME(m_ddr4));
+ save_item(NAME(m_port1_in));
+ save_item(NAME(m_port2_in));
+ save_item(NAME(m_port3_in));
+ save_item(NAME(m_port4_in));
+ save_item(NAME(m_port1_out));
+ save_item(NAME(m_port2_out));
+ save_item(NAME(m_port3_out));
+ save_item(NAME(m_port4_out));
}
-static MACHINE_RESET( bublbobl )
+MACHINE_RESET_MEMBER(bublbobl_state,bublbobl)
{
- bublbobl_state *state = machine.driver_data<bublbobl_state>();
-
- MACHINE_RESET_CALL(common);
-
- state->m_ddr1 = 0;
- state->m_ddr2 = 0;
- state->m_ddr3 = 0;
- state->m_ddr4 = 0;
- state->m_port1_in = 0;
- state->m_port2_in = 0;
- state->m_port3_in = 0;
- state->m_port4_in = 0;
- state->m_port1_out = 0;
- state->m_port2_out = 0;
- state->m_port3_out = 0;
- state->m_port4_out = 0;
+
+ MACHINE_RESET_CALL_MEMBER(common);
+
+ m_ddr1 = 0;
+ m_ddr2 = 0;
+ m_ddr3 = 0;
+ m_ddr4 = 0;
+ m_port1_in = 0;
+ m_port2_in = 0;
+ m_port3_in = 0;
+ m_port4_in = 0;
+ m_port1_out = 0;
+ m_port2_out = 0;
+ m_port3_out = 0;
+ m_port4_out = 0;
}
static MACHINE_CONFIG_START( bublbobl, bublbobl_state )
@@ -862,8 +856,8 @@ static MACHINE_CONFIG_START( bublbobl, bublbobl_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
- MCFG_MACHINE_START(bublbobl)
- MCFG_MACHINE_RESET(bublbobl)
+ MCFG_MACHINE_START_OVERRIDE(bublbobl_state,bublbobl)
+ MCFG_MACHINE_RESET_OVERRIDE(bublbobl_state,bublbobl)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -885,24 +879,22 @@ static MACHINE_CONFIG_START( bublbobl, bublbobl_state )
MACHINE_CONFIG_END
-static MACHINE_START( boblbobl )
+MACHINE_START_MEMBER(bublbobl_state,boblbobl)
{
- bublbobl_state *state = machine.driver_data<bublbobl_state>();
- MACHINE_START_CALL(common);
+ MACHINE_START_CALL_MEMBER(common);
- state->save_item(NAME(state->m_ic43_a));
- state->save_item(NAME(state->m_ic43_b));
+ save_item(NAME(m_ic43_a));
+ save_item(NAME(m_ic43_b));
}
-static MACHINE_RESET( boblbobl )
+MACHINE_RESET_MEMBER(bublbobl_state,boblbobl)
{
- bublbobl_state *state = machine.driver_data<bublbobl_state>();
- MACHINE_RESET_CALL(common);
+ MACHINE_RESET_CALL_MEMBER(common);
- state->m_ic43_a = 0;
- state->m_ic43_b = 0;
+ m_ic43_a = 0;
+ m_ic43_b = 0;
}
static MACHINE_CONFIG_DERIVED( boblbobl, bublbobl )
@@ -911,43 +903,41 @@ static MACHINE_CONFIG_DERIVED( boblbobl, bublbobl )
MCFG_CPU_PROGRAM_MAP(bootleg_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold) // interrupt mode 1, unlike Bubble Bobble
- MCFG_MACHINE_START(boblbobl)
- MCFG_MACHINE_RESET(boblbobl)
+ MCFG_MACHINE_START_OVERRIDE(bublbobl_state,boblbobl)
+ MCFG_MACHINE_RESET_OVERRIDE(bublbobl_state,boblbobl)
MCFG_DEVICE_REMOVE("mcu")
MACHINE_CONFIG_END
-static MACHINE_START( bub68705 )
+MACHINE_START_MEMBER(bublbobl_state,bub68705)
{
- bublbobl_state *state = machine.driver_data<bublbobl_state>();
-
- MACHINE_START_CALL(common);
-
- state->save_item(NAME(state->m_port_a_in));
- state->save_item(NAME(state->m_port_a_out));
- state->save_item(NAME(state->m_ddr_a));
- state->save_item(NAME(state->m_port_b_in));
- state->save_item(NAME(state->m_port_b_out));
- state->save_item(NAME(state->m_ddr_b));
- state->save_item(NAME(state->m_address));
- state->save_item(NAME(state->m_latch));
+
+ MACHINE_START_CALL_MEMBER(common);
+
+ save_item(NAME(m_port_a_in));
+ save_item(NAME(m_port_a_out));
+ save_item(NAME(m_ddr_a));
+ save_item(NAME(m_port_b_in));
+ save_item(NAME(m_port_b_out));
+ save_item(NAME(m_ddr_b));
+ save_item(NAME(m_address));
+ save_item(NAME(m_latch));
}
-static MACHINE_RESET( bub68705 )
+MACHINE_RESET_MEMBER(bublbobl_state,bub68705)
{
- bublbobl_state *state = machine.driver_data<bublbobl_state>();
-
- MACHINE_RESET_CALL(common);
-
- state->m_port_a_in = 0;
- state->m_port_a_out = 0;
- state->m_ddr_a = 0;
- state->m_port_b_in = 0;
- state->m_port_b_out = 0;
- state->m_ddr_b = 0;
- state->m_address = 0;
- state->m_latch = 0;
+
+ MACHINE_RESET_CALL_MEMBER(common);
+
+ m_port_a_in = 0;
+ m_port_a_out = 0;
+ m_ddr_a = 0;
+ m_port_b_in = 0;
+ m_port_b_out = 0;
+ m_ddr_b = 0;
+ m_address = 0;
+ m_latch = 0;
}
static MACHINE_CONFIG_DERIVED( bub68705, bublbobl )
@@ -957,8 +947,8 @@ static MACHINE_CONFIG_DERIVED( bub68705, bublbobl )
MCFG_CPU_PROGRAM_MAP(bootlegmcu_map)
MCFG_CPU_VBLANK_INT("screen",bublbobl_m68705_interrupt) // ??? should come from the same clock which latches the INT pin on the second Z80
- MCFG_MACHINE_START(bub68705)
- MCFG_MACHINE_RESET(bub68705)
+ MCFG_MACHINE_START_OVERRIDE(bublbobl_state,bub68705)
+ MCFG_MACHINE_RESET_OVERRIDE(bublbobl_state,bub68705)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c
index b4b89ee9202..61e29f667ff 100644
--- a/src/mame/drivers/buggychl.c
+++ b/src/mame/drivers/buggychl.c
@@ -356,38 +356,36 @@ static const msm5232_interface msm5232_config =
};
-static MACHINE_START( buggychl )
+void buggychl_state::machine_start()
{
- buggychl_state *state = machine.driver_data<buggychl_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x2000);
+ membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x2000);
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_sound_nmi_enable));
- state->save_item(NAME(state->m_pending_nmi));
- state->save_item(NAME(state->m_sprite_lookup));
- state->save_item(NAME(state->m_sl_bank));
- state->save_item(NAME(state->m_bg_on));
- state->save_item(NAME(state->m_sky_on));
- state->save_item(NAME(state->m_sprite_color_base));
- state->save_item(NAME(state->m_bg_scrollx));
+ save_item(NAME(m_sound_nmi_enable));
+ save_item(NAME(m_pending_nmi));
+ save_item(NAME(m_sprite_lookup));
+ save_item(NAME(m_sl_bank));
+ save_item(NAME(m_bg_on));
+ save_item(NAME(m_sky_on));
+ save_item(NAME(m_sprite_color_base));
+ save_item(NAME(m_bg_scrollx));
}
-static MACHINE_RESET( buggychl )
+void buggychl_state::machine_reset()
{
- buggychl_state *state = machine.driver_data<buggychl_state>();
- machine.device("mcu")->execute().set_input_line(0, CLEAR_LINE);
+ machine().device("mcu")->execute().set_input_line(0, CLEAR_LINE);
- state->m_sound_nmi_enable = 0;
- state->m_pending_nmi = 0;
- state->m_sl_bank = 0;
- state->m_bg_on = 0;
- state->m_sky_on = 0;
- state->m_sprite_color_base = 0;
- state->m_bg_scrollx = 0;
+ m_sound_nmi_enable = 0;
+ m_pending_nmi = 0;
+ m_sl_bank = 0;
+ m_bg_on = 0;
+ m_sky_on = 0;
+ m_sprite_color_base = 0;
+ m_bg_scrollx = 0;
}
static MACHINE_CONFIG_START( buggychl, buggychl_state )
@@ -406,8 +404,6 @@ static MACHINE_CONFIG_START( buggychl, buggychl_state )
MCFG_CPU_PROGRAM_MAP(buggychl_mcu_map)
MCFG_DEVICE_ADD("bmcu", BUGGYCHL_MCU, 0)
- MCFG_MACHINE_START(buggychl)
- MCFG_MACHINE_RESET(buggychl)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -420,8 +416,6 @@ static MACHINE_CONFIG_START( buggychl, buggychl_state )
MCFG_GFXDECODE(buggychl)
MCFG_PALETTE_LENGTH(128+128)
- MCFG_PALETTE_INIT(buggychl)
- MCFG_VIDEO_START(buggychl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/buster.c b/src/mame/drivers/buster.c
index 9d8a82d528a..c4e1d726470 100644
--- a/src/mame/drivers/buster.c
+++ b/src/mame/drivers/buster.c
@@ -21,10 +21,12 @@ public:
required_shared_ptr<UINT8> m_vram;
DECLARE_READ8_MEMBER(test_r);
+ virtual void video_start();
+ virtual void palette_init();
};
-static VIDEO_START(buster)
+void buster_state::video_start()
{
}
@@ -318,13 +320,13 @@ static const mc6845_interface mc6845_intf =
NULL /* update address callback */
};
-static PALETTE_INIT( buster )
+void buster_state::palette_init()
{
int i;
/* RGB format */
for(i=0;i<8;i++)
- palette_set_color(machine, i, MAKE_RGB(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2)));
+ palette_set_color(machine(), i, MAKE_RGB(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2)));
}
static MACHINE_CONFIG_START( buster, buster_state )
@@ -344,9 +346,7 @@ static MACHINE_CONFIG_START( buster, buster_state )
MCFG_GFXDECODE(buster)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(buster)
- MCFG_VIDEO_START(buster)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bwing.c b/src/mame/drivers/bwing.c
index 19b91872b5f..2e4c2ee086c 100644
--- a/src/mame/drivers/bwing.c
+++ b/src/mame/drivers/bwing.c
@@ -333,35 +333,33 @@ GFXDECODE_END
//****************************************************************************
// Hardware Definitions
-static MACHINE_START( bwing )
+void bwing_state::machine_start()
{
- bwing_state *state = machine.driver_data<bwing_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_subcpu = machine().device<cpu_device>("sub");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_palatch));
- state->save_item(NAME(state->m_srbank));
- state->save_item(NAME(state->m_mapmask));
- state->save_item(NAME(state->m_mapflip));
- state->save_item(NAME(state->m_bwp3_nmimask));
- state->save_item(NAME(state->m_bwp3_u8F_d));
+ save_item(NAME(m_palatch));
+ save_item(NAME(m_srbank));
+ save_item(NAME(m_mapmask));
+ save_item(NAME(m_mapflip));
+ save_item(NAME(m_bwp3_nmimask));
+ save_item(NAME(m_bwp3_u8F_d));
- state->save_item(NAME(state->m_sreg));
+ save_item(NAME(m_sreg));
}
-static MACHINE_RESET( bwing )
+void bwing_state::machine_reset()
{
- bwing_state *state = machine.driver_data<bwing_state>();
- state->m_palatch = 0;
- state->m_srbank = 0;
- state->m_mapmask = 0;
- state->m_mapflip = 0;
+ m_palatch = 0;
+ m_srbank = 0;
+ m_mapmask = 0;
+ m_mapflip = 0;
- state->m_bwp3_nmimask = 0;
- state->m_bwp3_u8F_d = 0;
+ m_bwp3_nmimask = 0;
+ m_bwp3_u8F_d = 0;
}
static MACHINE_CONFIG_START( bwing, bwing_state )
@@ -380,8 +378,6 @@ static MACHINE_CONFIG_START( bwing, bwing_state )
MCFG_QUANTUM_TIME(attotime::from_hz(18000)) // high enough?
- MCFG_MACHINE_START(bwing)
- MCFG_MACHINE_RESET(bwing)
// video hardware
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -396,7 +392,6 @@ static MACHINE_CONFIG_START( bwing, bwing_state )
MCFG_GFXDECODE(bwing)
MCFG_PALETTE_LENGTH(64)
- MCFG_VIDEO_START(bwing)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/byvid.c b/src/mame/drivers/byvid.c
index 9f4a466c6a5..ee3d80aa5a5 100644
--- a/src/mame/drivers/byvid.c
+++ b/src/mame/drivers/byvid.c
@@ -39,6 +39,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(by133_cb2);
DECLARE_READ8_MEMBER(by133_portb_r);
DECLARE_WRITE8_MEMBER(by133_portb_w);
+ virtual void machine_reset();
};
@@ -154,10 +155,9 @@ static const pia6821_interface videopia_intf =
};
-static MACHINE_RESET( by133 )
+void by133_state::machine_reset()
{
- by133_state *state = machine.driver_data<by133_state>();
- state->m_sound_port2 = 2; // forced to 010 on /reset
+ m_sound_port2 = 2; // forced to 010 on /reset
}
static MACHINE_CONFIG_START( by133, by133_state )
@@ -175,7 +175,6 @@ static MACHINE_CONFIG_START( by133, by133_state )
MCFG_PIA6821_ADD("videopia", videopia_intf)
- MCFG_MACHINE_RESET(by133)
/* video hardware */
MCFG_TMS9928A_ADD( "tms9928a", TMS9928A, byvid_tms9928a_interface )
diff --git a/src/mame/drivers/bzone.c b/src/mame/drivers/bzone.c
index d6239f068a2..1c467ce3992 100644
--- a/src/mame/drivers/bzone.c
+++ b/src/mame/drivers/bzone.c
@@ -224,18 +224,16 @@
*
*************************************/
-static MACHINE_START( bzone )
+void bzone_state::machine_start()
{
- bzone_state *state = machine.driver_data<bzone_state>();
- state_save_register_global(machine, state->m_analog_data);
+ state_save_register_global(machine(), m_analog_data);
}
-static MACHINE_START( redbaron )
+MACHINE_START_MEMBER(bzone_state,redbaron)
{
- bzone_state *state = machine.driver_data<bzone_state>();
- state_save_register_global(machine, state->m_analog_data);
- state_save_register_global(machine, state->m_rb_input_select);
+ state_save_register_global(machine(), m_analog_data);
+ state_save_register_global(machine(), m_rb_input_select);
}
@@ -557,7 +555,6 @@ static MACHINE_CONFIG_START( bzone_base, bzone_state )
MCFG_CPU_PROGRAM_MAP(bzone_map)
MCFG_CPU_PERIODIC_INT(bzone_interrupt, (double)BZONE_MASTER_CLOCK / 4096 / 12)
- MCFG_MACHINE_START(bzone)
/* video hardware */
MCFG_SCREEN_ADD("screen", VECTOR)
@@ -589,7 +586,7 @@ static MACHINE_CONFIG_DERIVED( redbaron, bzone_base )
MCFG_CPU_PROGRAM_MAP(redbaron_map)
MCFG_CPU_PERIODIC_INT(bzone_interrupt, (double)BZONE_MASTER_CLOCK / 4096 / 12)
- MCFG_MACHINE_START(redbaron)
+ MCFG_MACHINE_START_OVERRIDE(bzone_state,redbaron)
MCFG_ATARIVGEAROM_ADD("earom")
@@ -598,7 +595,6 @@ static MACHINE_CONFIG_DERIVED( redbaron, bzone_base )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VISIBLE_AREA(0, 520, 0, 400)
- MCFG_VIDEO_START(avg_bzone)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c
index 599782c41d0..43a963cb8d6 100644
--- a/src/mame/drivers/cabal.c
+++ b/src/mame/drivers/cabal.c
@@ -52,10 +52,9 @@ Dip locations verified with Fabtek manual for the trackball version
#include "audio/seibu.h"
#include "includes/cabal.h"
-static MACHINE_RESET( cabalbl )
+MACHINE_RESET_MEMBER(cabal_state,cabalbl)
{
- cabal_state *state = machine.driver_data<cabal_state>();
- state->m_sound_command1 = state->m_sound_command2 = 0xff;
+ m_sound_command1 = m_sound_command2 = 0xff;
}
@@ -511,7 +510,6 @@ static MACHINE_CONFIG_START( cabal, cabal_state )
MCFG_GFXDECODE(cabal)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(cabal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -554,7 +552,7 @@ static MACHINE_CONFIG_START( cabalbl, cabal_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_RESET(cabalbl)
+ MCFG_MACHINE_RESET_OVERRIDE(cabal_state,cabalbl)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -567,7 +565,6 @@ static MACHINE_CONFIG_START( cabalbl, cabal_state )
MCFG_GFXDECODE(cabal)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(cabal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cabaret.c b/src/mame/drivers/cabaret.c
index 6a3082502b9..fd04fcdfa08 100644
--- a/src/mame/drivers/cabaret.c
+++ b/src/mame/drivers/cabaret.c
@@ -53,6 +53,8 @@ public:
DECLARE_DRIVER_INIT(cabaret);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -101,13 +103,12 @@ WRITE8_MEMBER(cabaret_state::fg_color_w)
m_fg_tilemap->mark_tile_dirty(offset);
}
-static VIDEO_START(cabaret)
+void cabaret_state::video_start()
{
- cabaret_state *state = machine.driver_data<cabaret_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cabaret_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cabaret_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- state->m_fg_tilemap->set_transparent_pen(0);
- state->m_bg_tilemap->set_scroll_cols(64);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cabaret_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cabaret_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap->set_scroll_cols(64);
}
@@ -318,10 +319,9 @@ GFXDECODE_END
Machine Drivers
***************************************************************************/
-static MACHINE_RESET( cabaret )
+void cabaret_state::machine_reset()
{
- cabaret_state *state = machine.driver_data<cabaret_state>();
- state->m_nmi_enable = 0;
+ m_nmi_enable = 0;
}
static INTERRUPT_GEN( cabaret_interrupt )
@@ -338,7 +338,6 @@ static MACHINE_CONFIG_START( cabaret, cabaret_state )
MCFG_CPU_IO_MAP(cabaret_portmap)
MCFG_CPU_VBLANK_INT("screen",cabaret_interrupt)
- MCFG_MACHINE_RESET(cabaret)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -351,7 +350,6 @@ static MACHINE_CONFIG_START( cabaret, cabaret_state )
MCFG_GFXDECODE(cabaret)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(cabaret)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/calchase.c b/src/mame/drivers/calchase.c
index 989b16ef466..61f36b29f5b 100644
--- a/src/mame/drivers/calchase.c
+++ b/src/mame/drivers/calchase.c
@@ -173,6 +173,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(calchase_pic8259_1_set_int_line);
DECLARE_READ8_MEMBER(get_slave_ack);
DECLARE_DRIVER_INIT(calchase);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -804,16 +806,15 @@ static IRQ_CALLBACK(irq_callback)
static READ8_HANDLER( vga_setting ) { return 0xff; } // hard-code to color
-static MACHINE_START(calchase)
+void calchase_state::machine_start()
{
- calchase_state *state = machine.driver_data<calchase_state>();
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
- state->m_pit8254 = machine.device( "pit8254" );
- state->m_pic8259_1 = machine.device( "pic8259_1" );
- state->m_pic8259_2 = machine.device( "pic8259_2" );
- state->m_dma8237_1 = machine.device( "dma8237_1" );
- state->m_dma8237_2 = machine.device( "dma8237_2" );
+ m_pit8254 = machine().device( "pit8254" );
+ m_pic8259_1 = machine().device( "pic8259_1" );
+ m_pic8259_2 = machine().device( "pic8259_2" );
+ m_dma8237_1 = machine().device( "dma8237_1" );
+ m_dma8237_2 = machine().device( "dma8237_2" );
}
/*************************************************************
@@ -877,10 +878,10 @@ static const struct pit8253_config calchase_pit8254_config =
}
};
-static MACHINE_RESET(calchase)
+void calchase_state::machine_reset()
{
- //machine.root_device().membank("bank1")->set_base(machine.root_device().memregion("bios")->base() + 0x10000);
- machine.root_device().membank("bank1")->set_base(machine.root_device().memregion("bios")->base());
+ //machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("bios")->base() + 0x10000);
+ machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("bios")->base());
}
static void set_gate_a20(running_machine &machine, int a20)
@@ -929,8 +930,6 @@ static MACHINE_CONFIG_START( calchase, calchase_state )
MCFG_CPU_PROGRAM_MAP(calchase_map)
MCFG_CPU_IO_MAP(calchase_io)
- MCFG_MACHINE_START(calchase)
- MCFG_MACHINE_RESET(calchase)
MCFG_PIT8254_ADD( "pit8254", calchase_pit8254_config )
MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
diff --git a/src/mame/drivers/calomega.c b/src/mame/drivers/calomega.c
index 218ec2cea7c..30ff79fb27c 100644
--- a/src/mame/drivers/calomega.c
+++ b/src/mame/drivers/calomega.c
@@ -2754,8 +2754,6 @@ static MACHINE_CONFIG_START( sys903, calomega_state )
MCFG_GFXDECODE(calomega)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(calomega)
- MCFG_VIDEO_START(calomega)
MCFG_MC6845_ADD("crtc", MC6845, CPU_CLOCK, mc6845_intf) /* 6845 @ CPU clock */
diff --git a/src/mame/drivers/calorie.c b/src/mame/drivers/calorie.c
index 5b462e0360b..64680a501cc 100644
--- a/src/mame/drivers/calorie.c
+++ b/src/mame/drivers/calorie.c
@@ -109,6 +109,9 @@ public:
DECLARE_DRIVER_INIT(calorieb);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -138,14 +141,13 @@ TILE_GET_INFO_MEMBER(calorie_state::get_fg_tile_info)
}
-static VIDEO_START( calorie )
+void calorie_state::video_start()
{
- calorie_state *state = machine.driver_data<calorie_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(calorie_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(calorie_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(calorie_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(calorie_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_fg_tilemap->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16( calorie )
@@ -422,18 +424,16 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( calorie )
+void calorie_state::machine_start()
{
- calorie_state *state = machine.driver_data<calorie_state>();
- state->save_item(NAME(state->m_bg_bank));
+ save_item(NAME(m_bg_bank));
}
-static MACHINE_RESET( calorie )
+void calorie_state::machine_reset()
{
- calorie_state *state = machine.driver_data<calorie_state>();
- state->m_bg_bank = 0;
+ m_bg_bank = 0;
}
@@ -449,8 +449,6 @@ static MACHINE_CONFIG_START( calorie, calorie_state )
MCFG_CPU_IO_MAP(calorie_sound_io_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 64)
- MCFG_MACHINE_START(calorie)
- MCFG_MACHINE_RESET(calorie)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -463,7 +461,6 @@ static MACHINE_CONFIG_START( calorie, calorie_state )
MCFG_GFXDECODE(calorie)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(calorie)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/canyon.c b/src/mame/drivers/canyon.c
index d99fee011be..09aae521a08 100644
--- a/src/mame/drivers/canyon.c
+++ b/src/mame/drivers/canyon.c
@@ -48,12 +48,12 @@
*
*************************************/
-static PALETTE_INIT( canyon )
+void canyon_state::palette_init()
{
- palette_set_color(machine, 0, MAKE_RGB(0x80, 0x80, 0x80)); /* GREY */
- palette_set_color(machine, 1, MAKE_RGB(0x00, 0x00, 0x00)); /* BLACK */
- palette_set_color(machine, 2, MAKE_RGB(0x80, 0x80, 0x80)); /* GREY */
- palette_set_color(machine, 3, MAKE_RGB(0xff, 0xff, 0xff)); /* WHITE */
+ palette_set_color(machine(), 0, MAKE_RGB(0x80, 0x80, 0x80)); /* GREY */
+ palette_set_color(machine(), 1, MAKE_RGB(0x00, 0x00, 0x00)); /* BLACK */
+ palette_set_color(machine(), 2, MAKE_RGB(0x80, 0x80, 0x80)); /* GREY */
+ palette_set_color(machine(), 3, MAKE_RGB(0xff, 0xff, 0xff)); /* WHITE */
}
@@ -253,8 +253,6 @@ static MACHINE_CONFIG_START( canyon, canyon_state )
MCFG_GFXDECODE(canyon)
MCFG_PALETTE_LENGTH(4)
- MCFG_PALETTE_INIT(canyon)
- MCFG_VIDEO_START(canyon)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/capbowl.c b/src/mame/drivers/capbowl.c
index 9a8cb5a1b42..f8cc53d2da5 100644
--- a/src/mame/drivers/capbowl.c
+++ b/src/mame/drivers/capbowl.c
@@ -334,27 +334,25 @@ static const ym2203_interface ym2203_config =
*
*************************************/
-static MACHINE_START( capbowl )
+void capbowl_state::machine_start()
{
- capbowl_state *state = machine.driver_data<capbowl_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_blitter_addr));
- state->save_item(NAME(state->m_last_trackball_val[0]));
- state->save_item(NAME(state->m_last_trackball_val[1]));
+ save_item(NAME(m_blitter_addr));
+ save_item(NAME(m_last_trackball_val[0]));
+ save_item(NAME(m_last_trackball_val[1]));
}
-static MACHINE_RESET( capbowl )
+void capbowl_state::machine_reset()
{
- capbowl_state *state = machine.driver_data<capbowl_state>();
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(32), FUNC(capbowl_update), 32);
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(32), FUNC(capbowl_update), 32);
- state->m_blitter_addr = 0;
- state->m_last_trackball_val[0] = 0;
- state->m_last_trackball_val[1] = 0;
+ m_blitter_addr = 0;
+ m_last_trackball_val[0] = 0;
+ m_last_trackball_val[1] = 0;
}
@@ -368,14 +366,11 @@ static MACHINE_CONFIG_START( capbowl, capbowl_state )
MCFG_CPU_ADD("audiocpu", M6809E, MASTER_CLOCK)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(capbowl)
- MCFG_MACHINE_RESET(capbowl)
MCFG_NVRAM_ADD_CUSTOM_DRIVER("nvram", capbowl_state, init_nvram)
MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
/* video hardware */
- MCFG_VIDEO_START(capbowl)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_SIZE(360, 256)
diff --git a/src/mame/drivers/cardline.c b/src/mame/drivers/cardline.c
index f74dfebe529..4cdb0bc2043 100644
--- a/src/mame/drivers/cardline.c
+++ b/src/mame/drivers/cardline.c
@@ -40,6 +40,7 @@ public:
DECLARE_WRITE8_MEMBER(video_w);
DECLARE_READ8_MEMBER(unk_r);
DECLARE_WRITE8_MEMBER(lamps_w);
+ virtual void palette_init();
};
@@ -184,12 +185,12 @@ static GFXDECODE_START( cardline )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 2 )
GFXDECODE_END
-static PALETTE_INIT(cardline)
+void cardline_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i,r,g,b,data;
int bit0,bit1,bit2;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
data=color_prom[i];
@@ -207,7 +208,7 @@ static PALETTE_INIT(cardline)
bit0 = (data >> 0) & 0x01;
bit1 = (data >> 1) & 0x01;
b = 0x55 * bit0 + 0xaa * bit1;
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
}
}
@@ -229,7 +230,6 @@ static MACHINE_CONFIG_START( cardline, cardline_state )
MCFG_GFXDECODE(cardline)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(cardline)
MCFG_DEFAULT_LAYOUT(layout_cardline)
diff --git a/src/mame/drivers/carjmbre.c b/src/mame/drivers/carjmbre.c
index 6dfda72e84e..fed4d4e807a 100644
--- a/src/mame/drivers/carjmbre.c
+++ b/src/mame/drivers/carjmbre.c
@@ -183,12 +183,11 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_RESET( carjmbre )
+void carjmbre_state::machine_reset()
{
- carjmbre_state *state = machine.driver_data<carjmbre_state>();
- state->m_flipscreen = 0;
- state->m_bgcolor = 0;
+ m_flipscreen = 0;
+ m_bgcolor = 0;
}
static INTERRUPT_GEN( vblank_irq )
@@ -206,7 +205,6 @@ static MACHINE_CONFIG_START( carjmbre, carjmbre_state )
MCFG_CPU_PROGRAM_MAP(carjmbre_map)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_RESET(carjmbre)
MCFG_CPU_ADD("audiocpu", Z80, XTAL_18_432MHz/6/2)
MCFG_CPU_PROGRAM_MAP(carjmbre_sound_map)
@@ -224,8 +222,6 @@ static MACHINE_CONFIG_START( carjmbre, carjmbre_state )
MCFG_GFXDECODE(carjmbre)
MCFG_PALETTE_LENGTH(64)
- MCFG_PALETTE_INIT(carjmbre)
- MCFG_VIDEO_START(carjmbre)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/carpolo.c b/src/mame/drivers/carpolo.c
index 82345dc4245..91db6b1802b 100644
--- a/src/mame/drivers/carpolo.c
+++ b/src/mame/drivers/carpolo.c
@@ -247,8 +247,6 @@ static MACHINE_CONFIG_START( carpolo, carpolo_state )
MCFG_CPU_VBLANK_INT("screen", carpolo_timer_interrupt) /* this not strictly VBLANK,
but it's supposed to happen 60
times a sec, so it's a good place */
- MCFG_MACHINE_START(carpolo)
- MCFG_MACHINE_RESET(carpolo)
MCFG_PIA6821_ADD("pia0", carpolo_pia0_intf)
MCFG_PIA6821_ADD("pia1", carpolo_pia1_intf)
@@ -281,8 +279,6 @@ static MACHINE_CONFIG_START( carpolo, carpolo_state )
MCFG_GFXDECODE(carpolo)
MCFG_PALETTE_LENGTH(12*2+2*16+4*2)
- MCFG_PALETTE_INIT(carpolo)
- MCFG_VIDEO_START(carpolo)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/carrera.c b/src/mame/drivers/carrera.c
index b20fe4d6287..7d61aac220a 100644
--- a/src/mame/drivers/carrera.c
+++ b/src/mame/drivers/carrera.c
@@ -61,6 +61,7 @@ public:
required_shared_ptr<UINT8> m_tileram;
DECLARE_READ8_MEMBER(unknown_r);
+ virtual void palette_init();
};
@@ -282,9 +283,9 @@ static const ay8910_interface ay8910_config =
DEVCB_NULL
};
-static PALETTE_INIT(carrera)
+void carrera_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int br_bit0, br_bit1, bit0, bit1, r, g, b;
int i;
@@ -303,7 +304,7 @@ static PALETTE_INIT(carrera)
bit1 = (color_prom[0] >> 5) & 0x01;
r = 0x0e * br_bit0 + 0x1f * br_bit1 + 0x43 * bit0 + 0x8f * bit1;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
color_prom++;
}
}
@@ -343,7 +344,6 @@ static MACHINE_CONFIG_START( carrera, carrera_state )
MCFG_GFXDECODE(carrera)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(carrera)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/caswin.c b/src/mame/drivers/caswin.c
index 6b8f3a5b8e8..eaa9e087458 100644
--- a/src/mame/drivers/caswin.c
+++ b/src/mame/drivers/caswin.c
@@ -66,6 +66,8 @@ public:
DECLARE_WRITE8_MEMBER(vvillage_output_w);
DECLARE_WRITE8_MEMBER(vvillage_lamps_w);
TILE_GET_INFO_MEMBER(get_sc0_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -82,10 +84,9 @@ TILE_GET_INFO_MEMBER(caswin_state::get_sc0_tile_info)
0);
}
-static VIDEO_START(vvillage)
+void caswin_state::video_start()
{
- caswin_state *state = machine.driver_data<caswin_state>();
- state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(caswin_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_sc0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(caswin_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
}
static SCREEN_UPDATE_IND16(vvillage)
@@ -272,9 +273,9 @@ static const ay8910_interface ay8910_config =
DEVCB_NULL
};
-static PALETTE_INIT( caswin )
+void caswin_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int bit0, bit1, bit2 , r, g, b;
int i;
@@ -293,7 +294,7 @@ static PALETTE_INIT( caswin )
bit2 = (color_prom[0] >> 7) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
color_prom++;
}
}
@@ -318,9 +319,7 @@ static MACHINE_CONFIG_START( vvillage, caswin_state )
MCFG_GFXDECODE(vvillage)
MCFG_PALETTE_LENGTH(0x40)
- MCFG_PALETTE_INIT(caswin)
- MCFG_VIDEO_START(vvillage)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c
index 3de198c3c61..97f209465a8 100644
--- a/src/mame/drivers/cave.c
+++ b/src/mame/drivers/cave.c
@@ -1793,33 +1793,31 @@ GFXDECODE_END
***************************************************************************/
-static MACHINE_START( cave )
+MACHINE_START_MEMBER(cave_state,cave)
{
- cave_state *state = machine.driver_data<cave_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_soundbuf_len));
- state->save_item(NAME(state->m_soundbuf_data));
+ save_item(NAME(m_soundbuf_len));
+ save_item(NAME(m_soundbuf_data));
- state->save_item(NAME(state->m_vblank_irq));
- state->save_item(NAME(state->m_sound_irq));
- state->save_item(NAME(state->m_unknown_irq));
- state->save_item(NAME(state->m_agallet_vblank_irq));
+ save_item(NAME(m_vblank_irq));
+ save_item(NAME(m_sound_irq));
+ save_item(NAME(m_unknown_irq));
+ save_item(NAME(m_agallet_vblank_irq));
}
-static MACHINE_RESET( cave )
+MACHINE_RESET_MEMBER(cave_state,cave)
{
- cave_state *state = machine.driver_data<cave_state>();
- memset(state->m_soundbuf_data, 0, 32);
- state->m_soundbuf_len = 0;
+ memset(m_soundbuf_data, 0, 32);
+ m_soundbuf_len = 0;
- state->m_vblank_irq = 0;
- state->m_sound_irq = 0;
- state->m_unknown_irq = 0;
- state->m_agallet_vblank_irq = 0;
+ m_vblank_irq = 0;
+ m_sound_irq = 0;
+ m_unknown_irq = 0;
+ m_agallet_vblank_irq = 0;
}
static const ymz280b_interface ymz280b_intf =
@@ -1858,8 +1856,8 @@ static MACHINE_CONFIG_START( dfeveron, cave_state )
MCFG_CPU_PROGRAM_MAP(dfeveron_map)
MCFG_CPU_VBLANK_INT("screen", cave_interrupt)
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -1874,9 +1872,9 @@ static MACHINE_CONFIG_START( dfeveron, cave_state )
MCFG_GFXDECODE(dfeveron)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT(dfeveron)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,dfeveron)
- MCFG_VIDEO_START(cave_2_layers)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1900,8 +1898,8 @@ static MACHINE_CONFIG_START( ddonpach, cave_state )
MCFG_CPU_PROGRAM_MAP(ddonpach_map)
MCFG_CPU_VBLANK_INT("screen", cave_interrupt)
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -1916,9 +1914,9 @@ static MACHINE_CONFIG_START( ddonpach, cave_state )
MCFG_GFXDECODE(ddonpach)
MCFG_PALETTE_LENGTH(0x8000 + 0x40*16) // $400 extra entries for layers 1&2
- MCFG_PALETTE_INIT(ddonpach)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,ddonpach)
- MCFG_VIDEO_START(cave_3_layers)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1946,8 +1944,8 @@ static MACHINE_CONFIG_START( donpachi, cave_state )
MCFG_CPU_PROGRAM_MAP(donpachi_map)
MCFG_CPU_VBLANK_INT("screen", cave_interrupt)
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -1962,9 +1960,9 @@ static MACHINE_CONFIG_START( donpachi, cave_state )
MCFG_GFXDECODE(donpachi)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT(dfeveron)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,dfeveron)
- MCFG_VIDEO_START(cave_3_layers)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1992,8 +1990,8 @@ static MACHINE_CONFIG_START( esprade, cave_state )
MCFG_CPU_PROGRAM_MAP(esprade_map)
MCFG_CPU_VBLANK_INT("screen", cave_interrupt)
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -2008,9 +2006,9 @@ static MACHINE_CONFIG_START( esprade, cave_state )
MCFG_GFXDECODE(esprade)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT(cave)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave)
- MCFG_VIDEO_START(cave_3_layers)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2033,8 +2031,8 @@ static MACHINE_CONFIG_START( gaia, cave_state )
MCFG_CPU_PROGRAM_MAP(gaia_map)
MCFG_CPU_VBLANK_INT("screen", cave_interrupt)
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -2048,9 +2046,9 @@ static MACHINE_CONFIG_START( gaia, cave_state )
MCFG_GFXDECODE(esprade)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT(cave)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave)
- MCFG_VIDEO_START(cave_3_layers)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2073,8 +2071,8 @@ static MACHINE_CONFIG_START( guwange, cave_state )
MCFG_CPU_PROGRAM_MAP(guwange_map)
MCFG_CPU_VBLANK_INT("screen", cave_interrupt)
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -2089,9 +2087,9 @@ static MACHINE_CONFIG_START( guwange, cave_state )
MCFG_GFXDECODE(esprade)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT(cave)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave)
- MCFG_VIDEO_START(cave_3_layers)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2117,8 +2115,8 @@ static MACHINE_CONFIG_START( hotdogst, cave_state )
MCFG_CPU_PROGRAM_MAP(hotdogst_sound_map)
MCFG_CPU_IO_MAP(hotdogst_sound_portmap)
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -2133,9 +2131,9 @@ static MACHINE_CONFIG_START( hotdogst, cave_state )
MCFG_GFXDECODE(hotdogst)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT(dfeveron)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,dfeveron)
- MCFG_VIDEO_START(cave_3_layers)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2169,8 +2167,8 @@ static MACHINE_CONFIG_START( korokoro, cave_state )
MCFG_CPU_PROGRAM_MAP(korokoro_map)
MCFG_CPU_VBLANK_INT("screen", cave_interrupt)
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
MCFG_EEPROM_93C46_8BIT_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -2185,9 +2183,9 @@ static MACHINE_CONFIG_START( korokoro, cave_state )
MCFG_GFXDECODE(korokoro)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT(korokoro)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,korokoro)
- MCFG_VIDEO_START(cave_1_layer)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_1_layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2223,8 +2221,8 @@ static MACHINE_CONFIG_START( mazinger, cave_state )
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -2239,9 +2237,9 @@ static MACHINE_CONFIG_START( mazinger, cave_state )
MCFG_GFXDECODE(mazinger)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT(mazinger)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,mazinger)
- MCFG_VIDEO_START(cave_2_layers)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2281,8 +2279,8 @@ static MACHINE_CONFIG_START( metmqstr, cave_state )
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave) /* start with the watchdog armed */
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave) /* start with the watchdog armed */
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -2297,9 +2295,9 @@ static MACHINE_CONFIG_START( metmqstr, cave_state )
MCFG_GFXDECODE(donpachi)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT(dfeveron)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,dfeveron)
- MCFG_VIDEO_START(cave_3_layers)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2336,8 +2334,8 @@ static MACHINE_CONFIG_START( pacslot, cave_state )
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
MCFG_EEPROM_ADD("eeprom", eeprom_interface_93C46_pacslot)
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -2352,9 +2350,9 @@ static MACHINE_CONFIG_START( pacslot, cave_state )
MCFG_GFXDECODE(tjumpman)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT(cave)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave)
- MCFG_VIDEO_START(cave_1_layer)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_1_layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2392,8 +2390,8 @@ static MACHINE_CONFIG_START( pwrinst2, cave_state )
MCFG_CPU_PROGRAM_MAP(pwrinst2_sound_map)
MCFG_CPU_IO_MAP(pwrinst2_sound_portmap)
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -2408,9 +2406,9 @@ static MACHINE_CONFIG_START( pwrinst2, cave_state )
MCFG_GFXDECODE(pwrinst2)
MCFG_PALETTE_LENGTH(0x8000+0x2800)
- MCFG_PALETTE_INIT(pwrinst2)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,pwrinst2)
- MCFG_VIDEO_START(cave_4_layers)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_4_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2455,8 +2453,8 @@ static MACHINE_CONFIG_START( sailormn, cave_state )
// MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -2471,9 +2469,9 @@ static MACHINE_CONFIG_START( sailormn, cave_state )
MCFG_GFXDECODE(sailormn)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT(sailormn) // 4 bit sprites, 6 bit tiles
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,sailormn) // 4 bit sprites, 6 bit tiles
- MCFG_VIDEO_START(sailormn_3_layers) /* Layer 2 has 1 banked ROM */
+ MCFG_VIDEO_START_OVERRIDE(cave_state,sailormn_3_layers) /* Layer 2 has 1 banked ROM */
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2509,8 +2507,8 @@ static MACHINE_CONFIG_START( tjumpman, cave_state )
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */
- MCFG_MACHINE_START(cave)
- MCFG_MACHINE_RESET(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
+ MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -2525,9 +2523,9 @@ static MACHINE_CONFIG_START( tjumpman, cave_state )
MCFG_GFXDECODE(tjumpman)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT(cave)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave)
- MCFG_VIDEO_START(cave_1_layer)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_1_layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2551,7 +2549,7 @@ static MACHINE_CONFIG_START( uopoko, cave_state )
MCFG_CPU_PROGRAM_MAP(uopoko_map)
MCFG_CPU_VBLANK_INT("screen", cave_interrupt)
- MCFG_MACHINE_START(cave)
+ MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", cave_vblank_start)
@@ -2567,8 +2565,8 @@ static MACHINE_CONFIG_START( uopoko, cave_state )
MCFG_GFXDECODE(uopoko)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT(cave)
- MCFG_VIDEO_START(cave_1_layer)
+ MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave)
+ MCFG_VIDEO_START_OVERRIDE(cave_state,cave_1_layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/cb2001.c b/src/mame/drivers/cb2001.c
index 7ecf46d0c82..c1595d7d35c 100644
--- a/src/mame/drivers/cb2001.c
+++ b/src/mame/drivers/cb2001.c
@@ -69,6 +69,8 @@ public:
TILE_GET_INFO_MEMBER(get_cb2001_reel1_tile_info);
TILE_GET_INFO_MEMBER(get_cb2001_reel2_tile_info);
TILE_GET_INFO_MEMBER(get_cb2001_reel3_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -514,16 +516,15 @@ TILE_GET_INFO_MEMBER(cb2001_state::get_cb2001_reel3_tile_info)
}
-static VIDEO_START(cb2001)
+void cb2001_state::video_start()
{
- cb2001_state *state = machine.driver_data<cb2001_state>();
- state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel2_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel3_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
-
- state->m_reel1_tilemap->set_scroll_cols(64);
- state->m_reel2_tilemap->set_scroll_cols(64);
- state->m_reel3_tilemap->set_scroll_cols(64);
+ m_reel1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel2_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel3_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+
+ m_reel1_tilemap->set_scroll_cols(64);
+ m_reel2_tilemap->set_scroll_cols(64);
+ m_reel3_tilemap->set_scroll_cols(64);
}
WRITE16_MEMBER(cb2001_state::cb2001_bg_w)
@@ -769,15 +770,15 @@ static GFXDECODE_START( cb2001 )
GFXDECODE_ENTRY( "gfx", 0, cb2001_layout32, 0x0, 32 )
GFXDECODE_END
-static PALETTE_INIT(cb2001)
+void cb2001_state::palette_init()
{
int i;
for (i = 0; i < 0x200; i++)
{
int r,g,b;
- UINT8*proms = machine.root_device().memregion("proms")->base();
- int length = machine.root_device().memregion("proms")->bytes();
+ UINT8*proms = machine().root_device().memregion("proms")->base();
+ int length = machine().root_device().memregion("proms")->bytes();
UINT16 dat;
dat = (proms[0x000+i] << 8) | proms[0x200+i];
@@ -789,11 +790,11 @@ static PALETTE_INIT(cb2001)
if (length==0x400) // are the cb2001 proms dumped incorrectly?
{
- if (!(i&0x20)) palette_set_color(machine, (i&0x1f) | ((i&~0x3f)>>1), MAKE_RGB(r, g, b));
+ if (!(i&0x20)) palette_set_color(machine(), (i&0x1f) | ((i&~0x3f)>>1), MAKE_RGB(r, g, b));
}
else
{
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
}
@@ -842,7 +843,6 @@ static MACHINE_CONFIG_START( cb2001, cb2001_state )
MCFG_GFXDECODE(cb2001)
- MCFG_PALETTE_INIT( cb2001 )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -853,7 +853,6 @@ static MACHINE_CONFIG_START( cb2001, cb2001_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(cb2001)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c
index b855c287bf0..078c8568403 100644
--- a/src/mame/drivers/cball.c
+++ b/src/mame/drivers/cball.c
@@ -28,6 +28,10 @@ public:
DECLARE_READ8_MEMBER(cball_wram_r);
DECLARE_WRITE8_MEMBER(cball_wram_w);
TILE_GET_INFO_MEMBER(get_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -46,10 +50,9 @@ WRITE8_MEMBER(cball_state::cball_vram_w)
}
-static VIDEO_START( cball )
+void cball_state::video_start()
{
- cball_state *state = machine.driver_data<cball_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cball_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cball_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -87,26 +90,25 @@ static TIMER_CALLBACK( interrupt_callback )
}
-static MACHINE_START( cball )
+void cball_state::machine_start()
{
- cball_state *state = machine.driver_data<cball_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
}
-static MACHINE_RESET( cball )
+void cball_state::machine_reset()
{
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(16), FUNC(interrupt_callback), 16);
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(16), FUNC(interrupt_callback), 16);
}
-static PALETTE_INIT( cball )
+void cball_state::palette_init()
{
- palette_set_color(machine, 0, MAKE_RGB(0x80, 0x80, 0x80));
- palette_set_color(machine, 1, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, 2, MAKE_RGB(0x80, 0x80, 0x80));
- palette_set_color(machine, 3, MAKE_RGB(0xff, 0xff, 0xff));
- palette_set_color(machine, 4, MAKE_RGB(0x80, 0x80, 0x80));
- palette_set_color(machine, 5, MAKE_RGB(0xc0, 0xc0, 0xc0));
+ palette_set_color(machine(), 0, MAKE_RGB(0x80, 0x80, 0x80));
+ palette_set_color(machine(), 1, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), 2, MAKE_RGB(0x80, 0x80, 0x80));
+ palette_set_color(machine(), 3, MAKE_RGB(0xff, 0xff, 0xff));
+ palette_set_color(machine(), 4, MAKE_RGB(0x80, 0x80, 0x80));
+ palette_set_color(machine(), 5, MAKE_RGB(0xc0, 0xc0, 0xc0));
}
@@ -228,8 +230,6 @@ static MACHINE_CONFIG_START( cball, cball_state )
MCFG_CPU_ADD("maincpu", M6800, XTAL_12_096MHz / 16) /* ? */
MCFG_CPU_PROGRAM_MAP(cpu_map)
- MCFG_MACHINE_START(cball)
- MCFG_MACHINE_RESET(cball)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -241,8 +241,6 @@ static MACHINE_CONFIG_START( cball, cball_state )
MCFG_GFXDECODE(cball)
MCFG_PALETTE_LENGTH(6)
- MCFG_PALETTE_INIT(cball)
- MCFG_VIDEO_START(cball)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/cbasebal.c b/src/mame/drivers/cbasebal.c
index db2d6f37a3f..af31eeb72fd 100644
--- a/src/mame/drivers/cbasebal.c
+++ b/src/mame/drivers/cbasebal.c
@@ -239,38 +239,36 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( cbasebal )
+void cbasebal_state::machine_start()
{
- cbasebal_state *state = machine.driver_data<cbasebal_state>();
-
- state->membank("bank1")->configure_entries(0, 32, state->memregion("maincpu")->base() + 0x10000, 0x4000);
-
- state->save_item(NAME(state->m_rambank));
- state->save_item(NAME(state->m_tilebank));
- state->save_item(NAME(state->m_spritebank));
- state->save_item(NAME(state->m_text_on));
- state->save_item(NAME(state->m_bg_on));
- state->save_item(NAME(state->m_obj_on));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_scroll_x));
- state->save_item(NAME(state->m_scroll_y));
+
+ membank("bank1")->configure_entries(0, 32, memregion("maincpu")->base() + 0x10000, 0x4000);
+
+ save_item(NAME(m_rambank));
+ save_item(NAME(m_tilebank));
+ save_item(NAME(m_spritebank));
+ save_item(NAME(m_text_on));
+ save_item(NAME(m_bg_on));
+ save_item(NAME(m_obj_on));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_scroll_x));
+ save_item(NAME(m_scroll_y));
}
-static MACHINE_RESET( cbasebal )
+void cbasebal_state::machine_reset()
{
- cbasebal_state *state = machine.driver_data<cbasebal_state>();
-
- state->m_rambank = 0;
- state->m_tilebank = 0;
- state->m_spritebank = 0;
- state->m_text_on = 0;
- state->m_bg_on = 0;
- state->m_obj_on = 0;
- state->m_flipscreen = 0;
- state->m_scroll_x[0] = 0;
- state->m_scroll_x[1] = 0;
- state->m_scroll_y[0] = 0;
- state->m_scroll_y[1] = 0;
+
+ m_rambank = 0;
+ m_tilebank = 0;
+ m_spritebank = 0;
+ m_text_on = 0;
+ m_bg_on = 0;
+ m_obj_on = 0;
+ m_flipscreen = 0;
+ m_scroll_x[0] = 0;
+ m_scroll_x[1] = 0;
+ m_scroll_y[0] = 0;
+ m_scroll_y[1] = 0;
}
static MACHINE_CONFIG_START( cbasebal, cbasebal_state )
@@ -281,8 +279,6 @@ static MACHINE_CONFIG_START( cbasebal, cbasebal_state )
MCFG_CPU_IO_MAP(cbasebal_portmap)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold) /* ??? */
- MCFG_MACHINE_START(cbasebal)
- MCFG_MACHINE_RESET(cbasebal)
MCFG_EEPROM_ADD("eeprom", cbasebal_eeprom_intf)
@@ -299,7 +295,6 @@ static MACHINE_CONFIG_START( cbasebal, cbasebal_state )
MCFG_GFXDECODE(cbasebal)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(cbasebal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cbuster.c b/src/mame/drivers/cbuster.c
index e6f44b4ba50..2dec4f4f761 100644
--- a/src/mame/drivers/cbuster.c
+++ b/src/mame/drivers/cbuster.c
@@ -302,25 +302,23 @@ static const deco16ic_interface twocrude_deco16ic_tilegen2_intf =
0,2,
};
-static MACHINE_START( cbuster )
+void cbuster_state::machine_start()
{
- cbuster_state *state = machine.driver_data<cbuster_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_deco_tilegen1 = machine.device("tilegen1");
- state->m_deco_tilegen2 = machine.device("tilegen2");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_deco_tilegen1 = machine().device("tilegen1");
+ m_deco_tilegen2 = machine().device("tilegen2");
- state->save_item(NAME(state->m_prot));
- state->save_item(NAME(state->m_pri));
+ save_item(NAME(m_prot));
+ save_item(NAME(m_pri));
}
-static MACHINE_RESET( cbuster )
+void cbuster_state::machine_reset()
{
- cbuster_state *state = machine.driver_data<cbuster_state>();
- state->m_prot = 0;
- state->m_pri = 0;
+ m_prot = 0;
+ m_pri = 0;
}
static MACHINE_CONFIG_START( twocrude, cbuster_state )
@@ -333,8 +331,6 @@ static MACHINE_CONFIG_START( twocrude, cbuster_state )
MCFG_CPU_ADD("audiocpu", H6280,32220000/4) /* Custom chip 45, Audio section crystal is 32.220 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(cbuster)
- MCFG_MACHINE_RESET(cbuster)
MCFG_SCREEN_ADD("screen", RASTER)
@@ -343,7 +339,6 @@ static MACHINE_CONFIG_START( twocrude, cbuster_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_STATIC(twocrude)
- MCFG_VIDEO_START(twocrude)
MCFG_GFXDECODE(cbuster)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c
index 059e75e55c5..7b8c684f52d 100644
--- a/src/mame/drivers/ccastles.c
+++ b/src/mame/drivers/ccastles.c
@@ -185,52 +185,50 @@ CUSTOM_INPUT_MEMBER(ccastles_state::get_vblank)
*
*************************************/
-static MACHINE_START( ccastles )
+void ccastles_state::machine_start()
{
- ccastles_state *state = machine.driver_data<ccastles_state>();
rectangle visarea;
/* initialize globals */
- state->m_syncprom = state->memregion("proms")->base() + 0x000;
+ m_syncprom = memregion("proms")->base() + 0x000;
/* find the start of VBLANK in the SYNC PROM */
- for (state->m_vblank_start = 0; state->m_vblank_start < 256; state->m_vblank_start++)
- if ((state->m_syncprom[(state->m_vblank_start - 1) & 0xff] & 1) == 0 && (state->m_syncprom[state->m_vblank_start] & 1) != 0)
+ for (m_vblank_start = 0; m_vblank_start < 256; m_vblank_start++)
+ if ((m_syncprom[(m_vblank_start - 1) & 0xff] & 1) == 0 && (m_syncprom[m_vblank_start] & 1) != 0)
break;
- if (state->m_vblank_start == 0)
- state->m_vblank_start = 256;
+ if (m_vblank_start == 0)
+ m_vblank_start = 256;
/* find the end of VBLANK in the SYNC PROM */
- for (state->m_vblank_end = 0; state->m_vblank_end < 256; state->m_vblank_end++)
- if ((state->m_syncprom[(state->m_vblank_end - 1) & 0xff] & 1) != 0 && (state->m_syncprom[state->m_vblank_end] & 1) == 0)
+ for (m_vblank_end = 0; m_vblank_end < 256; m_vblank_end++)
+ if ((m_syncprom[(m_vblank_end - 1) & 0xff] & 1) != 0 && (m_syncprom[m_vblank_end] & 1) == 0)
break;
/* can't handle the wrapping case */
- assert(state->m_vblank_end < state->m_vblank_start);
+ assert(m_vblank_end < m_vblank_start);
/* reconfigure the visible area to match */
- visarea.set(0, 255, state->m_vblank_end, state->m_vblank_start - 1);
- machine.primary_screen->configure(320, 256, visarea, HZ_TO_ATTOSECONDS(PIXEL_CLOCK) * VTOTAL * HTOTAL);
+ visarea.set(0, 255, m_vblank_end, m_vblank_start - 1);
+ machine().primary_screen->configure(320, 256, visarea, HZ_TO_ATTOSECONDS(PIXEL_CLOCK) * VTOTAL * HTOTAL);
/* configure the ROM banking */
- state->membank("bank1")->configure_entries(0, 2, state->memregion("maincpu")->base() + 0xa000, 0x6000);
+ membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0xa000, 0x6000);
/* create a timer for IRQs and set up the first callback */
- state->m_irq_timer = machine.scheduler().timer_alloc(FUNC(clock_irq));
- state->m_irq_state = 0;
- schedule_next_irq(machine, 0);
+ m_irq_timer = machine().scheduler().timer_alloc(FUNC(clock_irq));
+ m_irq_state = 0;
+ schedule_next_irq(machine(), 0);
/* setup for save states */
- state->save_item(NAME(state->m_irq_state));
- state->save_item(NAME(state->m_nvram_store));
+ save_item(NAME(m_irq_state));
+ save_item(NAME(m_nvram_store));
}
-static MACHINE_RESET( ccastles )
+void ccastles_state::machine_reset()
{
- ccastles_state *state = machine.driver_data<ccastles_state>();
- machine.device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
- state->m_irq_state = 0;
+ machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
+ m_irq_state = 0;
}
@@ -475,8 +473,6 @@ static MACHINE_CONFIG_START( ccastles, ccastles_state )
MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/8)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(ccastles)
- MCFG_MACHINE_RESET(ccastles)
MCFG_WATCHDOG_VBLANK_INIT(8)
MCFG_X2212_ADD_AUTOSAVE("nvram_4b")
@@ -490,7 +486,6 @@ static MACHINE_CONFIG_START( ccastles, ccastles_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, HTOTAL - 1, VTOTAL, 0, VTOTAL - 1) /* will be adjusted later */
MCFG_SCREEN_UPDATE_STATIC(ccastles)
- MCFG_VIDEO_START(ccastles)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cchance.c b/src/mame/drivers/cchance.c
index e37be0ea516..3bb6d8eb133 100644
--- a/src/mame/drivers/cchance.c
+++ b/src/mame/drivers/cchance.c
@@ -49,6 +49,8 @@ public:
DECLARE_WRITE8_MEMBER(output_0_w);
DECLARE_READ8_MEMBER(input_1_r);
DECLARE_WRITE8_MEMBER(output_1_w);
+ DECLARE_MACHINE_START(cchance);
+ DECLARE_MACHINE_RESET(cchance);
};
@@ -196,24 +198,22 @@ static const ay8910_interface ay8910_config =
DEVCB_NULL
};
-static MACHINE_START( cchance )
+MACHINE_START_MEMBER(cchance_state,cchance)
{
- cchance_state *state = machine.driver_data<cchance_state>();
- state->m_mcu = NULL;
+ m_mcu = NULL;
- state->save_item(NAME(state->m_screenflip));
- state->save_item(NAME(state->m_hop_io));
- state->save_item(NAME(state->m_bell_io));
+ save_item(NAME(m_screenflip));
+ save_item(NAME(m_hop_io));
+ save_item(NAME(m_bell_io));
}
-static MACHINE_RESET( cchance )
+MACHINE_RESET_MEMBER(cchance_state,cchance)
{
- cchance_state *state = machine.driver_data<cchance_state>();
- state->m_screenflip = 0;
- state->m_mcu_type = -1;
- state->m_hop_io = 0;
- state->m_bell_io = 0;
+ m_screenflip = 0;
+ m_mcu_type = -1;
+ m_hop_io = 0;
+ m_bell_io = 0;
}
@@ -223,8 +223,8 @@ static MACHINE_CONFIG_START( cchance, cchance_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(cchance)
- MCFG_MACHINE_RESET(cchance)
+ MCFG_MACHINE_START_OVERRIDE(cchance_state,cchance)
+ MCFG_MACHINE_RESET_OVERRIDE(cchance_state,cchance)
MCFG_GFXDECODE(cchance)
@@ -240,7 +240,7 @@ static MACHINE_CONFIG_START( cchance, cchance_state )
MCFG_SCREEN_VBLANK_STATIC(tnzs)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(arknoid2)
+ MCFG_PALETTE_INIT_OVERRIDE(cchance_state,arknoid2)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cchasm.c b/src/mame/drivers/cchasm.c
index eb0eaf5bd3d..a6ac9580593 100644
--- a/src/mame/drivers/cchasm.c
+++ b/src/mame/drivers/cchasm.c
@@ -173,7 +173,6 @@ static MACHINE_CONFIG_START( cchasm, cchasm_state )
MCFG_SCREEN_VISIBLE_AREA(0, 1024-1, 0, 768-1)
MCFG_SCREEN_UPDATE_STATIC(vector)
- MCFG_VIDEO_START(cchasm)
/* sound hardware */
MCFG_SOUND_START(cchasm)
diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c
index ab2091a2f2c..e240c6d3c21 100644
--- a/src/mame/drivers/cclimber.c
+++ b/src/mame/drivers/cclimber.c
@@ -251,14 +251,13 @@ WRITE8_MEMBER(cclimber_state::toprollr_rombank_w)
membank("bank1")->set_entry(m_toprollr_rombank);
}
-static MACHINE_RESET( cclimber )
+MACHINE_RESET_MEMBER(cclimber_state,cclimber)
{
- cclimber_state *state = machine.driver_data<cclimber_state>();
/* Disable interrupts, River Patrol / Silver Land needs this otherwise returns bad RAM on POST */
- state->m_nmi_mask = 0;
+ m_nmi_mask = 0;
- state->m_toprollr_rombank = 0;
+ m_toprollr_rombank = 0;
}
@@ -990,7 +989,7 @@ static MACHINE_CONFIG_START( root, cclimber_state )
MCFG_CPU_IO_MAP(cclimber_portmap)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_RESET(cclimber)
+ MCFG_MACHINE_RESET_OVERRIDE(cclimber_state,cclimber)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1003,8 +1002,8 @@ static MACHINE_CONFIG_START( root, cclimber_state )
MCFG_GFXDECODE(cclimber)
MCFG_PALETTE_LENGTH(16*4+8*4)
- MCFG_PALETTE_INIT(cclimber)
- MCFG_VIDEO_START(cclimber)
+ MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,cclimber)
+ MCFG_VIDEO_START_OVERRIDE(cclimber_state,cclimber)
MACHINE_CONFIG_END
@@ -1046,7 +1045,7 @@ static MACHINE_CONFIG_DERIVED( yamato, root )
/* video hardware */
MCFG_PALETTE_LENGTH(16*4+8*4+256)
- MCFG_PALETTE_INIT(yamato)
+ MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,yamato)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(yamato)
@@ -1070,9 +1069,9 @@ static MACHINE_CONFIG_DERIVED( toprollr, cclimber )
/* video hardware */
MCFG_GFXDECODE(toprollr)
MCFG_PALETTE_LENGTH(32*5)
- MCFG_PALETTE_INIT(toprollr)
+ MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,toprollr)
- MCFG_VIDEO_START(toprollr)
+ MCFG_VIDEO_START_OVERRIDE(cclimber_state,toprollr)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(toprollr)
MACHINE_CONFIG_END
@@ -1101,8 +1100,8 @@ static MACHINE_CONFIG_START( swimmer, cclimber_state )
MCFG_GFXDECODE(swimmer)
MCFG_PALETTE_LENGTH(32*8+4*8+1)
- MCFG_PALETTE_INIT(swimmer)
- MCFG_VIDEO_START(swimmer)
+ MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,swimmer)
+ MCFG_VIDEO_START_OVERRIDE(cclimber_state,swimmer)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cd32.c b/src/mame/drivers/cd32.c
index b6a7774ea75..34b6bb91018 100644
--- a/src/mame/drivers/cd32.c
+++ b/src/mame/drivers/cd32.c
@@ -770,7 +770,7 @@ static MACHINE_CONFIG_START( cd32base, cd32_state )
MCFG_CPU_PROGRAM_MAP(cd32_map)
MCFG_DEVICE_ADD("akiko", AKIKO, 0)
- MCFG_MACHINE_RESET(amiga)
+ MCFG_MACHINE_RESET_OVERRIDE(amiga_state,amiga)
MCFG_I2CMEM_ADD("i2cmem",i2cmem_interface)
@@ -784,7 +784,7 @@ static MACHINE_CONFIG_START( cd32base, cd32_state )
MCFG_SCREEN_VISIBLE_AREA((129-8-8)*2, (449+8-1+8)*2, 44-8, 300+8-1)
MCFG_SCREEN_UPDATE_STATIC(amiga_aga)
- MCFG_VIDEO_START(amiga_aga)
+ MCFG_VIDEO_START_OVERRIDE(cd32_state,amiga_aga)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/cdi.c b/src/mame/drivers/cdi.c
index 807a2aa3a5b..075b346b109 100644
--- a/src/mame/drivers/cdi.c
+++ b/src/mame/drivers/cdi.c
@@ -189,121 +189,119 @@ static INPUT_PORTS_START( quizard )
INPUT_PORTS_END
-static MACHINE_START( cdi )
+void cdi_state::machine_start()
{
- cdi_state *state = machine.driver_data<cdi_state>();
- scc68070_register_globals(machine, &state->m_scc68070_regs);
+ scc68070_register_globals(machine(), &m_scc68070_regs);
}
-static MACHINE_RESET( cdi )
+MACHINE_RESET_MEMBER(cdi_state,cdi)
{
- cdi_state *state = machine.driver_data<cdi_state>();
- UINT16 *src = (UINT16*)state->memregion("maincpu")->base();
- UINT16 *dst = state->m_planea;
- //device_t *cdrom_dev = machine.device("cdrom");
+ UINT16 *src = (UINT16*)memregion("maincpu")->base();
+ UINT16 *dst = m_planea;
+ //device_t *cdrom_dev = machine().device("cdrom");
memcpy(dst, src, 0x8);
- scc68070_init(machine, &state->m_scc68070_regs);
+ scc68070_init(machine(), &m_scc68070_regs);
- machine.device("maincpu")->reset();
+ machine().device("maincpu")->reset();
- state->m_dmadac[0] = machine.device<dmadac_sound_device>("dac1");
- state->m_dmadac[1] = machine.device<dmadac_sound_device>("dac2");
+ m_dmadac[0] = machine().device<dmadac_sound_device>("dac1");
+ m_dmadac[1] = machine().device<dmadac_sound_device>("dac2");
}
-static MACHINE_RESET( quizrd12 )
+MACHINE_RESET_MEMBER(cdi_state,quizrd12)
{
- MACHINE_RESET_CALL( cdi );
+ MACHINE_RESET_CALL_MEMBER( cdi );
- scc68070_set_quizard_mcu_value(machine, 0x021f);
- scc68070_set_quizard_mcu_ack(machine, 0x5a);
+ scc68070_set_quizard_mcu_value(machine(), 0x021f);
+ scc68070_set_quizard_mcu_ack(machine(), 0x5a);
}
-static MACHINE_RESET( quizrd17 )
+MACHINE_RESET_MEMBER(cdi_state,quizrd17)
{
- MACHINE_RESET_CALL( cdi );
+ MACHINE_RESET_CALL_MEMBER( cdi );
- scc68070_set_quizard_mcu_value(machine, 0x021f);
- scc68070_set_quizard_mcu_ack(machine, 0x5a);
+ scc68070_set_quizard_mcu_value(machine(), 0x021f);
+ scc68070_set_quizard_mcu_ack(machine(), 0x5a);
}
/* Untested - copied from quizrd17 */
-static MACHINE_RESET( quizrd18 )
+MACHINE_RESET_MEMBER(cdi_state,quizrd18)
{
- MACHINE_RESET_CALL( cdi );
+ MACHINE_RESET_CALL_MEMBER( cdi );
- scc68070_set_quizard_mcu_value(machine, 0x021f);
- scc68070_set_quizard_mcu_ack(machine, 0x5a);
+ scc68070_set_quizard_mcu_value(machine(), 0x021f);
+ scc68070_set_quizard_mcu_ack(machine(), 0x5a);
}
-static MACHINE_RESET( quizrd22 )
+MACHINE_RESET_MEMBER(cdi_state,quizrd22)
{
- MACHINE_RESET_CALL( cdi );
+ MACHINE_RESET_CALL_MEMBER( cdi );
// 0x2b1: Italian
// 0x001: French
// 0x188: German
- scc68070_set_quizard_mcu_value(machine, 0x188);
- scc68070_set_quizard_mcu_ack(machine, 0x59);
+ scc68070_set_quizard_mcu_value(machine(), 0x188);
+ scc68070_set_quizard_mcu_ack(machine(), 0x59);
}
/* Untested - copied from quizrd22 */
-static MACHINE_RESET( quizrd23 )
+MACHINE_RESET_MEMBER(cdi_state,quizrd23)
{
- MACHINE_RESET_CALL( cdi );
+ MACHINE_RESET_CALL_MEMBER( cdi );
// 0x2b1: Italian
// 0x001: French
// 0x188: German
- scc68070_set_quizard_mcu_value(machine, 0x188);
- scc68070_set_quizard_mcu_ack(machine, 0x59);
+ scc68070_set_quizard_mcu_value(machine(), 0x188);
+ scc68070_set_quizard_mcu_ack(machine(), 0x59);
}
-static MACHINE_RESET( quizrd32 )
+MACHINE_RESET_MEMBER(cdi_state,quizrd32)
{
- MACHINE_RESET_CALL( cdi );
+ MACHINE_RESET_CALL_MEMBER( cdi );
- scc68070_set_quizard_mcu_value(machine, 0x00ae);
- scc68070_set_quizard_mcu_ack(machine, 0x58);
+ scc68070_set_quizard_mcu_value(machine(), 0x00ae);
+ scc68070_set_quizard_mcu_ack(machine(), 0x58);
}
/* Untested - copied from quizrd32 */
-static MACHINE_RESET( quizrd34 )
+MACHINE_RESET_MEMBER(cdi_state,quizrd34)
{
- MACHINE_RESET_CALL( cdi );
+ MACHINE_RESET_CALL_MEMBER( cdi );
- scc68070_set_quizard_mcu_value(machine, 0x00ae);
- scc68070_set_quizard_mcu_ack(machine, 0x58);
+ scc68070_set_quizard_mcu_value(machine(), 0x00ae);
+ scc68070_set_quizard_mcu_ack(machine(), 0x58);
}
/* Untested - copied from quizrr41 */
-static MACHINE_RESET( quizrr40 )
+MACHINE_RESET_MEMBER(cdi_state,quizrr40)
{
- MACHINE_RESET_CALL( cdi );
+ MACHINE_RESET_CALL_MEMBER( cdi );
- //scc68070_set_quizard_mcu_value(machine, 0x0139);
- scc68070_set_quizard_mcu_value(machine, 0x011f);
- scc68070_set_quizard_mcu_ack(machine, 0x57);
+ //scc68070_set_quizard_mcu_value(machine(), 0x0139);
+ scc68070_set_quizard_mcu_value(machine(), 0x011f);
+ scc68070_set_quizard_mcu_ack(machine(), 0x57);
}
-static MACHINE_RESET( quizrr41 )
+MACHINE_RESET_MEMBER(cdi_state,quizrr41)
{
- MACHINE_RESET_CALL( cdi );
+ MACHINE_RESET_CALL_MEMBER( cdi );
- //scc68070_set_quizard_mcu_value(machine, 0x0139);
- scc68070_set_quizard_mcu_value(machine, 0x011f);
- scc68070_set_quizard_mcu_ack(machine, 0x57);
+ //scc68070_set_quizard_mcu_value(machine(), 0x0139);
+ scc68070_set_quizard_mcu_value(machine(), 0x011f);
+ scc68070_set_quizard_mcu_ack(machine(), 0x57);
}
-static MACHINE_RESET( quizrr42 )
+MACHINE_RESET_MEMBER(cdi_state,quizrr42)
{
- MACHINE_RESET_CALL( cdi );
+ MACHINE_RESET_CALL_MEMBER( cdi );
- scc68070_set_quizard_mcu_value(machine, 0x01ae);
- scc68070_set_quizard_mcu_ack(machine, 0x57);
+ scc68070_set_quizard_mcu_value(machine(), 0x01ae);
+ scc68070_set_quizard_mcu_ack(machine(), 0x57);
}
static DEVICE_IMAGE_DISPLAY_INFO(cdi_cdinfo)
@@ -346,9 +344,7 @@ static MACHINE_CONFIG_START( cdi, cdi_state )
MCFG_DEFAULT_LAYOUT(layout_cdi)
- MCFG_VIDEO_START(cdimono1)
- MCFG_MACHINE_START(cdi)
MCFG_CDICDIC_ADD( "cdic" )
MCFG_CDISLAVE_ADD( "slave" )
@@ -377,7 +373,7 @@ struct cdrom_interface cdi_cdrom =
// Standard CD-i system, with CD-ROM image device (MESS) and Software List (MESS)
static MACHINE_CONFIG_DERIVED( cdimono1, cdi )
- MCFG_MACHINE_RESET( cdi )
+ MCFG_MACHINE_RESET_OVERRIDE(cdi_state, cdi )
MCFG_CDROM_ADD( "cdrom", cdi_cdrom )
@@ -392,43 +388,43 @@ static MACHINE_CONFIG_DERIVED( quizard, cdi )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizrd12, quizard )
- MCFG_MACHINE_RESET( quizrd12 )
+ MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizrd12 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizrd17, quizard )
- MCFG_MACHINE_RESET( quizrd17 )
+ MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizrd17 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizrd18, quizard )
- MCFG_MACHINE_RESET( quizrd18 )
+ MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizrd18 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizrd22, quizard )
- MCFG_MACHINE_RESET( quizrd22 )
+ MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizrd22 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizrd23, quizard )
- MCFG_MACHINE_RESET( quizrd23 )
+ MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizrd23 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizrd32, quizard )
- MCFG_MACHINE_RESET( quizrd32 )
+ MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizrd32 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizrd34, quizard )
- MCFG_MACHINE_RESET( quizrd34 )
+ MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizrd34 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizrr40, quizard )
- MCFG_MACHINE_RESET( quizrr40 )
+ MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizrr40 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizrr41, quizard )
- MCFG_MACHINE_RESET( quizrr41 )
+ MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizrr41 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizrr42, quizard )
- MCFG_MACHINE_RESET( quizrr42 )
+ MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizrr42 )
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c
index 7a11bf839f3..016d9d0da86 100644
--- a/src/mame/drivers/centiped.c
+++ b/src/mame/drivers/centiped.c
@@ -454,36 +454,33 @@ static TIMER_DEVICE_CALLBACK( generate_interrupt )
}
-static MACHINE_START( centiped )
+MACHINE_START_MEMBER(centiped_state,centiped)
{
- centiped_state *state = machine.driver_data<centiped_state>();
- state->save_item(NAME(state->m_oldpos));
- state->save_item(NAME(state->m_sign));
- state->save_item(NAME(state->m_dsw_select));
- state->save_item(NAME(state->m_prg_bank));
+ save_item(NAME(m_oldpos));
+ save_item(NAME(m_sign));
+ save_item(NAME(m_dsw_select));
+ save_item(NAME(m_prg_bank));
}
-static MACHINE_RESET( centiped )
+MACHINE_RESET_MEMBER(centiped_state,centiped)
{
- centiped_state *state = machine.driver_data<centiped_state>();
- machine.device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
- state->m_dsw_select = 0;
- state->m_control_select = 0;
- state->m_prg_bank = 0;
+ machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
+ m_dsw_select = 0;
+ m_control_select = 0;
+ m_prg_bank = 0;
}
-static MACHINE_RESET( magworm )
+MACHINE_RESET_MEMBER(centiped_state,magworm)
{
- centiped_state *state = machine.driver_data<centiped_state>();
- MACHINE_RESET_CALL(centiped);
+ MACHINE_RESET_CALL_MEMBER(centiped);
/* kludge: clear RAM so that magworm can be reset cleanly */
- memset(state->m_rambase, 0, 0x400);
+ memset(m_rambase, 0, 0x400);
}
@@ -1756,8 +1753,8 @@ static MACHINE_CONFIG_START( centiped_base, centiped_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, 12096000/8) /* 1.512 MHz (slows down to 0.75MHz while accessing playfield RAM) */
- MCFG_MACHINE_START(centiped)
- MCFG_MACHINE_RESET(centiped)
+ MCFG_MACHINE_START_OVERRIDE(centiped_state,centiped)
+ MCFG_MACHINE_RESET_OVERRIDE(centiped_state,centiped)
MCFG_ATARIVGEAROM_ADD("earom")
@@ -1774,7 +1771,7 @@ static MACHINE_CONFIG_START( centiped_base, centiped_state )
MCFG_GFXDECODE(centiped)
MCFG_PALETTE_LENGTH(4+4*4*4*4)
- MCFG_VIDEO_START(centiped)
+ MCFG_VIDEO_START_OVERRIDE(centiped_state,centiped)
MACHINE_CONFIG_END
@@ -1825,7 +1822,7 @@ static MACHINE_CONFIG_DERIVED( magworm, centiped_base )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(magworm_map)
- MCFG_MACHINE_RESET(magworm)
+ MCFG_MACHINE_RESET_OVERRIDE(centiped_state,magworm)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1847,7 +1844,7 @@ static MACHINE_CONFIG_DERIVED( milliped, centiped )
MCFG_GFXDECODE(milliped)
MCFG_PALETTE_LENGTH(4*4+4*4*4*4*4)
- MCFG_VIDEO_START(milliped)
+ MCFG_VIDEO_START_OVERRIDE(centiped_state,milliped)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(milliped)
@@ -1883,8 +1880,8 @@ static MACHINE_CONFIG_DERIVED( warlords, centiped )
MCFG_GFXDECODE(warlords)
MCFG_PALETTE_LENGTH(8*4+8*4)
- MCFG_PALETTE_INIT(warlords)
- MCFG_VIDEO_START(warlords)
+ MCFG_PALETTE_INIT_OVERRIDE(centiped_state,warlords)
+ MCFG_VIDEO_START_OVERRIDE(centiped_state,warlords)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(warlords)
@@ -1924,7 +1921,7 @@ static MACHINE_CONFIG_START( bullsdrt, centiped_state )
MCFG_GFXDECODE(centiped)
MCFG_PALETTE_LENGTH(4+4*4*4*4)
- MCFG_VIDEO_START(bullsdrt)
+ MCFG_VIDEO_START_OVERRIDE(centiped_state,bullsdrt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cesclass.c b/src/mame/drivers/cesclass.c
index 51921ac5b6b..d0b94be5d0e 100644
--- a/src/mame/drivers/cesclass.c
+++ b/src/mame/drivers/cesclass.c
@@ -53,6 +53,7 @@ protected:
// driver_device overrides
virtual void video_start();
+ virtual void palette_init();
};
@@ -232,12 +233,12 @@ static INPUT_PORTS_START( cesclassic )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("l_lcd")
INPUT_PORTS_END
-static PALETTE_INIT( cesclassic )
+void cesclassic_state::palette_init()
{
int i;
for (i = 0; i < 4; i++)
- palette_set_color_rgb(machine, i, pal2bit(i), 0, 0);
+ palette_set_color_rgb(machine(), i, pal2bit(i), 0, 0);
}
static MACHINE_CONFIG_START( cesclassic, cesclassic_state )
@@ -259,7 +260,6 @@ static MACHINE_CONFIG_START( cesclassic, cesclassic_state )
MCFG_DEFAULT_LAYOUT( layout_lcd )
MCFG_PALETTE_LENGTH(4)
- MCFG_PALETTE_INIT(cesclassic)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_OKIM6295_ADD("oki", 24000000/16, OKIM6295_PIN7_LOW)
diff --git a/src/mame/drivers/chaknpop.c b/src/mame/drivers/chaknpop.c
index c92901d384e..36e20d33eb8 100644
--- a/src/mame/drivers/chaknpop.c
+++ b/src/mame/drivers/chaknpop.c
@@ -343,33 +343,31 @@ static GFXDECODE_START( chaknpop )
GFXDECODE_END
-static MACHINE_START( chaknpop )
+void chaknpop_state::machine_start()
{
- chaknpop_state *state = machine.driver_data<chaknpop_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000);
- state->save_item(NAME(state->m_gfxmode));
- state->save_item(NAME(state->m_flip_x));
- state->save_item(NAME(state->m_flip_y));
+ save_item(NAME(m_gfxmode));
+ save_item(NAME(m_flip_x));
+ save_item(NAME(m_flip_y));
- state->save_item(NAME(state->m_mcu_seed));
- state->save_item(NAME(state->m_mcu_result));
- state->save_item(NAME(state->m_mcu_select));
+ save_item(NAME(m_mcu_seed));
+ save_item(NAME(m_mcu_result));
+ save_item(NAME(m_mcu_select));
}
-static MACHINE_RESET( chaknpop )
+void chaknpop_state::machine_reset()
{
- chaknpop_state *state = machine.driver_data<chaknpop_state>();
- state->m_gfxmode = 0;
- state->m_flip_x = 0;
- state->m_flip_y = 0;
+ m_gfxmode = 0;
+ m_flip_x = 0;
+ m_flip_y = 0;
- state->m_mcu_seed = MCU_INITIAL_SEED;
- state->m_mcu_result = 0;
- state->m_mcu_select = 0;
+ m_mcu_seed = MCU_INITIAL_SEED;
+ m_mcu_result = 0;
+ m_mcu_select = 0;
}
static MACHINE_CONFIG_START( chaknpop, chaknpop_state )
@@ -379,8 +377,6 @@ static MACHINE_CONFIG_START( chaknpop, chaknpop_state )
MCFG_CPU_PROGRAM_MAP(chaknpop_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(chaknpop)
- MCFG_MACHINE_RESET(chaknpop)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -393,8 +389,6 @@ static MACHINE_CONFIG_START( chaknpop, chaknpop_state )
MCFG_GFXDECODE(chaknpop)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(chaknpop)
- MCFG_VIDEO_START(chaknpop)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cham24.c b/src/mame/drivers/cham24.c
index cd2b903bc6b..9ce08855a48 100644
--- a/src/mame/drivers/cham24.c
+++ b/src/mame/drivers/cham24.c
@@ -84,6 +84,10 @@ public:
DECLARE_WRITE8_MEMBER(psg_4015_w);
DECLARE_WRITE8_MEMBER(psg_4017_w);
DECLARE_DRIVER_INIT(cham24);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -268,14 +272,14 @@ static const nes_interface cham24_interface_1 =
"maincpu"
};
-static MACHINE_RESET( cham24 )
+void cham24_state::machine_reset()
{
}
-static PALETTE_INIT( cham24 )
+void cham24_state::palette_init()
{
- ppu2c0x_device *ppu = machine.device<ppu2c0x_device>("ppu");
- ppu->init_palette(machine, 0);
+ ppu2c0x_device *ppu = machine().device<ppu2c0x_device>("ppu");
+ ppu->init_palette(machine(), 0);
}
static void ppu_irq( device_t *device, int *ppu_regs )
@@ -294,7 +298,7 @@ static const ppu2c0x_interface ppu_interface =
ppu_irq /* irq */
};
-static VIDEO_START( cham24 )
+void cham24_state::video_start()
{
}
@@ -307,29 +311,28 @@ static SCREEN_UPDATE_IND16( cham24 )
}
-static MACHINE_START( cham24 )
+void cham24_state::machine_start()
{
- cham24_state *state = machine.driver_data<cham24_state>();
/* switch PRG rom */
- UINT8* dst = state->memregion("maincpu")->base();
- UINT8* src = state->memregion("user1")->base();
+ UINT8* dst = memregion("maincpu")->base();
+ UINT8* src = memregion("user1")->base();
memcpy(&dst[0x8000], &src[0x0f8000], 0x4000);
memcpy(&dst[0xc000], &src[0x0f8000], 0x4000);
/* uses 8K swapping, all ROM!*/
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x1fff, "bank1");
- state->membank("bank1")->set_base(state->memregion("gfx1")->base());
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x1fff, "bank1");
+ membank("bank1")->set_base(memregion("gfx1")->base());
/* need nametable ram, though. I doubt this uses more than 2k, but it starts up configured for 4 */
- state->m_nt_ram = auto_alloc_array(machine, UINT8, 0x1000);
- state->m_nt_page[0] = state->m_nt_ram;
- state->m_nt_page[1] = state->m_nt_ram + 0x400;
- state->m_nt_page[2] = state->m_nt_ram + 0x800;
- state->m_nt_page[3] = state->m_nt_ram + 0xc00;
+ m_nt_ram = auto_alloc_array(machine(), UINT8, 0x1000);
+ m_nt_page[0] = m_nt_ram;
+ m_nt_page[1] = m_nt_ram + 0x400;
+ m_nt_page[2] = m_nt_ram + 0x800;
+ m_nt_page[3] = m_nt_ram + 0xc00;
/* and read/write handlers */
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x2000, 0x3eff,read8_delegate(FUNC(cham24_state::nt_r), state), write8_delegate(FUNC(cham24_state::nt_w), state));
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x2000, 0x3eff,read8_delegate(FUNC(cham24_state::nt_r), this), write8_delegate(FUNC(cham24_state::nt_w), this));
}
DRIVER_INIT_MEMBER(cham24_state,cham24)
@@ -345,8 +348,6 @@ static MACHINE_CONFIG_START( cham24, cham24_state )
MCFG_CPU_ADD("maincpu", N2A03, N2A03_DEFAULTCLOCK)
MCFG_CPU_PROGRAM_MAP(cham24_map)
- MCFG_MACHINE_RESET( cham24 )
- MCFG_MACHINE_START( cham24 )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -358,8 +359,6 @@ static MACHINE_CONFIG_START( cham24, cham24_state )
MCFG_GFXDECODE(cham24)
MCFG_PALETTE_LENGTH(8*4*16)
- MCFG_PALETTE_INIT(cham24)
- MCFG_VIDEO_START(cham24)
MCFG_PPU2C04_ADD("ppu", ppu_interface)
diff --git a/src/mame/drivers/champbas.c b/src/mame/drivers/champbas.c
index f0bf8aff04f..c4c8f98ca0a 100644
--- a/src/mame/drivers/champbas.c
+++ b/src/mame/drivers/champbas.c
@@ -576,36 +576,33 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( champbas )
+MACHINE_START_MEMBER(champbas_state,champbas)
{
- champbas_state *state = machine.driver_data<champbas_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_mcu = machine.device(CPUTAG_MCU);
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_mcu = machine().device(CPUTAG_MCU);
- state->save_item(NAME(state->m_watchdog_count));
- state->save_item(NAME(state->m_palette_bank));
- state->save_item(NAME(state->m_gfx_bank));
+ save_item(NAME(m_watchdog_count));
+ save_item(NAME(m_palette_bank));
+ save_item(NAME(m_gfx_bank));
}
-static MACHINE_START( exctsccr )
+MACHINE_START_MEMBER(champbas_state,exctsccr)
{
- champbas_state *state = machine.driver_data<champbas_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
// FIXME
- machine.scheduler().timer_pulse(attotime::from_hz(75), FUNC(exctsccr_fm_callback)); /* updates fm */
+ machine().scheduler().timer_pulse(attotime::from_hz(75), FUNC(exctsccr_fm_callback)); /* updates fm */
- MACHINE_START_CALL(champbas);
+ MACHINE_START_CALL_MEMBER(champbas);
}
-static MACHINE_RESET( champbas )
+MACHINE_RESET_MEMBER(champbas_state,champbas)
{
- champbas_state *state = machine.driver_data<champbas_state>();
- state->m_palette_bank = 0;
- state->m_gfx_bank = 0; // talbot has only 1 bank
+ m_palette_bank = 0;
+ m_gfx_bank = 0; // talbot has only 1 bank
}
static INTERRUPT_GEN( vblank_irq )
@@ -628,8 +625,8 @@ static MACHINE_CONFIG_START( talbot, champbas_state )
MCFG_CPU_ADD(CPUTAG_MCU, ALPHA8201, XTAL_18_432MHz/6/8)
MCFG_CPU_PROGRAM_MAP(mcu_map)
- MCFG_MACHINE_START(champbas)
- MCFG_MACHINE_RESET(champbas)
+ MCFG_MACHINE_START_OVERRIDE(champbas_state,champbas)
+ MCFG_MACHINE_RESET_OVERRIDE(champbas_state,champbas)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -642,8 +639,8 @@ static MACHINE_CONFIG_START( talbot, champbas_state )
MCFG_GFXDECODE(talbot)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT(champbas)
- MCFG_VIDEO_START(champbas)
+ MCFG_PALETTE_INIT_OVERRIDE(champbas_state,champbas)
+ MCFG_VIDEO_START_OVERRIDE(champbas_state,champbas)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -663,8 +660,8 @@ static MACHINE_CONFIG_START( champbas, champbas_state )
MCFG_CPU_ADD("sub", Z80, XTAL_18_432MHz/6)
MCFG_CPU_PROGRAM_MAP(champbas_sub_map)
- MCFG_MACHINE_START(champbas)
- MCFG_MACHINE_RESET(champbas)
+ MCFG_MACHINE_START_OVERRIDE(champbas_state,champbas)
+ MCFG_MACHINE_RESET_OVERRIDE(champbas_state,champbas)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -677,8 +674,8 @@ static MACHINE_CONFIG_START( champbas, champbas_state )
MCFG_GFXDECODE(champbas)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT(champbas)
- MCFG_VIDEO_START(champbas)
+ MCFG_PALETTE_INIT_OVERRIDE(champbas_state,champbas)
+ MCFG_VIDEO_START_OVERRIDE(champbas_state,champbas)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -720,8 +717,8 @@ static MACHINE_CONFIG_START( exctsccr, champbas_state )
MCFG_CPU_ADD(CPUTAG_MCU, ALPHA8301, XTAL_18_432MHz/6/8) /* Actually 8302 */
MCFG_CPU_PROGRAM_MAP(mcu_map)
- MCFG_MACHINE_START(exctsccr)
- MCFG_MACHINE_RESET(champbas)
+ MCFG_MACHINE_START_OVERRIDE(champbas_state,exctsccr)
+ MCFG_MACHINE_RESET_OVERRIDE(champbas_state,champbas)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -734,8 +731,8 @@ static MACHINE_CONFIG_START( exctsccr, champbas_state )
MCFG_GFXDECODE(exctsccr)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT(exctsccr)
- MCFG_VIDEO_START(exctsccr)
+ MCFG_PALETTE_INIT_OVERRIDE(champbas_state,exctsccr)
+ MCFG_VIDEO_START_OVERRIDE(champbas_state,exctsccr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -771,8 +768,8 @@ static MACHINE_CONFIG_START( exctsccrb, champbas_state )
MCFG_CPU_ADD("sub", Z80, XTAL_18_432MHz/6)
MCFG_CPU_PROGRAM_MAP(champbas_sub_map)
- MCFG_MACHINE_START(champbas)
- MCFG_MACHINE_RESET(champbas)
+ MCFG_MACHINE_START_OVERRIDE(champbas_state,champbas)
+ MCFG_MACHINE_RESET_OVERRIDE(champbas_state,champbas)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -785,8 +782,8 @@ static MACHINE_CONFIG_START( exctsccrb, champbas_state )
MCFG_GFXDECODE(exctsccr)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT(exctsccr)
- MCFG_VIDEO_START(exctsccr)
+ MCFG_PALETTE_INIT_OVERRIDE(champbas_state,exctsccr)
+ MCFG_VIDEO_START_OVERRIDE(champbas_state,exctsccr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/champbwl.c b/src/mame/drivers/champbwl.c
index a053ac94e4f..4b2770655a8 100644
--- a/src/mame/drivers/champbwl.c
+++ b/src/mame/drivers/champbwl.c
@@ -168,6 +168,9 @@ public:
DECLARE_READ8_MEMBER(trackball_r);
DECLARE_WRITE8_MEMBER(champbwl_misc_w);
DECLARE_WRITE8_MEMBER(doraemon_outputs_w);
+ DECLARE_MACHINE_START(champbwl);
+ DECLARE_MACHINE_RESET(champbwl);
+ DECLARE_MACHINE_START(doraemon);
};
@@ -427,27 +430,25 @@ static const x1_010_interface champbwl_sound_intf =
0x0000 /* address */
};
-static MACHINE_START( champbwl )
+MACHINE_START_MEMBER(champbwl_state,champbwl)
{
- champbwl_state *state = machine.driver_data<champbwl_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->m_mcu = NULL;
+ m_mcu = NULL;
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
- state->save_item(NAME(state->m_screenflip));
- state->save_item(NAME(state->m_last_trackball_val));
+ save_item(NAME(m_screenflip));
+ save_item(NAME(m_last_trackball_val));
}
-static MACHINE_RESET( champbwl )
+MACHINE_RESET_MEMBER(champbwl_state,champbwl)
{
- champbwl_state *state = machine.driver_data<champbwl_state>();
- state->m_screenflip = 0;
- state->m_mcu_type = -1;
- state->m_last_trackball_val[0] = 0;
- state->m_last_trackball_val[1] = 0;
+ m_screenflip = 0;
+ m_mcu_type = -1;
+ m_last_trackball_val[0] = 0;
+ m_last_trackball_val[1] = 0;
}
@@ -479,8 +480,8 @@ static MACHINE_CONFIG_START( champbwl, champbwl_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_MACHINE_START(champbwl)
- MCFG_MACHINE_RESET(champbwl)
+ MCFG_MACHINE_START_OVERRIDE(champbwl_state,champbwl)
+ MCFG_MACHINE_RESET_OVERRIDE(champbwl_state,champbwl)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -496,7 +497,7 @@ static MACHINE_CONFIG_START( champbwl, champbwl_state )
MCFG_GFXDECODE(champbwl)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(arknoid2)
+ MCFG_PALETTE_INIT_OVERRIDE(champbwl_state,arknoid2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -528,10 +529,10 @@ static SCREEN_VBLANK( doraemon )
screen.machine().device<seta001_device>("spritegen")->setac_eof();
}
-static MACHINE_START( doraemon )
+MACHINE_START_MEMBER(champbwl_state,doraemon)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
}
static MACHINE_CONFIG_START( doraemon, champbwl_state )
@@ -545,7 +546,7 @@ static MACHINE_CONFIG_START( doraemon, champbwl_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(2000), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW )
- MCFG_MACHINE_START(doraemon)
+ MCFG_MACHINE_START_OVERRIDE(champbwl_state,doraemon)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -559,7 +560,7 @@ static MACHINE_CONFIG_START( doraemon, champbwl_state )
MCFG_GFXDECODE(champbwl)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(arknoid2)
+ MCFG_PALETTE_INIT_OVERRIDE(champbwl_state,arknoid2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/chanbara.c b/src/mame/drivers/chanbara.c
index 0abc1e1ac8c..0c262bd8cae 100644
--- a/src/mame/drivers/chanbara.c
+++ b/src/mame/drivers/chanbara.c
@@ -88,21 +88,25 @@ public:
DECLARE_DRIVER_INIT(chanbara);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_bg2_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
-static PALETTE_INIT( chanbara )
+void chanbara_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i, red, green, blue;
- for (i = 0; i < machine.total_colors(); i++)
+ for (i = 0; i < machine().total_colors(); i++)
{
red = color_prom[i];
- green = color_prom[machine.total_colors() + i];
- blue = color_prom[2 * machine.total_colors() + i];
+ green = color_prom[machine().total_colors() + i];
+ blue = color_prom[2 * machine().total_colors() + i];
- palette_set_color_rgb(machine, i, pal4bit(red << 1), pal4bit(green << 1), pal4bit(blue << 1));
+ palette_set_color_rgb(machine(), i, pal4bit(red << 1), pal4bit(green << 1), pal4bit(blue << 1));
}
}
@@ -151,12 +155,11 @@ TILE_GET_INFO_MEMBER(chanbara_state::get_bg2_tile_info)
SET_TILE_INFO_MEMBER(2, code, color, 0);
}
-static VIDEO_START(chanbara )
+void chanbara_state::video_start()
{
- chanbara_state *state = machine.driver_data<chanbara_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(chanbara_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS,8, 8, 32, 32);
- state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(chanbara_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS,16, 16, 16, 32);
- state->m_bg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(chanbara_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,8, 8, 32, 32);
+ m_bg2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(chanbara_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS,16, 16, 16, 32);
+ m_bg_tilemap->set_transparent_pen(0);
}
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
@@ -384,22 +387,20 @@ static const ym2203_interface ym2203_config =
};
-static MACHINE_START( chanbara )
+void chanbara_state::machine_start()
{
- chanbara_state *state = machine.driver_data<chanbara_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_scroll));
- state->save_item(NAME(state->m_scrollhi));
+ save_item(NAME(m_scroll));
+ save_item(NAME(m_scrollhi));
}
-static MACHINE_RESET( chanbara )
+void chanbara_state::machine_reset()
{
- chanbara_state *state = machine.driver_data<chanbara_state>();
- state->m_scroll = 0;
- state->m_scrollhi = 0;
+ m_scroll = 0;
+ m_scrollhi = 0;
}
static MACHINE_CONFIG_START( chanbara, chanbara_state )
@@ -407,8 +408,6 @@ static MACHINE_CONFIG_START( chanbara, chanbara_state )
MCFG_CPU_ADD("maincpu", M6809, 12000000/8)
MCFG_CPU_PROGRAM_MAP(chanbara_map)
- MCFG_MACHINE_START(chanbara)
- MCFG_MACHINE_RESET(chanbara)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -420,9 +419,7 @@ static MACHINE_CONFIG_START( chanbara, chanbara_state )
MCFG_GFXDECODE(chanbara)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(chanbara)
- MCFG_VIDEO_START(chanbara)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/chance32.c b/src/mame/drivers/chance32.c
index 735b70285b8..ac9a33a42a1 100644
--- a/src/mame/drivers/chance32.c
+++ b/src/mame/drivers/chance32.c
@@ -59,6 +59,9 @@ public:
UINT8 mux_data;
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -85,17 +88,16 @@ TILE_GET_INFO_MEMBER(chance32_state::get_bg_tile_info)
}
-VIDEO_START( chance32 )
+void chance32_state::video_start()
{
- chance32_state *state = machine.driver_data<chance32_state>();
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(chance32_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(chance32_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
+ m_fg_tilemap->set_transparent_pen(0);
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(chance32_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(chance32_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
- state->m_fg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY);
- state->m_bg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY);
+ m_fg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY);
+ m_bg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY);
}
@@ -437,12 +439,12 @@ static GFXDECODE_START( chance32 )
GFXDECODE_END
-static MACHINE_START( chance32 )
+void chance32_state::machine_start()
{
}
-static MACHINE_RESET( chance32 )
+void chance32_state::machine_reset()
{
}
@@ -471,8 +473,6 @@ static MACHINE_CONFIG_START( chance32, chance32_state )
MCFG_CPU_IO_MAP(chance32_portmap)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(chance32)
- MCFG_MACHINE_RESET(chance32)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -488,7 +488,6 @@ static MACHINE_CONFIG_START( chance32, chance32_state )
MCFG_GFXDECODE(chance32)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(chance32)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/changela.c b/src/mame/drivers/changela.c
index d02aee6f8d5..f16e0959163 100644
--- a/src/mame/drivers/changela.c
+++ b/src/mame/drivers/changela.c
@@ -419,87 +419,85 @@ static INTERRUPT_GEN( chl_mcu_irq )
generic_pulse_irq_line(state->m_mcu, 0, 1);
}
-static MACHINE_START(changela)
+void changela_state::machine_start()
{
- changela_state *state = machine.driver_data<changela_state>();
- state->m_mcu = machine.device("mcu");
+ m_mcu = machine().device("mcu");
/* video */
- state->save_item(NAME(state->m_slopeROM_bank));
- state->save_item(NAME(state->m_tree_en));
- state->save_item(NAME(state->m_horizon));
- state->save_item(NAME(state->m_mem_dev_selected));
- state->save_item(NAME(state->m_v_count_river));
- state->save_item(NAME(state->m_v_count_tree));
- state->save_item(NAME(state->m_tree_on));
+ save_item(NAME(m_slopeROM_bank));
+ save_item(NAME(m_tree_en));
+ save_item(NAME(m_horizon));
+ save_item(NAME(m_mem_dev_selected));
+ save_item(NAME(m_v_count_river));
+ save_item(NAME(m_v_count_tree));
+ save_item(NAME(m_tree_on));
/* mcu */
- state->save_item(NAME(state->m_port_a_in));
- state->save_item(NAME(state->m_port_a_out));
- state->save_item(NAME(state->m_ddr_a));
- state->save_item(NAME(state->m_port_b_out));
- state->save_item(NAME(state->m_ddr_b));
- state->save_item(NAME(state->m_port_c_in));
- state->save_item(NAME(state->m_port_c_out));
- state->save_item(NAME(state->m_ddr_c));
-
- state->save_item(NAME(state->m_mcu_out));
- state->save_item(NAME(state->m_mcu_in));
- state->save_item(NAME(state->m_mcu_pc_1));
- state->save_item(NAME(state->m_mcu_pc_0));
+ save_item(NAME(m_port_a_in));
+ save_item(NAME(m_port_a_out));
+ save_item(NAME(m_ddr_a));
+ save_item(NAME(m_port_b_out));
+ save_item(NAME(m_ddr_b));
+ save_item(NAME(m_port_c_in));
+ save_item(NAME(m_port_c_out));
+ save_item(NAME(m_ddr_c));
+
+ save_item(NAME(m_mcu_out));
+ save_item(NAME(m_mcu_in));
+ save_item(NAME(m_mcu_pc_1));
+ save_item(NAME(m_mcu_pc_0));
/* misc */
- state->save_item(NAME(state->m_tree0_col));
- state->save_item(NAME(state->m_tree1_col));
- state->save_item(NAME(state->m_left_bank_col));
- state->save_item(NAME(state->m_right_bank_col));
- state->save_item(NAME(state->m_boat_shore_col));
- state->save_item(NAME(state->m_collision_reset));
- state->save_item(NAME(state->m_tree_collision_reset));
- state->save_item(NAME(state->m_prev_value_31));
- state->save_item(NAME(state->m_dir_31));
+ save_item(NAME(m_tree0_col));
+ save_item(NAME(m_tree1_col));
+ save_item(NAME(m_left_bank_col));
+ save_item(NAME(m_right_bank_col));
+ save_item(NAME(m_boat_shore_col));
+ save_item(NAME(m_collision_reset));
+ save_item(NAME(m_tree_collision_reset));
+ save_item(NAME(m_prev_value_31));
+ save_item(NAME(m_dir_31));
}
-static MACHINE_RESET (changela)
+void changela_state::machine_reset()
{
- changela_state *state = machine.driver_data<changela_state>();
/* video */
- state->m_slopeROM_bank = 0;
- state->m_tree_en = 0;
- state->m_horizon = 0;
- state->m_mem_dev_selected = 0;
- state->m_v_count_river = 0;
- state->m_v_count_tree = 0;
- state->m_tree_on[0] = 0;
- state->m_tree_on[1] = 0;
+ m_slopeROM_bank = 0;
+ m_tree_en = 0;
+ m_horizon = 0;
+ m_mem_dev_selected = 0;
+ m_v_count_river = 0;
+ m_v_count_tree = 0;
+ m_tree_on[0] = 0;
+ m_tree_on[1] = 0;
/* mcu */
- state->m_mcu_pc_1 = 0;
- state->m_mcu_pc_0 = 0;
-
- state->m_port_a_in = 0;
- state->m_port_a_out = 0;
- state->m_ddr_a = 0;
- state->m_port_b_out = 0;
- state->m_ddr_b = 0;
- state->m_port_c_in = 0;
- state->m_port_c_out = 0;
- state->m_ddr_c = 0;
- state->m_mcu_out = 0;
- state->m_mcu_in = 0;
+ m_mcu_pc_1 = 0;
+ m_mcu_pc_0 = 0;
+
+ m_port_a_in = 0;
+ m_port_a_out = 0;
+ m_ddr_a = 0;
+ m_port_b_out = 0;
+ m_ddr_b = 0;
+ m_port_c_in = 0;
+ m_port_c_out = 0;
+ m_ddr_c = 0;
+ m_mcu_out = 0;
+ m_mcu_in = 0;
/* misc */
- state->m_tree0_col = 0;
- state->m_tree1_col = 0;
- state->m_left_bank_col = 0;
- state->m_right_bank_col = 0;
- state->m_boat_shore_col = 0;
- state->m_collision_reset = 0;
- state->m_tree_collision_reset = 0;
- state->m_prev_value_31 = 0;
- state->m_dir_31 = 0;
+ m_tree0_col = 0;
+ m_tree1_col = 0;
+ m_left_bank_col = 0;
+ m_right_bank_col = 0;
+ m_boat_shore_col = 0;
+ m_collision_reset = 0;
+ m_tree_collision_reset = 0;
+ m_prev_value_31 = 0;
+ m_dir_31 = 0;
}
static MACHINE_CONFIG_START( changela, changela_state )
@@ -512,8 +510,6 @@ static MACHINE_CONFIG_START( changela, changela_state )
MCFG_CPU_PROGRAM_MAP(mcu_map)
MCFG_CPU_VBLANK_INT("screen",chl_mcu_irq)
- MCFG_MACHINE_START(changela)
- MCFG_MACHINE_RESET(changela)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -523,7 +519,6 @@ static MACHINE_CONFIG_START( changela, changela_state )
MCFG_PALETTE_LENGTH(0x40)
- MCFG_VIDEO_START(changela)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cheekyms.c b/src/mame/drivers/cheekyms.c
index 97ce3202868..01b990ff977 100644
--- a/src/mame/drivers/cheekyms.c
+++ b/src/mame/drivers/cheekyms.c
@@ -108,12 +108,11 @@ static GFXDECODE_START( cheekyms )
GFXDECODE_END
-static MACHINE_START( cheekyms )
+void cheekyms_state::machine_start()
{
- cheekyms_state *state = machine.driver_data<cheekyms_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_dac = machine.device<dac_device>("dac");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_dac = machine().device<dac_device>("dac");
}
static INTERRUPT_GEN( vblank_irq )
@@ -133,7 +132,6 @@ static MACHINE_CONFIG_START( cheekyms, cheekyms_state )
MCFG_CPU_IO_MAP(io_map)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_START(cheekyms)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -146,8 +144,6 @@ static MACHINE_CONFIG_START( cheekyms, cheekyms_state )
MCFG_GFXDECODE(cheekyms)
MCFG_PALETTE_LENGTH(0xc0)
- MCFG_PALETTE_INIT(cheekyms)
- MCFG_VIDEO_START(cheekyms)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/chihiro.c b/src/mame/drivers/chihiro.c
index 1a3ee6493b1..1291314f03e 100644
--- a/src/mame/drivers/chihiro.c
+++ b/src/mame/drivers/chihiro.c
@@ -415,6 +415,7 @@ public:
} chihiro_devs;
nv2a_renderer *nvidia_nv2a;
+ virtual void machine_start();
};
/*
@@ -1800,22 +1801,21 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( chihiro )
INPUT_PORTS_END
-static MACHINE_START( chihiro )
+void chihiro_state::machine_start()
{
- chihiro_state *chst=machine.driver_data<chihiro_state>();
- chst->nvidia_nv2a=auto_alloc(machine, nv2a_renderer(machine));
+ nvidia_nv2a=auto_alloc(machine(), nv2a_renderer(machine()));
memset(pic16lc_buffer,0,sizeof(pic16lc_buffer));
pic16lc_buffer[0]='B';
pic16lc_buffer[4]=2; // A/V connector, 2=vga
- chst->smbus_register_device(0x10,smbus_callback_pic16lc);
- chst->smbus_register_device(0x45,smbus_callback_cx25871);
- chst->smbus_register_device(0x54,smbus_callback_eeprom);
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
- chst->chihiro_devs.pic8259_1 = machine.device( "pic8259_1" );
- chst->chihiro_devs.pic8259_2 = machine.device( "pic8259_2" );
- chst->chihiro_devs.ide = machine.device( "ide" );
- if (machine.debug_flags & DEBUG_FLAG_ENABLED)
- debug_console_register_command(machine,"chihiro",CMDFLAG_NONE,0,1,4,chihiro_debug_commands);
+ smbus_register_device(0x10,smbus_callback_pic16lc);
+ smbus_register_device(0x45,smbus_callback_cx25871);
+ smbus_register_device(0x54,smbus_callback_eeprom);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ chihiro_devs.pic8259_1 = machine().device( "pic8259_1" );
+ chihiro_devs.pic8259_2 = machine().device( "pic8259_2" );
+ chihiro_devs.ide = machine().device( "ide" );
+ if (machine().debug_flags & DEBUG_FLAG_ENABLED)
+ debug_console_register_command(machine(),"chihiro",CMDFLAG_NONE,0,1,4,chihiro_debug_commands);
}
static SLOT_INTERFACE_START(ide_baseboard)
@@ -1861,7 +1861,6 @@ static MACHINE_CONFIG_START( chihiro_base, chihiro_state )
MCFG_SCREEN_UPDATE_DRIVER(chihiro_state,screen_update_callback)
MCFG_SCREEN_VBLANK_DRIVER(chihiro_state,vblank_callback)
- MCFG_MACHINE_START(chihiro)
MCFG_PALETTE_LENGTH(65536)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/chinagat.c b/src/mame/drivers/chinagat.c
index 11e8cc6bb80..72a5013e85a 100644
--- a/src/mame/drivers/chinagat.c
+++ b/src/mame/drivers/chinagat.c
@@ -522,48 +522,46 @@ static const ym2203_interface ym2203_config =
};
-static MACHINE_START( chinagat )
+MACHINE_START_MEMBER(ddragon_state,chinagat)
{
- ddragon_state *state = machine.driver_data<ddragon_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_sub_cpu = machine.device("sub");
- state->m_snd_cpu = machine.device("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_sub_cpu = machine().device("sub");
+ m_snd_cpu = machine().device("audiocpu");
/* configure banks */
- state->membank("bank1")->configure_entries(0, 8, state->memregion("maincpu")->base() + 0x10000, 0x4000);
+ membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000);
/* register for save states */
- state->save_item(NAME(state->m_scrollx_hi));
- state->save_item(NAME(state->m_scrolly_hi));
- state->save_item(NAME(state->m_adpcm_sound_irq));
- state->save_item(NAME(state->m_adpcm_addr));
- state->save_item(NAME(state->m_pcm_shift));
- state->save_item(NAME(state->m_pcm_nibble));
- state->save_item(NAME(state->m_i8748_P1));
- state->save_item(NAME(state->m_i8748_P2));
- state->save_item(NAME(state->m_mcu_command));
+ save_item(NAME(m_scrollx_hi));
+ save_item(NAME(m_scrolly_hi));
+ save_item(NAME(m_adpcm_sound_irq));
+ save_item(NAME(m_adpcm_addr));
+ save_item(NAME(m_pcm_shift));
+ save_item(NAME(m_pcm_nibble));
+ save_item(NAME(m_i8748_P1));
+ save_item(NAME(m_i8748_P2));
+ save_item(NAME(m_mcu_command));
#if 0
- state->save_item(NAME(state->m_m5205_clk));
+ save_item(NAME(m_m5205_clk));
#endif
}
-static MACHINE_RESET( chinagat )
+MACHINE_RESET_MEMBER(ddragon_state,chinagat)
{
- ddragon_state *state = machine.driver_data<ddragon_state>();
-
- state->m_scrollx_hi = 0;
- state->m_scrolly_hi = 0;
- state->m_adpcm_sound_irq = 0;
- state->m_adpcm_addr = 0;
- state->m_pcm_shift = 0;
- state->m_pcm_nibble = 0;
- state->m_i8748_P1 = 0;
- state->m_i8748_P2 = 0;
- state->m_mcu_command = 0;
+
+ m_scrollx_hi = 0;
+ m_scrolly_hi = 0;
+ m_adpcm_sound_irq = 0;
+ m_adpcm_addr = 0;
+ m_pcm_shift = 0;
+ m_pcm_nibble = 0;
+ m_i8748_P1 = 0;
+ m_i8748_P2 = 0;
+ m_mcu_command = 0;
#if 0
- state->m_m5205_clk = 0;
+ m_m5205_clk = 0;
#endif
}
@@ -583,8 +581,8 @@ static MACHINE_CONFIG_START( chinagat, ddragon_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* heavy interleaving to sync up sprite<->main cpu's */
- MCFG_MACHINE_START(chinagat)
- MCFG_MACHINE_RESET(chinagat)
+ MCFG_MACHINE_START_OVERRIDE(ddragon_state,chinagat)
+ MCFG_MACHINE_RESET_OVERRIDE(ddragon_state,chinagat)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -594,7 +592,7 @@ static MACHINE_CONFIG_START( chinagat, ddragon_state )
MCFG_GFXDECODE(chinagat)
MCFG_PALETTE_LENGTH(384)
- MCFG_VIDEO_START(chinagat)
+ MCFG_VIDEO_START_OVERRIDE(ddragon_state,chinagat)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -627,8 +625,8 @@ static MACHINE_CONFIG_START( saiyugoub1, ddragon_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* heavy interleaving to sync up sprite<->main cpu's */
- MCFG_MACHINE_START(chinagat)
- MCFG_MACHINE_RESET(chinagat)
+ MCFG_MACHINE_START_OVERRIDE(ddragon_state,chinagat)
+ MCFG_MACHINE_RESET_OVERRIDE(ddragon_state,chinagat)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -638,7 +636,7 @@ static MACHINE_CONFIG_START( saiyugoub1, ddragon_state )
MCFG_GFXDECODE(chinagat)
MCFG_PALETTE_LENGTH(384)
- MCFG_VIDEO_START(chinagat)
+ MCFG_VIDEO_START_OVERRIDE(ddragon_state,chinagat)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -668,8 +666,8 @@ static MACHINE_CONFIG_START( saiyugoub2, ddragon_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* heavy interleaving to sync up sprite<->main cpu's */
- MCFG_MACHINE_START(chinagat)
- MCFG_MACHINE_RESET(chinagat)
+ MCFG_MACHINE_START_OVERRIDE(ddragon_state,chinagat)
+ MCFG_MACHINE_RESET_OVERRIDE(ddragon_state,chinagat)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -679,7 +677,7 @@ static MACHINE_CONFIG_START( saiyugoub2, ddragon_state )
MCFG_GFXDECODE(chinagat)
MCFG_PALETTE_LENGTH(384)
- MCFG_VIDEO_START(chinagat)
+ MCFG_VIDEO_START_OVERRIDE(ddragon_state,chinagat)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/chinsan.c b/src/mame/drivers/chinsan.c
index 74ad78f2358..e09e745303e 100644
--- a/src/mame/drivers/chinsan.c
+++ b/src/mame/drivers/chinsan.c
@@ -71,6 +71,10 @@ public:
DECLARE_WRITE8_MEMBER(ym_port_w2);
DECLARE_WRITE8_MEMBER(chin_adpcm_w);
DECLARE_DRIVER_INIT(chinsan);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -80,16 +84,16 @@ public:
*
*************************************/
-static PALETTE_INIT( chinsan )
+void chinsan_state::palette_init()
{
- UINT8 *src = machine.root_device().memregion( "color_proms" )->base();
+ UINT8 *src = machine().root_device().memregion( "color_proms" )->base();
int i;
for (i = 0; i < 0x100; i++)
- palette_set_color_rgb(machine, i, pal4bit(src[i + 0x200]), pal4bit(src[i + 0x100]), pal4bit(src[i + 0x000]));
+ palette_set_color_rgb(machine(), i, pal4bit(src[i + 0x200]), pal4bit(src[i + 0x100]), pal4bit(src[i + 0x000]));
}
-static VIDEO_START( chinsan )
+void chinsan_state::video_start()
{
}
@@ -572,28 +576,26 @@ static const msm5205_interface msm5205_config =
*
*************************************/
-static MACHINE_START( chinsan )
+void chinsan_state::machine_start()
{
- chinsan_state *state = machine.driver_data<chinsan_state>();
- state->membank("bank1")->configure_entries(0, 4, state->memregion("maincpu")->base() + 0x10000, 0x4000);
+ membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x4000);
- state->save_item(NAME(state->m_adpcm_idle));
- state->save_item(NAME(state->m_port_select));
- state->save_item(NAME(state->m_adpcm_pos));
- state->save_item(NAME(state->m_adpcm_data));
- state->save_item(NAME(state->m_trigger));
+ save_item(NAME(m_adpcm_idle));
+ save_item(NAME(m_port_select));
+ save_item(NAME(m_adpcm_pos));
+ save_item(NAME(m_adpcm_data));
+ save_item(NAME(m_trigger));
}
-static MACHINE_RESET( chinsan )
+void chinsan_state::machine_reset()
{
- chinsan_state *state = machine.driver_data<chinsan_state>();
- state->m_adpcm_idle = 1;
- state->m_port_select = 0;
- state->m_adpcm_pos = 0;
- state->m_adpcm_data = 0;
- state->m_trigger = 0;
+ m_adpcm_idle = 1;
+ m_port_select = 0;
+ m_adpcm_pos = 0;
+ m_adpcm_data = 0;
+ m_trigger = 0;
}
@@ -605,8 +607,6 @@ static MACHINE_CONFIG_START( chinsan, chinsan_state )
MCFG_CPU_IO_MAP(chinsan_io)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START( chinsan )
- MCFG_MACHINE_RESET( chinsan )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -618,9 +618,7 @@ static MACHINE_CONFIG_START( chinsan, chinsan_state )
MCFG_GFXDECODE(chinsan)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT(chinsan)
- MCFG_VIDEO_START(chinsan)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/chqflag.c b/src/mame/drivers/chqflag.c
index f2d245942a5..3e3fc35ae93 100644
--- a/src/mame/drivers/chqflag.c
+++ b/src/mame/drivers/chqflag.c
@@ -320,37 +320,35 @@ static const k051316_interface chqflag_k051316_intf_2 =
chqflag_zoom_callback_1
};
-static MACHINE_START( chqflag )
+void chqflag_state::machine_start()
{
- chqflag_state *state = machine.driver_data<chqflag_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
-
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k051316_1 = machine.device("k051316_1");
- state->m_k051316_2 = machine.device("k051316_2");
- state->m_k051960 = machine.device("k051960");
- state->m_k007232_1 = machine.device("k007232_1");
- state->m_k007232_2 = machine.device("k007232_2");
-
- state->save_item(NAME(state->m_k051316_readroms));
- state->save_item(NAME(state->m_last_vreg));
- state->save_item(NAME(state->m_analog_ctrl));
- state->save_item(NAME(state->m_accel));
- state->save_item(NAME(state->m_wheel));
+ UINT8 *ROM = memregion("maincpu")->base();
+
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k051316_1 = machine().device("k051316_1");
+ m_k051316_2 = machine().device("k051316_2");
+ m_k051960 = machine().device("k051960");
+ m_k007232_1 = machine().device("k007232_1");
+ m_k007232_2 = machine().device("k007232_2");
+
+ save_item(NAME(m_k051316_readroms));
+ save_item(NAME(m_last_vreg));
+ save_item(NAME(m_analog_ctrl));
+ save_item(NAME(m_accel));
+ save_item(NAME(m_wheel));
}
-static MACHINE_RESET( chqflag )
+void chqflag_state::machine_reset()
{
- chqflag_state *state = machine.driver_data<chqflag_state>();
- state->m_k051316_readroms = 0;
- state->m_last_vreg = 0;
- state->m_analog_ctrl = 0;
- state->m_accel = 0;
- state->m_wheel = 0;
+ m_k051316_readroms = 0;
+ m_last_vreg = 0;
+ m_analog_ctrl = 0;
+ m_accel = 0;
+ m_wheel = 0;
}
static MACHINE_CONFIG_START( chqflag, chqflag_state )
@@ -365,8 +363,6 @@ static MACHINE_CONFIG_START( chqflag, chqflag_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(chqflag)
- MCFG_MACHINE_RESET(chqflag)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -381,7 +377,6 @@ static MACHINE_CONFIG_START( chqflag, chqflag_state )
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(chqflag)
MCFG_K051960_ADD("k051960", chqflag_k051960_intf)
MCFG_K051316_ADD("k051316_1", chqflag_k051316_intf_1)
diff --git a/src/mame/drivers/cinemat.c b/src/mame/drivers/cinemat.c
index d8644565b49..c4664942d88 100644
--- a/src/mame/drivers/cinemat.c
+++ b/src/mame/drivers/cinemat.c
@@ -49,24 +49,22 @@
*
*************************************/
-static MACHINE_START( cinemat )
+void cinemat_state::machine_start()
{
- cinemat_state *state = machine.driver_data<cinemat_state>();
- state_save_register_global(machine, state->m_coin_detected);
- state_save_register_global(machine, state->m_coin_last_reset);
- state_save_register_global(machine, state->m_mux_select);
+ state_save_register_global(machine(), m_coin_detected);
+ state_save_register_global(machine(), m_coin_last_reset);
+ state_save_register_global(machine(), m_mux_select);
}
-static MACHINE_RESET( cinemat )
+void cinemat_state::machine_reset()
{
- cinemat_state *state = machine.driver_data<cinemat_state>();
/* reset the coin states */
- state->m_coin_detected = 0;
- state->m_coin_last_reset = 0;
+ m_coin_detected = 0;
+ m_coin_last_reset = 0;
/* reset mux select */
- state->m_mux_select = 0;
+ m_mux_select = 0;
}
@@ -993,8 +991,6 @@ static MACHINE_CONFIG_START( cinemat_nojmi_4k, cinemat_state )
MCFG_CPU_DATA_MAP(data_map)
MCFG_CPU_IO_MAP(io_map)
- MCFG_MACHINE_START(cinemat)
- MCFG_MACHINE_RESET(cinemat)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
@@ -1005,7 +1001,6 @@ static MACHINE_CONFIG_START( cinemat_nojmi_4k, cinemat_state )
MCFG_SCREEN_VISIBLE_AREA(0, 1023, 0, 767)
MCFG_SCREEN_UPDATE_STATIC(cinemat)
- MCFG_VIDEO_START(cinemat_bilevel)
MACHINE_CONFIG_END
@@ -1071,7 +1066,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( sundance, cinemat_jmi_8k )
MCFG_FRAGMENT_ADD(sundance_sound)
- MCFG_VIDEO_START(cinemat_16level)
+ MCFG_VIDEO_START_OVERRIDE(cinemat_state,cinemat_16level)
MACHINE_CONFIG_END
@@ -1102,7 +1097,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( solarq, cinemat_jmi_16k )
MCFG_FRAGMENT_ADD(solarq_sound)
- MCFG_VIDEO_START(cinemat_64level)
+ MCFG_VIDEO_START_OVERRIDE(cinemat_state,cinemat_64level)
MACHINE_CONFIG_END
@@ -1110,7 +1105,7 @@ static MACHINE_CONFIG_DERIVED( boxingb, cinemat_jmi_32k )
MCFG_FRAGMENT_ADD(boxingb_sound)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 1024, 0, 788)
- MCFG_VIDEO_START(cinemat_color)
+ MCFG_VIDEO_START_OVERRIDE(cinemat_state,cinemat_color)
MACHINE_CONFIG_END
@@ -1123,7 +1118,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( wotwc, cinemat_jmi_16k )
MCFG_FRAGMENT_ADD(wotw_sound)
- MCFG_VIDEO_START(cinemat_color)
+ MCFG_VIDEO_START_OVERRIDE(cinemat_state,cinemat_color)
MACHINE_CONFIG_END
@@ -1140,7 +1135,7 @@ static MACHINE_CONFIG_DERIVED( qb3, cinemat_jmi_32k )
MCFG_CPU_DATA_MAP(data_map_qb3)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 1120, 0, 780)
- MCFG_VIDEO_START(cinemat_qb3color)
+ MCFG_VIDEO_START_OVERRIDE(cinemat_state,cinemat_qb3color)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/circus.c b/src/mame/drivers/circus.c
index 8be07c0ae3a..ba618ffd36f 100644
--- a/src/mame/drivers/circus.c
+++ b/src/mame/drivers/circus.c
@@ -261,26 +261,24 @@ GFXDECODE_END
/***************************************************************************
Machine drivers
***************************************************************************/
-static MACHINE_START( circus )
+void circus_state::machine_start()
{
- circus_state *state = machine.driver_data<circus_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_samples = machine.device<samples_device>("samples");
- state->m_discrete = machine.device("discrete");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_samples = machine().device<samples_device>("samples");
+ m_discrete = machine().device("discrete");
- state->save_item(NAME(state->m_clown_x));
- state->save_item(NAME(state->m_clown_y));
- state->save_item(NAME(state->m_clown_z));
+ save_item(NAME(m_clown_x));
+ save_item(NAME(m_clown_y));
+ save_item(NAME(m_clown_z));
}
-static MACHINE_RESET( circus )
+void circus_state::machine_reset()
{
- circus_state *state = machine.driver_data<circus_state>();
- state->m_clown_x = 0;
- state->m_clown_y = 0;
- state->m_clown_z = 0;
+ m_clown_x = 0;
+ m_clown_y = 0;
+ m_clown_z = 0;
}
@@ -290,8 +288,6 @@ static MACHINE_CONFIG_START( circus, circus_state )
MCFG_CPU_ADD("maincpu", M6502, XTAL_11_289MHz / 16) /* 705.562kHz */
MCFG_CPU_PROGRAM_MAP(circus_map)
- MCFG_MACHINE_START(circus)
- MCFG_MACHINE_RESET(circus)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) /* needed for proper hardware collisions */
@@ -306,7 +302,6 @@ static MACHINE_CONFIG_START( circus, circus_state )
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
- MCFG_VIDEO_START(circus)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -327,8 +322,6 @@ static MACHINE_CONFIG_START( robotbwl, circus_state )
MCFG_CPU_PROGRAM_MAP(circus_map)
// does not generate irq!
- MCFG_MACHINE_START(circus)
- MCFG_MACHINE_RESET(circus)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -342,7 +335,6 @@ static MACHINE_CONFIG_START( robotbwl, circus_state )
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
- MCFG_VIDEO_START(circus)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -370,8 +362,6 @@ static MACHINE_CONFIG_START( crash, circus_state )
MCFG_CPU_PROGRAM_MAP(circus_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", crash_scanline, "screen", 0, 1)
- MCFG_MACHINE_START(circus)
- MCFG_MACHINE_RESET(circus)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -385,7 +375,6 @@ static MACHINE_CONFIG_START( crash, circus_state )
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
- MCFG_VIDEO_START(circus)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -404,8 +393,6 @@ static MACHINE_CONFIG_START( ripcord, circus_state )
MCFG_CPU_ADD("maincpu", M6502, XTAL_11_289MHz / 16) /* 705.562kHz */
MCFG_CPU_PROGRAM_MAP(circus_map)
- MCFG_MACHINE_START(circus)
- MCFG_MACHINE_RESET(circus)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) /* needed for proper hardware collisions */
@@ -420,7 +407,6 @@ static MACHINE_CONFIG_START( ripcord, circus_state )
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
- MCFG_VIDEO_START(circus)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/circusc.c b/src/mame/drivers/circusc.c
index ba8d169e116..a50bcd5a117 100644
--- a/src/mame/drivers/circusc.c
+++ b/src/mame/drivers/circusc.c
@@ -56,21 +56,19 @@ To enter service mode, keep 1&2 pressed on reset
#include "includes/circusc.h"
-static MACHINE_START( circusc )
+void circusc_state::machine_start()
{
- circusc_state *state = machine.driver_data<circusc_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_dac = machine.device<dac_device>("dac");
- state->m_discrete = machine.device("fltdisc");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_dac = machine().device<dac_device>("dac");
+ m_discrete = machine().device("fltdisc");
- state->save_item(NAME(state->m_sn_latch));
+ save_item(NAME(m_sn_latch));
}
-static MACHINE_RESET( circusc )
+void circusc_state::machine_reset()
{
- circusc_state *state = machine.driver_data<circusc_state>();
- state->m_sn_latch = 0;
+ m_sn_latch = 0;
}
READ8_MEMBER(circusc_state::circusc_sh_timer_r)
@@ -366,8 +364,6 @@ static MACHINE_CONFIG_START( circusc, circusc_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_14_31818MHz/4)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(circusc)
- MCFG_MACHINE_RESET(circusc)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -380,8 +376,6 @@ static MACHINE_CONFIG_START( circusc, circusc_state )
MCFG_GFXDECODE(circusc)
MCFG_PALETTE_LENGTH(16*16+16*16)
- MCFG_PALETTE_INIT(circusc)
- MCFG_VIDEO_START(circusc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cischeat.c b/src/mame/drivers/cischeat.c
index 7fc15c788ce..7ccd9d669d0 100644
--- a/src/mame/drivers/cischeat.c
+++ b/src/mame/drivers/cischeat.c
@@ -1589,7 +1589,7 @@ static MACHINE_CONFIG_START( bigrun, cischeat_state )
MCFG_GFXDECODE(bigrun)
MCFG_PALETTE_LENGTH(16*16 * 3 + 64*16 * 2 + 64*16) /* scroll 0,1,2; road 0,1; sprites */
- MCFG_VIDEO_START(bigrun)
+ MCFG_VIDEO_START_OVERRIDE(cischeat_state,bigrun)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1631,7 +1631,7 @@ static MACHINE_CONFIG_DERIVED( cischeat, bigrun )
MCFG_GFXDECODE(cischeat)
MCFG_PALETTE_LENGTH(32*16 * 3 + 64*16 * 2 + 128*16) /* scroll 0,1,2; road 0,1; sprites */
- MCFG_VIDEO_START(cischeat)
+ MCFG_VIDEO_START_OVERRIDE(cischeat_state,cischeat)
MACHINE_CONFIG_END
@@ -1657,7 +1657,7 @@ static MACHINE_CONFIG_DERIVED( f1gpstar, bigrun )
MCFG_GFXDECODE(f1gpstar)
MCFG_PALETTE_LENGTH(16*16 * 3 + 64*16 * 2 + 128*16) /* scroll 0,1,2; road 0,1; sprites */
- MCFG_VIDEO_START(f1gpstar)
+ MCFG_VIDEO_START_OVERRIDE(cischeat_state,f1gpstar)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(f1gpstar)
MACHINE_CONFIG_END
@@ -1722,7 +1722,7 @@ static MACHINE_CONFIG_START( scudhamm, cischeat_state )
MCFG_GFXDECODE(scudhamm)
MCFG_PALETTE_LENGTH(16*16+16*16+128*16)
- MCFG_VIDEO_START(f1gpstar)
+ MCFG_VIDEO_START_OVERRIDE(cischeat_state,f1gpstar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/citycon.c b/src/mame/drivers/citycon.c
index 974a54ac6a4..348a7afb1ae 100644
--- a/src/mame/drivers/citycon.c
+++ b/src/mame/drivers/citycon.c
@@ -186,20 +186,18 @@ static const ym2203_interface ym2203_config =
-static MACHINE_START( citycon )
+void citycon_state::machine_start()
{
- citycon_state *state = machine.driver_data<citycon_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_bg_image));
+ save_item(NAME(m_bg_image));
}
-static MACHINE_RESET( citycon )
+void citycon_state::machine_reset()
{
- citycon_state *state = machine.driver_data<citycon_state>();
- state->m_bg_image = 0;
+ m_bg_image = 0;
}
@@ -214,8 +212,6 @@ static MACHINE_CONFIG_START( citycon, citycon_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
// MCFG_CPU_VBLANK_INT("screen", irq0_line_hold) //actually unused, probably it was during development
- MCFG_MACHINE_START(citycon)
- MCFG_MACHINE_RESET(citycon)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -229,7 +225,6 @@ static MACHINE_CONFIG_START( citycon, citycon_state )
MCFG_PALETTE_LENGTH(640+1024) /* 640 real palette + 1024 virtual palette */
MCFG_PALETTE_INIT(all_black) /* guess */
- MCFG_VIDEO_START(citycon)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/clayshoo.c b/src/mame/drivers/clayshoo.c
index 401cb1c7deb..3bf9e0b6a6d 100644
--- a/src/mame/drivers/clayshoo.c
+++ b/src/mame/drivers/clayshoo.c
@@ -38,6 +38,8 @@ public:
DECLARE_READ8_MEMBER(analog_r);
DECLARE_WRITE8_MEMBER(input_port_select_w);
DECLARE_READ8_MEMBER(input_port_r);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -166,14 +168,13 @@ static I8255A_INTERFACE( ppi8255_1_intf )
DEVCB_NULL /* Port C write */
};
-static MACHINE_START( clayshoo )
+void clayshoo_state::machine_start()
{
- clayshoo_state *state = machine.driver_data<clayshoo_state>();
- create_analog_timers(machine);
+ create_analog_timers(machine());
/* register for state saving */
- state->save_item(NAME(state->m_input_port_select));
- state->save_item(NAME(state->m_analog_port_val));
+ save_item(NAME(m_input_port_select));
+ save_item(NAME(m_analog_port_val));
}
@@ -317,12 +318,11 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_RESET( clayshoo )
+void clayshoo_state::machine_reset()
{
- clayshoo_state *state = machine.driver_data<clayshoo_state>();
- state->m_input_port_select = 0;
- state->m_analog_port_val = 0;
+ m_input_port_select = 0;
+ m_analog_port_val = 0;
}
static MACHINE_CONFIG_START( clayshoo, clayshoo_state )
@@ -333,8 +333,6 @@ static MACHINE_CONFIG_START( clayshoo, clayshoo_state )
MCFG_CPU_IO_MAP(main_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(clayshoo)
- MCFG_MACHINE_RESET(clayshoo)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/cliffhgr.c b/src/mame/drivers/cliffhgr.c
index 9e8fedcb441..f8f25c01405 100644
--- a/src/mame/drivers/cliffhgr.c
+++ b/src/mame/drivers/cliffhgr.c
@@ -110,6 +110,8 @@ public:
DECLARE_WRITE8_MEMBER(cliff_sound_overlay_w);
DECLARE_WRITE_LINE_MEMBER(vdp_interrupt);
DECLARE_DRIVER_INIT(cliff);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -219,18 +221,16 @@ WRITE_LINE_MEMBER(cliffhgr_state::vdp_interrupt)
-static MACHINE_START( cliffhgr )
+void cliffhgr_state::machine_start()
{
- cliffhgr_state *state = machine.driver_data<cliffhgr_state>();
- state->m_irq_timer = machine.scheduler().timer_alloc(FUNC(cliff_irq_callback));
+ m_irq_timer = machine().scheduler().timer_alloc(FUNC(cliff_irq_callback));
}
-static MACHINE_RESET( cliffhgr )
+void cliffhgr_state::machine_reset()
{
- cliffhgr_state *state = machine.driver_data<cliffhgr_state>();
- state->m_port_bank = 0;
- state->m_phillips_code = 0;
- state->m_irq_timer->adjust(machine.primary_screen->time_until_pos(17), 17);
+ m_port_bank = 0;
+ m_phillips_code = 0;
+ m_irq_timer->adjust(machine().primary_screen->time_until_pos(17), 17);
}
/********************************************************/
@@ -696,8 +696,6 @@ static MACHINE_CONFIG_START( cliffhgr, cliffhgr_state )
MCFG_CPU_PROGRAM_MAP(mainmem)
MCFG_CPU_IO_MAP(mainport)
- MCFG_MACHINE_START(cliffhgr)
- MCFG_MACHINE_RESET(cliffhgr)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/cloak.c b/src/mame/drivers/cloak.c
index 899993c86b8..1c19066ae3e 100644
--- a/src/mame/drivers/cloak.c
+++ b/src/mame/drivers/cloak.c
@@ -354,7 +354,6 @@ static MACHINE_CONFIG_START( cloak, cloak_state )
MCFG_GFXDECODE(cloak)
MCFG_PALETTE_LENGTH(64)
- MCFG_VIDEO_START(cloak)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c
index cafdf10fa12..0166aa9aee9 100644
--- a/src/mame/drivers/cloud9.c
+++ b/src/mame/drivers/cloud9.c
@@ -154,48 +154,46 @@ CUSTOM_INPUT_MEMBER(cloud9_state::get_vblank)
*
*************************************/
-static MACHINE_START( cloud9 )
+void cloud9_state::machine_start()
{
- cloud9_state *state = machine.driver_data<cloud9_state>();
rectangle visarea;
/* initialize globals */
- state->m_syncprom = state->memregion("proms")->base() + 0x000;
+ m_syncprom = memregion("proms")->base() + 0x000;
/* find the start of VBLANK in the SYNC PROM */
- for (state->m_vblank_start = 0; state->m_vblank_start < 256; state->m_vblank_start++)
- if ((state->m_syncprom[(state->m_vblank_start - 1) & 0xff] & 2) != 0 && (state->m_syncprom[state->m_vblank_start] & 2) == 0)
+ for (m_vblank_start = 0; m_vblank_start < 256; m_vblank_start++)
+ if ((m_syncprom[(m_vblank_start - 1) & 0xff] & 2) != 0 && (m_syncprom[m_vblank_start] & 2) == 0)
break;
- if (state->m_vblank_start == 0)
- state->m_vblank_start = 256;
+ if (m_vblank_start == 0)
+ m_vblank_start = 256;
/* find the end of VBLANK in the SYNC PROM */
- for (state->m_vblank_end = 0; state->m_vblank_end < 256; state->m_vblank_end++)
- if ((state->m_syncprom[(state->m_vblank_end - 1) & 0xff] & 2) == 0 && (state->m_syncprom[state->m_vblank_end] & 2) != 0)
+ for (m_vblank_end = 0; m_vblank_end < 256; m_vblank_end++)
+ if ((m_syncprom[(m_vblank_end - 1) & 0xff] & 2) == 0 && (m_syncprom[m_vblank_end] & 2) != 0)
break;
/* can't handle the wrapping case */
- assert(state->m_vblank_end < state->m_vblank_start);
+ assert(m_vblank_end < m_vblank_start);
/* reconfigure the visible area to match */
- visarea.set(0, 255, state->m_vblank_end + 1, state->m_vblank_start);
- machine.primary_screen->configure(320, 256, visarea, HZ_TO_ATTOSECONDS(PIXEL_CLOCK) * VTOTAL * HTOTAL);
+ visarea.set(0, 255, m_vblank_end + 1, m_vblank_start);
+ machine().primary_screen->configure(320, 256, visarea, HZ_TO_ATTOSECONDS(PIXEL_CLOCK) * VTOTAL * HTOTAL);
/* create a timer for IRQs and set up the first callback */
- state->m_irq_timer = machine.scheduler().timer_alloc(FUNC(clock_irq));
- state->m_irq_state = 0;
- schedule_next_irq(machine, 0-64);
+ m_irq_timer = machine().scheduler().timer_alloc(FUNC(clock_irq));
+ m_irq_state = 0;
+ schedule_next_irq(machine(), 0-64);
/* setup for save states */
- state->save_item(NAME(state->m_irq_state));
+ save_item(NAME(m_irq_state));
}
-static MACHINE_RESET( cloud9 )
+void cloud9_state::machine_reset()
{
- cloud9_state *state = machine.driver_data<cloud9_state>();
- machine.device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
- state->m_irq_state = 0;
+ machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
+ m_irq_state = 0;
}
@@ -425,8 +423,6 @@ static MACHINE_CONFIG_START( cloud9, cloud9_state )
MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/8)
MCFG_CPU_PROGRAM_MAP(cloud9_map)
- MCFG_MACHINE_START(cloud9)
- MCFG_MACHINE_RESET(cloud9)
MCFG_WATCHDOG_VBLANK_INIT(8)
MCFG_X2212_ADD_AUTOSAVE("nvram")
@@ -442,7 +438,6 @@ static MACHINE_CONFIG_START( cloud9, cloud9_state )
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 231)
MCFG_SCREEN_UPDATE_STATIC(cloud9)
- MCFG_VIDEO_START(cloud9)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/clshroad.c b/src/mame/drivers/clshroad.c
index e464ae96084..8c920d2760d 100644
--- a/src/mame/drivers/clshroad.c
+++ b/src/mame/drivers/clshroad.c
@@ -22,10 +22,9 @@ XTAL : 18.432 MHz
#include "audio/wiping.h"
#include "includes/clshroad.h"
-static MACHINE_RESET( clshroad )
+void clshroad_state::machine_reset()
{
- clshroad_state *state = machine.driver_data<clshroad_state>();
- state->flip_screen_set(0);
+ flip_screen_set(0);
}
@@ -238,7 +237,6 @@ static MACHINE_CONFIG_START( firebatl, clshroad_state )
MCFG_CPU_PROGRAM_MAP(clshroad_sound_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold) /* IRQ, no NMI */
- MCFG_MACHINE_RESET(clshroad)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -251,8 +249,8 @@ static MACHINE_CONFIG_START( firebatl, clshroad_state )
MCFG_GFXDECODE(firebatl)
MCFG_PALETTE_LENGTH(512+64*4)
- MCFG_PALETTE_INIT(firebatl)
- MCFG_VIDEO_START(firebatl)
+ MCFG_PALETTE_INIT_OVERRIDE(clshroad_state,firebatl)
+ MCFG_VIDEO_START_OVERRIDE(clshroad_state,firebatl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -272,7 +270,6 @@ static MACHINE_CONFIG_START( clshroad, clshroad_state )
MCFG_CPU_PROGRAM_MAP(clshroad_sound_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold) /* IRQ, no NMI */
- MCFG_MACHINE_RESET(clshroad)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -285,8 +282,8 @@ static MACHINE_CONFIG_START( clshroad, clshroad_state )
MCFG_GFXDECODE(clshroad)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(clshroad)
- MCFG_VIDEO_START(clshroad)
+ MCFG_PALETTE_INIT_OVERRIDE(clshroad_state,clshroad)
+ MCFG_VIDEO_START_OVERRIDE(clshroad_state,clshroad)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cmmb.c b/src/mame/drivers/cmmb.c
index c0e481a4126..a022f9a216a 100644
--- a/src/mame/drivers/cmmb.c
+++ b/src/mame/drivers/cmmb.c
@@ -64,10 +64,12 @@ public:
DECLARE_READ8_MEMBER(cmmb_input_r);
DECLARE_WRITE8_MEMBER(cmmb_output_w);
DECLARE_READ8_MEMBER(kludge_r);
+ virtual void machine_reset();
+ virtual void video_start();
};
-static VIDEO_START( cmmb )
+void cmmb_state::video_start()
{
}
@@ -306,7 +308,7 @@ static INTERRUPT_GEN( cmmb_irq )
// device->execute().set_input_line(0, HOLD_LINE);
}
-static MACHINE_RESET( cmmb )
+void cmmb_state::machine_reset()
{
}
@@ -328,9 +330,7 @@ static MACHINE_CONFIG_START( cmmb, cmmb_state )
MCFG_GFXDECODE(cmmb)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(cmmb)
- MCFG_MACHINE_RESET(cmmb)
/* sound hardware */
// MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c
index 424f523550c..17747b66e28 100644
--- a/src/mame/drivers/cninja.c
+++ b/src/mame/drivers/cninja.c
@@ -869,22 +869,20 @@ static const deco16ic_interface mutantf_deco16ic_tilegen2_intf =
};
-static MACHINE_START( cninja )
+void cninja_state::machine_start()
{
- cninja_state *state = machine.driver_data<cninja_state>();
- state->save_item(NAME(state->m_scanline));
- state->save_item(NAME(state->m_irq_mask));
+ save_item(NAME(m_scanline));
+ save_item(NAME(m_irq_mask));
- decoprot_reset(machine);
+ decoprot_reset(machine());
}
-static MACHINE_RESET( cninja )
+void cninja_state::machine_reset()
{
- cninja_state *state = machine.driver_data<cninja_state>();
- state->m_scanline = 0;
- state->m_irq_mask = 0;
+ m_scanline = 0;
+ m_irq_mask = 0;
}
@@ -913,8 +911,6 @@ static MACHINE_CONFIG_START( cninja, cninja_state )
MCFG_CPU_ADD("audiocpu", H6280,32220000/8) /* Accurate */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(cninja)
- MCFG_MACHINE_RESET(cninja)
MCFG_TIMER_ADD("raster_timer", interrupt_gen)
@@ -967,8 +963,6 @@ static MACHINE_CONFIG_START( stoneage, cninja_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545)
MCFG_CPU_PROGRAM_MAP(stoneage_s_map)
- MCFG_MACHINE_START(cninja)
- MCFG_MACHINE_RESET(cninja)
MCFG_TIMER_ADD("raster_timer", interrupt_gen)
@@ -982,7 +976,7 @@ static MACHINE_CONFIG_START( stoneage, cninja_state )
MCFG_GFXDECODE(cninja)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(stoneage)
+ MCFG_VIDEO_START_OVERRIDE(cninja_state,stoneage)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -1021,8 +1015,6 @@ static MACHINE_CONFIG_START( cninjabl, cninja_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545)
MCFG_CPU_PROGRAM_MAP(stoneage_s_map)
- MCFG_MACHINE_START(cninja)
- MCFG_MACHINE_RESET(cninja)
MCFG_TIMER_ADD("raster_timer", interrupt_gen)
@@ -1066,8 +1058,6 @@ static MACHINE_CONFIG_START( edrandy, cninja_state )
MCFG_CPU_ADD("audiocpu", H6280,32220000/8) /* Accurate */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(cninja)
- MCFG_MACHINE_RESET(cninja)
MCFG_TIMER_ADD("raster_timer", interrupt_gen)
@@ -1120,8 +1110,6 @@ static MACHINE_CONFIG_START( robocop2, cninja_state )
MCFG_CPU_ADD("audiocpu", H6280,32220000/8) /* Accurate */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(cninja)
- MCFG_MACHINE_RESET(cninja)
MCFG_TIMER_ADD("raster_timer", interrupt_gen)
@@ -1177,8 +1165,6 @@ static MACHINE_CONFIG_START( mutantf, cninja_state )
MCFG_CPU_ADD("audiocpu", H6280,32220000/8)
MCFG_CPU_PROGRAM_MAP(sound_map_mutantf)
- MCFG_MACHINE_START(cninja)
- MCFG_MACHINE_RESET(cninja)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1187,7 +1173,7 @@ static MACHINE_CONFIG_START( mutantf, cninja_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_STATIC(mutantf)
- MCFG_VIDEO_START(mutantf)
+ MCFG_VIDEO_START_OVERRIDE(cninja_state,mutantf)
MCFG_GFXDECODE(mutantf)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/cntsteer.c b/src/mame/drivers/cntsteer.c
index 1c0243dfd7d..a192b424b3e 100644
--- a/src/mame/drivers/cntsteer.c
+++ b/src/mame/drivers/cntsteer.c
@@ -83,14 +83,21 @@ public:
DECLARE_DRIVER_INIT(zerotrgt);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ DECLARE_MACHINE_START(cntsteer);
+ DECLARE_MACHINE_RESET(cntsteer);
+ DECLARE_VIDEO_START(cntsteer);
+ DECLARE_MACHINE_START(zerotrgt);
+ DECLARE_MACHINE_RESET(zerotrgt);
+ DECLARE_VIDEO_START(zerotrgt);
+ DECLARE_PALETTE_INIT(zerotrgt);
};
-static PALETTE_INIT( zerotrgt )
+PALETTE_INIT_MEMBER(cntsteer_state,zerotrgt)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
- for (i = 0; i < machine.total_colors(); i++)
+ for (i = 0; i < machine().total_colors(); i++)
{
int bit0, bit1, bit2, r, g, b;
@@ -110,7 +117,7 @@ static PALETTE_INIT( zerotrgt )
bit2 = (color_prom[i + 256] >> 2) & 0x01;
b = (0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2);
- palette_set_color(machine, i, MAKE_RGB(r,g,b));
+ palette_set_color(machine(), i, MAKE_RGB(r,g,b));
}
}
@@ -131,26 +138,24 @@ TILE_GET_INFO_MEMBER(cntsteer_state::get_fg_tile_info)
SET_TILE_INFO_MEMBER(0, code, 0x30 + ((attr & 0x78) >> 3), 0);
}
-static VIDEO_START( cntsteer )
+VIDEO_START_MEMBER(cntsteer_state,cntsteer)
{
- cntsteer_state *state = machine.driver_data<cntsteer_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 64);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_fg_tilemap->set_transparent_pen(0);
- //state->m_bg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
+ //m_bg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
}
-static VIDEO_START( zerotrgt )
+VIDEO_START_MEMBER(cntsteer_state,zerotrgt)
{
- cntsteer_state *state = machine.driver_data<cntsteer_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_fg_tilemap->set_transparent_pen(0);
- //state->m_bg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
+ //m_bg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
}
/*
@@ -811,60 +816,56 @@ GFXDECODE_END
/***************************************************************************/
-static MACHINE_START( cntsteer )
+MACHINE_START_MEMBER(cntsteer_state,cntsteer)
{
- cntsteer_state *state = machine.driver_data<cntsteer_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_subcpu = machine.device<cpu_device>("subcpu");
-
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_bg_bank));
- state->save_item(NAME(state->m_scrolly));
- state->save_item(NAME(state->m_scrollx));
- state->save_item(NAME(state->m_scrollx_hi));
- state->save_item(NAME(state->m_scrolly_hi));
- state->save_item(NAME(state->m_rotation_x));
- state->save_item(NAME(state->m_rotation_sign));
-
- state->save_item(NAME(state->m_bg_color_bank));
- state->save_item(NAME(state->m_disable_roz));
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_subcpu = machine().device<cpu_device>("subcpu");
+
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_bg_bank));
+ save_item(NAME(m_scrolly));
+ save_item(NAME(m_scrollx));
+ save_item(NAME(m_scrollx_hi));
+ save_item(NAME(m_scrolly_hi));
+ save_item(NAME(m_rotation_x));
+ save_item(NAME(m_rotation_sign));
+
+ save_item(NAME(m_bg_color_bank));
+ save_item(NAME(m_disable_roz));
}
-static MACHINE_START( zerotrgt )
+MACHINE_START_MEMBER(cntsteer_state,zerotrgt)
{
- cntsteer_state *state = machine.driver_data<cntsteer_state>();
- state->save_item(NAME(state->m_nmimask));
- MACHINE_START_CALL(cntsteer);
+ save_item(NAME(m_nmimask));
+ MACHINE_START_CALL_MEMBER(cntsteer);
}
-static MACHINE_RESET( cntsteer )
+MACHINE_RESET_MEMBER(cntsteer_state,cntsteer)
{
- cntsteer_state *state = machine.driver_data<cntsteer_state>();
- state->m_flipscreen = 0;
- state->m_bg_bank = 0;
- state->m_scrolly = 0;
- state->m_scrollx = 0;
- state->m_scrollx_hi = 0;
- state->m_scrolly_hi = 0;
- state->m_rotation_x = 0;
- state->m_rotation_sign = 0;
-
- state->m_bg_color_bank = 0;
- state->m_disable_roz = 0;
+ m_flipscreen = 0;
+ m_bg_bank = 0;
+ m_scrolly = 0;
+ m_scrollx = 0;
+ m_scrollx_hi = 0;
+ m_scrolly_hi = 0;
+ m_rotation_x = 0;
+ m_rotation_sign = 0;
+
+ m_bg_color_bank = 0;
+ m_disable_roz = 0;
}
-static MACHINE_RESET( zerotrgt )
+MACHINE_RESET_MEMBER(cntsteer_state,zerotrgt)
{
- cntsteer_state *state = machine.driver_data<cntsteer_state>();
- state->m_nmimask = 0;
- MACHINE_RESET_CALL(cntsteer);
+ m_nmimask = 0;
+ MACHINE_RESET_CALL_MEMBER(cntsteer);
}
static const ay8910_interface ay8910_config =
@@ -892,8 +893,8 @@ static MACHINE_CONFIG_START( cntsteer, cntsteer_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(sound_interrupt, 480)
- MCFG_MACHINE_START(cntsteer)
- MCFG_MACHINE_RESET(cntsteer)
+ MCFG_MACHINE_START_OVERRIDE(cntsteer_state,cntsteer)
+ MCFG_MACHINE_RESET_OVERRIDE(cntsteer_state,cntsteer)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -907,9 +908,9 @@ static MACHINE_CONFIG_START( cntsteer, cntsteer_state )
MCFG_GFXDECODE(cntsteer)
MCFG_PALETTE_LENGTH(256)
-// MCFG_PALETTE_INIT(zerotrgt)
+// MCFG_PALETTE_INIT_OVERRIDE(cntsteer_state,zerotrgt)
- MCFG_VIDEO_START(cntsteer)
+ MCFG_VIDEO_START_OVERRIDE(cntsteer_state,cntsteer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -941,8 +942,8 @@ static MACHINE_CONFIG_START( zerotrgt, cntsteer_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(zerotrgt)
- MCFG_MACHINE_RESET(zerotrgt)
+ MCFG_MACHINE_START_OVERRIDE(cntsteer_state,zerotrgt)
+ MCFG_MACHINE_RESET_OVERRIDE(cntsteer_state,zerotrgt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -955,8 +956,8 @@ static MACHINE_CONFIG_START( zerotrgt, cntsteer_state )
MCFG_GFXDECODE(zerotrgt)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(zerotrgt)
- MCFG_VIDEO_START(zerotrgt)
+ MCFG_PALETTE_INIT_OVERRIDE(cntsteer_state,zerotrgt)
+ MCFG_VIDEO_START_OVERRIDE(cntsteer_state,zerotrgt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cobra.c b/src/mame/drivers/cobra.c
index d79fa19c8ed..4f1e3a6a21d 100644
--- a/src/mame/drivers/cobra.c
+++ b/src/mame/drivers/cobra.c
@@ -718,6 +718,8 @@ public:
DECLARE_DRIVER_INIT(racjamdx);
DECLARE_DRIVER_INIT(bujutsu);
DECLARE_DRIVER_INIT(cobra);
+ virtual void machine_reset();
+ virtual void video_start();
};
void cobra_renderer::render_color_scan(INT32 scanline, const extent_t &extent, const cobra_polydata &extradata, int threadid)
@@ -983,14 +985,13 @@ static void cobra_video_exit(running_machine *machine)
state->m_renderer->gfx_exit(*machine);
}
-VIDEO_START( cobra )
+void cobra_state::video_start()
{
- cobra_state *cobra = machine.driver_data<cobra_state>();
- machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(cobra_video_exit), &machine));
+ machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(cobra_video_exit), &machine()));
- cobra->m_renderer = auto_alloc(machine, cobra_renderer(machine));
- cobra->m_renderer->gfx_init(machine);
+ m_renderer = auto_alloc(machine(), cobra_renderer(machine()));
+ m_renderer->gfx_init(machine());
}
SCREEN_UPDATE_RGB32( cobra )
@@ -3197,13 +3198,12 @@ static INTERRUPT_GEN( cobra_vblank )
}
}
-static MACHINE_RESET( cobra )
+void cobra_state::machine_reset()
{
- cobra_state *cobra = machine.driver_data<cobra_state>();
- cobra->m_sub_interrupt = 0xff;
+ m_sub_interrupt = 0xff;
- UINT8 *ide_features = ide_get_features(machine.device("ide"), 0);
+ UINT8 *ide_features = ide_get_features(machine().device("ide"), 0);
// Cobra expects these settings or the BIOS fails
ide_features[51*2+0] = 0; /* 51: PIO data transfer cycle timing mode */
@@ -3211,16 +3211,16 @@ static MACHINE_RESET( cobra )
ide_features[67*2+0] = 0xe0; /* 67: minimum PIO transfer cycle time without flow control */
ide_features[67*2+1] = 0x01;
- cobra->m_renderer->gfx_reset(machine);
+ m_renderer->gfx_reset(machine());
- cobra->m_sound_dma_ptr = 0;
+ m_sound_dma_ptr = 0;
- cobra->m_dmadac[0] = machine.device<dmadac_sound_device>("dac1");
- cobra->m_dmadac[1] = machine.device<dmadac_sound_device>("dac2");
- dmadac_enable(&cobra->m_dmadac[0], 1, 1);
- dmadac_enable(&cobra->m_dmadac[1], 1, 1);
- dmadac_set_frequency(&cobra->m_dmadac[0], 1, 44100);
- dmadac_set_frequency(&cobra->m_dmadac[1], 1, 44100);
+ m_dmadac[0] = machine().device<dmadac_sound_device>("dac1");
+ m_dmadac[1] = machine().device<dmadac_sound_device>("dac2");
+ dmadac_enable(&m_dmadac[0], 1, 1);
+ dmadac_enable(&m_dmadac[1], 1, 1);
+ dmadac_set_frequency(&m_dmadac[0], 1, 44100);
+ dmadac_set_frequency(&m_dmadac[1], 1, 44100);
}
static const ide_config ide_intf =
@@ -3247,7 +3247,6 @@ static MACHINE_CONFIG_START( cobra, cobra_state )
MCFG_QUANTUM_TIME(attotime::from_hz(15005))
- MCFG_MACHINE_RESET(cobra)
MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0)
MCFG_PCI_BUS_LEGACY_DEVICE(0, NULL, mpc106_pci_r, mpc106_pci_w)
@@ -3255,7 +3254,6 @@ static MACHINE_CONFIG_START( cobra, cobra_state )
MCFG_IDE_CONTROLLER_ADD("ide", ide_intf, ide_devices, "hdd", NULL, true)
/* video hardware */
- MCFG_VIDEO_START(cobra)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
diff --git a/src/mame/drivers/coinmstr.c b/src/mame/drivers/coinmstr.c
index 71dd0d259e8..e07d5a7b4df 100644
--- a/src/mame/drivers/coinmstr.c
+++ b/src/mame/drivers/coinmstr.c
@@ -54,6 +54,7 @@ public:
DECLARE_READ8_MEMBER(ff_r);
DECLARE_DRIVER_INIT(coinmstr);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void video_start();
};
@@ -914,10 +915,9 @@ TILE_GET_INFO_MEMBER(coinmstr_state::get_bg_tile_info)
SET_TILE_INFO_MEMBER(0, tile, color, 0);
}
-static VIDEO_START( coinmstr )
+void coinmstr_state::video_start()
{
- coinmstr_state *state = machine.driver_data<coinmstr_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(coinmstr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 46, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(coinmstr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 46, 32);
}
static SCREEN_UPDATE_IND16( coinmstr )
@@ -1027,7 +1027,6 @@ static MACHINE_CONFIG_START( coinmstr, coinmstr_state )
MCFG_GFXDECODE(coinmstr)
MCFG_PALETTE_LENGTH(46*32*4)
- MCFG_VIDEO_START(coinmstr)
MCFG_MC6845_ADD("crtc", H46505, 14000000 / 16, h46505_intf)
diff --git a/src/mame/drivers/coinmvga.c b/src/mame/drivers/coinmvga.c
index 475a6f6477f..8185c9f09fb 100644
--- a/src/mame/drivers/coinmvga.c
+++ b/src/mame/drivers/coinmvga.c
@@ -234,6 +234,8 @@ public:
DECLARE_READ16_MEMBER(test_r);
DECLARE_DRIVER_INIT(colorama);
DECLARE_DRIVER_INIT(cmrltv75);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -242,7 +244,7 @@ public:
*************************/
-static VIDEO_START( coinmvga )
+void coinmvga_state::video_start()
{
}
@@ -273,7 +275,7 @@ static SCREEN_UPDATE_IND16( coinmvga )
}
-static PALETTE_INIT( coinmvga )
+void coinmvga_state::palette_init()
{
}
@@ -685,10 +687,8 @@ static MACHINE_CONFIG_START( coinmvga, coinmvga_state )
MCFG_GFXDECODE(coinmvga)
- MCFG_PALETTE_INIT(coinmvga)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(coinmvga)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/combatsc.c b/src/mame/drivers/combatsc.c
index 60ac03f5efb..36f3125abd5 100644
--- a/src/mame/drivers/combatsc.c
+++ b/src/mame/drivers/combatsc.c
@@ -673,63 +673,60 @@ static const ym2203_interface ym2203_bootleg_config =
DEVCB_NULL
};
-static MACHINE_START( combatsc )
+MACHINE_START_MEMBER(combatsc_state,combatsc)
{
- combatsc_state *state = machine.driver_data<combatsc_state>();
- UINT8 *MEM = state->memregion("maincpu")->base() + 0x38000;
+ UINT8 *MEM = memregion("maincpu")->base() + 0x38000;
- state->m_io_ram = MEM + 0x0000;
- state->m_page[0] = MEM + 0x4000;
- state->m_page[1] = MEM + 0x6000;
+ m_io_ram = MEM + 0x0000;
+ m_page[0] = MEM + 0x4000;
+ m_page[1] = MEM + 0x6000;
- state->m_interleave_timer = machine.scheduler().timer_alloc(FUNC_NULL);
+ m_interleave_timer = machine().scheduler().timer_alloc(FUNC_NULL);
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k007121_1 = machine.device("k007121_1");
- state->m_k007121_2 = machine.device("k007121_2");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k007121_1 = machine().device("k007121_1");
+ m_k007121_2 = machine().device("k007121_2");
- state->membank("bank1")->configure_entries(0, 10, state->memregion("maincpu")->base() + 0x10000, 0x4000);
+ membank("bank1")->configure_entries(0, 10, memregion("maincpu")->base() + 0x10000, 0x4000);
- state->save_item(NAME(state->m_priority));
- state->save_item(NAME(state->m_vreg));
- state->save_item(NAME(state->m_bank_select));
- state->save_item(NAME(state->m_video_circuit));
- state->save_item(NAME(state->m_boost));
- state->save_item(NAME(state->m_prot));
- state->save_item(NAME(state->m_pos));
- state->save_item(NAME(state->m_sign));
+ save_item(NAME(m_priority));
+ save_item(NAME(m_vreg));
+ save_item(NAME(m_bank_select));
+ save_item(NAME(m_video_circuit));
+ save_item(NAME(m_boost));
+ save_item(NAME(m_prot));
+ save_item(NAME(m_pos));
+ save_item(NAME(m_sign));
}
-static MACHINE_START( combatscb )
+MACHINE_START_MEMBER(combatsc_state,combatscb)
{
- combatsc_state *state = machine.driver_data<combatsc_state>();
- MACHINE_START_CALL( combatsc );
- state->membank("bl_abank")->configure_entries(0, 2, state->memregion("audiocpu")->base() + 0x8000, 0x4000);
+ MACHINE_START_CALL_MEMBER( combatsc );
+ membank("bl_abank")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x8000, 0x4000);
}
-static MACHINE_RESET( combatsc )
+void combatsc_state::machine_reset()
{
- combatsc_state *state = machine.driver_data<combatsc_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
int i;
- memset(state->m_io_ram, 0x00, 0x4000);
- memset(state->m_page[0], 0x00, 0x2000);
- memset(state->m_page[1], 0x00, 0x2000);
+ memset(m_io_ram, 0x00, 0x4000);
+ memset(m_page[0], 0x00, 0x2000);
+ memset(m_page[1], 0x00, 0x2000);
- state->m_vreg = -1;
- state->m_boost = 1;
- state->m_bank_select = -1;
- state->m_prot[0] = 0;
- state->m_prot[1] = 0;
+ m_vreg = -1;
+ m_boost = 1;
+ m_bank_select = -1;
+ m_prot[0] = 0;
+ m_prot[1] = 0;
for (i = 0; i < 4; i++)
{
- state->m_pos[i] = 0;
- state->m_sign[i] = 0;
+ m_pos[i] = 0;
+ m_sign[i] = 0;
}
- state->combatsc_bankselect_w(*space, 0, 0);
+ combatsc_bankselect_w(*space, 0, 0);
}
/* combat school (original) */
@@ -745,8 +742,7 @@ static MACHINE_CONFIG_START( combatsc, combatsc_state )
MCFG_QUANTUM_TIME(attotime::from_hz(1200))
- MCFG_MACHINE_START(combatsc)
- MCFG_MACHINE_RESET(combatsc)
+ MCFG_MACHINE_START_OVERRIDE(combatsc_state,combatsc)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -759,8 +755,8 @@ static MACHINE_CONFIG_START( combatsc, combatsc_state )
MCFG_GFXDECODE(combatsc)
MCFG_PALETTE_LENGTH(8*16*16)
- MCFG_PALETTE_INIT(combatsc)
- MCFG_VIDEO_START(combatsc)
+ MCFG_PALETTE_INIT_OVERRIDE(combatsc_state,combatsc)
+ MCFG_VIDEO_START_OVERRIDE(combatsc_state,combatsc)
MCFG_K007121_ADD("k007121_1")
MCFG_K007121_ADD("k007121_2")
@@ -797,8 +793,7 @@ static MACHINE_CONFIG_START( combatscb, combatsc_state )
MCFG_QUANTUM_TIME(attotime::from_hz(1200))
- MCFG_MACHINE_START(combatscb)
- MCFG_MACHINE_RESET(combatsc)
+ MCFG_MACHINE_START_OVERRIDE(combatsc_state,combatscb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -811,8 +806,8 @@ static MACHINE_CONFIG_START( combatscb, combatsc_state )
MCFG_GFXDECODE(combatscb)
MCFG_PALETTE_LENGTH(8*16*16)
- MCFG_PALETTE_INIT(combatscb)
- MCFG_VIDEO_START(combatscb)
+ MCFG_PALETTE_INIT_OVERRIDE(combatsc_state,combatscb)
+ MCFG_VIDEO_START_OVERRIDE(combatsc_state,combatscb)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/commando.c b/src/mame/drivers/commando.c
index d81d24478e0..a4beedbfdf3 100644
--- a/src/mame/drivers/commando.c
+++ b/src/mame/drivers/commando.c
@@ -223,24 +223,22 @@ static INTERRUPT_GEN( commando_interrupt )
/* Machine Driver */
-static MACHINE_START( commando )
+void commando_state::machine_start()
{
- commando_state *state = machine.driver_data<commando_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_scroll_x));
- state->save_item(NAME(state->m_scroll_y));
+ save_item(NAME(m_scroll_x));
+ save_item(NAME(m_scroll_y));
}
-static MACHINE_RESET( commando )
+void commando_state::machine_reset()
{
- commando_state *state = machine.driver_data<commando_state>();
- state->m_scroll_x[0] = 0;
- state->m_scroll_x[1] = 0;
- state->m_scroll_y[0] = 0;
- state->m_scroll_y[1] = 0;
+ m_scroll_x[0] = 0;
+ m_scroll_x[1] = 0;
+ m_scroll_y[0] = 0;
+ m_scroll_y[1] = 0;
}
@@ -255,8 +253,6 @@ static MACHINE_CONFIG_START( commando, commando_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 4*60)
- MCFG_MACHINE_START(commando)
- MCFG_MACHINE_RESET(commando)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -271,7 +267,6 @@ static MACHINE_CONFIG_START( commando, commando_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(commando)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
diff --git a/src/mame/drivers/compgolf.c b/src/mame/drivers/compgolf.c
index afd08eb5358..098892bbfc4 100644
--- a/src/mame/drivers/compgolf.c
+++ b/src/mame/drivers/compgolf.c
@@ -223,26 +223,24 @@ static const ym2203_interface ym2203_config =
*
*************************************/
-static MACHINE_START( compgolf )
+void compgolf_state::machine_start()
{
- compgolf_state *state = machine.driver_data<compgolf_state>();
- state->save_item(NAME(state->m_bank));
- state->save_item(NAME(state->m_scrollx_lo));
- state->save_item(NAME(state->m_scrollx_hi));
- state->save_item(NAME(state->m_scrolly_lo));
- state->save_item(NAME(state->m_scrolly_hi));
+ save_item(NAME(m_bank));
+ save_item(NAME(m_scrollx_lo));
+ save_item(NAME(m_scrollx_hi));
+ save_item(NAME(m_scrolly_lo));
+ save_item(NAME(m_scrolly_hi));
}
-static MACHINE_RESET( compgolf )
+void compgolf_state::machine_reset()
{
- compgolf_state *state = machine.driver_data<compgolf_state>();
- state->m_bank = -1;
- state->m_scrollx_lo = 0;
- state->m_scrollx_hi = 0;
- state->m_scrolly_lo = 0;
- state->m_scrolly_hi = 0;
+ m_bank = -1;
+ m_scrollx_lo = 0;
+ m_scrollx_hi = 0;
+ m_scrolly_lo = 0;
+ m_scrolly_hi = 0;
}
static MACHINE_CONFIG_START( compgolf, compgolf_state )
@@ -252,8 +250,6 @@ static MACHINE_CONFIG_START( compgolf, compgolf_state )
MCFG_CPU_PROGRAM_MAP(compgolf_map)
MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse)
- MCFG_MACHINE_START(compgolf)
- MCFG_MACHINE_RESET(compgolf)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -264,10 +260,8 @@ static MACHINE_CONFIG_START( compgolf, compgolf_state )
MCFG_SCREEN_UPDATE_STATIC(compgolf)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT(compgolf)
MCFG_GFXDECODE(compgolf)
- MCFG_VIDEO_START(compgolf)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/contra.c b/src/mame/drivers/contra.c
index 37646914279..e67a34336c2 100644
--- a/src/mame/drivers/contra.c
+++ b/src/mame/drivers/contra.c
@@ -175,16 +175,15 @@ GFXDECODE_END
-static MACHINE_START( contra )
+void contra_state::machine_start()
{
- contra_state *state = machine.driver_data<contra_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x2000);
+ membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x2000);
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k007121_1 = machine.device("k007121_1");
- state->m_k007121_2 = machine.device("k007121_2");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k007121_1 = machine().device("k007121_1");
+ m_k007121_2 = machine().device("k007121_2");
}
static MACHINE_CONFIG_START( contra, contra_state )
@@ -199,7 +198,6 @@ static MACHINE_CONFIG_START( contra, contra_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* enough for the sound CPU to read all commands */
- MCFG_MACHINE_START(contra)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -212,8 +210,6 @@ static MACHINE_CONFIG_START( contra, contra_state )
MCFG_GFXDECODE(contra)
MCFG_PALETTE_LENGTH(2*8*16*16)
- MCFG_PALETTE_INIT(contra)
- MCFG_VIDEO_START(contra)
MCFG_K007121_ADD("k007121_1")
MCFG_K007121_ADD("k007121_2")
diff --git a/src/mame/drivers/coolpool.c b/src/mame/drivers/coolpool.c
index 3afdff3e43d..780d7b133a4 100644
--- a/src/mame/drivers/coolpool.c
+++ b/src/mame/drivers/coolpool.c
@@ -132,21 +132,19 @@ static void coolpool_from_shiftreg(address_space *space, UINT32 address, UINT16
*
*************************************/
-static MACHINE_RESET( amerdart )
+MACHINE_RESET_MEMBER(coolpool_state,amerdart)
{
- coolpool_state *state = machine.driver_data<coolpool_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_dsp = machine.device("dsp");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_dsp = machine().device("dsp");
- state->m_nvram_write_enable = 0;
+ m_nvram_write_enable = 0;
}
-static MACHINE_RESET( coolpool )
+MACHINE_RESET_MEMBER(coolpool_state,coolpool)
{
- coolpool_state *state = machine.driver_data<coolpool_state>();
- state->m_nvram_write_enable = 0;
+ m_nvram_write_enable = 0;
}
@@ -863,7 +861,7 @@ static MACHINE_CONFIG_START( amerdart, coolpool_state )
MCFG_CPU_IO_MAP(amerdart_dsp_io_map)
MCFG_TIMER_ADD_SCANLINE("audioint", amerdart_audio_int_gen, "screen", 0, 1)
- MCFG_MACHINE_RESET(amerdart)
+ MCFG_MACHINE_RESET_OVERRIDE(coolpool_state,amerdart)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_TIMER_ADD("nvram_timer", nvram_write_timeout)
@@ -892,7 +890,7 @@ static MACHINE_CONFIG_START( coolpool, coolpool_state )
MCFG_CPU_PROGRAM_MAP(coolpool_dsp_pgm_map)
MCFG_CPU_IO_MAP(coolpool_dsp_io_map)
- MCFG_MACHINE_RESET(coolpool)
+ MCFG_MACHINE_RESET_OVERRIDE(coolpool_state,coolpool)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_TIMER_ADD("nvram_timer", nvram_write_timeout)
diff --git a/src/mame/drivers/coolridr.c b/src/mame/drivers/coolridr.c
index 62c85371401..aec1ebb59cf 100644
--- a/src/mame/drivers/coolridr.c
+++ b/src/mame/drivers/coolridr.c
@@ -317,17 +317,18 @@ public:
DECLARE_READ32_MEMBER(coolridr_hack1_r);
DECLARE_READ32_MEMBER(coolridr_hack2_r);
DECLARE_DRIVER_INIT(coolridr);
+ virtual void machine_reset();
+ virtual void video_start();
};
/* video */
-static VIDEO_START(coolridr)
+void coolridr_state::video_start()
{
- coolridr_state *state = machine.driver_data<coolridr_state>();
- machine.primary_screen->register_screen_bitmap(state->m_temp_bitmap_sprites);
- state->m_test_offs = 0x2000;
+ machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites);
+ m_test_offs = 0x2000;
}
static SCREEN_UPDATE_RGB32(coolridr)
@@ -1155,10 +1156,10 @@ static TIMER_DEVICE_CALLBACK( system_h1_sub )
}
}
-static MACHINE_RESET ( coolridr )
+void coolridr_state::machine_reset()
{
-// machine.device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
- machine.device("soundcpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+// machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+ machine().device("soundcpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
}
static MACHINE_CONFIG_START( coolridr, coolridr_state )
@@ -1183,9 +1184,7 @@ static MACHINE_CONFIG_START( coolridr, coolridr_state )
MCFG_SCREEN_UPDATE_STATIC(coolridr)
MCFG_PALETTE_LENGTH(0x10000)
- MCFG_MACHINE_RESET(coolridr)
- MCFG_VIDEO_START(coolridr)
MACHINE_CONFIG_END
ROM_START( coolridr )
diff --git a/src/mame/drivers/cop01.c b/src/mame/drivers/cop01.c
index 8b7902353d8..f070434e0d4 100644
--- a/src/mame/drivers/cop01.c
+++ b/src/mame/drivers/cop01.c
@@ -425,28 +425,26 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( cop01 )
+void cop01_state::machine_start()
{
- cop01_state *state = machine.driver_data<cop01_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_pulse));
- state->save_item(NAME(state->m_timer));
- state->save_item(NAME(state->m_vreg));
+ save_item(NAME(m_pulse));
+ save_item(NAME(m_timer));
+ save_item(NAME(m_vreg));
}
-static MACHINE_RESET( cop01 )
+void cop01_state::machine_reset()
{
- cop01_state *state = machine.driver_data<cop01_state>();
-
- state->m_pulse = 0;
- state->m_timer = 0;
- state->m_vreg[0] = 0;
- state->m_vreg[1] = 0;
- state->m_vreg[2] = 0;
- state->m_vreg[3] = 0;
+
+ m_pulse = 0;
+ m_timer = 0;
+ m_vreg[0] = 0;
+ m_vreg[1] = 0;
+ m_vreg[2] = 0;
+ m_vreg[3] = 0;
}
@@ -462,8 +460,6 @@ static MACHINE_CONFIG_START( cop01, cop01_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(audio_io_map)
- MCFG_MACHINE_START(cop01)
- MCFG_MACHINE_RESET(cop01)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -476,8 +472,6 @@ static MACHINE_CONFIG_START( cop01, cop01_state )
MCFG_GFXDECODE(cop01)
MCFG_PALETTE_LENGTH(16+8*16+16*16)
- MCFG_PALETTE_INIT(cop01)
- MCFG_VIDEO_START(cop01)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -504,8 +498,6 @@ static MACHINE_CONFIG_START( mightguy, cop01_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(mightguy_audio_io_map)
- MCFG_MACHINE_START(cop01)
- MCFG_MACHINE_RESET(cop01)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -518,8 +510,6 @@ static MACHINE_CONFIG_START( mightguy, cop01_state )
MCFG_GFXDECODE(cop01)
MCFG_PALETTE_LENGTH(16+8*16+16*16)
- MCFG_PALETTE_INIT(cop01)
- MCFG_VIDEO_START(cop01)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/copsnrob.c b/src/mame/drivers/copsnrob.c
index 1b3533db3f0..e487ee47451 100644
--- a/src/mame/drivers/copsnrob.c
+++ b/src/mame/drivers/copsnrob.c
@@ -66,10 +66,10 @@ Added Dip locations according to manual.
*
*************************************/
-static PALETTE_INIT( copsnrob )
+void copsnrob_state::palette_init()
{
- palette_set_color(machine,0,MAKE_RGB(0x00,0x00,0x00)); /* black */
- palette_set_color(machine,1,MAKE_RGB(0xff,0xff,0xff)); /* white */
+ palette_set_color(machine(),0,MAKE_RGB(0x00,0x00,0x00)); /* black */
+ palette_set_color(machine(),1,MAKE_RGB(0xff,0xff,0xff)); /* white */
}
@@ -248,20 +248,18 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( copsnrob )
+void copsnrob_state::machine_start()
{
- copsnrob_state *state = machine.driver_data<copsnrob_state>();
- state->save_item(NAME(state->m_ic_h3_data));
- state->save_item(NAME(state->m_misc));
+ save_item(NAME(m_ic_h3_data));
+ save_item(NAME(m_misc));
}
-static MACHINE_RESET( copsnrob )
+void copsnrob_state::machine_reset()
{
- copsnrob_state *state = machine.driver_data<copsnrob_state>();
- state->m_ic_h3_data = 0;
- state->m_misc = 0;
+ m_ic_h3_data = 0;
+ m_misc = 0;
}
@@ -271,8 +269,6 @@ static MACHINE_CONFIG_START( copsnrob, copsnrob_state )
MCFG_CPU_ADD("maincpu", M6502,14318180/16) /* 894886.25 kHz */
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(copsnrob)
- MCFG_MACHINE_RESET(copsnrob)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -285,7 +281,6 @@ static MACHINE_CONFIG_START( copsnrob, copsnrob_state )
MCFG_GFXDECODE(copsnrob)
MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT(copsnrob)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/corona.c b/src/mame/drivers/corona.c
index 73cbf075859..a9244202bcb 100644
--- a/src/mame/drivers/corona.c
+++ b/src/mame/drivers/corona.c
@@ -346,6 +346,8 @@ public:
void blitter_execute(int x, int y, int color, int width, int flag);
DECLARE_WRITE8_MEMBER(ay_port_a_out);
DECLARE_WRITE8_MEMBER(ay_port_b_out);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -353,9 +355,9 @@ public:
* Video Hardware *
*********************************************/
-static PALETTE_INIT( winner )
+void corona_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int bit6, bit7, bit0, bit1, r, g, b;
int i;
@@ -376,7 +378,7 @@ static PALETTE_INIT( winner )
bit1 = (color_prom[0] >> 5) & 0x01;
r = 0x0e * bit6 + 0x1f * bit7 + 0x43 * bit0 + 0x8f * bit1;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
color_prom++;
}
}
@@ -452,10 +454,9 @@ WRITE8_MEMBER(corona_state::blitter_trig_wdht_w)
blitter_execute(m_blitter_x_reg, 0x100 - m_blitter_y_reg, m_blitter_aux_reg & 0xf, data, m_blitter_aux_reg & 0xf0);
}
-static VIDEO_START(winner)
+void corona_state::video_start()
{
- corona_state *state = machine.driver_data<corona_state>();
- state->m_videobuf = auto_alloc_array_clear(machine, UINT8, VIDEOBUF_SIZE);
+ m_videobuf = auto_alloc_array_clear(machine(), UINT8, VIDEOBUF_SIZE);
}
static SCREEN_UPDATE_IND16(winner)
@@ -1366,7 +1367,6 @@ static MACHINE_CONFIG_START( winner81, corona_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_PALETTE_INIT(winner)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1378,7 +1378,6 @@ static MACHINE_CONFIG_START( winner81, corona_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(winner)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8912, AY_CLK1) /* measured */
@@ -1399,7 +1398,6 @@ static MACHINE_CONFIG_START( winner82, corona_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_PALETTE_INIT(winner)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1411,7 +1409,6 @@ static MACHINE_CONFIG_START( winner82, corona_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(winner)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLK2) /* measured */
@@ -1432,7 +1429,6 @@ static MACHINE_CONFIG_START( re800, corona_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_PALETTE_INIT(winner)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1444,7 +1440,6 @@ static MACHINE_CONFIG_START( re800, corona_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(winner)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8912, AY_CLK2)
@@ -1464,7 +1459,6 @@ static MACHINE_CONFIG_START( rcirulet, corona_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_PALETTE_INIT(winner)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1476,7 +1470,6 @@ static MACHINE_CONFIG_START( rcirulet, corona_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(winner)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8912, AY_CLK2)
@@ -1497,7 +1490,6 @@ static MACHINE_CONFIG_START( luckyrlt, corona_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_PALETTE_INIT(winner)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1509,7 +1501,6 @@ static MACHINE_CONFIG_START( luckyrlt, corona_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(winner)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8912, AY_CLK1)
diff --git a/src/mame/drivers/cosmic.c b/src/mame/drivers/cosmic.c
index 765a85a9632..1a53b11d941 100644
--- a/src/mame/drivers/cosmic.c
+++ b/src/mame/drivers/cosmic.c
@@ -958,32 +958,30 @@ static const samples_interface cosmicg_samples_interface =
};
-static MACHINE_START( cosmic )
+MACHINE_START_MEMBER(cosmic_state,cosmic)
{
- cosmic_state *state = machine.driver_data<cosmic_state>();
- state->m_samples = machine.device<samples_device>("samples");
- state->m_dac = machine.device<dac_device>("dac");
+ m_samples = machine().device<samples_device>("samples");
+ m_dac = machine().device<dac_device>("dac");
- state->save_item(NAME(state->m_sound_enabled));
- state->save_item(NAME(state->m_march_select));
- state->save_item(NAME(state->m_gun_die_select));
- state->save_item(NAME(state->m_dive_bomb_b_select));
- state->save_item(NAME(state->m_pixel_clock));
+ save_item(NAME(m_sound_enabled));
+ save_item(NAME(m_march_select));
+ save_item(NAME(m_gun_die_select));
+ save_item(NAME(m_dive_bomb_b_select));
+ save_item(NAME(m_pixel_clock));
- state->save_item(NAME(state->m_background_enable));
- state->save_item(NAME(state->m_color_registers));
+ save_item(NAME(m_background_enable));
+ save_item(NAME(m_color_registers));
}
-static MACHINE_RESET( cosmic )
+MACHINE_RESET_MEMBER(cosmic_state,cosmic)
{
- cosmic_state *state = machine.driver_data<cosmic_state>();
- state->m_pixel_clock = 0;
- state->m_background_enable = 0;
- state->m_color_registers[0] = 0;
- state->m_color_registers[1] = 0;
- state->m_color_registers[2] = 0;
+ m_pixel_clock = 0;
+ m_background_enable = 0;
+ m_color_registers[0] = 0;
+ m_color_registers[1] = 0;
+ m_color_registers[2] = 0;
}
@@ -992,8 +990,8 @@ static MACHINE_CONFIG_START( cosmic, cosmic_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80,Z80_MASTER_CLOCK/6) /* 1.8026 MHz*/
- MCFG_MACHINE_START(cosmic)
- MCFG_MACHINE_RESET(cosmic)
+ MCFG_MACHINE_START_OVERRIDE(cosmic_state,cosmic)
+ MCFG_MACHINE_RESET_OVERRIDE(cosmic_state,cosmic)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1025,7 +1023,7 @@ static MACHINE_CONFIG_DERIVED( panic, cosmic )
MCFG_GFXDECODE(panic)
MCFG_PALETTE_LENGTH(16+8*4)
- MCFG_PALETTE_INIT(panic)
+ MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,panic)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(panic)
@@ -1050,7 +1048,7 @@ static MACHINE_CONFIG_DERIVED( cosmica, cosmic )
MCFG_GFXDECODE(cosmica)
MCFG_PALETTE_LENGTH(8+16*4)
- MCFG_PALETTE_INIT(cosmica)
+ MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,cosmica)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(cosmica)
@@ -1077,8 +1075,8 @@ static MACHINE_CONFIG_START( cosmicg, cosmic_state )
MCFG_CPU_PROGRAM_MAP(cosmicg_map)
MCFG_CPU_IO_MAP(cosmicg_io_map)
- MCFG_MACHINE_START(cosmic)
- MCFG_MACHINE_RESET(cosmic)
+ MCFG_MACHINE_START_OVERRIDE(cosmic_state,cosmic)
+ MCFG_MACHINE_RESET_OVERRIDE(cosmic_state,cosmic)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1089,7 +1087,7 @@ static MACHINE_CONFIG_START( cosmicg, cosmic_state )
MCFG_PALETTE_LENGTH(16)
- MCFG_PALETTE_INIT(cosmicg)
+ MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,cosmicg)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1112,7 +1110,7 @@ static MACHINE_CONFIG_DERIVED( magspot, cosmic )
MCFG_GFXDECODE(panic)
MCFG_PALETTE_LENGTH(16+8*4)
- MCFG_PALETTE_INIT(magspot)
+ MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,magspot)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(magspot)
@@ -1144,7 +1142,7 @@ static MACHINE_CONFIG_DERIVED( nomnlnd, cosmic )
MCFG_GFXDECODE(panic)
MCFG_PALETTE_LENGTH(16+8*4)
- MCFG_PALETTE_INIT(nomnlnd)
+ MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,nomnlnd)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(nomnlnd)
diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c
index 54d316e7434..a247ee8280c 100644
--- a/src/mame/drivers/cps1.c
+++ b/src/mame/drivers/cps1.c
@@ -3030,24 +3030,23 @@ static const ym2151_interface ym2151_config =
*
********************************************************************/
-static MACHINE_START( common )
+MACHINE_START_MEMBER(cps_state,common)
{
- cps_state *state = machine.driver_data<cps_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
}
-static MACHINE_START( cps1 )
+MACHINE_START_MEMBER(cps_state,cps1)
{
- MACHINE_START_CALL(common);
- machine.root_device().membank("bank1")->configure_entries(0, 2, machine.root_device().memregion("audiocpu")->base() + 0x10000, 0x4000);
+ MACHINE_START_CALL_MEMBER(common);
+ machine().root_device().membank("bank1")->configure_entries(0, 2, machine().root_device().memregion("audiocpu")->base() + 0x10000, 0x4000);
}
-static MACHINE_START( qsound )
+MACHINE_START_MEMBER(cps_state,qsound)
{
- MACHINE_START_CALL(common);
- machine.root_device().membank("bank1")->configure_entries(0, 6, machine.root_device().memregion("audiocpu")->base() + 0x10000, 0x4000);
+ MACHINE_START_CALL_MEMBER(common);
+ machine().root_device().membank("bank1")->configure_entries(0, 6, machine().root_device().memregion("audiocpu")->base() + 0x10000, 0x4000);
}
static MACHINE_CONFIG_START( cps1_10MHz, cps_state )
@@ -3060,7 +3059,7 @@ static MACHINE_CONFIG_START( cps1_10MHz, cps_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(sub_map)
- MCFG_MACHINE_START(cps1)
+ MCFG_MACHINE_START_OVERRIDE(cps_state,cps1)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3074,7 +3073,7 @@ static MACHINE_CONFIG_START( cps1_10MHz, cps_state )
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(0xc00)
- MCFG_VIDEO_START(cps1)
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3116,7 +3115,7 @@ static MACHINE_CONFIG_DERIVED( qsound, cps1_12MHz )
MCFG_CPU_PROGRAM_MAP(qsound_sub_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 250) /* ?? */
- MCFG_MACHINE_START(qsound)
+ MCFG_MACHINE_START_OVERRIDE(cps_state,qsound)
MCFG_EEPROM_ADD("eeprom", qsound_eeprom_interface)
@@ -3144,7 +3143,7 @@ static MACHINE_CONFIG_START( cpspicb, cps_state )
MCFG_CPU_ADD("audiocpu", PIC16C57, 12000000)
MCFG_DEVICE_DISABLE() /* no valid dumps .. */
- MCFG_MACHINE_START(common)
+ MCFG_MACHINE_START_OVERRIDE(cps_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3158,7 +3157,7 @@ static MACHINE_CONFIG_START( cpspicb, cps_state )
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(0xc00)
- MCFG_VIDEO_START(cps1)
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3218,7 +3217,7 @@ static MACHINE_CONFIG_START( sf2mdt, cps_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545)
MCFG_CPU_PROGRAM_MAP(sf2mdt_z80map)
- MCFG_MACHINE_START(common)
+ MCFG_MACHINE_START_OVERRIDE(cps_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3232,7 +3231,7 @@ static MACHINE_CONFIG_START( sf2mdt, cps_state )
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(0xc00)
- MCFG_VIDEO_START(cps1)
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3302,7 +3301,7 @@ static MACHINE_CONFIG_START( knightsb, cps_state )
MCFG_CPU_ADD("audiocpu", Z80, 29821000 / 8)
MCFG_CPU_PROGRAM_MAP(sf2mdt_z80map)
- MCFG_MACHINE_START(common)
+ MCFG_MACHINE_START_OVERRIDE(cps_state,common)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3316,7 +3315,7 @@ static MACHINE_CONFIG_START( knightsb, cps_state )
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(0xc00)
- MCFG_VIDEO_START(cps1)
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c
index 77280d88a9b..dd0e6642e23 100644
--- a/src/mame/drivers/cps2.c
+++ b/src/mame/drivers/cps2.c
@@ -1210,15 +1210,14 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( cps2 )
+MACHINE_START_MEMBER(cps_state,cps2)
{
- cps_state *state = machine.driver_data<cps_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- if (state->m_audiocpu != NULL) // gigaman2 has no audiocpu
- state->membank("bank1")->configure_entries(0, (QSOUND_SIZE - 0x10000) / 0x4000, state->memregion("audiocpu")->base() + 0x10000, 0x4000);
+ if (m_audiocpu != NULL) // gigaman2 has no audiocpu
+ membank("bank1")->configure_entries(0, (QSOUND_SIZE - 0x10000) / 0x4000, memregion("audiocpu")->base() + 0x10000, 0x4000);
}
@@ -1233,7 +1232,7 @@ static MACHINE_CONFIG_START( cps2, cps_state )
MCFG_CPU_PROGRAM_MAP(qsound_sub_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 251) /* 251 is good (see 'mercy mercy mercy'section of sgemf attract mode for accurate sound sync */
- MCFG_MACHINE_START(cps2)
+ MCFG_MACHINE_START_OVERRIDE(cps_state,cps2)
MCFG_EEPROM_ADD("eeprom", cps2_eeprom_interface)
@@ -1258,7 +1257,7 @@ static MACHINE_CONFIG_START( cps2, cps_state )
MCFG_GFXDECODE(cps2)
MCFG_PALETTE_LENGTH(0xc00)
- MCFG_VIDEO_START(cps2)
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c
index b247d48fbd0..8c46ba35284 100644
--- a/src/mame/drivers/cps3.c
+++ b/src/mame/drivers/cps3.c
@@ -815,40 +815,39 @@ static void cps3_set_mame_colours(running_machine &machine, int colournum, UINT1
}
-static VIDEO_START(cps3)
+void cps3_state::video_start()
{
- cps3_state *state = machine.driver_data<cps3_state>();
- state->m_ss_ram = auto_alloc_array(machine, UINT32, 0x10000/4);
- memset(state->m_ss_ram, 0x00, 0x10000);
- state_save_register_global_pointer(machine, state->m_ss_ram, 0x10000/4);
+ m_ss_ram = auto_alloc_array(machine(), UINT32, 0x10000/4);
+ memset(m_ss_ram, 0x00, 0x10000);
+ state_save_register_global_pointer(machine(), m_ss_ram, 0x10000/4);
- state->m_char_ram = auto_alloc_array(machine, UINT32, 0x800000/4);
- memset(state->m_char_ram, 0x00, 0x800000);
- state_save_register_global_pointer(machine, state->m_char_ram, 0x800000 /4);
+ m_char_ram = auto_alloc_array(machine(), UINT32, 0x800000/4);
+ memset(m_char_ram, 0x00, 0x800000);
+ state_save_register_global_pointer(machine(), m_char_ram, 0x800000 /4);
/* create the char set (gfx will then be updated dynamically from RAM) */
- machine.gfx[0] = auto_alloc(machine, gfx_element(machine, cps3_tiles8x8_layout, (UINT8 *)state->m_ss_ram, machine.total_colors() / 16, 0));
+ machine().gfx[0] = auto_alloc(machine(), gfx_element(machine(), cps3_tiles8x8_layout, (UINT8 *)m_ss_ram, machine().total_colors() / 16, 0));
//decode_ssram();
/* create the char set (gfx will then be updated dynamically from RAM) */
- machine.gfx[1] = auto_alloc(machine, gfx_element(machine, cps3_tiles16x16_layout, (UINT8 *)state->m_char_ram, machine.total_colors() / 64, 0));
- machine.gfx[1]->set_granularity(64);
+ machine().gfx[1] = auto_alloc(machine(), gfx_element(machine(), cps3_tiles16x16_layout, (UINT8 *)m_char_ram, machine().total_colors() / 64, 0));
+ machine().gfx[1]->set_granularity(64);
//decode_charram();
- state->m_mame_colours = auto_alloc_array(machine, UINT32, 0x80000/4);
- memset(state->m_mame_colours, 0x00, 0x80000);
+ m_mame_colours = auto_alloc_array(machine(), UINT32, 0x80000/4);
+ memset(m_mame_colours, 0x00, 0x80000);
- state->m_screenwidth = 384;
+ m_screenwidth = 384;
// the renderbuffer can be twice the size of the screen, this allows us to handle framebuffer zoom values
// between 0x00 and 0x80 (0x40 is normal, 0x80 would be 'view twice as much', 0x20 is 'view half as much')
- state->m_renderbuffer_bitmap.allocate(512*2,224*2);
+ m_renderbuffer_bitmap.allocate(512*2,224*2);
- state->m_renderbuffer_clip.set(0, state->m_screenwidth-1, 0, 224-1);
+ m_renderbuffer_clip.set(0, m_screenwidth-1, 0, 224-1);
- state->m_renderbuffer_bitmap.fill(0x3f, state->m_renderbuffer_clip);
+ m_renderbuffer_bitmap.fill(0x3f, m_renderbuffer_clip);
}
@@ -2267,13 +2266,12 @@ static const struct WD33C93interface wd33c93_intf =
NULL /* command completion IRQ */
};
-static MACHINE_RESET( cps3 )
+void cps3_state::machine_reset()
{
- cps3_state *state = machine.driver_data<cps3_state>();
- state->m_current_table_address = -1;
+ m_current_table_address = -1;
// copy data from flashroms back into user regions + decrypt into regions we execute/draw from.
- copy_from_nvram(machine);
+ copy_from_nvram(machine());
}
@@ -2520,11 +2518,9 @@ static MACHINE_CONFIG_START( cps3, cps3_state )
42.9545MHz / 15.4445kHz = 2781.217 / 6 = 463.536 -> unlikely
*/
- MCFG_MACHINE_RESET(cps3)
MCFG_NVRAM_ADD_0FILL("eeprom")
MCFG_PALETTE_LENGTH(0x10000) // actually 0x20000 ...
- MCFG_VIDEO_START(cps3)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/crbaloon.c b/src/mame/drivers/crbaloon.c
index 8006e75bf2f..5a1a1020f31 100644
--- a/src/mame/drivers/crbaloon.c
+++ b/src/mame/drivers/crbaloon.c
@@ -337,14 +337,13 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_RESET( crballoon )
+void crbaloon_state::machine_reset()
{
- crbaloon_state *state = machine.driver_data<crbaloon_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_IO);
- device_t *discrete = machine.device("discrete");
+ address_space *space = machine().device("maincpu")->memory().space(AS_IO);
+ device_t *discrete = machine().device("discrete");
pc3092_reset();
- state->port_sound_w(*space, 0, 0);
+ port_sound_w(*space, 0, 0);
crbaloon_audio_set_music_freq(discrete, 0, 0);
}
@@ -373,15 +372,12 @@ static MACHINE_CONFIG_START( crbaloon, crbaloon_state )
MCFG_CPU_IO_MAP(main_io_map)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_RESET(crballoon)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(crbaloon)
MCFG_GFXDECODE(crbaloon)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(crbaloon)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
diff --git a/src/mame/drivers/crgolf.c b/src/mame/drivers/crgolf.c
index 804ec92c40d..d325e738c31 100644
--- a/src/mame/drivers/crgolf.c
+++ b/src/mame/drivers/crgolf.c
@@ -71,35 +71,33 @@ WRITE8_MEMBER(crgolf_state::rom_bank_select_w)
}
-static MACHINE_START( crgolf )
+void crgolf_state::machine_start()
{
- crgolf_state *state = machine.driver_data<crgolf_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
/* configure the banking */
- state->membank("bank1")->configure_entries(0, 16, state->memregion("maincpu")->base() + 0x10000, 0x2000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x2000);
+ membank("bank1")->set_entry(0);
/* register for save states */
- state->save_item(NAME(state->m_port_select));
- state->save_item(NAME(state->m_main_to_sound_data));
- state->save_item(NAME(state->m_sound_to_main_data));
- state->save_item(NAME(state->m_sample_offset));
- state->save_item(NAME(state->m_sample_count));
+ save_item(NAME(m_port_select));
+ save_item(NAME(m_main_to_sound_data));
+ save_item(NAME(m_sound_to_main_data));
+ save_item(NAME(m_sample_offset));
+ save_item(NAME(m_sample_count));
}
-static MACHINE_RESET( crgolf )
+void crgolf_state::machine_reset()
{
- crgolf_state *state = machine.driver_data<crgolf_state>();
- state->m_port_select = 0;
- state->m_main_to_sound_data = 0;
- state->m_sound_to_main_data = 0;
- state->m_sample_offset = 0;
- state->m_sample_count = 0;
+ m_port_select = 0;
+ m_main_to_sound_data = 0;
+ m_sound_to_main_data = 0;
+ m_sample_offset = 0;
+ m_sample_count = 0;
}
@@ -412,8 +410,6 @@ static MACHINE_CONFIG_START( crgolf, crgolf_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(crgolf)
- MCFG_MACHINE_RESET(crgolf)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
/* video hardware */
diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c
index 0e7d3806f56..e5f5c71ee57 100644
--- a/src/mame/drivers/crimfght.c
+++ b/src/mame/drivers/crimfght.c
@@ -258,24 +258,23 @@ static const k051960_interface crimfght_k051960_intf =
crimfght_sprite_callback
};
-static MACHINE_START( crimfght )
+void crimfght_state::machine_start()
{
- crimfght_state *state = machine.driver_data<crimfght_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank2")->configure_entries(0, 12, &ROM[0x10000], 0x2000);
- state->membank("bank2")->set_entry(0);
+ membank("bank2")->configure_entries(0, 12, &ROM[0x10000], 0x2000);
+ membank("bank2")->set_entry(0);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k052109 = machine.device("k052109");
- state->m_k051960 = machine.device("k051960");
- state->m_k007232 = machine.device("k007232");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k052109 = machine().device("k052109");
+ m_k051960 = machine().device("k051960");
+ m_k007232 = machine().device("k007232");
}
-static MACHINE_RESET( crimfght )
+void crimfght_state::machine_reset()
{
- konami_configure_set_lines(machine.device("maincpu"), crimfght_banking);
+ konami_configure_set_lines(machine().device("maincpu"), crimfght_banking);
}
static MACHINE_CONFIG_START( crimfght, crimfght_state )
@@ -288,8 +287,6 @@ static MACHINE_CONFIG_START( crimfght, crimfght_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(crimfght_sound_map)
- MCFG_MACHINE_START(crimfght)
- MCFG_MACHINE_RESET(crimfght)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -303,7 +300,6 @@ static MACHINE_CONFIG_START( crimfght, crimfght_state )
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(crimfght)
MCFG_K052109_ADD("k052109", crimfght_k052109_intf)
MCFG_K051960_ADD("k051960", crimfght_k051960_intf)
diff --git a/src/mame/drivers/crospang.c b/src/mame/drivers/crospang.c
index a7c381d6325..9468e8d49e3 100644
--- a/src/mame/drivers/crospang.c
+++ b/src/mame/drivers/crospang.c
@@ -327,21 +327,19 @@ static const ym3812_interface ym3812_config =
};
-static MACHINE_START( crospang )
+void crospang_state::machine_start()
{
- crospang_state *state = machine.driver_data<crospang_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_bestri_tilebank));
+ save_item(NAME(m_bestri_tilebank));
}
-static MACHINE_RESET( crospang )
+void crospang_state::machine_reset()
{
- crospang_state *state = machine.driver_data<crospang_state>();
- state->m_bestri_tilebank = 0;
+ m_bestri_tilebank = 0;
}
@@ -357,8 +355,6 @@ static MACHINE_CONFIG_START( crospang, crospang_state )
MCFG_CPU_PROGRAM_MAP(crospang_sound_map)
MCFG_CPU_IO_MAP(crospang_sound_io_map)
- MCFG_MACHINE_START(crospang)
- MCFG_MACHINE_RESET(crospang)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -371,7 +367,6 @@ static MACHINE_CONFIG_START( crospang, crospang_state )
MCFG_PALETTE_LENGTH(0x300)
MCFG_GFXDECODE(crospang)
- MCFG_VIDEO_START(crospang)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 0);
diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c
index 33f1974123e..5719f009a89 100644
--- a/src/mame/drivers/crshrace.c
+++ b/src/mame/drivers/crshrace.c
@@ -438,26 +438,24 @@ static const k053936_interface crshrace_k053936_intf =
};
-static MACHINE_START( crshrace )
+void crshrace_state::machine_start()
{
- crshrace_state *state = machine.driver_data<crshrace_state>();
- state->membank("bank1")->configure_entries(0, 4, state->memregion("audiocpu")->base() + 0x10000, 0x8000);
+ membank("bank1")->configure_entries(0, 4, memregion("audiocpu")->base() + 0x10000, 0x8000);
- state->save_item(NAME(state->m_roz_bank));
- state->save_item(NAME(state->m_gfxctrl));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_pending_command));
+ save_item(NAME(m_roz_bank));
+ save_item(NAME(m_gfxctrl));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_pending_command));
}
-static MACHINE_RESET( crshrace )
+void crshrace_state::machine_reset()
{
- crshrace_state *state = machine.driver_data<crshrace_state>();
- state->m_roz_bank = 0;
- state->m_gfxctrl = 0;
- state->m_flipscreen = 0;
- state->m_pending_command = 0;
+ m_roz_bank = 0;
+ m_gfxctrl = 0;
+ m_flipscreen = 0;
+ m_pending_command = 0;
}
static MACHINE_CONFIG_START( crshrace, crshrace_state )
@@ -471,8 +469,6 @@ static MACHINE_CONFIG_START( crshrace, crshrace_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(sound_io_map)
- MCFG_MACHINE_START(crshrace)
- MCFG_MACHINE_RESET(crshrace)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -490,7 +486,6 @@ static MACHINE_CONFIG_START( crshrace, crshrace_state )
MCFG_K053936_ADD("k053936", crshrace_k053936_intf)
- MCFG_VIDEO_START(crshrace)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c
index 9655660cf88..e10ce926893 100644
--- a/src/mame/drivers/crystal.c
+++ b/src/mame/drivers/crystal.c
@@ -188,6 +188,8 @@ public:
DECLARE_DRIVER_INIT(officeye);
DECLARE_DRIVER_INIT(crysking);
DECLARE_DRIVER_INIT(evosocc);
+ virtual void machine_start();
+ virtual void machine_reset();
};
static void IntReq( running_machine &machine, int num )
@@ -574,66 +576,64 @@ static void crystal_banksw_postload(running_machine &machine)
state->membank("bank1")->set_base(state->memregion("user2")->base());
}
-static MACHINE_START( crystal )
+void crystal_state::machine_start()
{
- crystal_state *state = machine.driver_data<crystal_state>();
int i;
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_ds1302 = machine.device<ds1302_device>("rtc");
- state->m_vr0video = machine.device("vr0");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_ds1302 = machine().device<ds1302_device>("rtc");
+ m_vr0video = machine().device("vr0");
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(icallback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(icallback);
for (i = 0; i < 4; i++)
- state->m_Timer[i] = machine.scheduler().timer_alloc(FUNC(Timercb), (void*)(FPTR)i);
+ m_Timer[i] = machine().scheduler().timer_alloc(FUNC(Timercb), (void*)(FPTR)i);
- PatchReset(machine);
+ PatchReset(machine());
#ifdef IDLE_LOOP_SPEEDUP
- state->save_item(NAME(state->m_FlipCntRead));
+ save_item(NAME(m_FlipCntRead));
#endif
- state->save_item(NAME(state->m_Bank));
- state->save_item(NAME(state->m_FlipCount));
- state->save_item(NAME(state->m_IntHigh));
- state->save_item(NAME(state->m_Timerctrl));
- state->save_item(NAME(state->m_FlashCmd));
- state->save_item(NAME(state->m_PIO));
- state->save_item(NAME(state->m_DMActrl));
- state->save_item(NAME(state->m_OldPort4));
- machine.save().register_postload(save_prepost_delegate(FUNC(crystal_banksw_postload), &machine));
+ save_item(NAME(m_Bank));
+ save_item(NAME(m_FlipCount));
+ save_item(NAME(m_IntHigh));
+ save_item(NAME(m_Timerctrl));
+ save_item(NAME(m_FlashCmd));
+ save_item(NAME(m_PIO));
+ save_item(NAME(m_DMActrl));
+ save_item(NAME(m_OldPort4));
+ machine().save().register_postload(save_prepost_delegate(FUNC(crystal_banksw_postload), &machine()));
}
-static MACHINE_RESET( crystal )
+void crystal_state::machine_reset()
{
- crystal_state *state = machine.driver_data<crystal_state>();
int i;
- memset(state->m_sysregs, 0, 0x10000);
- memset(state->m_vidregs, 0, 0x10000);
- state->m_FlipCount = 0;
- state->m_IntHigh = 0;
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(icallback);
- state->m_Bank = 0;
- state->membank("bank1")->set_base(state->memregion("user1")->base() + 0);
- state->m_FlashCmd = 0xff;
- state->m_OldPort4 = 0;
+ memset(m_sysregs, 0, 0x10000);
+ memset(m_vidregs, 0, 0x10000);
+ m_FlipCount = 0;
+ m_IntHigh = 0;
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(icallback);
+ m_Bank = 0;
+ membank("bank1")->set_base(memregion("user1")->base() + 0);
+ m_FlashCmd = 0xff;
+ m_OldPort4 = 0;
- state->m_DMActrl[0] = 0;
- state->m_DMActrl[1] = 0;
+ m_DMActrl[0] = 0;
+ m_DMActrl[1] = 0;
for (i = 0; i < 4; i++)
{
- state->m_Timerctrl[i] = 0;
- state->m_Timer[i]->adjust(attotime::never);
+ m_Timerctrl[i] = 0;
+ m_Timer[i]->adjust(attotime::never);
}
- vr0_snd_set_areas(machine.device("vrender"), state->m_textureram, state->m_frameram);
+ vr0_snd_set_areas(machine().device("vrender"), m_textureram, m_frameram);
#ifdef IDLE_LOOP_SPEEDUP
- state->m_FlipCntRead = 0;
+ m_FlipCntRead = 0;
#endif
- PatchReset(machine);
+ PatchReset(machine());
}
static UINT16 GetVidReg( address_space *space, UINT16 reg )
@@ -843,8 +843,6 @@ static MACHINE_CONFIG_START( crystal, crystal_state )
MCFG_CPU_PROGRAM_MAP(crystal_mem)
MCFG_CPU_VBLANK_INT("screen", crystal_interrupt)
- MCFG_MACHINE_START(crystal)
- MCFG_MACHINE_RESET(crystal)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c
index 852f2ce2252..7a23b06680f 100644
--- a/src/mame/drivers/cshooter.c
+++ b/src/mame/drivers/cshooter.c
@@ -116,6 +116,9 @@ public:
DECLARE_DRIVER_INIT(cshootere);
DECLARE_DRIVER_INIT(cshooter);
TILE_GET_INFO_MEMBER(get_cstx_tile_info);
+ virtual void video_start();
+ DECLARE_MACHINE_RESET(cshooter);
+ DECLARE_MACHINE_RESET(airraid);
};
@@ -141,11 +144,10 @@ WRITE8_MEMBER(cshooter_state::cshooter_txram_w)
m_txtilemap->mark_tile_dirty(offset/2);
}
-static VIDEO_START(cshooter)
+void cshooter_state::video_start()
{
- cshooter_state *state = machine.driver_data<cshooter_state>();
- state->m_txtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cshooter_state::get_cstx_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,32, 32);
- state->m_txtilemap->set_transparent_pen(3);
+ m_txtilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cshooter_state::get_cstx_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,32, 32);
+ m_txtilemap->set_transparent_pen(3);
}
static SCREEN_UPDATE_IND16(cshooter)
@@ -212,15 +214,14 @@ static TIMER_DEVICE_CALLBACK( cshooter_scanline )
}
-static MACHINE_RESET( cshooter )
+MACHINE_RESET_MEMBER(cshooter_state,cshooter)
{
- cshooter_state *state = machine.driver_data<cshooter_state>();
- state->m_counter = 0;
+ m_counter = 0;
}
-static MACHINE_RESET( airraid )
+MACHINE_RESET_MEMBER(cshooter_state,airraid)
{
- MACHINE_RESET_CALL(seibu_sound);
+ MACHINE_RESET_CALL_LEGACY(seibu_sound);
}
READ8_MEMBER(cshooter_state::cshooter_coin_r)
@@ -443,7 +444,7 @@ static MACHINE_CONFIG_START( cshooter, cshooter_state )
MCFG_CPU_ADD("audiocpu", Z80,XTAL_14_31818MHz/4) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_RESET(cshooter)
+ MCFG_MACHINE_RESET_OVERRIDE(cshooter_state,cshooter)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -456,7 +457,6 @@ static MACHINE_CONFIG_START( cshooter, cshooter_state )
MCFG_GFXDECODE(cshooter)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(cshooter)
/* sound hardware */
/* YM2151 and ym3931 seibu custom cpu running at XTAL_14_31818MHz/4 */
@@ -470,7 +470,7 @@ static MACHINE_CONFIG_START( airraid, cshooter_state )
SEIBU2_AIRRAID_SOUND_SYSTEM_CPU(XTAL_14_31818MHz/4) /* verified on pcb */
- MCFG_MACHINE_RESET(airraid)
+ MCFG_MACHINE_RESET_OVERRIDE(cshooter_state,airraid)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -483,7 +483,6 @@ static MACHINE_CONFIG_START( airraid, cshooter_state )
MCFG_GFXDECODE(cshooter)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(cshooter)
/* sound hardware */
SEIBU_AIRRAID_SOUND_SYSTEM_YM2151_INTERFACE(XTAL_14_31818MHz/4)
diff --git a/src/mame/drivers/csplayh5.c b/src/mame/drivers/csplayh5.c
index bf3c2a127ba..b3287ee2904 100644
--- a/src/mame/drivers/csplayh5.c
+++ b/src/mame/drivers/csplayh5.c
@@ -79,6 +79,7 @@ public:
DECLARE_DRIVER_INIT(renaimj);
DECLARE_DRIVER_INIT(csplayh7);
DECLARE_DRIVER_INIT(junai2);
+ virtual void machine_reset();
};
@@ -582,17 +583,16 @@ static Z80CTC_INTERFACE( ctc_intf )
};
-static MACHINE_RESET( csplayh5 )
+void csplayh5_state::machine_reset()
{
- csplayh5_state *state = machine.driver_data<csplayh5_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
int i;
// initialize TMPZ84C011 PIO
for (i = 0; i < 5; i++)
{
- state->m_pio_dir[i] = state->m_pio_latch[i] = 0;
- state->tmpz84c011_pio_w(*space, i, 0);
+ m_pio_dir[i] = m_pio_latch[i] = 0;
+ tmpz84c011_pio_w(*space, i, 0);
}
}
@@ -639,7 +639,6 @@ static MACHINE_CONFIG_START( csplayh5, csplayh5_state )
MCFG_Z80CTC_ADD("ctc", 8000000, ctc_intf)
- MCFG_MACHINE_RESET(csplayh5)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/cubeqst.c b/src/mame/drivers/cubeqst.c
index 4da0fa0bcd9..3287cf385ce 100644
--- a/src/mame/drivers/cubeqst.c
+++ b/src/mame/drivers/cubeqst.c
@@ -52,6 +52,10 @@ public:
DECLARE_WRITE16_MEMBER(write_rotram);
DECLARE_READ16_MEMBER(read_sndram);
DECLARE_WRITE16_MEMBER(write_sndram);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -73,20 +77,18 @@ public:
*
*************************************/
-static VIDEO_START( cubeqst )
+void cubeqst_state::video_start()
{
- cubeqst_state *state = machine.driver_data<cubeqst_state>();
- state->m_video_field = 0;
- state->m_depth_buffer = auto_alloc_array(machine, UINT8, 512);
+ m_video_field = 0;
+ m_depth_buffer = auto_alloc_array(machine(), UINT8, 512);
}
/* TODO: Use resistor values */
-static PALETTE_INIT( cubeqst )
+void cubeqst_state::palette_init()
{
- cubeqst_state *state = machine.driver_data<cubeqst_state>();
int i;
- state->m_colormap = auto_alloc_array(machine, rgb_t, 65536);
+ m_colormap = auto_alloc_array(machine(), rgb_t, 65536);
for (i = 0; i < 65536; ++i)
{
UINT8 a, r, g, b, y;
@@ -97,7 +99,7 @@ static PALETTE_INIT( cubeqst )
r = (i >> 8) & 7;
y = ((i >> 12) & 0xf) * 2;
- state->m_colormap[i] = MAKE_ARGB(a ? 0 : 255, y*r, y*g, y*b);
+ m_colormap[i] = MAKE_ARGB(a ? 0 : 255, y*r, y*g, y*b);
}
}
@@ -441,19 +443,18 @@ ADDRESS_MAP_END
*
*************************************/
-static MACHINE_START( cubeqst )
+void cubeqst_state::machine_start()
{
}
-static MACHINE_RESET( cubeqst )
+void cubeqst_state::machine_reset()
{
- cubeqst_state *state = machine.driver_data<cubeqst_state>();
- state->m_reset_latch = 0;
+ m_reset_latch = 0;
/* Auxillary CPUs are held in reset */
- machine.device("sound_cpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- machine.device("rotate_cpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- machine.device("line_cpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("sound_cpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("rotate_cpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("line_cpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
@@ -528,8 +529,6 @@ static MACHINE_CONFIG_START( cubeqst, cubeqst_state )
MCFG_QUANTUM_TIME(attotime::from_hz(48000))
- MCFG_MACHINE_START(cubeqst)
- MCFG_MACHINE_RESET(cubeqst)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_LASERDISC_SIMUTREK_ADD("laserdisc")
@@ -540,8 +539,6 @@ static MACHINE_CONFIG_START( cubeqst, cubeqst_state )
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
- MCFG_VIDEO_START(cubeqst)
- MCFG_PALETTE_INIT(cubeqst)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/cultures.c b/src/mame/drivers/cultures.c
index 019fafd7296..ebc7d41f708 100644
--- a/src/mame/drivers/cultures.c
+++ b/src/mame/drivers/cultures.c
@@ -53,6 +53,9 @@ public:
TILE_GET_INFO_MEMBER(get_bg1_tile_info);
TILE_GET_INFO_MEMBER(get_bg2_tile_info);
TILE_GET_INFO_MEMBER(get_bg0_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -77,23 +80,22 @@ TILE_GET_INFO_MEMBER(cultures_state::get_bg0_tile_info)
SET_TILE_INFO_MEMBER(0, code, code >> 12, 0);
}
-static VIDEO_START( cultures )
+void cultures_state::video_start()
{
- cultures_state *state = machine.driver_data<cultures_state>();
- state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cultures_state::get_bg0_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 64, 128);
- state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cultures_state::get_bg1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
- state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cultures_state::get_bg2_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
+ m_bg0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cultures_state::get_bg0_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 64, 128);
+ m_bg1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cultures_state::get_bg1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
+ m_bg2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cultures_state::get_bg2_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
- state->m_bg1_tilemap->set_transparent_pen(0);
- state->m_bg0_tilemap->set_transparent_pen(0);
+ m_bg1_tilemap->set_transparent_pen(0);
+ m_bg0_tilemap->set_transparent_pen(0);
- state->m_bg0_tilemap->set_scrolldx(502, 10);
- state->m_bg1_tilemap->set_scrolldx(502, 10);
- state->m_bg2_tilemap->set_scrolldx(502, 10);
+ m_bg0_tilemap->set_scrolldx(502, 10);
+ m_bg1_tilemap->set_scrolldx(502, 10);
+ m_bg2_tilemap->set_scrolldx(502, 10);
- state->m_bg0_tilemap->set_scrolldy(255, 0);
- state->m_bg1_tilemap->set_scrolldy(255, 0);
- state->m_bg2_tilemap->set_scrolldy(255, 0);
+ m_bg0_tilemap->set_scrolldy(255, 0);
+ m_bg1_tilemap->set_scrolldy(255, 0);
+ m_bg2_tilemap->set_scrolldy(255, 0);
}
static SCREEN_UPDATE_IND16( cultures )
@@ -367,29 +369,27 @@ static INTERRUPT_GEN( cultures_interrupt )
device->execute().set_input_line(0, HOLD_LINE);
}
-static MACHINE_START( cultures )
+void cultures_state::machine_start()
{
- cultures_state *state = machine.driver_data<cultures_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 16, &ROM[0x0000], 0x4000);
+ membank("bank1")->configure_entries(0, 16, &ROM[0x0000], 0x4000);
- state->save_item(NAME(state->m_paletteram));
- state->save_item(NAME(state->m_old_bank));
- state->save_item(NAME(state->m_video_bank));
- state->save_item(NAME(state->m_irq_enable));
- state->save_item(NAME(state->m_bg1_bank));
- state->save_item(NAME(state->m_bg2_bank));
+ save_item(NAME(m_paletteram));
+ save_item(NAME(m_old_bank));
+ save_item(NAME(m_video_bank));
+ save_item(NAME(m_irq_enable));
+ save_item(NAME(m_bg1_bank));
+ save_item(NAME(m_bg2_bank));
}
-static MACHINE_RESET( cultures )
+void cultures_state::machine_reset()
{
- cultures_state *state = machine.driver_data<cultures_state>();
- state->m_old_bank = -1;
- state->m_video_bank = 0;
- state->m_irq_enable = 0;
- state->m_bg1_bank = 0;
- state->m_bg2_bank = 0;
+ m_old_bank = -1;
+ m_video_bank = 0;
+ m_irq_enable = 0;
+ m_bg1_bank = 0;
+ m_bg2_bank = 0;
}
static MACHINE_CONFIG_START( cultures, cultures_state )
@@ -400,8 +400,6 @@ static MACHINE_CONFIG_START( cultures, cultures_state )
MCFG_CPU_IO_MAP(cultures_io_map)
MCFG_CPU_VBLANK_INT("screen", cultures_interrupt)
- MCFG_MACHINE_START(cultures)
- MCFG_MACHINE_RESET(cultures)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -414,7 +412,6 @@ static MACHINE_CONFIG_START( cultures, cultures_state )
MCFG_GFXDECODE(culture)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(cultures)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c
index 4c72ec9ae81..a5df70f5629 100644
--- a/src/mame/drivers/cvs.c
+++ b/src/mame/drivers/cvs.c
@@ -988,53 +988,51 @@ static const s2636_interface s2636_2_config =
};
-MACHINE_START( cvs )
+MACHINE_START_MEMBER(cvs_state,cvs)
{
- cvs_state *state = machine.driver_data<cvs_state>();
/* allocate memory */
- if (machine.gfx[1] != NULL)
- machine.gfx[1]->set_source(state->m_character_ram);
+ if (machine().gfx[1] != NULL)
+ machine().gfx[1]->set_source(m_character_ram);
- start_393hz_timer(machine);
+ start_393hz_timer(machine());
/* set devices */
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_speech = machine.device("speech");
- state->m_dac3 = machine.device<dac_device>("dac3");
- state->m_tms = machine.device("tms");
- state->m_s2636_0 = machine.device("s2636_0");
- state->m_s2636_1 = machine.device("s2636_1");
- state->m_s2636_2 = machine.device("s2636_2");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_speech = machine().device("speech");
+ m_dac3 = machine().device<dac_device>("dac3");
+ m_tms = machine().device("tms");
+ m_s2636_0 = machine().device("s2636_0");
+ m_s2636_1 = machine().device("s2636_1");
+ m_s2636_2 = machine().device("s2636_2");
/* register state save */
- state->save_item(NAME(state->m_color_ram));
- state->save_item(NAME(state->m_palette_ram));
- state->save_item(NAME(state->m_character_ram));
- state->save_item(NAME(state->m_character_banking_mode));
- state->save_item(NAME(state->m_character_ram_page_start));
- state->save_item(NAME(state->m_speech_rom_bit_address));
- state->save_item(NAME(state->m_cvs_393hz_clock));
- state->save_item(NAME(state->m_collision_register));
- state->save_item(NAME(state->m_total_stars));
- state->save_item(NAME(state->m_stars_on));
- state->save_item(NAME(state->m_scroll_reg));
- state->save_item(NAME(state->m_stars_scroll));
+ save_item(NAME(m_color_ram));
+ save_item(NAME(m_palette_ram));
+ save_item(NAME(m_character_ram));
+ save_item(NAME(m_character_banking_mode));
+ save_item(NAME(m_character_ram_page_start));
+ save_item(NAME(m_speech_rom_bit_address));
+ save_item(NAME(m_cvs_393hz_clock));
+ save_item(NAME(m_collision_register));
+ save_item(NAME(m_total_stars));
+ save_item(NAME(m_stars_on));
+ save_item(NAME(m_scroll_reg));
+ save_item(NAME(m_stars_scroll));
}
-MACHINE_RESET( cvs )
+MACHINE_RESET_MEMBER(cvs_state,cvs)
{
- cvs_state *state = machine.driver_data<cvs_state>();
- state->m_character_banking_mode = 0;
- state->m_character_ram_page_start = 0;
- state->m_speech_rom_bit_address = 0;
- state->m_cvs_393hz_clock = 0;
- state->m_collision_register = 0;
- state->m_stars_on = 0;
- state->m_scroll_reg = 0;
- state->m_stars_scroll = 0;
+ m_character_banking_mode = 0;
+ m_character_ram_page_start = 0;
+ m_speech_rom_bit_address = 0;
+ m_cvs_393hz_clock = 0;
+ m_collision_register = 0;
+ m_stars_on = 0;
+ m_scroll_reg = 0;
+ m_stars_scroll = 0;
}
@@ -1054,16 +1052,16 @@ static MACHINE_CONFIG_START( cvs, cvs_state )
MCFG_CPU_PROGRAM_MAP(cvs_speech_cpu_map)
MCFG_CPU_IO_MAP(cvs_speech_cpu_io_map)
- MCFG_MACHINE_START(cvs)
- MCFG_MACHINE_RESET(cvs)
+ MCFG_MACHINE_START_OVERRIDE(cvs_state,cvs)
+ MCFG_MACHINE_RESET_OVERRIDE(cvs_state,cvs)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(cvs)
+ MCFG_VIDEO_START_OVERRIDE(cvs_state,cvs)
MCFG_GFXDECODE(cvs)
MCFG_PALETTE_LENGTH((256+4)*8+8+1)
- MCFG_PALETTE_INIT(cvs)
+ MCFG_PALETTE_INIT_OVERRIDE(cvs_state,cvs)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_SIZE(32*8, 32*8)
diff --git a/src/mame/drivers/cyberbal.c b/src/mame/drivers/cyberbal.c
index 45a4d15411c..bf4a7686b6e 100644
--- a/src/mame/drivers/cyberbal.c
+++ b/src/mame/drivers/cyberbal.c
@@ -44,34 +44,32 @@ static void update_interrupts(running_machine &machine)
}
-static MACHINE_START( cyberbal )
+MACHINE_START_MEMBER(cyberbal_state,cyberbal)
{
- cyberbal_state *state = machine.driver_data<cyberbal_state>();
- atarigen_init(machine);
-
- state->save_item(NAME(state->m_fast_68k_int));
- state->save_item(NAME(state->m_io_68k_int));
- state->save_item(NAME(state->m_sound_data_from_68k));
- state->save_item(NAME(state->m_sound_data_from_6502));
- state->save_item(NAME(state->m_sound_data_from_68k_ready));
- state->save_item(NAME(state->m_sound_data_from_6502_ready));
+ atarigen_init(machine());
+
+ save_item(NAME(m_fast_68k_int));
+ save_item(NAME(m_io_68k_int));
+ save_item(NAME(m_sound_data_from_68k));
+ save_item(NAME(m_sound_data_from_6502));
+ save_item(NAME(m_sound_data_from_68k_ready));
+ save_item(NAME(m_sound_data_from_6502_ready));
}
-static MACHINE_RESET( cyberbal )
+MACHINE_RESET_MEMBER(cyberbal_state,cyberbal)
{
- cyberbal_state *state = machine.driver_data<cyberbal_state>();
- atarigen_eeprom_reset(state);
- atarigen_slapstic_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, cyberbal_scanline_update, 8);
- atarigen_sound_io_reset(machine.device("audiocpu"));
+ atarigen_eeprom_reset(this);
+ atarigen_slapstic_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, cyberbal_scanline_update, 8);
+ atarigen_sound_io_reset(machine().device("audiocpu"));
- cyberbal_sound_reset(machine);
+ cyberbal_sound_reset(machine());
/* Extra CPU (second M68k) doesn't run until reset */
- machine.device("extra")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("extra")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
@@ -83,13 +81,12 @@ static void cyberbal2p_update_interrupts(running_machine &machine)
}
-static MACHINE_RESET( cyberbal2p )
+MACHINE_RESET_MEMBER(cyberbal_state,cyberbal2p)
{
- cyberbal_state *state = machine.driver_data<cyberbal_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, cyberbal2p_update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, cyberbal_scanline_update, 8);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, cyberbal2p_update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, cyberbal_scanline_update, 8);
atarijsa_reset();
}
@@ -447,8 +444,8 @@ static MACHINE_CONFIG_START( cyberbal, cyberbal_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(cyberbal)
- MCFG_MACHINE_RESET(cyberbal)
+ MCFG_MACHINE_START_OVERRIDE(cyberbal_state,cyberbal)
+ MCFG_MACHINE_RESET_OVERRIDE(cyberbal_state,cyberbal)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -468,7 +465,7 @@ static MACHINE_CONFIG_START( cyberbal, cyberbal_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(cyberbal_right)
- MCFG_VIDEO_START(cyberbal)
+ MCFG_VIDEO_START_OVERRIDE(cyberbal_state,cyberbal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -493,8 +490,8 @@ static MACHINE_CONFIG_START( cyberbal2p, cyberbal_state )
MCFG_CPU_PROGRAM_MAP(cyberbal2p_map)
MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
- MCFG_MACHINE_START(cyberbal)
- MCFG_MACHINE_RESET(cyberbal2p)
+ MCFG_MACHINE_START_OVERRIDE(cyberbal_state,cyberbal)
+ MCFG_MACHINE_RESET_OVERRIDE(cyberbal_state,cyberbal2p)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -508,7 +505,7 @@ static MACHINE_CONFIG_START( cyberbal2p, cyberbal_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(cyberbal2p)
- MCFG_VIDEO_START(cyberbal2p)
+ MCFG_VIDEO_START_OVERRIDE(cyberbal_state,cyberbal2p)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_ii_mono)
diff --git a/src/mame/drivers/cybertnk.c b/src/mame/drivers/cybertnk.c
index 3bd3917d837..1bf79e58075 100644
--- a/src/mame/drivers/cybertnk.c
+++ b/src/mame/drivers/cybertnk.c
@@ -218,6 +218,7 @@ public:
TILE_GET_INFO_MEMBER(get_tilemap0_tile_info);
TILE_GET_INFO_MEMBER(get_tilemap1_tile_info);
TILE_GET_INFO_MEMBER(get_tilemap2_tile_info);
+ virtual void video_start();
};
/* tile format
@@ -270,17 +271,16 @@ TILE_GET_INFO_MEMBER(cybertnk_state::get_tilemap2_tile_info)
0);
}
-static VIDEO_START( cybertnk )
+void cybertnk_state::video_start()
{
- cybertnk_state *state = machine.driver_data<cybertnk_state>();
- state->m_tilemap0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cybertnk_state::get_tilemap0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,32);
- state->m_tilemap0_tilemap->set_transparent_pen(0);
+ m_tilemap0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cybertnk_state::get_tilemap0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,32);
+ m_tilemap0_tilemap->set_transparent_pen(0);
- state->m_tilemap1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cybertnk_state::get_tilemap1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,32);
- state->m_tilemap1_tilemap->set_transparent_pen(0);
+ m_tilemap1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cybertnk_state::get_tilemap1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,32);
+ m_tilemap1_tilemap->set_transparent_pen(0);
- state->m_tilemap2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cybertnk_state::get_tilemap2_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,32);
- state->m_tilemap2_tilemap->set_transparent_pen(0);
+ m_tilemap2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cybertnk_state::get_tilemap2_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,32);
+ m_tilemap2_tilemap->set_transparent_pen(0);
}
@@ -858,7 +858,6 @@ static MACHINE_CONFIG_START( cybertnk, cybertnk_state )
MCFG_GFXDECODE(cybertnk)
MCFG_PALETTE_LENGTH(0x4000)
- MCFG_VIDEO_START(cybertnk)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/cyclemb.c b/src/mame/drivers/cyclemb.c
index ae8ef774ecf..d4c898a7bc3 100644
--- a/src/mame/drivers/cyclemb.c
+++ b/src/mame/drivers/cyclemb.c
@@ -116,13 +116,16 @@ public:
DECLARE_WRITE8_MEMBER(skydest_i8741_0_w);
DECLARE_DRIVER_INIT(skydest);
DECLARE_DRIVER_INIT(cyclemb);
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
-static PALETTE_INIT( cyclemb )
+void cyclemb_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i,r,g,b,val;
int bit0,bit1,bit2;
@@ -143,12 +146,12 @@ static PALETTE_INIT( cyclemb )
bit2 = (val >> 2) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
-static VIDEO_START( cyclemb )
+void cyclemb_state::video_start()
{
}
@@ -591,9 +594,9 @@ static ADDRESS_MAP_START( cyclemb_sound_io, AS_IO, 8, cyclemb_state )
AM_RANGE(0x40, 0x40) AM_READ(soundlatch_byte_r) AM_WRITE(soundlatch2_byte_w)
ADDRESS_MAP_END
-static MACHINE_RESET( cyclemb )
+void cyclemb_state::machine_reset()
{
- skydest_i8741_reset(machine);
+ skydest_i8741_reset(machine());
}
@@ -918,11 +921,8 @@ static MACHINE_CONFIG_START( cyclemb, cyclemb_state )
MCFG_GFXDECODE(cyclemb)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(cyclemb)
- MCFG_VIDEO_START(cyclemb)
- MCFG_MACHINE_RESET(cyclemb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -940,7 +940,7 @@ static MACHINE_CONFIG_DERIVED( skydest, cyclemb )
MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(skydest)
-// MCFG_PALETTE_INIT(skydest)
+// MCFG_PALETTE_INIT_OVERRIDE(cyclemb_state,skydest)
MACHINE_CONFIG_END
/***************************************************************************
diff --git a/src/mame/drivers/d9final.c b/src/mame/drivers/d9final.c
index 15a1579354d..2797bf54779 100644
--- a/src/mame/drivers/d9final.c
+++ b/src/mame/drivers/d9final.c
@@ -43,6 +43,8 @@ public:
DECLARE_WRITE8_MEMBER(d9final_bank_w);
DECLARE_READ8_MEMBER(prot_latch_r);
TILE_GET_INFO_MEMBER(get_sc0_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -59,10 +61,9 @@ TILE_GET_INFO_MEMBER(d9final_state::get_sc0_tile_info)
0);
}
-static VIDEO_START(d9final)
+void d9final_state::video_start()
{
- d9final_state *state = machine.driver_data<d9final_state>();
- state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(d9final_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_sc0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(d9final_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
}
static SCREEN_UPDATE_IND16(d9final)
@@ -271,11 +272,11 @@ static GFXDECODE_START( d9final )
GFXDECODE_ENTRY( "gfx1", 0, tiles16x8_layout, 0, 16*4 )
GFXDECODE_END
-static MACHINE_RESET( d9final )
+void d9final_state::machine_reset()
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->set_base(&ROM[0x10000]);
+ machine().root_device().membank("bank1")->set_base(&ROM[0x10000]);
}
static MACHINE_CONFIG_START( d9final, d9final_state )
@@ -285,7 +286,6 @@ static MACHINE_CONFIG_START( d9final, d9final_state )
MCFG_CPU_IO_MAP(d9final_io)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_RESET( d9final )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -299,7 +299,6 @@ static MACHINE_CONFIG_START( d9final, d9final_state )
MCFG_PALETTE_LENGTH(0x400)
MCFG_PALETTE_INIT(all_black)
- MCFG_VIDEO_START(d9final)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dacholer.c b/src/mame/drivers/dacholer.c
index 00df830b758..82f8956c302 100644
--- a/src/mame/drivers/dacholer.c
+++ b/src/mame/drivers/dacholer.c
@@ -85,6 +85,10 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(snd_ack_r);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
TILE_GET_INFO_MEMBER(dacholer_state::get_bg_tile_info)
@@ -97,13 +101,12 @@ TILE_GET_INFO_MEMBER(dacholer_state::get_fg_tile_info)
SET_TILE_INFO_MEMBER(0, m_fgvideoram[tile_index], 0, 0);
}
-static VIDEO_START( dacholer )
+void dacholer_state::video_start()
{
- dacholer_state *state = machine.driver_data<dacholer_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dacholer_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dacholer_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dacholer_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dacholer_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_fg_tilemap->set_transparent_pen(0);
}
WRITE8_MEMBER(dacholer_state::bg_scroll_x_w)
@@ -578,35 +581,33 @@ static const msm5205_interface msm_interface =
-static MACHINE_START( dacholer )
+void dacholer_state::machine_start()
{
- dacholer_state *state = machine.driver_data<dacholer_state>();
- state->save_item(NAME(state->m_bg_bank));
- state->save_item(NAME(state->m_msm_data));
- state->save_item(NAME(state->m_msm_toggle));
- state->save_item(NAME(state->m_snd_interrupt_enable));
- state->save_item(NAME(state->m_music_interrupt_enable));
- state->save_item(NAME(state->m_snd_ack));
+ save_item(NAME(m_bg_bank));
+ save_item(NAME(m_msm_data));
+ save_item(NAME(m_msm_toggle));
+ save_item(NAME(m_snd_interrupt_enable));
+ save_item(NAME(m_music_interrupt_enable));
+ save_item(NAME(m_snd_ack));
}
-static MACHINE_RESET( dacholer )
+void dacholer_state::machine_reset()
{
- dacholer_state *state = machine.driver_data<dacholer_state>();
- state->m_msm_data = 0;
- state->m_msm_toggle = 0;
+ m_msm_data = 0;
+ m_msm_toggle = 0;
- state->m_bg_bank = 0;
- state->m_snd_interrupt_enable = 0;
- state->m_music_interrupt_enable = 0;
- state->m_snd_ack = 0;
+ m_bg_bank = 0;
+ m_snd_interrupt_enable = 0;
+ m_music_interrupt_enable = 0;
+ m_snd_ack = 0;
}
/* guess: use the same resistor values as Crazy Climber (needs checking on the real HW) */
-static PALETTE_INIT( dacholer )
+void dacholer_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
static const int resistances_rg[3] = { 1000, 470, 220 };
static const int resistances_b [2] = { 470, 220 };
double weights_rg[3], weights_b[2];
@@ -618,7 +619,7 @@ static PALETTE_INIT( dacholer )
2, resistances_b, weights_b, 0, 0,
0, 0, 0, 0, 0);
- for (i = 0;i < machine.total_colors(); i++)
+ for (i = 0;i < machine().total_colors(); i++)
{
int bit0, bit1, bit2;
int r, g, b;
@@ -640,7 +641,7 @@ static PALETTE_INIT( dacholer )
bit1 = (color_prom[i] >> 7) & 0x01;
b = combine_2_weights(weights_b, bit0, bit1);
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -658,8 +659,6 @@ static MACHINE_CONFIG_START( dacholer, dacholer_state )
MCFG_CPU_IO_MAP(snd_io_map)
MCFG_CPU_VBLANK_INT("screen",sound_irq)
- MCFG_MACHINE_START(dacholer)
- MCFG_MACHINE_RESET(dacholer)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -670,10 +669,8 @@ static MACHINE_CONFIG_START( dacholer, dacholer_state )
MCFG_SCREEN_UPDATE_STATIC(dacholer)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(dacholer)
MCFG_GFXDECODE(dacholer)
- MCFG_VIDEO_START(dacholer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dai3wksi.c b/src/mame/drivers/dai3wksi.c
index 928f180729a..e2ef3810bf6 100644
--- a/src/mame/drivers/dai3wksi.c
+++ b/src/mame/drivers/dai3wksi.c
@@ -65,6 +65,8 @@ public:
DECLARE_WRITE8_MEMBER(dai3wksi_audio_1_w);
DECLARE_WRITE8_MEMBER(dai3wksi_audio_2_w);
DECLARE_WRITE8_MEMBER(dai3wksi_audio_3_w);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -561,28 +563,26 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_START( dai3wksi )
+void dai3wksi_state::machine_start()
{
- dai3wksi_state *state = machine.driver_data<dai3wksi_state>();
/* Set up save state */
- state->save_item(NAME(state->m_dai3wksi_flipscreen));
- state->save_item(NAME(state->m_dai3wksi_redscreen));
- state->save_item(NAME(state->m_dai3wksi_redterop));
- state->save_item(NAME(state->m_port_last1));
- state->save_item(NAME(state->m_port_last2));
- state->save_item(NAME(state->m_enabled_sound));
- state->save_item(NAME(state->m_sound3_counter));
+ save_item(NAME(m_dai3wksi_flipscreen));
+ save_item(NAME(m_dai3wksi_redscreen));
+ save_item(NAME(m_dai3wksi_redterop));
+ save_item(NAME(m_port_last1));
+ save_item(NAME(m_port_last2));
+ save_item(NAME(m_enabled_sound));
+ save_item(NAME(m_sound3_counter));
}
-static MACHINE_RESET( dai3wksi )
+void dai3wksi_state::machine_reset()
{
- dai3wksi_state *state = machine.driver_data<dai3wksi_state>();
- state->m_port_last1 = 0;
- state->m_port_last2 = 0;
- state->m_enabled_sound = 0;
- state->m_sound3_counter = 0;
+ m_port_last1 = 0;
+ m_port_last2 = 0;
+ m_enabled_sound = 0;
+ m_sound3_counter = 0;
}
@@ -593,8 +593,6 @@ static MACHINE_CONFIG_START( dai3wksi, dai3wksi_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(dai3wksi)
- MCFG_MACHINE_RESET(dai3wksi)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/dambustr.c b/src/mame/drivers/dambustr.c
index 54bcc1b875a..5a994bcc3fe 100644
--- a/src/mame/drivers/dambustr.c
+++ b/src/mame/drivers/dambustr.c
@@ -249,7 +249,7 @@ static MACHINE_CONFIG_START( dambustr, dambustr_state )
MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(dambustr_map)
- MCFG_MACHINE_RESET(galaxold)
+ MCFG_MACHINE_RESET_OVERRIDE(dambustr_state,galaxold)
MCFG_7474_ADD("7474_9m_1", "7474_9m_1", galaxold_7474_9m_1_callback, NULL)
MCFG_7474_ADD("7474_9m_2", "7474_9m_1", NULL, galaxold_7474_9m_2_q_callback)
@@ -266,8 +266,8 @@ static MACHINE_CONFIG_START( dambustr, dambustr_state )
MCFG_GFXDECODE(dambustr)
MCFG_PALETTE_LENGTH(32+2+64+8) /* 32 for the characters, 2 for the bullets, 64 for the stars, 8 for the background */
- MCFG_PALETTE_INIT(dambustr)
- MCFG_VIDEO_START(dambustr)
+ MCFG_PALETTE_INIT_OVERRIDE(dambustr_state,dambustr)
+ MCFG_VIDEO_START_OVERRIDE(dambustr_state,dambustr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c
index a7db1d3483e..5013dd57833 100644
--- a/src/mame/drivers/darius.c
+++ b/src/mame/drivers/darius.c
@@ -836,81 +836,79 @@ static void darius_postload(running_machine &machine)
reset_sound_region(machine);
}
-static MACHINE_START( darius )
+void darius_state::machine_start()
{
- darius_state *state = machine.driver_data<darius_state>();
- state->membank("bank1")->configure_entries(0, 4, state->memregion("audiocpu")->base() + 0x10000, 0x8000);
- state->membank("bank1")->configure_entry(4, state->memregion("audiocpu")->base());
- state->membank("bank1")->set_entry(4);
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_cpub = machine.device("cpub");
- state->m_adpcm = machine.device("adpcm");
- state->m_pc080sn = machine.device("pc080sn");
- state->m_tc0140syt = machine.device("tc0140syt");
-
- state->m_lscreen = machine.device("lscreen");
- state->m_mscreen = machine.device("mscreen");
- state->m_rscreen = machine.device("rscreen");
-
- state->m_filter0_0l = machine.device("filter0.0l");
- state->m_filter0_0r = machine.device("filter0.0r");
- state->m_filter0_1l = machine.device("filter0.1l");
- state->m_filter0_1r = machine.device("filter0.1r");
- state->m_filter0_2l = machine.device("filter0.2l");
- state->m_filter0_2r = machine.device("filter0.2r");
- state->m_filter0_3l = machine.device("filter0.3l");
- state->m_filter0_3r = machine.device("filter0.3r");
-
- state->m_filter1_0l = machine.device("filter1.0l");
- state->m_filter1_0r = machine.device("filter1.0r");
- state->m_filter1_1l = machine.device("filter1.1l");
- state->m_filter1_1r = machine.device("filter1.1r");
- state->m_filter1_2l = machine.device("filter1.2l");
- state->m_filter1_2r = machine.device("filter1.2r");
- state->m_filter1_3l = machine.device("filter1.3l");
- state->m_filter1_3r = machine.device("filter1.3r");
-
- state->m_msm5205_l = machine.device("msm5205.l");
- state->m_msm5205_r = machine.device("msm5205.r");
-
- state->save_item(NAME(state->m_cpua_ctrl));
- state->save_item(NAME(state->m_coin_word));
-
- state->save_item(NAME(state->m_banknum));
- state->save_item(NAME(state->m_adpcm_command));
- state->save_item(NAME(state->m_nmi_enable));
- state->save_item(NAME(state->m_vol));
- state->save_item(NAME(state->m_pan));
- machine.save().register_postload(save_prepost_delegate(FUNC(darius_postload), &machine));
+ membank("bank1")->configure_entries(0, 4, memregion("audiocpu")->base() + 0x10000, 0x8000);
+ membank("bank1")->configure_entry(4, memregion("audiocpu")->base());
+ membank("bank1")->set_entry(4);
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_cpub = machine().device("cpub");
+ m_adpcm = machine().device("adpcm");
+ m_pc080sn = machine().device("pc080sn");
+ m_tc0140syt = machine().device("tc0140syt");
+
+ m_lscreen = machine().device("lscreen");
+ m_mscreen = machine().device("mscreen");
+ m_rscreen = machine().device("rscreen");
+
+ m_filter0_0l = machine().device("filter0.0l");
+ m_filter0_0r = machine().device("filter0.0r");
+ m_filter0_1l = machine().device("filter0.1l");
+ m_filter0_1r = machine().device("filter0.1r");
+ m_filter0_2l = machine().device("filter0.2l");
+ m_filter0_2r = machine().device("filter0.2r");
+ m_filter0_3l = machine().device("filter0.3l");
+ m_filter0_3r = machine().device("filter0.3r");
+
+ m_filter1_0l = machine().device("filter1.0l");
+ m_filter1_0r = machine().device("filter1.0r");
+ m_filter1_1l = machine().device("filter1.1l");
+ m_filter1_1r = machine().device("filter1.1r");
+ m_filter1_2l = machine().device("filter1.2l");
+ m_filter1_2r = machine().device("filter1.2r");
+ m_filter1_3l = machine().device("filter1.3l");
+ m_filter1_3r = machine().device("filter1.3r");
+
+ m_msm5205_l = machine().device("msm5205.l");
+ m_msm5205_r = machine().device("msm5205.r");
+
+ save_item(NAME(m_cpua_ctrl));
+ save_item(NAME(m_coin_word));
+
+ save_item(NAME(m_banknum));
+ save_item(NAME(m_adpcm_command));
+ save_item(NAME(m_nmi_enable));
+ save_item(NAME(m_vol));
+ save_item(NAME(m_pan));
+ machine().save().register_postload(save_prepost_delegate(FUNC(darius_postload), &machine()));
}
-static MACHINE_RESET( darius )
+void darius_state::machine_reset()
{
- darius_state *state = machine.driver_data<darius_state>();
int i;
- state->m_cpua_ctrl = 0xff;
- state->m_banknum = 0;
- state->m_coin_word = 0;
- state->m_adpcm_command = 0;
- state->m_nmi_enable = 0;
+ m_cpua_ctrl = 0xff;
+ m_banknum = 0;
+ m_coin_word = 0;
+ m_adpcm_command = 0;
+ m_nmi_enable = 0;
- machine.sound().system_enable(true); /* mixer enabled */
+ machine().sound().system_enable(true); /* mixer enabled */
for (i = 0; i < DARIUS_VOL_MAX; i++)
- state->m_vol[i] = 0x00; /* min volume */
+ m_vol[i] = 0x00; /* min volume */
for (i = 0; i < DARIUS_PAN_MAX; i++)
- state->m_pan[i] = 0x80; /* center */
+ m_pan[i] = 0x80; /* center */
for (i = 0; i < 0x10; i++)
{
//logerror( "calc %d = %d\n", i, (int)(100.0f / (float)pow(10.0f, (32.0f - (i * (32.0f / (float)(0xf)))) / 20.0f)) );
- state->m_def_vol[i] = (int)(100.0f / (float)pow(10.0f, (32.0f - (i * (32.0f / (float)(0xf)))) / 20.0f));
+ m_def_vol[i] = (int)(100.0f / (float)pow(10.0f, (32.0f - (i * (32.0f / (float)(0xf)))) / 20.0f));
}
}
@@ -935,8 +933,6 @@ static MACHINE_CONFIG_START( darius, darius_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame ? */
- MCFG_MACHINE_START(darius)
- MCFG_MACHINE_RESET(darius)
/* video hardware */
MCFG_GFXDECODE(darius)
@@ -964,7 +960,6 @@ static MACHINE_CONFIG_START( darius, darius_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1)
MCFG_SCREEN_UPDATE_STATIC(darius_right)
- MCFG_VIDEO_START(darius)
MCFG_PC080SN_ADD("pc080sn", darius_pc080sn_intf)
diff --git a/src/mame/drivers/darkmist.c b/src/mame/drivers/darkmist.c
index 3903bb9236a..39fa9d36c4e 100644
--- a/src/mame/drivers/darkmist.c
+++ b/src/mame/drivers/darkmist.c
@@ -245,9 +245,7 @@ static MACHINE_CONFIG_START( darkmist, darkmist_state )
MCFG_SCREEN_UPDATE_STATIC(darkmist)
MCFG_GFXDECODE(darkmist)
- MCFG_PALETTE_INIT(darkmist)
MCFG_PALETTE_LENGTH(0x100*4)
- MCFG_VIDEO_START(darkmist)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/darkseal.c b/src/mame/drivers/darkseal.c
index 80b14ed5868..a708c68ffed 100644
--- a/src/mame/drivers/darkseal.c
+++ b/src/mame/drivers/darkseal.c
@@ -290,7 +290,6 @@ static MACHINE_CONFIG_START( darkseal, darkseal_state )
- MCFG_VIDEO_START(darkseal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dassault.c b/src/mame/drivers/dassault.c
index 57766808032..f35218f70ba 100644
--- a/src/mame/drivers/dassault.c
+++ b/src/mame/drivers/dassault.c
@@ -526,7 +526,6 @@ static MACHINE_CONFIG_START( dassault, dassault_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_STATIC(dassault)
- MCFG_VIDEO_START(dassault)
MCFG_GFXDECODE(dassault)
MCFG_PALETTE_LENGTH(4096)
diff --git a/src/mame/drivers/dblewing.c b/src/mame/drivers/dblewing.c
index 741899fa9cf..ce848b94e4b 100644
--- a/src/mame/drivers/dblewing.c
+++ b/src/mame/drivers/dblewing.c
@@ -81,6 +81,8 @@ public:
DECLARE_WRITE16_MEMBER(dblewing_prot_w);
DECLARE_READ8_MEMBER(irq_latch_r);
DECLARE_DRIVER_INIT(dblewing);
+ virtual void machine_start();
+ virtual void machine_reset();
};
UINT16 dblwings_pri_callback(UINT16 x)
@@ -561,78 +563,76 @@ static const deco16ic_interface dblewing_deco16ic_tilegen1_intf =
0,1,
};
-static MACHINE_START( dblewing )
+void dblewing_state::machine_start()
{
- dblewing_state *state = machine.driver_data<dblewing_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_deco_tilegen1 = machine.device("tilegen1");
-
- state->save_item(NAME(state->m_008_data));
- state->save_item(NAME(state->m_104_data));
- state->save_item(NAME(state->m_406_data));
- state->save_item(NAME(state->m_608_data));
- state->save_item(NAME(state->m_70c_data));
- state->save_item(NAME(state->m_78a_data));
- state->save_item(NAME(state->m_088_data));
- state->save_item(NAME(state->m_58c_data));
- state->save_item(NAME(state->m_408_data));
- state->save_item(NAME(state->m_40e_data));
- state->save_item(NAME(state->m_080_data));
- state->save_item(NAME(state->m_788_data));
- state->save_item(NAME(state->m_38e_data));
- state->save_item(NAME(state->m_580_data));
- state->save_item(NAME(state->m_60a_data));
- state->save_item(NAME(state->m_200_data));
- state->save_item(NAME(state->m_28c_data));
- state->save_item(NAME(state->m_18a_data));
- state->save_item(NAME(state->m_280_data));
- state->save_item(NAME(state->m_384_data));
-
- state->save_item(NAME(state->m_boss_move));
- state->save_item(NAME(state->m_boss_shoot_type));
- state->save_item(NAME(state->m_boss_3_data));
- state->save_item(NAME(state->m_boss_4_data));
- state->save_item(NAME(state->m_boss_5_data));
- state->save_item(NAME(state->m_boss_5sx_data));
- state->save_item(NAME(state->m_boss_6_data));
- state->save_item(NAME(state->m_sound_irq));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_deco_tilegen1 = machine().device("tilegen1");
+
+ save_item(NAME(m_008_data));
+ save_item(NAME(m_104_data));
+ save_item(NAME(m_406_data));
+ save_item(NAME(m_608_data));
+ save_item(NAME(m_70c_data));
+ save_item(NAME(m_78a_data));
+ save_item(NAME(m_088_data));
+ save_item(NAME(m_58c_data));
+ save_item(NAME(m_408_data));
+ save_item(NAME(m_40e_data));
+ save_item(NAME(m_080_data));
+ save_item(NAME(m_788_data));
+ save_item(NAME(m_38e_data));
+ save_item(NAME(m_580_data));
+ save_item(NAME(m_60a_data));
+ save_item(NAME(m_200_data));
+ save_item(NAME(m_28c_data));
+ save_item(NAME(m_18a_data));
+ save_item(NAME(m_280_data));
+ save_item(NAME(m_384_data));
+
+ save_item(NAME(m_boss_move));
+ save_item(NAME(m_boss_shoot_type));
+ save_item(NAME(m_boss_3_data));
+ save_item(NAME(m_boss_4_data));
+ save_item(NAME(m_boss_5_data));
+ save_item(NAME(m_boss_5sx_data));
+ save_item(NAME(m_boss_6_data));
+ save_item(NAME(m_sound_irq));
}
-static MACHINE_RESET( dblewing )
+void dblewing_state::machine_reset()
{
- dblewing_state *state = machine.driver_data<dblewing_state>();
-
- state->m_008_data = 0;
- state->m_104_data = 0;
- state->m_406_data = 0;
- state->m_608_data = 0;
- state->m_70c_data = 0;
- state->m_78a_data = 0;
- state->m_088_data = 0;
- state->m_58c_data = 0;
- state->m_408_data = 0;
- state->m_40e_data = 0;
- state->m_080_data = 0;
- state->m_788_data = 0;
- state->m_38e_data = 0;
- state->m_580_data = 0;
- state->m_60a_data = 0;
- state->m_200_data = 0;
- state->m_28c_data = 0;
- state->m_18a_data = 0;
- state->m_280_data = 0;
- state->m_384_data = 0;
-
- state->m_boss_move = 0;
- state->m_boss_shoot_type = 0;
- state->m_boss_3_data = 0;
- state->m_boss_4_data = 0;
- state->m_boss_5_data = 0;
- state->m_boss_5sx_data = 0;
- state->m_boss_6_data = 0;
- state->m_sound_irq = 0;
+
+ m_008_data = 0;
+ m_104_data = 0;
+ m_406_data = 0;
+ m_608_data = 0;
+ m_70c_data = 0;
+ m_78a_data = 0;
+ m_088_data = 0;
+ m_58c_data = 0;
+ m_408_data = 0;
+ m_40e_data = 0;
+ m_080_data = 0;
+ m_788_data = 0;
+ m_38e_data = 0;
+ m_580_data = 0;
+ m_60a_data = 0;
+ m_200_data = 0;
+ m_28c_data = 0;
+ m_18a_data = 0;
+ m_280_data = 0;
+ m_384_data = 0;
+
+ m_boss_move = 0;
+ m_boss_shoot_type = 0;
+ m_boss_3_data = 0;
+ m_boss_4_data = 0;
+ m_boss_5_data = 0;
+ m_boss_5sx_data = 0;
+ m_boss_6_data = 0;
+ m_sound_irq = 0;
}
static MACHINE_CONFIG_START( dblewing, dblewing_state )
@@ -648,8 +648,6 @@ static MACHINE_CONFIG_START( dblewing, dblewing_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(dblewing)
- MCFG_MACHINE_RESET(dblewing)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/dbz.c b/src/mame/drivers/dbz.c
index 70f0b3632fc..399db0b6fa1 100644
--- a/src/mame/drivers/dbz.c
+++ b/src/mame/drivers/dbz.c
@@ -347,37 +347,35 @@ static const k053252_interface dbz_k053252_intf =
0, 0
};
-static MACHINE_START( dbz )
+void dbz_state::machine_start()
{
- dbz_state *state = machine.driver_data<dbz_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k053936_1 = machine.device("k053936_1");
- state->m_k053936_2 = machine.device("k053936_2");
- state->m_k056832 = machine.device("k056832");
- state->m_k053246 = machine.device("k053246");
- state->m_k053251 = machine.device("k053251");
-
- state->save_item(NAME(state->m_control));
- state->save_item(NAME(state->m_sprite_colorbase));
- state->save_item(NAME(state->m_layerpri));
- state->save_item(NAME(state->m_layer_colorbase));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k053936_1 = machine().device("k053936_1");
+ m_k053936_2 = machine().device("k053936_2");
+ m_k056832 = machine().device("k056832");
+ m_k053246 = machine().device("k053246");
+ m_k053251 = machine().device("k053251");
+
+ save_item(NAME(m_control));
+ save_item(NAME(m_sprite_colorbase));
+ save_item(NAME(m_layerpri));
+ save_item(NAME(m_layer_colorbase));
}
-static MACHINE_RESET( dbz )
+void dbz_state::machine_reset()
{
- dbz_state *state = machine.driver_data<dbz_state>();
int i;
for (i = 0; i < 5; i++)
- state->m_layerpri[i] = 0;
+ m_layerpri[i] = 0;
for (i = 0; i < 6; i++)
- state->m_layer_colorbase[i] = 0;
+ m_layer_colorbase[i] = 0;
- state->m_sprite_colorbase = 0;
- state->m_control = 0;
+ m_sprite_colorbase = 0;
+ m_control = 0;
}
static MACHINE_CONFIG_START( dbz, dbz_state )
@@ -391,8 +389,6 @@ static MACHINE_CONFIG_START( dbz, dbz_state )
MCFG_CPU_PROGRAM_MAP(dbz_sound_map)
MCFG_CPU_IO_MAP(dbz_sound_io_map)
- MCFG_MACHINE_START(dbz)
- MCFG_MACHINE_RESET(dbz)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -406,7 +402,6 @@ static MACHINE_CONFIG_START( dbz, dbz_state )
MCFG_GFXDECODE(dbz)
- MCFG_VIDEO_START(dbz)
MCFG_PALETTE_LENGTH(0x4000/2)
MCFG_K056832_ADD("k056832", dbz_k056832_intf)
diff --git a/src/mame/drivers/dcheese.c b/src/mame/drivers/dcheese.c
index 3e2af7d54c6..b64d531f0c7 100644
--- a/src/mame/drivers/dcheese.c
+++ b/src/mame/drivers/dcheese.c
@@ -93,20 +93,19 @@ static INTERRUPT_GEN( dcheese_vblank )
*
*************************************/
-static MACHINE_START( dcheese )
+void dcheese_state::machine_start()
{
- dcheese_state *state = machine.driver_data<dcheese_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_bsmt = machine.device("bsmt");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_bsmt = machine().device("bsmt");
- state->m_maincpu->set_irq_acknowledge_callback(irq_callback);
+ m_maincpu->set_irq_acknowledge_callback(irq_callback);
- state->save_item(NAME(state->m_irq_state));
- state->save_item(NAME(state->m_soundlatch_full));
- state->save_item(NAME(state->m_sound_control));
- state->save_item(NAME(state->m_sound_msb_latch));
+ save_item(NAME(m_irq_state));
+ save_item(NAME(m_soundlatch_full));
+ save_item(NAME(m_sound_control));
+ save_item(NAME(m_sound_msb_latch));
}
@@ -416,7 +415,6 @@ static MACHINE_CONFIG_START( dcheese, dcheese_state )
MCFG_CPU_PROGRAM_MAP(sound_cpu_map)
MCFG_CPU_PERIODIC_INT(irq1_line_hold, 480) /* accurate for fredmem */
- MCFG_MACHINE_START(dcheese)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
@@ -430,8 +428,6 @@ static MACHINE_CONFIG_START( dcheese, dcheese_state )
MCFG_PALETTE_LENGTH(65534)
- MCFG_PALETTE_INIT(dcheese)
- MCFG_VIDEO_START(dcheese)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/dcon.c b/src/mame/drivers/dcon.c
index a89b6aece9f..6ad41b36733 100644
--- a/src/mame/drivers/dcon.c
+++ b/src/mame/drivers/dcon.c
@@ -268,7 +268,6 @@ static MACHINE_CONFIG_START( dcon, dcon_state )
MCFG_GFXDECODE(dcon)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(dcon)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(4000000,1320000)
@@ -296,7 +295,6 @@ static MACHINE_CONFIG_START( sdgndmps, dcon_state )
MCFG_GFXDECODE(dcon)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(dcon)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM2151_INTERFACE(14318180/4,1320000)
diff --git a/src/mame/drivers/dday.c b/src/mame/drivers/dday.c
index 74c1d2f0c81..c0e5d3f471e 100644
--- a/src/mame/drivers/dday.c
+++ b/src/mame/drivers/dday.c
@@ -234,25 +234,23 @@ GFXDECODE_END
-static MACHINE_START( dday )
+void dday_state::machine_start()
{
- dday_state *state = machine.driver_data<dday_state>();
- state->m_ay1 = machine.device("ay1");
+ m_ay1 = machine().device("ay1");
- state->save_item(NAME(state->m_control));
- state->save_item(NAME(state->m_sl_enable));
- state->save_item(NAME(state->m_sl_image));
- state->save_item(NAME(state->m_timer_value));
+ save_item(NAME(m_control));
+ save_item(NAME(m_sl_enable));
+ save_item(NAME(m_sl_image));
+ save_item(NAME(m_timer_value));
}
-static MACHINE_RESET( dday )
+void dday_state::machine_reset()
{
- dday_state *state = machine.driver_data<dday_state>();
- state->m_control = 0;
- state->m_sl_enable = 0;
- state->m_sl_image = 0;
+ m_control = 0;
+ m_sl_enable = 0;
+ m_sl_image = 0;
}
@@ -262,8 +260,6 @@ static MACHINE_CONFIG_START( dday, dday_state )
MCFG_CPU_ADD("maincpu", Z80, 2000000) /* 2 MHz ? */
MCFG_CPU_PROGRAM_MAP(dday_map)
- MCFG_MACHINE_START(dday)
- MCFG_MACHINE_RESET(dday)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -275,10 +271,8 @@ static MACHINE_CONFIG_START( dday, dday_state )
MCFG_GFXDECODE(dday)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(dday)
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
- MCFG_VIDEO_START(dday)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ddayjlc.c b/src/mame/drivers/ddayjlc.c
index d9ff323cec3..d792b12a757 100644
--- a/src/mame/drivers/ddayjlc.c
+++ b/src/mame/drivers/ddayjlc.c
@@ -101,6 +101,10 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(prot_r);
DECLARE_DRIVER_INIT(ddayjlc);
TILE_GET_INFO_MEMBER(get_tile_info_bg);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -379,10 +383,9 @@ TILE_GET_INFO_MEMBER(ddayjlc_state::get_tile_info_bg)
SET_TILE_INFO_MEMBER(2, code, color, 0);
}
-static VIDEO_START( ddayjlc )
+void ddayjlc_state::video_start()
{
- ddayjlc_state *state = machine.driver_data<ddayjlc_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddayjlc_state::get_tile_info_bg),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ddayjlc_state::get_tile_info_bg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
static SCREEN_UPDATE_IND16( ddayjlc )
@@ -447,47 +450,45 @@ static INTERRUPT_GEN( ddayjlc_snd_interrupt )
}
-static MACHINE_START( ddayjlc )
+void ddayjlc_state::machine_start()
{
- ddayjlc_state *state = machine.driver_data<ddayjlc_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_char_bank));
- state->save_item(NAME(state->m_bgadr));
- state->save_item(NAME(state->m_sound_nmi_enable));
- state->save_item(NAME(state->m_main_nmi_enable));
- state->save_item(NAME(state->m_prot_addr));
+ save_item(NAME(m_char_bank));
+ save_item(NAME(m_bgadr));
+ save_item(NAME(m_sound_nmi_enable));
+ save_item(NAME(m_main_nmi_enable));
+ save_item(NAME(m_prot_addr));
- state->save_item(NAME(state->m_e00x_l));
- state->save_item(NAME(state->m_e00x_d[0]));
- state->save_item(NAME(state->m_e00x_d[1]));
- state->save_item(NAME(state->m_e00x_d[2]));
- state->save_item(NAME(state->m_e00x_d[3]));
+ save_item(NAME(m_e00x_l));
+ save_item(NAME(m_e00x_d[0]));
+ save_item(NAME(m_e00x_d[1]));
+ save_item(NAME(m_e00x_d[2]));
+ save_item(NAME(m_e00x_d[3]));
}
-static MACHINE_RESET( ddayjlc )
+void ddayjlc_state::machine_reset()
{
- ddayjlc_state *state = machine.driver_data<ddayjlc_state>();
int i;
- state->m_char_bank = 0;
- state->m_bgadr = 0;
- state->m_sound_nmi_enable = 0;
- state->m_main_nmi_enable = 0;
- state->m_prot_addr = 0;
+ m_char_bank = 0;
+ m_bgadr = 0;
+ m_sound_nmi_enable = 0;
+ m_main_nmi_enable = 0;
+ m_prot_addr = 0;
for (i = 0; i < 4; i++)
{
- state->m_e00x_l[i] = 0;
- state->m_e00x_d[i][0] = 0;
- state->m_e00x_d[i][1] = 0;
+ m_e00x_l[i] = 0;
+ m_e00x_d[i][0] = 0;
+ m_e00x_d[i][1] = 0;
}
}
-static PALETTE_INIT( ddayjlc )
+void ddayjlc_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i,r,g,b,val;
int bit0,bit1,bit2;
@@ -508,7 +509,7 @@ static PALETTE_INIT( ddayjlc )
bit2 = (val >> 2) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -525,8 +526,6 @@ static MACHINE_CONFIG_START( ddayjlc, ddayjlc_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(ddayjlc)
- MCFG_MACHINE_RESET(ddayjlc)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -538,9 +537,7 @@ static MACHINE_CONFIG_START( ddayjlc, ddayjlc_state )
MCFG_GFXDECODE(ddayjlc)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT(ddayjlc)
- MCFG_VIDEO_START(ddayjlc)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ddealer.c b/src/mame/drivers/ddealer.c
index 3b742c950c0..ba8b85606b6 100644
--- a/src/mame/drivers/ddealer.c
+++ b/src/mame/drivers/ddealer.c
@@ -153,6 +153,9 @@ public:
DECLARE_READ16_MEMBER(ddealer_mcu_r);
DECLARE_DRIVER_INIT(ddealer);
TILE_GET_INFO_MEMBER(get_back_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -172,11 +175,10 @@ TILE_GET_INFO_MEMBER(ddealer_state::get_back_tile_info)
0);
}
-static VIDEO_START( ddealer )
+void ddealer_state::video_start()
{
- ddealer_state *state = machine.driver_data<ddealer_state>();
- state->m_flipscreen = 0;
- state->m_back_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddealer_state::get_back_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_flipscreen = 0;
+ m_back_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ddealer_state::get_back_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
}
static void ddealer_draw_video_layer( running_machine &machine, UINT16* vreg_base, UINT16* top, UINT16* bottom, bitmap_ind16 &bitmap, const rectangle &cliprect, int flipy)
@@ -598,24 +600,22 @@ static GFXDECODE_START( ddealer )
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0x100, 16 )
GFXDECODE_END
-static MACHINE_START( ddealer )
+void ddealer_state::machine_start()
{
- ddealer_state *state = machine.driver_data<ddealer_state>();
- state->save_item(NAME(state->m_respcount));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_input_pressed));
- state->save_item(NAME(state->m_coin_input));
+ save_item(NAME(m_respcount));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_input_pressed));
+ save_item(NAME(m_coin_input));
}
-static MACHINE_RESET (ddealer)
+void ddealer_state::machine_reset()
{
- ddealer_state *state = machine.driver_data<ddealer_state>();
- state->m_respcount = 0;
- state->m_flipscreen = 0;
- state->m_input_pressed = 0;
- state->m_coin_input = 0;
+ m_respcount = 0;
+ m_flipscreen = 0;
+ m_input_pressed = 0;
+ m_coin_input = 0;
}
static INTERRUPT_GEN( ddealer_interrupt )
@@ -632,8 +632,6 @@ static MACHINE_CONFIG_START( ddealer, ddealer_state )
// M50747 or NMK-110 8131 MCU
- MCFG_MACHINE_START(ddealer)
- MCFG_MACHINE_RESET(ddealer)
MCFG_GFXDECODE(ddealer)
@@ -646,7 +644,6 @@ static MACHINE_CONFIG_START( ddealer, ddealer_state )
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(ddealer)
MCFG_TIMER_ADD_PERIODIC("coinsim", ddealer_mcu_sim, attotime::from_hz(10000)) // not real, but for simulating the MCU
diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c
index ff34c73fbae..8f387805a1f 100644
--- a/src/mame/drivers/ddenlovr.c
+++ b/src/mame/drivers/ddenlovr.c
@@ -142,130 +142,126 @@ static const int ddenlovr_commands[8] = { BLIT_NEXT, BLIT_LINE, BLIT_COPY, BL
static const int hanakanz_commands[8] = { BLIT_NEXT, BLIT_CHANGE_PEN, BLIT_CHANGE_NUM, BLIT_UNKNOWN, BLIT_SKIP, BLIT_COPY, BLIT_LINE, BLIT_STOP };
static const int mjflove_commands[8] = { BLIT_STOP, BLIT_CHANGE_PEN, BLIT_CHANGE_NUM, BLIT_UNKNOWN, BLIT_SKIP, BLIT_COPY, BLIT_LINE, BLIT_NEXT };
-VIDEO_START( ddenlovr )
+VIDEO_START_MEMBER(dynax_state,ddenlovr)
{
- dynax_state *state = machine.driver_data<dynax_state>();
int i;
for (i = 0; i < 8; i++)
{
- state->m_ddenlovr_pixmap[i] = auto_alloc_array(machine, UINT8, 512 * 512);
- state->m_ddenlovr_scroll[i * 2 + 0] = state->m_ddenlovr_scroll[i * 2 + 1] = 0;
+ m_ddenlovr_pixmap[i] = auto_alloc_array(machine(), UINT8, 512 * 512);
+ m_ddenlovr_scroll[i * 2 + 0] = m_ddenlovr_scroll[i * 2 + 1] = 0;
}
- state->m_extra_layers = 0;
+ m_extra_layers = 0;
- state->m_ddenlovr_clip_ctrl = 0x0f;
- state->m_ddenlovr_layer_enable = state->m_ddenlovr_layer_enable2 = 0x0f;
- state->m_ddenlovr_blit_pen_mask = 0xff;
+ m_ddenlovr_clip_ctrl = 0x0f;
+ m_ddenlovr_layer_enable = m_ddenlovr_layer_enable2 = 0x0f;
+ m_ddenlovr_blit_pen_mask = 0xff;
// older games do not set these !?
- state->m_ddenlovr_clip_width = 0x400;
- state->m_ddenlovr_clip_height = 0x400;
+ m_ddenlovr_clip_width = 0x400;
+ m_ddenlovr_clip_height = 0x400;
- state->m_ddenlovr_blit_rom_bits = 8;
- state->m_ddenlovr_blit_commands = ddenlovr_commands;
+ m_ddenlovr_blit_rom_bits = 8;
+ m_ddenlovr_blit_commands = ddenlovr_commands;
/* init to 0 the remaining elements */
- state->m_ddenlovr_dest_layer = 0;
- state->m_ddenlovr_blit_flip = 0;
- state->m_ddenlovr_blit_x = 0;
- state->m_ddenlovr_blit_y = 0;
- state->m_ddenlovr_blit_address = 0;
- state->m_ddenlovr_blit_pen = 0;
- state->m_ddenlovr_blit_pen_mode = 0;
- state->m_ddenlovr_blitter_irq_flag = 0;
- state->m_ddenlovr_blitter_irq_enable = 0;
- state->m_ddenlovr_rect_width = 0;
- state->m_ddenlovr_rect_height = 0;
- state->m_ddenlovr_line_length = 0;
- state->m_ddenlovr_clip_x = 0;
- state->m_ddenlovr_clip_y = 0;
- state->m_ddenlovr_priority = 0;
- state->m_ddenlovr_priority2 = 0;
- state->m_ddenlovr_bgcolor = 0;
- state->m_ddenlovr_bgcolor2 = 0;
- state->m_ddenlovr_blit_latch = 0;
- state->m_ddenlovr_blit_regs[0] = 0;
- state->m_ddenlovr_blit_regs[1] = 0;
+ m_ddenlovr_dest_layer = 0;
+ m_ddenlovr_blit_flip = 0;
+ m_ddenlovr_blit_x = 0;
+ m_ddenlovr_blit_y = 0;
+ m_ddenlovr_blit_address = 0;
+ m_ddenlovr_blit_pen = 0;
+ m_ddenlovr_blit_pen_mode = 0;
+ m_ddenlovr_blitter_irq_flag = 0;
+ m_ddenlovr_blitter_irq_enable = 0;
+ m_ddenlovr_rect_width = 0;
+ m_ddenlovr_rect_height = 0;
+ m_ddenlovr_line_length = 0;
+ m_ddenlovr_clip_x = 0;
+ m_ddenlovr_clip_y = 0;
+ m_ddenlovr_priority = 0;
+ m_ddenlovr_priority2 = 0;
+ m_ddenlovr_bgcolor = 0;
+ m_ddenlovr_bgcolor2 = 0;
+ m_ddenlovr_blit_latch = 0;
+ m_ddenlovr_blit_regs[0] = 0;
+ m_ddenlovr_blit_regs[1] = 0;
for (i = 0; i < 8; i++)
{
- state->m_ddenlovr_palette_base[i] = 0;
- state->m_ddenlovr_palette_mask[i] = 0;
- state->m_ddenlovr_transparency_pen[i] = 0;
- state->m_ddenlovr_transparency_mask[i] = 0;
+ m_ddenlovr_palette_base[i] = 0;
+ m_ddenlovr_palette_mask[i] = 0;
+ m_ddenlovr_transparency_pen[i] = 0;
+ m_ddenlovr_transparency_mask[i] = 0;
}
/* register save states */
- state->save_item(NAME(state->m_ddenlovr_dest_layer));
- state->save_item(NAME(state->m_ddenlovr_blit_flip));
- state->save_item(NAME(state->m_ddenlovr_blit_x));
- state->save_item(NAME(state->m_ddenlovr_blit_y));
- state->save_item(NAME(state->m_ddenlovr_blit_address));
- state->save_item(NAME(state->m_ddenlovr_blit_pen));
- state->save_item(NAME(state->m_ddenlovr_blit_pen_mode));
- state->save_item(NAME(state->m_ddenlovr_blitter_irq_flag));
- state->save_item(NAME(state->m_ddenlovr_blitter_irq_enable));
- state->save_item(NAME(state->m_ddenlovr_rect_width));
- state->save_item(NAME(state->m_ddenlovr_rect_height));
- state->save_item(NAME(state->m_ddenlovr_clip_width));
- state->save_item(NAME(state->m_ddenlovr_clip_height));
- state->save_item(NAME(state->m_ddenlovr_line_length));
- state->save_item(NAME(state->m_ddenlovr_clip_ctrl));
- state->save_item(NAME(state->m_ddenlovr_clip_x));
- state->save_item(NAME(state->m_ddenlovr_clip_y));
- state->save_item(NAME(state->m_ddenlovr_scroll));
- state->save_item(NAME(state->m_ddenlovr_priority));
- state->save_item(NAME(state->m_ddenlovr_priority2));
- state->save_item(NAME(state->m_ddenlovr_bgcolor));
- state->save_item(NAME(state->m_ddenlovr_bgcolor2));
- state->save_item(NAME(state->m_ddenlovr_layer_enable));
- state->save_item(NAME(state->m_ddenlovr_layer_enable2));
- state->save_item(NAME(state->m_ddenlovr_palette_base));
- state->save_item(NAME(state->m_ddenlovr_palette_mask));
- state->save_item(NAME(state->m_ddenlovr_transparency_pen));
- state->save_item(NAME(state->m_ddenlovr_transparency_mask));
- state->save_item(NAME(state->m_ddenlovr_blit_latch));
- state->save_item(NAME(state->m_ddenlovr_blit_pen_mask));
- state->save_item(NAME(state->m_ddenlovr_blit_regs));
-
- state->save_pointer(NAME(state->m_ddenlovr_pixmap[0]), 512 * 512);
- state->save_pointer(NAME(state->m_ddenlovr_pixmap[1]), 512 * 512);
- state->save_pointer(NAME(state->m_ddenlovr_pixmap[2]), 512 * 512);
- state->save_pointer(NAME(state->m_ddenlovr_pixmap[3]), 512 * 512);
- state->save_pointer(NAME(state->m_ddenlovr_pixmap[4]), 512 * 512);
- state->save_pointer(NAME(state->m_ddenlovr_pixmap[5]), 512 * 512);
- state->save_pointer(NAME(state->m_ddenlovr_pixmap[6]), 512 * 512);
- state->save_pointer(NAME(state->m_ddenlovr_pixmap[7]), 512 * 512);
-}
-
-static VIDEO_START( mmpanic )
+ save_item(NAME(m_ddenlovr_dest_layer));
+ save_item(NAME(m_ddenlovr_blit_flip));
+ save_item(NAME(m_ddenlovr_blit_x));
+ save_item(NAME(m_ddenlovr_blit_y));
+ save_item(NAME(m_ddenlovr_blit_address));
+ save_item(NAME(m_ddenlovr_blit_pen));
+ save_item(NAME(m_ddenlovr_blit_pen_mode));
+ save_item(NAME(m_ddenlovr_blitter_irq_flag));
+ save_item(NAME(m_ddenlovr_blitter_irq_enable));
+ save_item(NAME(m_ddenlovr_rect_width));
+ save_item(NAME(m_ddenlovr_rect_height));
+ save_item(NAME(m_ddenlovr_clip_width));
+ save_item(NAME(m_ddenlovr_clip_height));
+ save_item(NAME(m_ddenlovr_line_length));
+ save_item(NAME(m_ddenlovr_clip_ctrl));
+ save_item(NAME(m_ddenlovr_clip_x));
+ save_item(NAME(m_ddenlovr_clip_y));
+ save_item(NAME(m_ddenlovr_scroll));
+ save_item(NAME(m_ddenlovr_priority));
+ save_item(NAME(m_ddenlovr_priority2));
+ save_item(NAME(m_ddenlovr_bgcolor));
+ save_item(NAME(m_ddenlovr_bgcolor2));
+ save_item(NAME(m_ddenlovr_layer_enable));
+ save_item(NAME(m_ddenlovr_layer_enable2));
+ save_item(NAME(m_ddenlovr_palette_base));
+ save_item(NAME(m_ddenlovr_palette_mask));
+ save_item(NAME(m_ddenlovr_transparency_pen));
+ save_item(NAME(m_ddenlovr_transparency_mask));
+ save_item(NAME(m_ddenlovr_blit_latch));
+ save_item(NAME(m_ddenlovr_blit_pen_mask));
+ save_item(NAME(m_ddenlovr_blit_regs));
+
+ save_pointer(NAME(m_ddenlovr_pixmap[0]), 512 * 512);
+ save_pointer(NAME(m_ddenlovr_pixmap[1]), 512 * 512);
+ save_pointer(NAME(m_ddenlovr_pixmap[2]), 512 * 512);
+ save_pointer(NAME(m_ddenlovr_pixmap[3]), 512 * 512);
+ save_pointer(NAME(m_ddenlovr_pixmap[4]), 512 * 512);
+ save_pointer(NAME(m_ddenlovr_pixmap[5]), 512 * 512);
+ save_pointer(NAME(m_ddenlovr_pixmap[6]), 512 * 512);
+ save_pointer(NAME(m_ddenlovr_pixmap[7]), 512 * 512);
+}
+
+VIDEO_START_MEMBER(dynax_state,mmpanic)
{
- dynax_state *state = machine.driver_data<dynax_state>();
- VIDEO_START_CALL(ddenlovr);
+ VIDEO_START_CALL_MEMBER(ddenlovr);
- state->m_extra_layers = 1;
+ m_extra_layers = 1;
}
-static VIDEO_START( hanakanz )
+VIDEO_START_MEMBER(dynax_state,hanakanz)
{
- dynax_state *state = machine.driver_data<dynax_state>();
- VIDEO_START_CALL(ddenlovr);
+ VIDEO_START_CALL_MEMBER(ddenlovr);
- state->m_ddenlovr_blit_rom_bits = 16;
- state->m_ddenlovr_blit_commands = hanakanz_commands;
+ m_ddenlovr_blit_rom_bits = 16;
+ m_ddenlovr_blit_commands = hanakanz_commands;
}
-static VIDEO_START( mjflove )
+VIDEO_START_MEMBER(dynax_state,mjflove)
{
- dynax_state *state = machine.driver_data<dynax_state>();
- VIDEO_START_CALL(ddenlovr);
+ VIDEO_START_CALL_MEMBER(ddenlovr);
- state->m_ddenlovr_blit_commands = mjflove_commands;
+ m_ddenlovr_blit_commands = mjflove_commands;
}
static void ddenlovr_flipscreen_w( UINT8 data )
@@ -8356,138 +8352,136 @@ INPUT_PORTS_END
***************************************************************************/
-static MACHINE_START( ddenlovr )
+MACHINE_START_MEMBER(dynax_state,ddenlovr)
{
- dynax_state *state = machine.driver_data<dynax_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_soundcpu = machine.device<cpu_device>("soundcpu");
- state->m_oki = machine.device<okim6295_device>("oki");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_soundcpu = machine().device<cpu_device>("soundcpu");
+ m_oki = machine().device<okim6295_device>("oki");
- state->save_item(NAME(state->m_input_sel));
- state->save_item(NAME(state->m_dsw_sel));
- state->save_item(NAME(state->m_keyb));
- state->save_item(NAME(state->m_coins));
- state->save_item(NAME(state->m_hopper));
+ save_item(NAME(m_input_sel));
+ save_item(NAME(m_dsw_sel));
+ save_item(NAME(m_keyb));
+ save_item(NAME(m_coins));
+ save_item(NAME(m_hopper));
- state->save_item(NAME(state->m_okibank));
- state->save_item(NAME(state->m_rongrong_blitter_busy_select));
+ save_item(NAME(m_okibank));
+ save_item(NAME(m_rongrong_blitter_busy_select));
- state->save_item(NAME(state->m_prot_val));
- state->save_item(NAME(state->m_prot_16));
- state->save_item(NAME(state->m_quiz365_protection));
+ save_item(NAME(m_prot_val));
+ save_item(NAME(m_prot_16));
+ save_item(NAME(m_quiz365_protection));
- state->save_item(NAME(state->m_mmpanic_leds));
- state->save_item(NAME(state->m_funkyfig_lockout));
- state->save_item(NAME(state->m_romdata));
- state->save_item(NAME(state->m_palette_index));
- state->save_item(NAME(state->m_hginga_rombank));
- state->save_item(NAME(state->m_mjflove_irq_cause));
- state->save_item(NAME(state->m_daimyojn_palette_sel));
- state->save_item(NAME(state->m_palram));
+ save_item(NAME(m_mmpanic_leds));
+ save_item(NAME(m_funkyfig_lockout));
+ save_item(NAME(m_romdata));
+ save_item(NAME(m_palette_index));
+ save_item(NAME(m_hginga_rombank));
+ save_item(NAME(m_mjflove_irq_cause));
+ save_item(NAME(m_daimyojn_palette_sel));
+ save_item(NAME(m_palram));
- state->save_item(NAME(state->m_irq_count));
+ save_item(NAME(m_irq_count));
}
-static MACHINE_RESET( ddenlovr )
+MACHINE_RESET_MEMBER(dynax_state,ddenlovr)
{
- dynax_state *state = machine.driver_data<dynax_state>();
- state->m_input_sel = 0;
- state->m_dsw_sel = 0;
- state->m_keyb = 0;
- state->m_coins = 0;
- state->m_hopper = 0;
+ m_input_sel = 0;
+ m_dsw_sel = 0;
+ m_keyb = 0;
+ m_coins = 0;
+ m_hopper = 0;
- state->m_okibank = 0;
- state->m_rongrong_blitter_busy_select = 0;
- state->m_prot_val = 0;
- state->m_prot_16 = 0;
- state->m_mmpanic_leds = 0;
- state->m_funkyfig_lockout = 0;
- state->m_palette_index = 0;
- state->m_hginga_rombank = 0;
- state->m_mjflove_irq_cause = 0;
- state->m_daimyojn_palette_sel = 0;
- state->m_irq_count = 0;
+ m_okibank = 0;
+ m_rongrong_blitter_busy_select = 0;
+ m_prot_val = 0;
+ m_prot_16 = 0;
+ m_mmpanic_leds = 0;
+ m_funkyfig_lockout = 0;
+ m_palette_index = 0;
+ m_hginga_rombank = 0;
+ m_mjflove_irq_cause = 0;
+ m_daimyojn_palette_sel = 0;
+ m_irq_count = 0;
- state->m_quiz365_protection[0] = 0;
- state->m_quiz365_protection[1] = 0;
- state->m_romdata[0] = 0;
- state->m_romdata[1] = 0;
+ m_quiz365_protection[0] = 0;
+ m_quiz365_protection[1] = 0;
+ m_romdata[0] = 0;
+ m_romdata[1] = 0;
- memset(state->m_palram, 0, ARRAY_LENGTH(state->m_palram));
+ memset(m_palram, 0, ARRAY_LENGTH(m_palram));
}
-static MACHINE_START( rongrong )
+MACHINE_START_MEMBER(dynax_state,rongrong)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 0x20, &ROM[0x010000], 0x8000);
- machine.root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x110000], 0x1000);
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 0x20, &ROM[0x010000], 0x8000);
+ machine().root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x110000], 0x1000);
- MACHINE_START_CALL(ddenlovr);
+ MACHINE_START_CALL_MEMBER(ddenlovr);
}
-static MACHINE_START( mmpanic )
+MACHINE_START_MEMBER(dynax_state,mmpanic)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000);
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000);
- MACHINE_START_CALL(ddenlovr);
+ MACHINE_START_CALL_MEMBER(ddenlovr);
}
-static MACHINE_START( funkyfig )
+MACHINE_START_MEMBER(dynax_state,funkyfig)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000);
- machine.root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000);
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000);
+ machine().root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000);
- MACHINE_START_CALL(ddenlovr);
+ MACHINE_START_CALL_MEMBER(ddenlovr);
}
-static MACHINE_START( hanakanz )
+MACHINE_START_MEMBER(dynax_state,hanakanz)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000);
- machine.root_device().membank("bank2")->configure_entries(0, 0x10, &ROM[0x90000], 0x1000);
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000);
+ machine().root_device().membank("bank2")->configure_entries(0, 0x10, &ROM[0x90000], 0x1000);
- MACHINE_START_CALL(ddenlovr);
+ MACHINE_START_CALL_MEMBER(ddenlovr);
}
-static MACHINE_START( mjmyster )
+MACHINE_START_MEMBER(dynax_state,mjmyster)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000);
- machine.root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000);
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000);
+ machine().root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000);
- MACHINE_START_CALL(ddenlovr);
+ MACHINE_START_CALL_MEMBER(ddenlovr);
}
-static MACHINE_START( hparadis )
+MACHINE_START_MEMBER(dynax_state,hparadis)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000);
- machine.root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x50000], 0x1000);
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000);
+ machine().root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x50000], 0x1000);
- MACHINE_START_CALL(ddenlovr);
+ MACHINE_START_CALL_MEMBER(ddenlovr);
}
-static MACHINE_START( mjflove )
+MACHINE_START_MEMBER(dynax_state,mjflove)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000);
- machine.root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000);
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000);
+ machine().root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000);
- MACHINE_START_CALL(ddenlovr);
+ MACHINE_START_CALL_MEMBER(ddenlovr);
}
-static MACHINE_START( sryudens )
+MACHINE_START_MEMBER(dynax_state,sryudens)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000);
- machine.root_device().membank("bank2")->configure_entries(0, 0x10, &ROM[0x90000], 0x1000);
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000);
+ machine().root_device().membank("bank2")->configure_entries(0, 0x10, &ROM[0x90000], 0x1000);
- MACHINE_START_CALL(ddenlovr);
+ MACHINE_START_CALL_MEMBER(ddenlovr);
}
/***************************************************************************
@@ -8507,8 +8501,8 @@ static MACHINE_CONFIG_START( ddenlovr, dynax_state )
MCFG_CPU_PROGRAM_MAP(ddenlovr_map)
MCFG_CPU_VBLANK_INT("screen", irq1_line_hold)
- MCFG_MACHINE_START(ddenlovr)
- MCFG_MACHINE_RESET(ddenlovr)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,ddenlovr)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,ddenlovr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8521,7 +8515,7 @@ static MACHINE_CONFIG_START( ddenlovr, dynax_state )
MCFG_PALETTE_LENGTH(0x100)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(ddenlovr)
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,ddenlovr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -8631,8 +8625,8 @@ static MACHINE_CONFIG_START( quizchq, dynax_state )
MCFG_CPU_IO_MAP(quizchq_portmap)
MCFG_CPU_VBLANK_INT("screen",quizchq_irq)
- MCFG_MACHINE_START(rongrong)
- MCFG_MACHINE_RESET(ddenlovr)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,rongrong)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,ddenlovr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8645,7 +8639,7 @@ static MACHINE_CONFIG_START( quizchq, dynax_state )
MCFG_PALETTE_LENGTH(0x100)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(ddenlovr)
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,ddenlovr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -8722,8 +8716,8 @@ static MACHINE_CONFIG_START( mmpanic, dynax_state )
MCFG_CPU_IO_MAP(mmpanic_sound_portmap)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold) // NMI by main cpu
- MCFG_MACHINE_START(mmpanic)
- MCFG_MACHINE_RESET(ddenlovr)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,mmpanic)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,ddenlovr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8736,7 +8730,7 @@ static MACHINE_CONFIG_START( mmpanic, dynax_state )
MCFG_PALETTE_LENGTH(0x100)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(mmpanic) // extra layers
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,mmpanic) // extra layers
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -8806,8 +8800,8 @@ static MACHINE_CONFIG_START( hanakanz, dynax_state )
MCFG_CPU_IO_MAP(hanakanz_portmap)
MCFG_CPU_VBLANK_INT("screen", hanakanz_irq)
- MCFG_MACHINE_START(hanakanz)
- MCFG_MACHINE_RESET(ddenlovr)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,hanakanz)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,ddenlovr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8820,7 +8814,7 @@ static MACHINE_CONFIG_START( hanakanz, dynax_state )
MCFG_PALETTE_LENGTH(0x200)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(hanakanz) // blitter commands in the roms are shuffled around
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,hanakanz) // blitter commands in the roms are shuffled around
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -8912,7 +8906,7 @@ static MACHINE_CONFIG_DERIVED( funkyfig, mmpanic )
MCFG_CPU_IO_MAP(funkyfig_portmap)
MCFG_CPU_VBLANK_INT("screen",mjchuuka_irq)
- MCFG_MACHINE_START(funkyfig)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,funkyfig)
MCFG_DEVICE_MODIFY("rtc")
MCFG_DEVICE_CONFIG(mjchuuka_rtc_intf)
@@ -8920,7 +8914,7 @@ static MACHINE_CONFIG_DERIVED( funkyfig, mmpanic )
MCFG_CPU_MODIFY("soundcpu")
MCFG_CPU_IO_MAP(funkyfig_sound_portmap)
- MCFG_VIDEO_START(ddenlovr) // no extra layers?
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,ddenlovr) // no extra layers?
MACHINE_CONFIG_END
@@ -9000,7 +8994,7 @@ static MACHINE_CONFIG_DERIVED( mjmyster, quizchq )
MCFG_DEVICE_MODIFY("rtc")
MCFG_DEVICE_CONFIG(mjmyster_rtc_intf)
- MCFG_MACHINE_START(mjmyster)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,mjmyster)
MCFG_SOUND_ADD("aysnd", AY8910, 3579545)
MCFG_SOUND_CONFIG(mjmyster_ay8910_interface)
@@ -9070,7 +9064,7 @@ static MACHINE_CONFIG_DERIVED( hginga, quizchq )
MCFG_DEVICE_MODIFY("rtc")
MCFG_DEVICE_CONFIG(hginga_rtc_intf)
- MCFG_MACHINE_START(mjmyster)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,mjmyster)
MCFG_SOUND_ADD("aysnd", AY8910, 3579545)
MCFG_SOUND_CONFIG(hginga_ay8910_interface)
@@ -9088,7 +9082,7 @@ static MACHINE_CONFIG_DERIVED( hgokou, quizchq )
MCFG_DEVICE_MODIFY("rtc")
MCFG_DEVICE_CONFIG(hginga_rtc_intf)
- MCFG_MACHINE_START(mjmyster)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,mjmyster)
MCFG_SOUND_ADD("aysnd", AY8910, 3579545)
MCFG_SOUND_CONFIG(hginga_ay8910_interface)
@@ -9121,7 +9115,7 @@ static MACHINE_CONFIG_DERIVED( mjmyuniv, quizchq )
MCFG_CPU_IO_MAP(mjmyster_portmap)
MCFG_TIMER_ADD_SCANLINE("scantimer", mjmyster_irq, "screen", 0, 1)
- MCFG_MACHINE_START(mjmyster)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,mjmyster)
MCFG_DEVICE_MODIFY("rtc")
MCFG_DEVICE_CONFIG(mjmyster_rtc_intf)
@@ -9141,7 +9135,7 @@ static MACHINE_CONFIG_DERIVED( mjmyornt, quizchq )
MCFG_CPU_IO_MAP(mjmyster_portmap)
MCFG_TIMER_ADD_SCANLINE("scantimer", mjmyster_irq, "screen", 0, 1)
- MCFG_MACHINE_START(mjmyster)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,mjmyster)
MCFG_DEVICE_MODIFY("rtc")
MCFG_DEVICE_CONFIG(mjmyster_rtc_intf)
@@ -9183,12 +9177,12 @@ static MACHINE_CONFIG_DERIVED( mjflove, quizchq )
MCFG_CPU_IO_MAP(mjflove_portmap)
MCFG_CPU_VBLANK_INT("screen",mjflove_irq)
- MCFG_MACHINE_START(mjflove)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,mjflove)
MCFG_DEVICE_MODIFY("rtc")
MCFG_DEVICE_CONFIG(mjflove_rtc_intf)
- MCFG_VIDEO_START(mjflove) // blitter commands in the roms are shuffled around
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,mjflove) // blitter commands in the roms are shuffled around
MCFG_SOUND_ADD("aysnd", AY8910, 28636363/8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
@@ -9209,7 +9203,7 @@ static MACHINE_CONFIG_DERIVED( hparadis, quizchq )
MCFG_CPU_IO_MAP(hparadis_portmap)
MCFG_CPU_VBLANK_INT("screen", hparadis_irq)
- MCFG_MACHINE_START(hparadis)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,hparadis)
MACHINE_CONFIG_END
@@ -9222,8 +9216,8 @@ static MACHINE_CONFIG_START( jongtei, dynax_state )
MCFG_CPU_IO_MAP(jongtei_portmap)
MCFG_CPU_VBLANK_INT("screen", hanakanz_irq)
- MCFG_MACHINE_START(hanakanz)
- MCFG_MACHINE_RESET(ddenlovr)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,hanakanz)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,ddenlovr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -9236,7 +9230,7 @@ static MACHINE_CONFIG_START( jongtei, dynax_state )
MCFG_PALETTE_LENGTH(0x200)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(hanakanz) // blitter commands in the roms are shuffled around
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,hanakanz) // blitter commands in the roms are shuffled around
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -9263,8 +9257,8 @@ static MACHINE_CONFIG_START( sryudens, dynax_state )
MCFG_CPU_IO_MAP(sryudens_portmap)
MCFG_CPU_VBLANK_INT("screen",mjchuuka_irq)
- MCFG_MACHINE_START(sryudens)
- MCFG_MACHINE_RESET(ddenlovr)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,sryudens)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,ddenlovr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -9277,7 +9271,7 @@ static MACHINE_CONFIG_START( sryudens, dynax_state )
MCFG_PALETTE_LENGTH(0x100)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(mjflove) // blitter commands in the roms are shuffled around
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,mjflove) // blitter commands in the roms are shuffled around
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -9308,8 +9302,8 @@ static MACHINE_CONFIG_START( janshinp, dynax_state )
MCFG_CPU_IO_MAP(janshinp_portmap)
MCFG_CPU_VBLANK_INT("screen",mjchuuka_irq)
- MCFG_MACHINE_START(hanakanz)
- MCFG_MACHINE_RESET(ddenlovr)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,hanakanz)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,ddenlovr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -9322,7 +9316,7 @@ static MACHINE_CONFIG_START( janshinp, dynax_state )
MCFG_PALETTE_LENGTH(0x100)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(ddenlovr)
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,ddenlovr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -9343,7 +9337,7 @@ MACHINE_CONFIG_END
// Same PCB as janshinp
static MACHINE_CONFIG_DERIVED( dtoyoken, janshinp )
- MCFG_VIDEO_START(mjflove) // blitter commands in the roms are shuffled around
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,mjflove) // blitter commands in the roms are shuffled around
MACHINE_CONFIG_END
@@ -9360,18 +9354,18 @@ static const ay8910_interface seljan2_ay8910_interface =
DEVCB_NULL, DEVCB_HANDLER(ddenlovr_select_w) // W
};
-static MACHINE_START( seljan2 )
+MACHINE_START_MEMBER(dynax_state,seljan2)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0x00, 0x10, &ROM[0x10000], 0x8000);
+ machine().root_device().membank("bank1")->configure_entries(0x00, 0x10, &ROM[0x10000], 0x8000);
// banks 10-1f -> palette RAM
for (int i = 0; i < 0x10; i++)
- machine.root_device().membank("bank1")->configure_entries(0x10+i, 1, &ROM[0x90000], 0x8000);
+ machine().root_device().membank("bank1")->configure_entries(0x10+i, 1, &ROM[0x90000], 0x8000);
- machine.root_device().membank("bank2")->configure_entries(0, 0x10, &ROM[0x98000], 0x1000);
+ machine().root_device().membank("bank2")->configure_entries(0, 0x10, &ROM[0x98000], 0x1000);
- MACHINE_START_CALL(ddenlovr);
+ MACHINE_START_CALL_MEMBER(ddenlovr);
}
static MACHINE_CONFIG_START( seljan2, dynax_state )
@@ -9382,8 +9376,8 @@ static MACHINE_CONFIG_START( seljan2, dynax_state )
MCFG_CPU_IO_MAP(seljan2_portmap)
MCFG_CPU_VBLANK_INT("screen",mjchuuka_irq)
- MCFG_MACHINE_START(seljan2)
- MCFG_MACHINE_RESET(ddenlovr)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,seljan2)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,ddenlovr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -9396,7 +9390,7 @@ static MACHINE_CONFIG_START( seljan2, dynax_state )
MCFG_PALETTE_LENGTH(0x100)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(mjflove) // blitter commands in the roms are shuffled around
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,mjflove) // blitter commands in the roms are shuffled around
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -9429,8 +9423,8 @@ static MACHINE_CONFIG_START( daimyojn, dynax_state )
MCFG_CPU_IO_MAP(daimyojn_portmap)
MCFG_CPU_VBLANK_INT("screen", hanakanz_irq)
- MCFG_MACHINE_START(mjflove)
- MCFG_MACHINE_RESET(ddenlovr)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,mjflove)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,ddenlovr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -9443,7 +9437,7 @@ static MACHINE_CONFIG_START( daimyojn, dynax_state )
MCFG_PALETTE_LENGTH(0x200)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(hanakanz) // blitter commands in the roms are shuffled around
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,hanakanz) // blitter commands in the roms are shuffled around
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ddragon.c b/src/mame/drivers/ddragon.c
index e42667b7e84..d4fb3043f1f 100644
--- a/src/mame/drivers/ddragon.c
+++ b/src/mame/drivers/ddragon.c
@@ -145,41 +145,39 @@ static TIMER_DEVICE_CALLBACK( ddragon_scanline )
*
*************************************/
-static MACHINE_START( ddragon )
+MACHINE_START_MEMBER(ddragon_state,ddragon)
{
- ddragon_state *state = machine.driver_data<ddragon_state>();
/* configure banks */
- state->membank("bank1")->configure_entries(0, 8, state->memregion("maincpu")->base() + 0x10000, 0x4000);
+ membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_sub_cpu = machine.device("sub");
- state->m_snd_cpu = machine.device("soundcpu");
- state->m_adpcm_1 = machine.device("adpcm1");
- state->m_adpcm_2 = machine.device("adpcm2");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_sub_cpu = machine().device("sub");
+ m_snd_cpu = machine().device("soundcpu");
+ m_adpcm_1 = machine().device("adpcm1");
+ m_adpcm_2 = machine().device("adpcm2");
/* register for save states */
- state->save_item(NAME(state->m_dd_sub_cpu_busy));
- state->save_item(NAME(state->m_scrollx_hi));
- state->save_item(NAME(state->m_scrolly_hi));
- state->save_item(NAME(state->m_adpcm_pos));
- state->save_item(NAME(state->m_adpcm_end));
- state->save_item(NAME(state->m_adpcm_idle));
- state->save_item(NAME(state->m_adpcm_data));
+ save_item(NAME(m_dd_sub_cpu_busy));
+ save_item(NAME(m_scrollx_hi));
+ save_item(NAME(m_scrolly_hi));
+ save_item(NAME(m_adpcm_pos));
+ save_item(NAME(m_adpcm_end));
+ save_item(NAME(m_adpcm_idle));
+ save_item(NAME(m_adpcm_data));
}
-static MACHINE_RESET( ddragon )
+MACHINE_RESET_MEMBER(ddragon_state,ddragon)
{
- ddragon_state *state = machine.driver_data<ddragon_state>();
-
- state->m_dd_sub_cpu_busy = 1;
- state->m_adpcm_pos[0] = state->m_adpcm_pos[1] = 0;
- state->m_adpcm_end[0] = state->m_adpcm_end[1] = 0;
- state->m_adpcm_idle[0] = state->m_adpcm_idle[1] = 1;
- state->m_adpcm_data[0] = state->m_adpcm_data[1] = -1;
- state->m_scrollx_hi = 0;
- state->m_scrolly_hi = 0;
+
+ m_dd_sub_cpu_busy = 1;
+ m_adpcm_pos[0] = m_adpcm_pos[1] = 0;
+ m_adpcm_end[0] = m_adpcm_end[1] = 0;
+ m_adpcm_idle[0] = m_adpcm_idle[1] = 1;
+ m_adpcm_data[0] = m_adpcm_data[1] = -1;
+ m_scrollx_hi = 0;
+ m_scrolly_hi = 0;
}
@@ -978,8 +976,8 @@ static MACHINE_CONFIG_START( ddragon, ddragon_state )
MCFG_QUANTUM_TIME(attotime::from_hz(60000)) /* heavy interleaving to sync up sprite<->main cpu's */
- MCFG_MACHINE_START(ddragon)
- MCFG_MACHINE_RESET(ddragon)
+ MCFG_MACHINE_START_OVERRIDE(ddragon_state,ddragon)
+ MCFG_MACHINE_RESET_OVERRIDE(ddragon_state,ddragon)
/* video hardware */
MCFG_GFXDECODE(ddragon)
@@ -989,7 +987,7 @@ static MACHINE_CONFIG_START( ddragon, ddragon_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(ddragon)
- MCFG_VIDEO_START(ddragon)
+ MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1041,8 +1039,8 @@ static MACHINE_CONFIG_START( ddragon6809, ddragon_state )
MCFG_QUANTUM_TIME(attotime::from_hz(60000)) /* heavy interleaving to sync up sprite<->main cpu's */
- MCFG_MACHINE_START(ddragon)
- MCFG_MACHINE_RESET(ddragon)
+ MCFG_MACHINE_START_OVERRIDE(ddragon_state,ddragon)
+ MCFG_MACHINE_RESET_OVERRIDE(ddragon_state,ddragon)
/* video hardware */
MCFG_GFXDECODE(ddragon)
@@ -1052,7 +1050,7 @@ static MACHINE_CONFIG_START( ddragon6809, ddragon_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(ddragon)
- MCFG_VIDEO_START(ddragon)
+ MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1087,8 +1085,8 @@ static MACHINE_CONFIG_START( ddragon2, ddragon_state )
MCFG_QUANTUM_TIME(attotime::from_hz(60000)) /* heavy interleaving to sync up sprite<->main cpu's */
- MCFG_MACHINE_START(ddragon)
- MCFG_MACHINE_RESET(ddragon)
+ MCFG_MACHINE_START_OVERRIDE(ddragon_state,ddragon)
+ MCFG_MACHINE_RESET_OVERRIDE(ddragon_state,ddragon)
/* video hardware */
MCFG_GFXDECODE(ddragon)
@@ -1098,7 +1096,7 @@ static MACHINE_CONFIG_START( ddragon2, ddragon_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(ddragon)
- MCFG_VIDEO_START(ddragon)
+ MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c
index 928bdba44c7..5571cf52db2 100644
--- a/src/mame/drivers/ddragon3.c
+++ b/src/mame/drivers/ddragon3.c
@@ -558,36 +558,34 @@ static TIMER_DEVICE_CALLBACK( ddragon3_scanline )
*
*************************************/
-static MACHINE_START( ddragon3 )
+void ddragon3_state::machine_start()
{
- ddragon3_state *state = machine.driver_data<ddragon3_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
-
- state->save_item(NAME(state->m_vreg));
- state->save_item(NAME(state->m_bg_scrollx));
- state->save_item(NAME(state->m_bg_scrolly));
- state->save_item(NAME(state->m_fg_scrollx));
- state->save_item(NAME(state->m_fg_scrolly));
- state->save_item(NAME(state->m_bg_tilebase));
- state->save_item(NAME(state->m_io_reg));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+
+ save_item(NAME(m_vreg));
+ save_item(NAME(m_bg_scrollx));
+ save_item(NAME(m_bg_scrolly));
+ save_item(NAME(m_fg_scrollx));
+ save_item(NAME(m_fg_scrolly));
+ save_item(NAME(m_bg_tilebase));
+ save_item(NAME(m_io_reg));
}
-static MACHINE_RESET( ddragon3 )
+void ddragon3_state::machine_reset()
{
- ddragon3_state *state = machine.driver_data<ddragon3_state>();
int i;
- state->m_vreg = 0;
- state->m_bg_scrollx = 0;
- state->m_bg_scrolly = 0;
- state->m_fg_scrollx = 0;
- state->m_fg_scrolly = 0;
- state->m_bg_tilebase = 0;
+ m_vreg = 0;
+ m_bg_scrollx = 0;
+ m_bg_scrolly = 0;
+ m_fg_scrollx = 0;
+ m_fg_scrolly = 0;
+ m_bg_tilebase = 0;
for (i = 0; i < 8; i++)
- state->m_io_reg[i] = 0;
+ m_io_reg[i] = 0;
}
static MACHINE_CONFIG_START( ddragon3, ddragon3_state )
@@ -600,8 +598,6 @@ static MACHINE_CONFIG_START( ddragon3, ddragon3_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(ddragon3)
- MCFG_MACHINE_RESET(ddragon3)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -611,7 +607,6 @@ static MACHINE_CONFIG_START( ddragon3, ddragon3_state )
MCFG_GFXDECODE(ddragon3)
MCFG_PALETTE_LENGTH(768)
- MCFG_VIDEO_START(ddragon3)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/ddribble.c b/src/mame/drivers/ddribble.c
index bab36d9ff6f..85bca3ad893 100644
--- a/src/mame/drivers/ddribble.c
+++ b/src/mame/drivers/ddribble.c
@@ -245,38 +245,36 @@ static const vlm5030_interface vlm5030_config =
-static MACHINE_START( ddribble )
+void ddribble_state::machine_start()
{
- ddribble_state *state = machine.driver_data<ddribble_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 5, &ROM[0x10000], 0x2000);
-
- state->m_filter1 = machine.device("filter1");
- state->m_filter2 = machine.device("filter2");
- state->m_filter3 = machine.device("filter3");
-
- state->save_item(NAME(state->m_int_enable_0));
- state->save_item(NAME(state->m_int_enable_1));
- state->save_item(NAME(state->m_vregs[0]));
- state->save_item(NAME(state->m_vregs[1]));
- state->save_item(NAME(state->m_charbank));
+ UINT8 *ROM = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 5, &ROM[0x10000], 0x2000);
+
+ m_filter1 = machine().device("filter1");
+ m_filter2 = machine().device("filter2");
+ m_filter3 = machine().device("filter3");
+
+ save_item(NAME(m_int_enable_0));
+ save_item(NAME(m_int_enable_1));
+ save_item(NAME(m_vregs[0]));
+ save_item(NAME(m_vregs[1]));
+ save_item(NAME(m_charbank));
}
-static MACHINE_RESET( ddribble )
+void ddribble_state::machine_reset()
{
- ddribble_state *state = machine.driver_data<ddribble_state>();
int i;
for (i = 0; i < 5; i++)
{
- state->m_vregs[0][i] = 0;
- state->m_vregs[1][i] = 0;
+ m_vregs[0][i] = 0;
+ m_vregs[1][i] = 0;
}
- state->m_int_enable_0 = 0;
- state->m_int_enable_1 = 0;
- state->m_charbank[0] = 0;
- state->m_charbank[1] = 0;
+ m_int_enable_0 = 0;
+ m_int_enable_1 = 0;
+ m_charbank[0] = 0;
+ m_charbank[1] = 0;
}
static MACHINE_CONFIG_START( ddribble, ddribble_state )
@@ -295,8 +293,6 @@ static MACHINE_CONFIG_START( ddribble, ddribble_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* we need heavy synch */
- MCFG_MACHINE_START(ddribble)
- MCFG_MACHINE_RESET(ddribble)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -311,8 +307,6 @@ static MACHINE_CONFIG_START( ddribble, ddribble_state )
MCFG_GFXDECODE(ddribble)
MCFG_PALETTE_LENGTH(64 + 256)
- MCFG_PALETTE_INIT(ddribble)
- MCFG_VIDEO_START(ddribble)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ddz.c b/src/mame/drivers/ddz.c
index 80cffa447ef..e473dcc7793 100644
--- a/src/mame/drivers/ddz.c
+++ b/src/mame/drivers/ddz.c
@@ -22,6 +22,7 @@ public:
ddz_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
+ virtual void video_start();
};
@@ -29,7 +30,7 @@ static ADDRESS_MAP_START( ddz_mem, AS_PROGRAM, 32, ddz_state )
AM_RANGE(0x00000000, 0x003fffff) AM_ROM AM_WRITENOP
ADDRESS_MAP_END
-static VIDEO_START(ddz)
+void ddz_state::video_start()
{
}
@@ -65,7 +66,7 @@ static MACHINE_CONFIG_START( ddz, ddz_state )
MCFG_CPU_PROGRAM_MAP(ddz_mem)
MCFG_CPU_VBLANK_INT("screen", ddz_interrupt)
- //MCFG_MACHINE_RESET(ddz)
+ //MCFG_MACHINE_RESET_OVERRIDE(ddz_state,ddz)
//MCFG_NVRAM_ADD_0FILL("nvram")
@@ -79,7 +80,6 @@ static MACHINE_CONFIG_START( ddz, ddz_state )
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(ddz)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/deadang.c b/src/mame/drivers/deadang.c
index 18ce8d04f9b..49d89a689d9 100644
--- a/src/mame/drivers/deadang.c
+++ b/src/mame/drivers/deadang.c
@@ -258,7 +258,6 @@ static MACHINE_CONFIG_START( deadang, deadang_state )
MCFG_GFXDECODE(deadang)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(deadang)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM2203_INTERFACE(XTAL_14_31818MHz/4)
diff --git a/src/mame/drivers/dec0.c b/src/mame/drivers/dec0.c
index dcd60b89f14..1dc9a965c70 100644
--- a/src/mame/drivers/dec0.c
+++ b/src/mame/drivers/dec0.c
@@ -1324,7 +1324,7 @@ static MACHINE_CONFIG_START( dec0_base, dec0_state )
MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
deco_mxc06_device::set_gfx_region(*device, 3);
- MCFG_VIDEO_START(dec0)
+ MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( dec0_base_sound, dec0_base )
@@ -1414,7 +1414,7 @@ static MACHINE_CONFIG_START( automat, dec0_automat_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
MCFG_SCREEN_UPDATE_STATIC(automat)
- MCFG_VIDEO_START(dec0_nodma)
+ MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
deco_bac06_device::set_gfx_region_wide(*device, 0,0,0);
@@ -1467,7 +1467,7 @@ static MACHINE_CONFIG_START( secretab, dec0_automat_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
MCFG_SCREEN_UPDATE_STATIC(secretab)
- MCFG_VIDEO_START(dec0_nodma)
+ MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
deco_bac06_device::set_gfx_region_wide(*device, 0,0,0);
@@ -1638,10 +1638,10 @@ static MACHINE_CONFIG_DERIVED( hippodrm, dec0_base_sound )
MCFG_SCREEN_UPDATE_STATIC(hippodrm)
MACHINE_CONFIG_END
-static MACHINE_RESET( slyspy )
+MACHINE_RESET_MEMBER(dec0_state,slyspy)
{
// set initial memory map
- slyspy_set_protection_map(machine, 0);
+ slyspy_set_protection_map(machine(), 0);
}
static MACHINE_CONFIG_DERIVED( slyspy, dec0_base_sound_alt )
@@ -1663,9 +1663,9 @@ static MACHINE_CONFIG_DERIVED( slyspy, dec0_base_sound_alt )
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_STATIC(slyspy)
- MCFG_VIDEO_START(dec0_nodma)
+ MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
- MCFG_MACHINE_RESET(slyspy)
+ MCFG_MACHINE_RESET_OVERRIDE(dec0_state,slyspy)
MACHINE_CONFIG_END
@@ -1691,7 +1691,7 @@ static MACHINE_CONFIG_DERIVED( midres, dec0_base_sound_alt )
MCFG_SCREEN_UPDATE_STATIC(midres)
MCFG_GFXDECODE(midres)
- MCFG_VIDEO_START(dec0_nodma)
+ MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( midresb, midres )
diff --git a/src/mame/drivers/dec8.c b/src/mame/drivers/dec8.c
index 2a509e56485..943d9fd42d4 100644
--- a/src/mame/drivers/dec8.c
+++ b/src/mame/drivers/dec8.c
@@ -1978,56 +1978,54 @@ static INTERRUPT_GEN( oscar_interrupt )
/******************************************************************************/
-static MACHINE_START( dec8 )
+void dec8_state::machine_start()
{
- dec8_state *state = machine.driver_data<dec8_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_mcu = machine.device("mcu");
-
- state->save_item(NAME(state->m_latch));
- state->save_item(NAME(state->m_nmi_enable));
- state->save_item(NAME(state->m_i8751_port0));
- state->save_item(NAME(state->m_i8751_port1));
- state->save_item(NAME(state->m_i8751_return));
- state->save_item(NAME(state->m_i8751_value));
- state->save_item(NAME(state->m_coinage_id));
- state->save_item(NAME(state->m_coin1));
- state->save_item(NAME(state->m_coin2));
- state->save_item(NAME(state->m_need1));
- state->save_item(NAME(state->m_need2));
- state->save_item(NAME(state->m_cred1));
- state->save_item(NAME(state->m_cred2));
- state->save_item(NAME(state->m_credits));
- state->save_item(NAME(state->m_snd));
- state->save_item(NAME(state->m_msm5205next));
- state->save_item(NAME(state->m_toggle));
-
- state->save_item(NAME(state->m_scroll2));
- state->save_item(NAME(state->m_bg_control));
- state->save_item(NAME(state->m_pf1_control));
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_subcpu = machine().device<cpu_device>("sub");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_mcu = machine().device("mcu");
+
+ save_item(NAME(m_latch));
+ save_item(NAME(m_nmi_enable));
+ save_item(NAME(m_i8751_port0));
+ save_item(NAME(m_i8751_port1));
+ save_item(NAME(m_i8751_return));
+ save_item(NAME(m_i8751_value));
+ save_item(NAME(m_coinage_id));
+ save_item(NAME(m_coin1));
+ save_item(NAME(m_coin2));
+ save_item(NAME(m_need1));
+ save_item(NAME(m_need2));
+ save_item(NAME(m_cred1));
+ save_item(NAME(m_cred2));
+ save_item(NAME(m_credits));
+ save_item(NAME(m_snd));
+ save_item(NAME(m_msm5205next));
+ save_item(NAME(m_toggle));
+
+ save_item(NAME(m_scroll2));
+ save_item(NAME(m_bg_control));
+ save_item(NAME(m_pf1_control));
}
-static MACHINE_RESET( dec8 )
+void dec8_state::machine_reset()
{
- dec8_state *state = machine.driver_data<dec8_state>();
int i;
- state->m_nmi_enable = state->m_i8751_port0 = state->m_i8751_port1 = 0;
- state->m_i8751_return = state->m_i8751_value = 0;
- state->m_coinage_id = 0;
- state->m_coin1 = state->m_coin2 = state->m_credits = state->m_snd = 0;
- state->m_need1 = state->m_need2 = state->m_cred1 = state->m_cred2 = 1;
- state->m_msm5205next = 0;
- state->m_toggle = 0;
+ m_nmi_enable = m_i8751_port0 = m_i8751_port1 = 0;
+ m_i8751_return = m_i8751_value = 0;
+ m_coinage_id = 0;
+ m_coin1 = m_coin2 = m_credits = m_snd = 0;
+ m_need1 = m_need2 = m_cred1 = m_cred2 = 1;
+ m_msm5205next = 0;
+ m_toggle = 0;
- state->m_scroll2[0] = state->m_scroll2[1] = state->m_scroll2[2] = state->m_scroll2[3] = 0;
+ m_scroll2[0] = m_scroll2[1] = m_scroll2[2] = m_scroll2[3] = 0;
for (i = 0; i < 0x20; i++)
{
- state->m_bg_control[i] = 0;
- state->m_pf1_control[i] = 0;
+ m_bg_control[i] = 0;
+ m_pf1_control[i] = 0;
}
}
@@ -2046,8 +2044,6 @@ static MACHINE_CONFIG_START( lastmisn, dec8_state )
/* NMIs are caused by the main CPU */
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
- MCFG_MACHINE_START(dec8)
- MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -2065,7 +2061,7 @@ static MACHINE_CONFIG_START( lastmisn, dec8_state )
MCFG_GFXDECODE(shackled)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(lastmisn)
+ MCFG_VIDEO_START_OVERRIDE(dec8_state,lastmisn)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2095,8 +2091,6 @@ static MACHINE_CONFIG_START( shackled, dec8_state )
/* NMIs are caused by the main CPU */
MCFG_QUANTUM_TIME(attotime::from_hz(4800))
- MCFG_MACHINE_START(dec8)
- MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -2114,7 +2108,7 @@ static MACHINE_CONFIG_START( shackled, dec8_state )
MCFG_GFXDECODE(shackled)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(shackled)
+ MCFG_VIDEO_START_OVERRIDE(dec8_state,shackled)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2144,8 +2138,6 @@ static MACHINE_CONFIG_START( gondo, dec8_state )
MCFG_CPU_ADD("mcu", I8751, XTAL_8MHz)
MCFG_CPU_IO_MAP(dec8_mcu_io_map)
- MCFG_MACHINE_START(dec8)
- MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -2164,7 +2156,7 @@ static MACHINE_CONFIG_START( gondo, dec8_state )
MCFG_GFXDECODE(gondo)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(gondo)
+ MCFG_VIDEO_START_OVERRIDE(dec8_state,gondo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2194,8 +2186,6 @@ static MACHINE_CONFIG_START( garyoret, dec8_state )
MCFG_CPU_ADD("mcu", I8751, XTAL_8MHz)
MCFG_CPU_IO_MAP(dec8_mcu_io_map)
- MCFG_MACHINE_START(dec8)
- MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -2214,7 +2204,7 @@ static MACHINE_CONFIG_START( garyoret, dec8_state )
MCFG_GFXDECODE(gondo)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(garyoret)
+ MCFG_VIDEO_START_OVERRIDE(dec8_state,garyoret)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2244,8 +2234,6 @@ static MACHINE_CONFIG_START( ghostb, dec8_state )
MCFG_CPU_ADD("mcu", I8751, 3000000*4)
MCFG_CPU_IO_MAP(dec8_mcu_io_map)
- MCFG_MACHINE_START(dec8)
- MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -2267,8 +2255,8 @@ static MACHINE_CONFIG_START( ghostb, dec8_state )
MCFG_GFXDECODE(ghostb)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(ghostb)
- MCFG_VIDEO_START(ghostb)
+ MCFG_PALETTE_INIT_OVERRIDE(dec8_state,ghostb)
+ MCFG_VIDEO_START_OVERRIDE(dec8_state,ghostb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2299,8 +2287,6 @@ static MACHINE_CONFIG_START( csilver, dec8_state )
/* NMIs are caused by the main CPU */
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(dec8)
- MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -2318,7 +2304,7 @@ static MACHINE_CONFIG_START( csilver, dec8_state )
MCFG_GFXDECODE(shackled)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(lastmisn)
+ MCFG_VIDEO_START_OVERRIDE(dec8_state,lastmisn)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2353,8 +2339,6 @@ static MACHINE_CONFIG_START( oscar, dec8_state )
/* NMIs are caused by the main CPU */
MCFG_QUANTUM_TIME(attotime::from_hz(2400)) /* 40 CPU slices per frame */
- MCFG_MACHINE_START(dec8)
- MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -2375,7 +2359,7 @@ static MACHINE_CONFIG_START( oscar, dec8_state )
MCFG_GFXDECODE(oscar)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(oscar)
+ MCFG_VIDEO_START_OVERRIDE(dec8_state,oscar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2402,8 +2386,6 @@ static MACHINE_CONFIG_START( srdarwin, dec8_state )
MCFG_CPU_PROGRAM_MAP(dec8_s_map)
/* NMIs are caused by the main CPU */
- MCFG_MACHINE_START(dec8)
- MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -2418,7 +2400,7 @@ static MACHINE_CONFIG_START( srdarwin, dec8_state )
MCFG_GFXDECODE(srdarwin)
MCFG_PALETTE_LENGTH(144)
- MCFG_VIDEO_START(srdarwin)
+ MCFG_VIDEO_START_OVERRIDE(dec8_state,srdarwin)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2445,8 +2427,6 @@ static MACHINE_CONFIG_START( cobracom, dec8_state )
MCFG_CPU_PROGRAM_MAP(dec8_s_map)
/* NMIs are caused by the main CPU */
- MCFG_MACHINE_START(dec8)
- MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -2470,7 +2450,7 @@ static MACHINE_CONFIG_START( cobracom, dec8_state )
MCFG_GFXDECODE(cobracom)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(cobracom)
+ MCFG_VIDEO_START_OVERRIDE(dec8_state,cobracom)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/deco156.c b/src/mame/drivers/deco156.c
index 417624a09a1..f3b26a479e4 100644
--- a/src/mame/drivers/deco156.c
+++ b/src/mame/drivers/deco156.c
@@ -53,18 +53,18 @@ public:
DECLARE_WRITE32_MEMBER(hvysmsh_oki_0_bank_w);
DECLARE_DRIVER_INIT(hvysmsh);
DECLARE_DRIVER_INIT(wcvol95);
+ virtual void video_start();
};
-static VIDEO_START( wcvol95 )
+void deco156_state::video_start()
{
- deco156_state *state = machine.driver_data<deco156_state>();
- state->m_spriteram = auto_alloc_array(machine, UINT16, 0x2000/2);
+ m_spriteram = auto_alloc_array(machine(), UINT16, 0x2000/2);
/* and register the allocated ram so that save states still work */
- state->save_item(NAME(state->m_pf1_rowscroll));
- state->save_item(NAME(state->m_pf2_rowscroll));
- state->save_pointer(NAME(state->m_spriteram), 0x2000/2);
+ save_item(NAME(m_pf1_rowscroll));
+ save_item(NAME(m_pf2_rowscroll));
+ save_pointer(NAME(m_spriteram), 0x2000/2);
}
@@ -368,7 +368,6 @@ static MACHINE_CONFIG_START( hvysmsh, deco156_state )
MCFG_GFXDECODE(hvysmsh)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(wcvol95)
MCFG_DECO16IC_ADD("tilegen1", deco156_deco16ic_tilegen1_intf)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
@@ -406,7 +405,6 @@ static MACHINE_CONFIG_START( wcvol95, deco156_state )
MCFG_GFXDECODE(hvysmsh)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(wcvol95)
MCFG_DECO16IC_ADD("tilegen1", deco156_deco16ic_tilegen1_intf)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c
index f7e69e40e25..9d4d573a8bb 100644
--- a/src/mame/drivers/deco32.c
+++ b/src/mame/drivers/deco32.c
@@ -1665,11 +1665,10 @@ static const eeprom_interface eeprom_interface_tattass =
/**********************************************************************************/
-static MACHINE_RESET( deco32 )
+MACHINE_RESET_MEMBER(deco32_state,deco32)
{
- deco32_state *state = machine.driver_data<deco32_state>();
- state->m_raster_irq_timer = machine.device<timer_device>("int_timer");
- decoprot_reset(machine);
+ m_raster_irq_timer = machine().device<timer_device>("int_timer");
+ decoprot_reset(machine());
}
static INTERRUPT_GEN( deco32_vbl_interrupt )
@@ -1741,7 +1740,7 @@ static MACHINE_CONFIG_START( captaven, deco32_state )
MCFG_CPU_ADD("audiocpu", H6280, XTAL_32_22MHz/4/3) /* pin 10 is 32mhz/4, pin 14 is High so internal divisor is 3 (verified on pcb) */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_RESET(deco32)
+ MCFG_MACHINE_RESET_OVERRIDE(deco32_state,deco32)
MCFG_TIMER_ADD("int_timer", interrupt_gen)
@@ -1763,7 +1762,7 @@ static MACHINE_CONFIG_START( captaven, deco32_state )
decospr_device::set_pri_callback(*device, captaven_pri_callback);
- MCFG_VIDEO_START(captaven)
+ MCFG_VIDEO_START_OVERRIDE(deco32_state,captaven)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1811,7 +1810,7 @@ static MACHINE_CONFIG_START( fghthist, deco32_state )
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
- MCFG_VIDEO_START(fghthist)
+ MCFG_VIDEO_START_OVERRIDE(deco32_state,fghthist)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1857,7 +1856,7 @@ static MACHINE_CONFIG_START( fghthsta, deco32_state )
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
- MCFG_VIDEO_START(fghthist)
+ MCFG_VIDEO_START_OVERRIDE(deco32_state,fghthist)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1949,7 +1948,7 @@ static MACHINE_CONFIG_START( dragngun, dragngun_state )
MCFG_CPU_ADD("audiocpu", H6280, 32220000/8)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_RESET(deco32)
+ MCFG_MACHINE_RESET_OVERRIDE(deco32_state,deco32)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", interrupt_gen)
@@ -1970,7 +1969,7 @@ static MACHINE_CONFIG_START( dragngun, dragngun_state )
MCFG_GFXDECODE(dragngun)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(dragngun)
+ MCFG_VIDEO_START_OVERRIDE(dragngun_state,dragngun)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2025,7 +2024,7 @@ static MACHINE_CONFIG_START( lockload, dragngun_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* to improve main<->audio comms */
- MCFG_MACHINE_RESET(deco32)
+ MCFG_MACHINE_RESET_OVERRIDE(deco32_state,deco32)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_TIMER_ADD("int_timer", interrupt_gen)
@@ -2046,7 +2045,7 @@ static MACHINE_CONFIG_START( lockload, dragngun_state )
MCFG_GFXDECODE(dragngun)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(lockload)
+ MCFG_VIDEO_START_OVERRIDE(dragngun_state,lockload)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2134,7 +2133,7 @@ static MACHINE_CONFIG_START( tattass, deco32_state )
MCFG_GFXDECODE(tattass)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(nslasher)
+ MCFG_VIDEO_START_OVERRIDE(deco32_state,nslasher)
/* sound hardware */
MCFG_DECOBSMT_ADD(DECOBSMT_TAG)
@@ -2173,7 +2172,7 @@ static MACHINE_CONFIG_START( nslasher, deco32_state )
MCFG_GFXDECODE(nslasher)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(nslasher)
+ MCFG_VIDEO_START_OVERRIDE(deco32_state,nslasher)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/deco_ld.c b/src/mame/drivers/deco_ld.c
index f56e0931958..fcfef1f14a3 100644
--- a/src/mame/drivers/deco_ld.c
+++ b/src/mame/drivers/deco_ld.c
@@ -145,6 +145,7 @@ public:
DECLARE_WRITE8_MEMBER(decold_palette_w);
DECLARE_CUSTOM_INPUT_MEMBER(begas_vblank_r);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
+ virtual void machine_start();
};
static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, UINT8 *spriteram, UINT16 tile_bank )
@@ -449,7 +450,7 @@ static GFXDECODE_START( rblaster )
GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 0, 8 )
GFXDECODE_END
-static MACHINE_START( rblaster )
+void deco_ld_state::machine_start()
{
}
@@ -474,7 +475,6 @@ static MACHINE_CONFIG_START( rblaster, deco_ld_state )
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
MCFG_GFXDECODE(rblaster)
MCFG_PALETTE_LENGTH(512)
- MCFG_MACHINE_START(rblaster)
/* sound hardware */
/* TODO: mixing */
diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c
index b71d90c66b8..011580091b1 100644
--- a/src/mame/drivers/deco_mlc.c
+++ b/src/mame/drivers/deco_mlc.c
@@ -369,11 +369,10 @@ GFXDECODE_END
/******************************************************************************/
-static MACHINE_RESET( mlc )
+MACHINE_RESET_MEMBER(deco_mlc_state,mlc)
{
- deco_mlc_state *state = machine.driver_data<deco_mlc_state>();
- state->m_vbl_i = 0xffffffff;
- state->m_raster_irq_timer = machine.device<timer_device>("int_timer");
+ m_vbl_i = 0xffffffff;
+ m_raster_irq_timer = machine().device<timer_device>("int_timer");
}
static MACHINE_CONFIG_START( avengrgs, deco_mlc_state )
@@ -382,7 +381,7 @@ static MACHINE_CONFIG_START( avengrgs, deco_mlc_state )
MCFG_CPU_ADD("maincpu", SH2,42000000/2) /* 21 MHz clock confirmed on real board */
MCFG_CPU_PROGRAM_MAP(decomlc_map)
- MCFG_MACHINE_RESET(mlc)
+ MCFG_MACHINE_RESET_OVERRIDE(deco_mlc_state,mlc)
MCFG_EEPROM_93C46_ADD("eeprom") /* Actually 93c45 */
MCFG_TIMER_ADD("int_timer", interrupt_gen)
@@ -398,7 +397,7 @@ static MACHINE_CONFIG_START( avengrgs, deco_mlc_state )
MCFG_GFXDECODE(deco_mlc)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(mlc)
+ MCFG_VIDEO_START_OVERRIDE(deco_mlc_state,mlc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -414,7 +413,7 @@ static MACHINE_CONFIG_START( mlc, deco_mlc_state )
MCFG_CPU_ADD("maincpu", ARM,42000000/6) /* 42 MHz -> 7MHz clock confirmed on real board */
MCFG_CPU_PROGRAM_MAP(decomlc_map)
- MCFG_MACHINE_RESET(mlc)
+ MCFG_MACHINE_RESET_OVERRIDE(deco_mlc_state,mlc)
MCFG_EEPROM_93C46_ADD("eeprom") /* Actually 93c45 */
MCFG_TIMER_ADD("int_timer", interrupt_gen)
@@ -430,7 +429,7 @@ static MACHINE_CONFIG_START( mlc, deco_mlc_state )
MCFG_GFXDECODE(deco_mlc)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(mlc)
+ MCFG_VIDEO_START_OVERRIDE(deco_mlc_state,mlc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/decocass.c b/src/mame/drivers/decocass.c
index a580fff2f89..c451a5a97d8 100644
--- a/src/mame/drivers/decocass.c
+++ b/src/mame/drivers/decocass.c
@@ -730,32 +730,32 @@ static GFXDECODE_START( decocass )
GFXDECODE_ENTRY( NULL, 0xd800, objlayout, 48, 4 ) /* object */
GFXDECODE_END
-static PALETTE_INIT( decocass )
+void decocass_state::palette_init()
{
int i;
- machine.colortable = colortable_alloc(machine, 32);
+ machine().colortable = colortable_alloc(machine(), 32);
/* set up 32 colors 1:1 pens */
for (i = 0; i < 32; i++)
- colortable_entry_set_value(machine.colortable, i, i);
+ colortable_entry_set_value(machine().colortable, i, i);
/* setup straight/flipped colors for background tiles (D7 of color_center_bot ?) */
for (i = 0; i < 8; i++)
{
- colortable_entry_set_value(machine.colortable, 32+i, 3*8+i);
- colortable_entry_set_value(machine.colortable, 40+i, 3*8+((i << 1) & 0x04) + ((i >> 1) & 0x02) + (i & 0x01));
+ colortable_entry_set_value(machine().colortable, 32+i, 3*8+i);
+ colortable_entry_set_value(machine().colortable, 40+i, 3*8+((i << 1) & 0x04) + ((i >> 1) & 0x02) + (i & 0x01));
}
/* setup 4 colors for 1bpp object */
- colortable_entry_set_value(machine.colortable, 48+0*2+0, 0);
- colortable_entry_set_value(machine.colortable, 48+0*2+1, 25); /* testtape red from 4th palette section? */
- colortable_entry_set_value(machine.colortable, 48+1*2+0, 0);
- colortable_entry_set_value(machine.colortable, 48+1*2+1, 28); /* testtape blue from 4th palette section? */
- colortable_entry_set_value(machine.colortable, 48+2*2+0, 0);
- colortable_entry_set_value(machine.colortable, 48+2*2+1, 26); /* testtape green from 4th palette section? */
- colortable_entry_set_value(machine.colortable, 48+3*2+0, 0);
- colortable_entry_set_value(machine.colortable, 48+3*2+1, 23); /* ???? */
+ colortable_entry_set_value(machine().colortable, 48+0*2+0, 0);
+ colortable_entry_set_value(machine().colortable, 48+0*2+1, 25); /* testtape red from 4th palette section? */
+ colortable_entry_set_value(machine().colortable, 48+1*2+0, 0);
+ colortable_entry_set_value(machine().colortable, 48+1*2+1, 28); /* testtape blue from 4th palette section? */
+ colortable_entry_set_value(machine().colortable, 48+2*2+0, 0);
+ colortable_entry_set_value(machine().colortable, 48+2*2+1, 26); /* testtape green from 4th palette section? */
+ colortable_entry_set_value(machine().colortable, 48+3*2+0, 0);
+ colortable_entry_set_value(machine().colortable, 48+3*2+1, 23); /* ???? */
}
@@ -774,8 +774,6 @@ static MACHINE_CONFIG_START( decocass, decocass_state )
MCFG_QUANTUM_TIME(attotime::from_hz(4200)) /* interleave CPUs */
- MCFG_MACHINE_START(decocass)
- MCFG_MACHINE_RESET(decocass)
MCFG_DECOCASS_TAPE_ADD("cassette")
@@ -787,8 +785,6 @@ static MACHINE_CONFIG_START( decocass, decocass_state )
MCFG_GFXDECODE(decocass)
MCFG_PALETTE_LENGTH(32+2*8+2*4)
- MCFG_PALETTE_INIT(decocass)
- MCFG_VIDEO_START(decocass)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -804,228 +800,228 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( ctsttape, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(ctsttape)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,ctsttape)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cprogolfj, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cprogolfj)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cprogolfj)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cdsteljn, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cdsteljn)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cdsteljn)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cfishing, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cfishing)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cfishing)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( chwy, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(chwy)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,chwy)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cterrani, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cterrani)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cterrani)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( castfant, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(castfant)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,castfant)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( csuperas, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(csuperas)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,csuperas)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( clocknch, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(clocknch)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,clocknch)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cprogolf, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cprogolf)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cprogolf)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cluckypo, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cluckypo)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cluckypo)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( ctisland, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(ctisland)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,ctisland)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cexplore, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cexplore)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cexplore)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cdiscon1, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cdiscon1)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cdiscon1)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( ctornado, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(ctornado)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,ctornado)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cmissnx, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cmissnx)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cmissnx)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cptennis, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cptennis)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cptennis)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cbtime, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cbtime)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cbtime)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cburnrub, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cburnrub)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cburnrub)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cgraplop, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cgraplop)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cgraplop)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cgraplop2, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cgraplop2)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cgraplop2)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( clapapa, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(clapapa)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,clapapa)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cskater, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cskater)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cskater)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cprobowl, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cprobowl)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cprobowl)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cnightst, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cnightst)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cnightst)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cpsoccer, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cpsoccer)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cpsoccer)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( csdtenis, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(csdtenis)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,csdtenis)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( czeroize, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(czeroize)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,czeroize)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cppicf, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cppicf)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cppicf)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cfghtice, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cfghtice)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cfghtice)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( type4, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(type4)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,type4)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cbdash, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cbdash)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cbdash)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cflyball, decocass )
/* basic machine hardware */
- MCFG_MACHINE_RESET(cflyball)
+ MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cflyball)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/deniam.c b/src/mame/drivers/deniam.c
index c7e44be1c44..fde6aaf42be 100644
--- a/src/mame/drivers/deniam.c
+++ b/src/mame/drivers/deniam.c
@@ -238,34 +238,33 @@ static const ym3812_interface ym3812_config =
-static MACHINE_START( deniam )
+void deniam_state::machine_start()
{
- deniam_state *state = machine.driver_data<deniam_state>();
-
- state->m_audio_cpu = machine.device("audiocpu");
-
- state->save_item(NAME(state->m_display_enable));
- state->save_item(NAME(state->m_coinctrl));
-
- state->save_item(NAME(state->m_bg_scrollx_offs));
- state->save_item(NAME(state->m_bg_scrolly_offs));
- state->save_item(NAME(state->m_fg_scrollx_offs));
- state->save_item(NAME(state->m_fg_scrolly_offs));
- state->save_item(NAME(state->m_bg_scrollx_reg));
- state->save_item(NAME(state->m_bg_scrolly_reg));
- state->save_item(NAME(state->m_fg_scrollx_reg));
- state->save_item(NAME(state->m_fg_scrolly_reg));
- state->save_item(NAME(state->m_bg_page_reg));
- state->save_item(NAME(state->m_fg_page_reg));
- state->save_item(NAME(state->m_bg_page));
- state->save_item(NAME(state->m_fg_page));
+
+ m_audio_cpu = machine().device("audiocpu");
+
+ save_item(NAME(m_display_enable));
+ save_item(NAME(m_coinctrl));
+
+ save_item(NAME(m_bg_scrollx_offs));
+ save_item(NAME(m_bg_scrolly_offs));
+ save_item(NAME(m_fg_scrollx_offs));
+ save_item(NAME(m_fg_scrolly_offs));
+ save_item(NAME(m_bg_scrollx_reg));
+ save_item(NAME(m_bg_scrolly_reg));
+ save_item(NAME(m_fg_scrollx_reg));
+ save_item(NAME(m_fg_scrolly_reg));
+ save_item(NAME(m_bg_page_reg));
+ save_item(NAME(m_fg_page_reg));
+ save_item(NAME(m_bg_page));
+ save_item(NAME(m_fg_page));
}
-static MACHINE_RESET( deniam )
+void deniam_state::machine_reset()
{
/* logicpr2 does not reset the bank base on startup */
- machine.device<okim6295_device>("oki")->set_bank_base(0x00000);
+ machine().device<okim6295_device>("oki")->set_bank_base(0x00000);
}
static MACHINE_CONFIG_START( deniam16b, deniam_state )
@@ -279,8 +278,6 @@ static MACHINE_CONFIG_START( deniam16b, deniam_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(sound_io_map)
- MCFG_MACHINE_START(deniam)
- MCFG_MACHINE_RESET(deniam)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -294,7 +291,6 @@ static MACHINE_CONFIG_START( deniam16b, deniam_state )
MCFG_GFXDECODE(deniam)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(deniam)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -314,8 +310,6 @@ static MACHINE_CONFIG_START( deniam16c, deniam_state )
MCFG_CPU_PROGRAM_MAP(deniam16c_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_assert)
- MCFG_MACHINE_START(deniam)
- MCFG_MACHINE_RESET(deniam)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -329,7 +323,6 @@ static MACHINE_CONFIG_START( deniam16c, deniam_state )
MCFG_GFXDECODE(deniam)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(deniam)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/deshoros.c b/src/mame/drivers/deshoros.c
index f4f89d54df9..08d0b8e7772 100644
--- a/src/mame/drivers/deshoros.c
+++ b/src/mame/drivers/deshoros.c
@@ -58,18 +58,18 @@ protected:
// driver_device overrides
virtual void machine_start();
virtual void machine_reset();
+ virtual void video_start();
};
/*Temporary,to show something on screen...*/
-static VIDEO_START( destiny )
+void destiny_state::video_start()
{
- destiny_state *state = machine.driver_data<destiny_state>();
UINT8 i;
for(i=0;i<20;i++)
- state->m_led_array[i] = 0x20;
- state->m_led_array[20] = 0;
+ m_led_array[i] = 0x20;
+ m_led_array[20] = 0;
}
static SCREEN_UPDATE_IND16( destiny )
@@ -271,7 +271,6 @@ static MACHINE_CONFIG_START( destiny, destiny_state )
MCFG_SCREEN_UPDATE_STATIC(destiny)
MCFG_PALETTE_LENGTH(16)
- MCFG_VIDEO_START(destiny)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/destroyr.c b/src/mame/drivers/destroyr.c
index 00b9f0009b1..c1145352c8f 100644
--- a/src/mame/drivers/destroyr.c
+++ b/src/mame/drivers/destroyr.c
@@ -48,6 +48,9 @@ public:
DECLARE_WRITE8_MEMBER(destroyr_output_w);
DECLARE_READ8_MEMBER(destroyr_input_r);
DECLARE_READ8_MEMBER(destroyr_scanline_r);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void palette_init();
};
@@ -151,21 +154,20 @@ static TIMER_CALLBACK( destroyr_frame_callback )
}
-static MACHINE_RESET( destroyr )
+void destroyr_state::machine_reset()
{
- destroyr_state *state = machine.driver_data<destroyr_state>();
-
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(0), FUNC(destroyr_frame_callback));
- state->m_cursor = 0;
- state->m_wavemod = 0;
- state->m_potmask[0] = 0;
- state->m_potmask[1] = 0;
- state->m_potsense[0] = 0;
- state->m_potsense[1] = 0;
- state->m_attract = 0;
- state->m_motor_speed = 0;
- state->m_noise = 0;
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), FUNC(destroyr_frame_callback));
+
+ m_cursor = 0;
+ m_wavemod = 0;
+ m_potmask[0] = 0;
+ m_potmask[1] = 0;
+ m_potsense[0] = 0;
+ m_potsense[1] = 0;
+ m_attract = 0;
+ m_motor_speed = 0;
+ m_noise = 0;
}
@@ -418,32 +420,31 @@ static GFXDECODE_START( destroyr )
GFXDECODE_END
-static PALETTE_INIT( destroyr )
+void destroyr_state::palette_init()
{
- palette_set_color(machine, 0, MAKE_RGB(0x00, 0x00, 0x00)); /* major objects */
- palette_set_color(machine, 1, MAKE_RGB(0x50, 0x50, 0x50));
- palette_set_color(machine, 2, MAKE_RGB(0xAF, 0xAF, 0xAF));
- palette_set_color(machine, 3, MAKE_RGB(0xFF ,0xFF, 0xFF));
- palette_set_color(machine, 4, MAKE_RGB(0x00, 0x00, 0x00)); /* alpha numerics, waves, minor objects */
- palette_set_color(machine, 5, MAKE_RGB(0xFF, 0xFF, 0xFF));
- palette_set_color(machine, 6, MAKE_RGB(0x00, 0x00, 0x00)); /* cursor */
- palette_set_color(machine, 7, MAKE_RGB(0x78, 0x78, 0x78));
+ palette_set_color(machine(), 0, MAKE_RGB(0x00, 0x00, 0x00)); /* major objects */
+ palette_set_color(machine(), 1, MAKE_RGB(0x50, 0x50, 0x50));
+ palette_set_color(machine(), 2, MAKE_RGB(0xAF, 0xAF, 0xAF));
+ palette_set_color(machine(), 3, MAKE_RGB(0xFF ,0xFF, 0xFF));
+ palette_set_color(machine(), 4, MAKE_RGB(0x00, 0x00, 0x00)); /* alpha numerics, waves, minor objects */
+ palette_set_color(machine(), 5, MAKE_RGB(0xFF, 0xFF, 0xFF));
+ palette_set_color(machine(), 6, MAKE_RGB(0x00, 0x00, 0x00)); /* cursor */
+ palette_set_color(machine(), 7, MAKE_RGB(0x78, 0x78, 0x78));
}
-static MACHINE_START( destroyr )
+void destroyr_state::machine_start()
{
- destroyr_state *state = machine.driver_data<destroyr_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_cursor));
- state->save_item(NAME(state->m_wavemod));
- state->save_item(NAME(state->m_attract));
- state->save_item(NAME(state->m_motor_speed));
- state->save_item(NAME(state->m_noise));
- state->save_item(NAME(state->m_potmask));
- state->save_item(NAME(state->m_potsense));
+ save_item(NAME(m_cursor));
+ save_item(NAME(m_wavemod));
+ save_item(NAME(m_attract));
+ save_item(NAME(m_motor_speed));
+ save_item(NAME(m_noise));
+ save_item(NAME(m_potmask));
+ save_item(NAME(m_potsense));
}
static MACHINE_CONFIG_START( destroyr, destroyr_state )
@@ -453,8 +454,6 @@ static MACHINE_CONFIG_START( destroyr, destroyr_state )
MCFG_CPU_PROGRAM_MAP(destroyr_map)
MCFG_CPU_PERIODIC_INT(irq0_line_assert, 4*60)
- MCFG_MACHINE_START(destroyr)
- MCFG_MACHINE_RESET(destroyr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -465,7 +464,6 @@ static MACHINE_CONFIG_START( destroyr, destroyr_state )
MCFG_GFXDECODE(destroyr)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(destroyr)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/dfruit.c b/src/mame/drivers/dfruit.c
index ca7d2925414..d79b507ab03 100644
--- a/src/mame/drivers/dfruit.c
+++ b/src/mame/drivers/dfruit.c
@@ -389,8 +389,8 @@ static MACHINE_CONFIG_START( dfruit, dfruit_state )
MCFG_CPU_PROGRAM_MAP(dfruit_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", dfruit_irq_scanline, "screen", 0, 1)
- //MCFG_MACHINE_START(4enraya)
- //MCFG_MACHINE_RESET(4enraya)
+ //MCFG_MACHINE_START_OVERRIDE(dfruit_state,4enraya)
+ //MCFG_MACHINE_RESET_OVERRIDE(dfruit_state,4enraya)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/dgpix.c b/src/mame/drivers/dgpix.c
index 2ec1b3d341e..e818b66af2a 100644
--- a/src/mame/drivers/dgpix.c
+++ b/src/mame/drivers/dgpix.c
@@ -75,6 +75,8 @@ public:
DECLARE_DRIVER_INIT(fmaniac3);
DECLARE_DRIVER_INIT(xfiles);
DECLARE_DRIVER_INIT(kdynastg);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -284,10 +286,9 @@ static INPUT_PORTS_START( dgpix )
PORT_BIT( 0xff000000, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
-static VIDEO_START( dgpix )
+void dgpix_state::video_start()
{
- dgpix_state *state = machine.driver_data<dgpix_state>();
- state->m_vram = auto_alloc_array(machine, UINT32, 0x40000*2/4);
+ m_vram = auto_alloc_array(machine(), UINT32, 0x40000*2/4);
}
static SCREEN_UPDATE_IND16( dgpix )
@@ -314,13 +315,12 @@ static SCREEN_UPDATE_IND16( dgpix )
return 0;
}
-static MACHINE_RESET( dgpix )
+void dgpix_state::machine_reset()
{
- dgpix_state *state = machine.driver_data<dgpix_state>();
- state->m_vbuffer = 0;
- state->m_flash_cmd = 0;
- state->m_first_offset = -1;
- state->m_old_vbuf = 3;
+ m_vbuffer = 0;
+ m_flash_cmd = 0;
+ m_first_offset = -1;
+ m_old_vbuf = 3;
}
@@ -334,7 +334,6 @@ static MACHINE_CONFIG_START( dgpix, dgpix_state )
running at 16.9MHz
*/
- MCFG_MACHINE_RESET(dgpix)
MCFG_NVRAM_HANDLER(flashroms)
/* video hardware */
@@ -348,7 +347,6 @@ static MACHINE_CONFIG_START( dgpix, dgpix_state )
MCFG_PALETTE_INIT(BBBBB_GGGGG_RRRRR)
MCFG_PALETTE_LENGTH(32768)
- MCFG_VIDEO_START(dgpix)
/* sound hardware */
// KS0164 sound chip
diff --git a/src/mame/drivers/dietgo.c b/src/mame/drivers/dietgo.c
index 844eaec380c..5ad2461d581 100644
--- a/src/mame/drivers/dietgo.c
+++ b/src/mame/drivers/dietgo.c
@@ -195,13 +195,12 @@ static const deco16ic_interface dietgo_deco16ic_tilegen1_intf =
};
-static MACHINE_START( dietgo )
+void dietgo_state::machine_start()
{
- dietgo_state *state = machine.driver_data<dietgo_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_deco_tilegen1 = machine.device("tilegen1");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_deco_tilegen1 = machine().device("tilegen1");
}
static MACHINE_CONFIG_START( dietgo, dietgo_state )
@@ -214,7 +213,6 @@ static MACHINE_CONFIG_START( dietgo, dietgo_state )
MCFG_CPU_ADD("audiocpu", H6280, XTAL_32_22MHz/4/3) /* Custom chip 45; XIN is 32.220MHZ/4, verified on pcb */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(dietgo)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/discoboy.c b/src/mame/drivers/discoboy.c
index 1e03a797f3e..dc87182ec5a 100644
--- a/src/mame/drivers/discoboy.c
+++ b/src/mame/drivers/discoboy.c
@@ -83,11 +83,14 @@ public:
DECLARE_WRITE8_MEMBER(yunsung8_adpcm_w);
DECLARE_WRITE8_MEMBER(yunsung8_sound_bankswitch_w);
DECLARE_DRIVER_INIT(discoboy);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
-static VIDEO_START( discoboy )
+void discoboy_state::video_start()
{
}
@@ -451,28 +454,26 @@ static GFXDECODE_START( discoboy )
GFXDECODE_ENTRY( "gfx2", 0, tiles8x8_layout2, 0x000, 128 )
GFXDECODE_END
-static MACHINE_START( discoboy )
+void discoboy_state::machine_start()
{
- discoboy_state *state = machine.driver_data<discoboy_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_ram_bank));
- state->save_item(NAME(state->m_port_00));
- state->save_item(NAME(state->m_gfxbank));
- state->save_item(NAME(state->m_adpcm));
- state->save_item(NAME(state->m_toggle));
+ save_item(NAME(m_ram_bank));
+ save_item(NAME(m_port_00));
+ save_item(NAME(m_gfxbank));
+ save_item(NAME(m_adpcm));
+ save_item(NAME(m_toggle));
}
-static MACHINE_RESET( discoboy )
+void discoboy_state::machine_reset()
{
- discoboy_state *state = machine.driver_data<discoboy_state>();
- state->m_ram_bank = 0;
- state->m_port_00 = 0;
- state->m_gfxbank = 0;
- state->m_adpcm = 0x80;
- state->m_toggle = 0;
+ m_ram_bank = 0;
+ m_port_00 = 0;
+ m_gfxbank = 0;
+ m_adpcm = 0x80;
+ m_toggle = 0;
}
static void yunsung8_adpcm_int( device_t *device )
@@ -503,8 +504,6 @@ static MACHINE_CONFIG_START( discoboy, discoboy_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,32*60)
- MCFG_MACHINE_START( discoboy )
- MCFG_MACHINE_RESET( discoboy )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -517,7 +516,6 @@ static MACHINE_CONFIG_START( discoboy, discoboy_state )
MCFG_GFXDECODE(discoboy)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(discoboy)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/diverboy.c b/src/mame/drivers/diverboy.c
index 89686986c7c..9f13f5b0365 100644
--- a/src/mame/drivers/diverboy.c
+++ b/src/mame/drivers/diverboy.c
@@ -68,10 +68,12 @@ public:
cpu_device *m_audiocpu;
DECLARE_WRITE16_MEMBER(soundcmd_w);
DECLARE_WRITE8_MEMBER(okibank_w);
+ virtual void machine_start();
+ virtual void video_start();
};
-static VIDEO_START(diverboy)
+void diverboy_state::video_start()
{
}
@@ -244,11 +246,10 @@ static GFXDECODE_START( diverboy )
GFXDECODE_END
-static MACHINE_START( diverboy )
+void diverboy_state::machine_start()
{
- diverboy_state *state = machine.driver_data<diverboy_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
}
static MACHINE_CONFIG_START( diverboy, diverboy_state )
@@ -260,7 +261,6 @@ static MACHINE_CONFIG_START( diverboy, diverboy_state )
MCFG_CPU_ADD("audiocpu", Z80, 4000000)
MCFG_CPU_PROGRAM_MAP(snd_map)
- MCFG_MACHINE_START(diverboy)
MCFG_GFXDECODE(diverboy)
@@ -273,7 +273,6 @@ static MACHINE_CONFIG_START( diverboy, diverboy_state )
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(diverboy)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/djboy.c b/src/mame/drivers/djboy.c
index 7114e340ae3..d953ab47ff9 100644
--- a/src/mame/drivers/djboy.c
+++ b/src/mame/drivers/djboy.c
@@ -519,54 +519,52 @@ static const kaneko_pandora_interface djboy_pandora_config =
};
-static MACHINE_START( djboy )
+void djboy_state::machine_start()
{
- djboy_state *state = machine.driver_data<djboy_state>();
- UINT8 *MAIN = state->memregion("maincpu")->base();
- UINT8 *CPU1 = state->memregion("cpu1")->base();
- UINT8 *CPU2 = state->memregion("cpu2")->base();
-
- state->membank("bank1")->configure_entries(0, 4, &MAIN[0x00000], 0x2000);
- state->membank("bank1")->configure_entries(4, 28, &MAIN[0x10000], 0x2000);
- state->membank("bank2")->configure_entries(0, 2, &CPU1[0x00000], 0x4000);
- state->membank("bank2")->configure_entries(2, 10, &CPU1[0x10000], 0x4000);
- state->membank("bank3")->configure_entries(0, 3, &CPU2[0x00000], 0x4000);
- state->membank("bank3")->configure_entries(3, 5, &CPU2[0x10000], 0x4000);
- state->membank("bank4")->configure_entry(0, &MAIN[0x10000]); /* unsure if/how this area is banked */
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_cpu1 = machine.device("cpu1");
- state->m_cpu2 = machine.device("cpu2");
- state->m_beast = machine.device("beast");
- state->m_pandora = machine.device("pandora");
-
- state->save_item(NAME(state->m_videoreg));
- state->save_item(NAME(state->m_scrollx));
- state->save_item(NAME(state->m_scrolly));
+ UINT8 *MAIN = memregion("maincpu")->base();
+ UINT8 *CPU1 = memregion("cpu1")->base();
+ UINT8 *CPU2 = memregion("cpu2")->base();
+
+ membank("bank1")->configure_entries(0, 4, &MAIN[0x00000], 0x2000);
+ membank("bank1")->configure_entries(4, 28, &MAIN[0x10000], 0x2000);
+ membank("bank2")->configure_entries(0, 2, &CPU1[0x00000], 0x4000);
+ membank("bank2")->configure_entries(2, 10, &CPU1[0x10000], 0x4000);
+ membank("bank3")->configure_entries(0, 3, &CPU2[0x00000], 0x4000);
+ membank("bank3")->configure_entries(3, 5, &CPU2[0x10000], 0x4000);
+ membank("bank4")->configure_entry(0, &MAIN[0x10000]); /* unsure if/how this area is banked */
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_cpu1 = machine().device("cpu1");
+ m_cpu2 = machine().device("cpu2");
+ m_beast = machine().device("beast");
+ m_pandora = machine().device("pandora");
+
+ save_item(NAME(m_videoreg));
+ save_item(NAME(m_scrollx));
+ save_item(NAME(m_scrolly));
/* Kaneko BEAST */
- state->save_item(NAME(state->m_data_to_beast));
- state->save_item(NAME(state->m_data_to_z80));
- state->save_item(NAME(state->m_beast_to_z80_full));
- state->save_item(NAME(state->m_z80_to_beast_full));
- state->save_item(NAME(state->m_beast_int0_l));
- state->save_item(NAME(state->m_beast_p0));
- state->save_item(NAME(state->m_beast_p1));
- state->save_item(NAME(state->m_beast_p2));
- state->save_item(NAME(state->m_beast_p3));
+ save_item(NAME(m_data_to_beast));
+ save_item(NAME(m_data_to_z80));
+ save_item(NAME(m_beast_to_z80_full));
+ save_item(NAME(m_z80_to_beast_full));
+ save_item(NAME(m_beast_int0_l));
+ save_item(NAME(m_beast_p0));
+ save_item(NAME(m_beast_p1));
+ save_item(NAME(m_beast_p2));
+ save_item(NAME(m_beast_p3));
}
-static MACHINE_RESET( djboy )
+void djboy_state::machine_reset()
{
- djboy_state *state = machine.driver_data<djboy_state>();
- state->m_videoreg = 0;
- state->m_scrollx = 0;
- state->m_scrolly = 0;
+ m_videoreg = 0;
+ m_scrollx = 0;
+ m_scrolly = 0;
- state->m_beast_int0_l = 1;
- state->m_beast_to_z80_full = 0;
- state->m_z80_to_beast_full = 0;
+ m_beast_int0_l = 1;
+ m_beast_to_z80_full = 0;
+ m_z80_to_beast_full = 0;
}
static MACHINE_CONFIG_START( djboy, djboy_state )
@@ -591,8 +589,6 @@ static MACHINE_CONFIG_START( djboy, djboy_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(djboy)
- MCFG_MACHINE_RESET(djboy)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57.5)
@@ -607,7 +603,6 @@ static MACHINE_CONFIG_START( djboy, djboy_state )
MCFG_KANEKO_PANDORA_ADD("pandora", djboy_pandora_config)
- MCFG_VIDEO_START(djboy)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c
index 8dd9f6922fa..e43ee07fa80 100644
--- a/src/mame/drivers/djmain.c
+++ b/src/mame/drivers/djmain.c
@@ -1396,39 +1396,37 @@ static const k054539_interface k054539_config =
*
*************************************/
-static MACHINE_START( djmain )
+void djmain_state::machine_start()
{
- djmain_state *state = machine.driver_data<djmain_state>();
- device_t *ide = machine.device("ide");
+ device_t *ide = machine().device("ide");
- if (ide != NULL && state->m_ide_master_password != NULL)
- ide_set_master_password(ide, state->m_ide_master_password);
- if (ide != NULL && state->m_ide_user_password != NULL)
- ide_set_user_password(ide, state->m_ide_user_password);
+ if (ide != NULL && m_ide_master_password != NULL)
+ ide_set_master_password(ide, m_ide_master_password);
+ if (ide != NULL && m_ide_user_password != NULL)
+ ide_set_user_password(ide, m_ide_user_password);
- state_save_register_global(machine, state->m_sndram_bank);
- state_save_register_global(machine, state->m_pending_vb_int);
- state_save_register_global(machine, state->m_v_ctrl);
- state_save_register_global_array(machine, state->m_obj_regs);
+ state_save_register_global(machine(), m_sndram_bank);
+ state_save_register_global(machine(), m_pending_vb_int);
+ state_save_register_global(machine(), m_v_ctrl);
+ state_save_register_global_array(machine(), m_obj_regs);
- machine.save().register_postload(save_prepost_delegate(FUNC(sndram_set_bank), &machine));
+ machine().save().register_postload(save_prepost_delegate(FUNC(sndram_set_bank), &machine()));
}
-static MACHINE_RESET( djmain )
+void djmain_state::machine_reset()
{
- djmain_state *state = machine.driver_data<djmain_state>();
/* reset sound ram bank */
- state->m_sndram_bank = 0;
- sndram_set_bank(machine);
+ m_sndram_bank = 0;
+ sndram_set_bank(machine());
/* reset the IDE controller */
- machine.device("ide")->reset();
+ machine().device("ide")->reset();
/* reset LEDs */
- set_led_status(machine, 0, 1);
- set_led_status(machine, 1, 1);
- set_led_status(machine, 2, 1);
+ set_led_status(machine(), 0, 1);
+ set_led_status(machine(), 1, 1);
+ set_led_status(machine(), 2, 1);
}
@@ -1464,8 +1462,6 @@ static MACHINE_CONFIG_START( djmain, djmain_state )
MCFG_CPU_PROGRAM_MAP(memory_map)
MCFG_CPU_VBLANK_INT("screen", vb_interrupt)
- MCFG_MACHINE_START(djmain)
- MCFG_MACHINE_RESET(djmain)
MCFG_IDE_CONTROLLER_ADD("ide", ide_intf, ide_devices, "hdd", NULL, true)
@@ -1479,7 +1475,6 @@ static MACHINE_CONFIG_START( djmain, djmain_state )
MCFG_PALETTE_LENGTH(0x4440/4)
MCFG_GFXDECODE(djmain)
- MCFG_VIDEO_START(djmain)
MCFG_K056832_ADD("k056832", djmain_k056832_intf)
MCFG_K055555_ADD("k055555")
diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c
index 6f3838cb354..949de03dbdd 100644
--- a/src/mame/drivers/dkong.c
+++ b/src/mame/drivers/dkong.c
@@ -410,104 +410,97 @@ static void dkong_init_device_driver_data( running_machine &machine )
state->m_dev_vp2 = machine.device("virtual_p2");
}
-static MACHINE_START( dkong2b )
+MACHINE_START_MEMBER(dkong_state,dkong2b)
{
- dkong_state *state = machine.driver_data<dkong_state>();
- dkong_init_device_driver_data(machine);
- state->m_hardware_type = HARDWARE_TKG04;
+ dkong_init_device_driver_data(machine());
+ m_hardware_type = HARDWARE_TKG04;
- state->save_item(NAME(state->m_decrypt_counter));
- state->save_item(NAME(state->m_dma_latch));
+ save_item(NAME(m_decrypt_counter));
+ save_item(NAME(m_dma_latch));
}
-static MACHINE_START( s2650 )
+MACHINE_START_MEMBER(dkong_state,s2650)
{
- dkong_state *state = machine.driver_data<dkong_state>();
- UINT8 *p = state->memregion("user1")->base();
- const char *game_name = machine.system().name;
+ UINT8 *p = memregion("user1")->base();
+ const char *game_name = machine().system().name;
int i;
- MACHINE_START_CALL(dkong2b);
+ MACHINE_START_CALL_MEMBER(dkong2b);
for (i = 0; i < 0x200; i++)
- state->m_rev_map[i] = -1;
+ m_rev_map[i] = -1;
for (i = 0; i < 0x200; i++)
- state->m_rev_map[p[0x0000 + i]] = i;
-
- state->m_hunchloopback = 0;
-
- state->save_item(NAME(state->m_hunchloopback));
- state->save_item(NAME(state->m_prot_cnt));
- state->save_item(NAME(state->m_main_fo));
-
- if (strcmp(game_name,"herbiedk") == 0) state->m_protect_type = DK2650_HERBIEDK;
- else if (strcmp(game_name,"hunchbkd") == 0) state->m_protect_type = DK2650_HUNCHBKD;
- else if (strcmp(game_name,"sbdk") == 0) state->m_protect_type = DK2650_HUNCHBKD;
- else if (strcmp(game_name,"herodk") == 0) state->m_protect_type = DK2650_HUNCHBKD;
- else if (strcmp(game_name,"herodku") == 0) state->m_protect_type = DK2650_HUNCHBKD;
- else if (strcmp(game_name,"8ballact") == 0) state->m_protect_type = DK2650_EIGHTACT;
- else if (strcmp(game_name,"8ballact2") == 0) state->m_protect_type = DK2650_EIGHTACT;
- else if (strcmp(game_name,"shootgal") == 0) state->m_protect_type = DK2650_SHOOTGAL;
- else if (strcmp(game_name,"spclforc") == 0) state->m_protect_type = DK2650_SPCLFORC;
- else if (strcmp(game_name,"spcfrcii") == 0) state->m_protect_type = DK2650_SPCLFORC;
+ m_rev_map[p[0x0000 + i]] = i;
+
+ m_hunchloopback = 0;
+
+ save_item(NAME(m_hunchloopback));
+ save_item(NAME(m_prot_cnt));
+ save_item(NAME(m_main_fo));
+
+ if (strcmp(game_name,"herbiedk") == 0) m_protect_type = DK2650_HERBIEDK;
+ else if (strcmp(game_name,"hunchbkd") == 0) m_protect_type = DK2650_HUNCHBKD;
+ else if (strcmp(game_name,"sbdk") == 0) m_protect_type = DK2650_HUNCHBKD;
+ else if (strcmp(game_name,"herodk") == 0) m_protect_type = DK2650_HUNCHBKD;
+ else if (strcmp(game_name,"herodku") == 0) m_protect_type = DK2650_HUNCHBKD;
+ else if (strcmp(game_name,"8ballact") == 0) m_protect_type = DK2650_EIGHTACT;
+ else if (strcmp(game_name,"8ballact2") == 0) m_protect_type = DK2650_EIGHTACT;
+ else if (strcmp(game_name,"shootgal") == 0) m_protect_type = DK2650_SHOOTGAL;
+ else if (strcmp(game_name,"spclforc") == 0) m_protect_type = DK2650_SPCLFORC;
+ else if (strcmp(game_name,"spcfrcii") == 0) m_protect_type = DK2650_SPCLFORC;
else
fatalerror("Unknown game <%s> in S2650 start.\n", game_name);
}
-static MACHINE_START( radarscp )
+MACHINE_START_MEMBER(dkong_state,radarscp)
{
- dkong_state *state = machine.driver_data<dkong_state>();
- MACHINE_START_CALL(dkong2b);
- state->m_hardware_type = HARDWARE_TRS02;
+ MACHINE_START_CALL_MEMBER(dkong2b);
+ m_hardware_type = HARDWARE_TRS02;
}
-static MACHINE_START( radarscp1 )
+MACHINE_START_MEMBER(dkong_state,radarscp1)
{
- dkong_state *state = machine.driver_data<dkong_state>();
- MACHINE_START_CALL(dkong2b);
- state->m_hardware_type = HARDWARE_TRS01;
+ MACHINE_START_CALL_MEMBER(dkong2b);
+ m_hardware_type = HARDWARE_TRS01;
}
-static MACHINE_START( dkong3 )
+MACHINE_START_MEMBER(dkong_state,dkong3)
{
- dkong_state *state = machine.driver_data<dkong_state>();
- dkong_init_device_driver_data(machine);
- state->m_hardware_type = HARDWARE_TKG04;
+ dkong_init_device_driver_data(machine());
+ m_hardware_type = HARDWARE_TKG04;
}
-static MACHINE_RESET( dkong )
+MACHINE_RESET_MEMBER(dkong_state,dkong)
{
/* nothing */
}
-static MACHINE_RESET( strtheat )
+MACHINE_RESET_MEMBER(dkong_state,strtheat)
{
- dkong_state *state = machine.driver_data<dkong_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- MACHINE_RESET_CALL(dkong);
+ MACHINE_RESET_CALL_MEMBER(dkong);
/* The initial state of the counter is 0x08 */
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
- state->m_decrypt_counter = 0x08;
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
+ m_decrypt_counter = 0x08;
+ membank("bank1")->set_entry(0);
}
-static MACHINE_RESET( drakton )
+MACHINE_RESET_MEMBER(dkong_state,drakton)
{
- dkong_state *state = machine.driver_data<dkong_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- MACHINE_RESET_CALL(dkong);
+ MACHINE_RESET_CALL_MEMBER(dkong);
/* The initial state of the counter is 0x09 */
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
- state->m_decrypt_counter = 0x09;
- state->membank("bank1")->set_entry(1);
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
+ m_decrypt_counter = 0x09;
+ membank("bank1")->set_entry(1);
}
@@ -1660,8 +1653,8 @@ static MACHINE_CONFIG_START( dkong_base, dkong_state )
MCFG_CPU_PROGRAM_MAP(dkong_map)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_START(dkong2b)
- MCFG_MACHINE_RESET(dkong)
+ MCFG_MACHINE_START_OVERRIDE(dkong_state,dkong2b)
+ MCFG_MACHINE_RESET_OVERRIDE(dkong_state,dkong)
MCFG_I8257_ADD("dma8257", CLOCK_1H, dk_dma)
@@ -1673,16 +1666,16 @@ static MACHINE_CONFIG_START( dkong_base, dkong_state )
MCFG_GFXDECODE(dkong)
MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH)
- MCFG_PALETTE_INIT(dkong2b)
- MCFG_VIDEO_START(dkong)
+ MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong2b)
+ MCFG_VIDEO_START_OVERRIDE(dkong_state,dkong)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( radarscp, dkong_base )
- MCFG_MACHINE_START(radarscp)
+ MCFG_MACHINE_START_OVERRIDE(dkong_state,radarscp)
MCFG_PALETTE_LENGTH(RS_PALETTE_LENGTH)
- MCFG_PALETTE_INIT(radarscp)
+ MCFG_PALETTE_INIT_OVERRIDE(dkong_state,radarscp)
/* sound hardware */
MCFG_FRAGMENT_ADD(radarscp_audio)
@@ -1691,9 +1684,9 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( radarscp1, dkong_base )
- MCFG_MACHINE_START(radarscp1)
+ MCFG_MACHINE_START_OVERRIDE(dkong_state,radarscp1)
MCFG_PALETTE_LENGTH(RS_PALETTE_LENGTH)
- MCFG_PALETTE_INIT(radarscp1)
+ MCFG_PALETTE_INIT_OVERRIDE(dkong_state,radarscp1)
/* sound hardware */
MCFG_FRAGMENT_ADD(radarscp1_audio)
@@ -1703,7 +1696,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( dkong2b, dkong_base )
- MCFG_MACHINE_START(dkong2b)
+ MCFG_MACHINE_START_OVERRIDE(dkong_state,dkong2b)
MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH)
/* sound hardware */
@@ -1724,7 +1717,7 @@ static MACHINE_CONFIG_START( dkong3, dkong_state )
MCFG_CPU_IO_MAP(dkong3_io_map)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_START(dkong3)
+ MCFG_MACHINE_START_OVERRIDE(dkong_state,dkong3)
MCFG_Z80DMA_ADD("z80dma", CLOCK_1H, dk3_dma)
@@ -1736,8 +1729,8 @@ static MACHINE_CONFIG_START( dkong3, dkong_state )
MCFG_GFXDECODE(dkong)
MCFG_PALETTE_LENGTH(DK3_PALETTE_LENGTH)
- MCFG_PALETTE_INIT(dkong3)
- MCFG_VIDEO_START(dkong)
+ MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong3)
+ MCFG_VIDEO_START_OVERRIDE(dkong_state,dkong)
/* sound hardware */
MCFG_FRAGMENT_ADD(dkong3_audio)
@@ -1757,7 +1750,7 @@ static MACHINE_CONFIG_DERIVED( pestplce, dkongjr )
MCFG_GFXDECODE(pestplce)
MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH)
- MCFG_PALETTE_INIT(dkong2b) /* wrong! */
+ MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong2b) /* wrong! */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(pestplce)
@@ -1766,7 +1759,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( dkong3b, dkongjr )
/* basic machine hardware */
- MCFG_PALETTE_INIT(dkong3)
+ MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong3)
MACHINE_CONFIG_END
/*************************************
@@ -1786,7 +1779,7 @@ static MACHINE_CONFIG_DERIVED( s2650, dkong2b )
MCFG_DEVICE_MODIFY("dma8257")
MCFG_DEVICE_CONFIG(hb_dma)
- MCFG_MACHINE_START(s2650)
+ MCFG_MACHINE_START_OVERRIDE(dkong_state,s2650)
MACHINE_CONFIG_END
@@ -1814,7 +1807,7 @@ static MACHINE_CONFIG_DERIVED( strtheat, dkong2b )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(epos_readport)
- MCFG_MACHINE_RESET(strtheat)
+ MCFG_MACHINE_RESET_OVERRIDE(dkong_state,strtheat)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( drakton, dkong2b )
@@ -1824,7 +1817,7 @@ static MACHINE_CONFIG_DERIVED( drakton, dkong2b )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(epos_readport)
- MCFG_MACHINE_RESET(drakton)
+ MCFG_MACHINE_RESET_OVERRIDE(dkong_state,drakton)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( drktnjr, dkongjr )
@@ -1834,7 +1827,7 @@ static MACHINE_CONFIG_DERIVED( drktnjr, dkongjr )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(epos_readport)
- MCFG_MACHINE_RESET(drakton)
+ MCFG_MACHINE_RESET_OVERRIDE(dkong_state,drakton)
MACHINE_CONFIG_END
/*************************************
diff --git a/src/mame/drivers/dlair.c b/src/mame/drivers/dlair.c
index bce5a08f913..f9a0200d99f 100644
--- a/src/mame/drivers/dlair.c
+++ b/src/mame/drivers/dlair.c
@@ -110,6 +110,9 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(laserdisc_command_r);
DECLARE_DRIVER_INIT(fixed);
DECLARE_DRIVER_INIT(variable);
+ DECLARE_MACHINE_START(dlair);
+ DECLARE_MACHINE_RESET(dlair);
+ DECLARE_PALETTE_INIT(dleuro);
};
@@ -204,14 +207,14 @@ static const z80_daisy_config dleuro_daisy_chain[] =
*
*************************************/
-static PALETTE_INIT( dleuro )
+PALETTE_INIT_MEMBER(dlair_state,dleuro)
{
int i;
for (i = 0; i < 8; i++)
{
- palette_set_color(machine, 2 * i + 0, MAKE_RGB(0, 0, 0));
- palette_set_color_rgb(machine, 2 * i + 1, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
+ palette_set_color(machine(), 2 * i + 0, MAKE_RGB(0, 0, 0));
+ palette_set_color_rgb(machine(), 2 * i + 1, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
}
}
@@ -248,21 +251,20 @@ static SCREEN_UPDATE_IND16( dleuro )
*
*************************************/
-static MACHINE_START( dlair )
+MACHINE_START_MEMBER(dlair_state,dlair)
{
}
-static MACHINE_RESET( dlair )
+MACHINE_RESET_MEMBER(dlair_state,dlair)
{
#if 0
- dlair_state *state = machine.driver_data<dlair_state>();
/* determine the laserdisc player from the DIP switches */
- if (state->m_laserdisc_type == LASERDISC_TYPE_VARIABLE)
+ if (m_laserdisc_type == LASERDISC_TYPE_VARIABLE)
{
- int newtype = (state->ioport("DSW2")->read() & 0x08) ? LASERDISC_TYPE_PIONEER_LDV1000 : LASERDISC_TYPE_PIONEER_PR7820;
- laserdisc_set_type(state->m_laserdisc, newtype);
+ int newtype = (ioport("DSW2")->read() & 0x08) ? LASERDISC_TYPE_PIONEER_LDV1000 : LASERDISC_TYPE_PIONEER_PR7820;
+ laserdisc_set_type(m_laserdisc, newtype);
}
#endif
}
@@ -724,8 +726,8 @@ static MACHINE_CONFIG_START( dlair_base, dlair_state )
MCFG_CPU_VBLANK_INT("screen", vblank_callback)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, (double)MASTER_CLOCK_US/8/16/16/16/16)
- MCFG_MACHINE_START(dlair)
- MCFG_MACHINE_RESET(dlair)
+ MCFG_MACHINE_START_OVERRIDE(dlair_state,dlair)
+ MCFG_MACHINE_RESET_OVERRIDE(dlair_state,dlair)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -766,8 +768,8 @@ static MACHINE_CONFIG_START( dleuro, dlair_state )
MCFG_WATCHDOG_TIME_INIT(attotime::from_hz(MASTER_CLOCK_EURO/(16*16*16*16*16*8)))
- MCFG_MACHINE_START(dlair)
- MCFG_MACHINE_RESET(dlair)
+ MCFG_MACHINE_START_OVERRIDE(dlair_state,dlair)
+ MCFG_MACHINE_RESET_OVERRIDE(dlair_state,dlair)
MCFG_LASERDISC_22VP932_ADD("ld_22vp932")
MCFG_LASERDISC_OVERLAY_STATIC(256, 256, dleuro)
@@ -778,7 +780,7 @@ static MACHINE_CONFIG_START( dleuro, dlair_state )
MCFG_GFXDECODE(dlair)
MCFG_PALETTE_LENGTH(16)
- MCFG_PALETTE_INIT(dleuro)
+ MCFG_PALETTE_INIT_OVERRIDE(dlair_state,dleuro)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/dmndrby.c b/src/mame/drivers/dmndrby.c
index 55611e60392..e2a1b4a7c31 100644
--- a/src/mame/drivers/dmndrby.c
+++ b/src/mame/drivers/dmndrby.c
@@ -78,6 +78,8 @@ public:
DECLARE_READ8_MEMBER(input_r);
DECLARE_WRITE8_MEMBER(output_w);
TILE_GET_INFO_MEMBER(get_dmndrby_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -335,12 +337,11 @@ TILE_GET_INFO_MEMBER(dmndrby_state::get_dmndrby_tile_info)
}
-static VIDEO_START(dderby)
+void dmndrby_state::video_start()
{
- dmndrby_state *state = machine.driver_data<dmndrby_state>();
- state->m_racetrack_tilemap_rom = state->memregion("user1")->base();
- state->m_racetrack_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dmndrby_state::get_dmndrby_tile_info),state),TILEMAP_SCAN_ROWS,16,16, 16, 512);
- state->m_racetrack_tilemap->mark_all_dirty();
+ m_racetrack_tilemap_rom = memregion("user1")->base();
+ m_racetrack_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dmndrby_state::get_dmndrby_tile_info),this),TILEMAP_SCAN_ROWS,16,16, 16, 512);
+ m_racetrack_tilemap->mark_all_dirty();
}
@@ -442,9 +443,9 @@ wouldnt like to say its the most effective way though...
}
// copied from elsewhere. surely incorrect
-static PALETTE_INIT( dmnderby )
+void dmndrby_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
static const int resistances_rg[3] = { 1000, 470, 220 };
static const int resistances_b [2] = { 470, 220 };
double rweights[3], gweights[3], bweights[2];
@@ -457,7 +458,7 @@ static PALETTE_INIT( dmnderby )
2, &resistances_b[0], bweights, 470, 0);
/* allocate the colortable */
- machine.colortable = colortable_alloc(machine, 0x20);
+ machine().colortable = colortable_alloc(machine(), 0x20);
/* create a lookup table for the palette */
for (i = 0; i < 0x20; i++)
@@ -482,17 +483,17 @@ static PALETTE_INIT( dmnderby )
bit1 = (color_prom[i] >> 7) & 0x01;
b = combine_2_weights(bweights, bit0, bit1);
- colortable_palette_set_color(machine.colortable, i, MAKE_RGB(r, g, b));
+ colortable_palette_set_color(machine().colortable, i, MAKE_RGB(r, g, b));
}
/* color_prom now points to the beginning of the lookup table */
- color_prom = machine.root_device().memregion("proms2")->base();
+ color_prom = machine().root_device().memregion("proms2")->base();
/* normal tiles use colors 0-15 */
for (i = 0x000; i < 0x300; i++)
{
UINT8 ctabentry = color_prom[i];
- colortable_entry_set_value(machine.colortable, i, ctabentry);
+ colortable_entry_set_value(machine().colortable, i, ctabentry);
}
}
@@ -530,9 +531,7 @@ static MACHINE_CONFIG_START( dderby, dmndrby_state )
MCFG_GFXDECODE(dmndrby)
MCFG_PALETTE_LENGTH(0x300)
- MCFG_PALETTE_INIT(dmnderby)
- MCFG_VIDEO_START(dderby)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/docastle.c b/src/mame/drivers/docastle.c
index ac5d0b5b127..eda75ba4ad4 100644
--- a/src/mame/drivers/docastle.c
+++ b/src/mame/drivers/docastle.c
@@ -569,35 +569,33 @@ static const sn76496_config psg_intf =
/* Machine Drivers */
-static MACHINE_RESET( docastle )
+void docastle_state::machine_reset()
{
- docastle_state *state = machine.driver_data<docastle_state>();
int i;
for (i = 0; i < 9; i++)
{
- state->m_buffer0[i] = 0;
- state->m_buffer1[i] = 0;
+ m_buffer0[i] = 0;
+ m_buffer1[i] = 0;
}
- state->m_adpcm_pos = state->m_adpcm_idle = 0;
- state->m_adpcm_data = -1;
- state->m_adpcm_status = 0;
+ m_adpcm_pos = m_adpcm_idle = 0;
+ m_adpcm_data = -1;
+ m_adpcm_status = 0;
}
-static MACHINE_START( docastle )
+void docastle_state::machine_start()
{
- docastle_state *state = machine.driver_data<docastle_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_slave = machine.device<cpu_device>("slave");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_slave = machine().device<cpu_device>("slave");
- state->save_item(NAME(state->m_adpcm_pos));
- state->save_item(NAME(state->m_adpcm_data));
- state->save_item(NAME(state->m_adpcm_idle));
- state->save_item(NAME(state->m_adpcm_status));
- state->save_item(NAME(state->m_buffer0));
- state->save_item(NAME(state->m_buffer1));
+ save_item(NAME(m_adpcm_pos));
+ save_item(NAME(m_adpcm_data));
+ save_item(NAME(m_adpcm_idle));
+ save_item(NAME(m_adpcm_status));
+ save_item(NAME(m_buffer0));
+ save_item(NAME(m_buffer1));
}
static MACHINE_CONFIG_START( docastle, docastle_state )
@@ -627,11 +625,7 @@ static MACHINE_CONFIG_START( docastle, docastle_state )
MCFG_GFXDECODE(docastle)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(docastle)
- MCFG_VIDEO_START(docastle)
- MCFG_MACHINE_RESET( docastle )
- MCFG_MACHINE_START( docastle )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -664,7 +658,7 @@ static MACHINE_CONFIG_DERIVED( dorunrun, docastle )
MCFG_CPU_PROGRAM_MAP(dorunrun_map2)
/* video hardware */
- MCFG_VIDEO_START(dorunrun)
+ MCFG_VIDEO_START_OVERRIDE(docastle_state,dorunrun)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( idsoccer, docastle )
@@ -678,7 +672,7 @@ static MACHINE_CONFIG_DERIVED( idsoccer, docastle )
MCFG_CPU_PROGRAM_MAP(idsoccer_map2)
/* video hardware */
- MCFG_VIDEO_START(dorunrun)
+ MCFG_VIDEO_START_OVERRIDE(docastle_state,dorunrun)
/* sound hardware */
MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) /* Crystal verified on American Soccer board. */
diff --git a/src/mame/drivers/dogfgt.c b/src/mame/drivers/dogfgt.c
index fa89d825c56..8c07fe165e9 100644
--- a/src/mame/drivers/dogfgt.c
+++ b/src/mame/drivers/dogfgt.c
@@ -206,36 +206,34 @@ GFXDECODE_END
-static MACHINE_START( dogfgt )
+void dogfgt_state::machine_start()
{
- dogfgt_state *state = machine.driver_data<dogfgt_state>();
- state->m_subcpu = machine.device<cpu_device>("sub");
+ m_subcpu = machine().device<cpu_device>("sub");
- state->save_item(NAME(state->m_bm_plane));
- state->save_item(NAME(state->m_lastflip));
- state->save_item(NAME(state->m_pixcolor));
- state->save_item(NAME(state->m_lastpixcolor));
- state->save_item(NAME(state->m_soundlatch));
- state->save_item(NAME(state->m_last_snd_ctrl));
+ save_item(NAME(m_bm_plane));
+ save_item(NAME(m_lastflip));
+ save_item(NAME(m_pixcolor));
+ save_item(NAME(m_lastpixcolor));
+ save_item(NAME(m_soundlatch));
+ save_item(NAME(m_last_snd_ctrl));
- state->save_item(NAME(state->m_scroll));
+ save_item(NAME(m_scroll));
}
-static MACHINE_RESET( dogfgt )
+void dogfgt_state::machine_reset()
{
- dogfgt_state *state = machine.driver_data<dogfgt_state>();
int i;
- state->m_bm_plane = 0;
- state->m_lastflip = 0;
- state->m_pixcolor = 0;
- state->m_lastpixcolor = 0;
- state->m_soundlatch = 0;
- state->m_last_snd_ctrl = 0;
+ m_bm_plane = 0;
+ m_lastflip = 0;
+ m_pixcolor = 0;
+ m_lastpixcolor = 0;
+ m_soundlatch = 0;
+ m_last_snd_ctrl = 0;
for (i = 0; i < 3; i++)
- state->m_scroll[i] = 0;
+ m_scroll[i] = 0;
}
@@ -251,8 +249,6 @@ static MACHINE_CONFIG_START( dogfgt, dogfgt_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(dogfgt)
- MCFG_MACHINE_RESET(dogfgt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -265,8 +261,6 @@ static MACHINE_CONFIG_START( dogfgt, dogfgt_state )
MCFG_GFXDECODE(dogfgt)
MCFG_PALETTE_LENGTH(16+64)
- MCFG_PALETTE_INIT(dogfgt)
- MCFG_VIDEO_START(dogfgt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dominob.c b/src/mame/drivers/dominob.c
index fdd07d33dd6..f37940464cb 100644
--- a/src/mame/drivers/dominob.c
+++ b/src/mame/drivers/dominob.c
@@ -84,11 +84,12 @@ public:
//UINT8 m_paddle_value;
DECLARE_WRITE8_MEMBER(dominob_d008_w);
DECLARE_READ8_MEMBER(dominob_unk_port02_r);
+ virtual void video_start();
};
-static VIDEO_START( dominob )
+void dominob_state::video_start()
{
- machine.gfx[0]->set_granularity(8);
+ machine().gfx[0]->set_granularity(8);
}
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
@@ -311,7 +312,6 @@ static MACHINE_CONFIG_START( dominob, dominob_state )
MCFG_GFXDECODE(dominob)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(dominob)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c
index 0ebca5c2ecc..7efa878a52c 100644
--- a/src/mame/drivers/dooyong.c
+++ b/src/mame/drivers/dooyong.c
@@ -91,9 +91,9 @@ WRITE8_MEMBER(dooyong_state::lastday_bankswitch_w)
if (data & 0xf8) popmessage("bankswitch %02x",data);
}
-static MACHINE_START( lastday )
+MACHINE_START_MEMBER(dooyong_state,lastday)
{
- machine.root_device().membank("bank1")->configure_entries(0, 8, machine.root_device().memregion("maincpu")->base() + 0x10000, 0x4000);
+ machine().root_device().membank("bank1")->configure_entries(0, 8, machine().root_device().memregion("maincpu")->base() + 0x10000, 0x4000);
}
WRITE8_MEMBER(dooyong_state::flip_screen_w)
@@ -101,12 +101,11 @@ WRITE8_MEMBER(dooyong_state::flip_screen_w)
flip_screen_set(data);
}
-static MACHINE_RESET( sound_ym2203 )
+MACHINE_RESET_MEMBER(dooyong_state,sound_ym2203)
{
- dooyong_state *state = machine.driver_data<dooyong_state>();
- state->m_interrupt_line_1=0;
- state->m_interrupt_line_2=0;
+ m_interrupt_line_1=0;
+ m_interrupt_line_2=0;
}
/***************************************************************************
@@ -871,8 +870,8 @@ static MACHINE_CONFIG_START( lastday, dooyong_state )
MCFG_CPU_ADD("audiocpu", Z80, 8000000) /* ??? */
MCFG_CPU_PROGRAM_MAP(lastday_sound_map)
- MCFG_MACHINE_START(lastday)
- MCFG_MACHINE_RESET(sound_ym2203)
+ MCFG_MACHINE_START_OVERRIDE(dooyong_state,lastday)
+ MCFG_MACHINE_RESET_OVERRIDE(dooyong_state,sound_ym2203)
/* video hardware */
@@ -889,7 +888,7 @@ static MACHINE_CONFIG_START( lastday, dooyong_state )
MCFG_GFXDECODE(lastday)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(lastday)
+ MCFG_VIDEO_START_OVERRIDE(dooyong_state,lastday)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -914,8 +913,8 @@ static MACHINE_CONFIG_START( gulfstrm, dooyong_state )
MCFG_CPU_ADD("audiocpu", Z80, 8000000) /* ??? */
MCFG_CPU_PROGRAM_MAP(lastday_sound_map)
- MCFG_MACHINE_START(lastday)
- MCFG_MACHINE_RESET(sound_ym2203)
+ MCFG_MACHINE_START_OVERRIDE(dooyong_state,lastday)
+ MCFG_MACHINE_RESET_OVERRIDE(dooyong_state,sound_ym2203)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -931,7 +930,7 @@ static MACHINE_CONFIG_START( gulfstrm, dooyong_state )
MCFG_GFXDECODE(lastday)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(gulfstrm)
+ MCFG_VIDEO_START_OVERRIDE(dooyong_state,gulfstrm)
/* sound hardware */
MCFG_FRAGMENT_ADD( sound_2203 )
@@ -947,8 +946,8 @@ static MACHINE_CONFIG_START( pollux, dooyong_state )
MCFG_CPU_ADD("audiocpu", Z80, 8000000) /* ??? */
MCFG_CPU_PROGRAM_MAP(pollux_sound_map)
- MCFG_MACHINE_START(lastday)
- MCFG_MACHINE_RESET(sound_ym2203)
+ MCFG_MACHINE_START_OVERRIDE(dooyong_state,lastday)
+ MCFG_MACHINE_RESET_OVERRIDE(dooyong_state,sound_ym2203)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -964,7 +963,7 @@ static MACHINE_CONFIG_START( pollux, dooyong_state )
MCFG_GFXDECODE(lastday)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(pollux)
+ MCFG_VIDEO_START_OVERRIDE(dooyong_state,pollux)
/* sound hardware */
MCFG_FRAGMENT_ADD( sound_2203 )
@@ -980,7 +979,7 @@ static MACHINE_CONFIG_START( bluehawk, dooyong_state )
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* ??? */
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
- MCFG_MACHINE_START(lastday)
+ MCFG_MACHINE_START_OVERRIDE(dooyong_state,lastday)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -996,7 +995,7 @@ static MACHINE_CONFIG_START( bluehawk, dooyong_state )
MCFG_GFXDECODE(bluehawk)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(bluehawk)
+ MCFG_VIDEO_START_OVERRIDE(dooyong_state,bluehawk)
/* sound hardware */
MCFG_FRAGMENT_ADD( sound_2151 )
@@ -1012,7 +1011,7 @@ static MACHINE_CONFIG_START( flytiger, dooyong_state )
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* ??? */
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
- MCFG_MACHINE_START(lastday)
+ MCFG_MACHINE_START_OVERRIDE(dooyong_state,lastday)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -1028,7 +1027,7 @@ static MACHINE_CONFIG_START( flytiger, dooyong_state )
MCFG_GFXDECODE(flytiger)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(flytiger)
+ MCFG_VIDEO_START_OVERRIDE(dooyong_state,flytiger)
/* sound hardware */
MCFG_FRAGMENT_ADD( sound_2151 )
@@ -1044,7 +1043,7 @@ static MACHINE_CONFIG_START( primella, dooyong_state )
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* ??? */
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
- MCFG_MACHINE_START(lastday)
+ MCFG_MACHINE_START_OVERRIDE(dooyong_state,lastday)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1057,7 +1056,7 @@ static MACHINE_CONFIG_START( primella, dooyong_state )
MCFG_GFXDECODE(primella)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(primella)
+ MCFG_VIDEO_START_OVERRIDE(dooyong_state,primella)
/* sound hardware */
MCFG_FRAGMENT_ADD( sound_2151 )
@@ -1099,7 +1098,7 @@ static MACHINE_CONFIG_START( rshark, dooyong_state )
MCFG_GFXDECODE(rshark)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(rshark)
+ MCFG_VIDEO_START_OVERRIDE(dooyong_state,rshark)
/* sound hardware */
MCFG_FRAGMENT_ADD( sound_2151_m68k )
@@ -1129,7 +1128,7 @@ static MACHINE_CONFIG_START( superx, dooyong_state ) // dif mem map
MCFG_GFXDECODE(rshark)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(rshark)
+ MCFG_VIDEO_START_OVERRIDE(dooyong_state,rshark)
/* sound hardware */
MCFG_FRAGMENT_ADD( sound_2151_m68k )
@@ -1159,7 +1158,7 @@ static MACHINE_CONFIG_START( popbingo, dooyong_state )
MCFG_GFXDECODE(popbingo)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(popbingo)
+ MCFG_VIDEO_START_OVERRIDE(dooyong_state,popbingo)
/* sound hardware */
MCFG_FRAGMENT_ADD( sound_2151_m68k )
diff --git a/src/mame/drivers/dorachan.c b/src/mame/drivers/dorachan.c
index 70cd1c9844f..355e8c7f7df 100644
--- a/src/mame/drivers/dorachan.c
+++ b/src/mame/drivers/dorachan.c
@@ -33,6 +33,8 @@ public:
DECLARE_WRITE8_MEMBER(dorachan_ctrl_w);
DECLARE_CUSTOM_INPUT_MEMBER(dorachan_protection_r);
DECLARE_CUSTOM_INPUT_MEMBER(dorachan_v128_r);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -221,20 +223,18 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_START( dorachan )
+void dorachan_state::machine_start()
{
- dorachan_state *state = machine.driver_data<dorachan_state>();
- state->m_main_cpu = machine.device("maincpu");
+ m_main_cpu = machine().device("maincpu");
- state->save_item(NAME(state->m_flip_screen));
+ save_item(NAME(m_flip_screen));
}
-static MACHINE_RESET( dorachan )
+void dorachan_state::machine_reset()
{
- dorachan_state *state = machine.driver_data<dorachan_state>();
- state->m_flip_screen = 0;
+ m_flip_screen = 0;
}
static MACHINE_CONFIG_START( dorachan, dorachan_state )
@@ -245,8 +245,6 @@ static MACHINE_CONFIG_START( dorachan, dorachan_state )
MCFG_CPU_IO_MAP(dorachan_io_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,2*60)
- MCFG_MACHINE_START(dorachan)
- MCFG_MACHINE_RESET(dorachan)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/dotrikun.c b/src/mame/drivers/dotrikun.c
index 1d951fdcede..ad0413fb758 100644
--- a/src/mame/drivers/dotrikun.c
+++ b/src/mame/drivers/dotrikun.c
@@ -37,6 +37,8 @@ public:
/* video-related */
UINT8 m_color;
DECLARE_WRITE8_MEMBER(dotrikun_color_w);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -134,17 +136,15 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_START( dotrikun )
+void dotrikun_state::machine_start()
{
- dotrikun_state *state = machine.driver_data<dotrikun_state>();
- state->save_item(NAME(state->m_color));
+ save_item(NAME(m_color));
}
-static MACHINE_RESET( dotrikun )
+void dotrikun_state::machine_reset()
{
- dotrikun_state *state = machine.driver_data<dotrikun_state>();
- state->m_color = 0;
+ m_color = 0;
}
#define MASTER_CLOCK XTAL_4MHz
@@ -157,8 +157,6 @@ static MACHINE_CONFIG_START( dotrikun, dotrikun_state )
MCFG_CPU_IO_MAP(io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(dotrikun)
- MCFG_MACHINE_RESET(dotrikun)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/dragrace.c b/src/mame/drivers/dragrace.c
index ade79814ec9..3f1ebfb0110 100644
--- a/src/mame/drivers/dragrace.c
+++ b/src/mame/drivers/dragrace.c
@@ -289,44 +289,42 @@ static GFXDECODE_START( dragrace )
GFXDECODE_END
-static PALETTE_INIT( dragrace )
+void dragrace_state::palette_init()
{
- palette_set_color(machine, 0, MAKE_RGB(0xFF, 0xFF, 0xFF)); /* 2 color tiles */
- palette_set_color(machine, 1, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, 2, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, 3, MAKE_RGB(0xFF, 0xFF, 0xFF));
- palette_set_color(machine, 4, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, 5, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, 6, MAKE_RGB(0xFF, 0xFF, 0xFF));
- palette_set_color(machine, 7, MAKE_RGB(0xFF, 0xFF, 0xFF));
- palette_set_color(machine, 8, MAKE_RGB(0xFF, 0xFF, 0xFF)); /* 4 color tiles */
- palette_set_color(machine, 9, MAKE_RGB(0xB0, 0xB0, 0xB0));
- palette_set_color(machine, 10,MAKE_RGB(0x5F, 0x5F, 0x5F));
- palette_set_color(machine, 11,MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, 12,MAKE_RGB(0xFF, 0xFF, 0xFF));
- palette_set_color(machine, 13,MAKE_RGB(0x5F, 0x5F, 0x5F));
- palette_set_color(machine, 14,MAKE_RGB(0xB0, 0xB0, 0xB0));
- palette_set_color(machine, 15,MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), 0, MAKE_RGB(0xFF, 0xFF, 0xFF)); /* 2 color tiles */
+ palette_set_color(machine(), 1, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), 2, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), 3, MAKE_RGB(0xFF, 0xFF, 0xFF));
+ palette_set_color(machine(), 4, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), 5, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), 6, MAKE_RGB(0xFF, 0xFF, 0xFF));
+ palette_set_color(machine(), 7, MAKE_RGB(0xFF, 0xFF, 0xFF));
+ palette_set_color(machine(), 8, MAKE_RGB(0xFF, 0xFF, 0xFF)); /* 4 color tiles */
+ palette_set_color(machine(), 9, MAKE_RGB(0xB0, 0xB0, 0xB0));
+ palette_set_color(machine(), 10,MAKE_RGB(0x5F, 0x5F, 0x5F));
+ palette_set_color(machine(), 11,MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), 12,MAKE_RGB(0xFF, 0xFF, 0xFF));
+ palette_set_color(machine(), 13,MAKE_RGB(0x5F, 0x5F, 0x5F));
+ palette_set_color(machine(), 14,MAKE_RGB(0xB0, 0xB0, 0xB0));
+ palette_set_color(machine(), 15,MAKE_RGB(0x00, 0x00, 0x00));
}
-static MACHINE_START( dragrace )
+void dragrace_state::machine_start()
{
- dragrace_state *state = machine.driver_data<dragrace_state>();
- state->m_discrete = machine.device("discrete");
+ m_discrete = machine().device("discrete");
- state->save_item(NAME(state->m_misc_flags));
- state->save_item(NAME(state->m_gear));
+ save_item(NAME(m_misc_flags));
+ save_item(NAME(m_gear));
}
-static MACHINE_RESET( dragrace )
+void dragrace_state::machine_reset()
{
- dragrace_state *state = machine.driver_data<dragrace_state>();
- state->m_misc_flags = 0;
- state->m_gear[0] = 0;
- state->m_gear[1] = 0;
+ m_misc_flags = 0;
+ m_gear[0] = 0;
+ m_gear[1] = 0;
}
static MACHINE_CONFIG_START( dragrace, dragrace_state )
@@ -337,8 +335,6 @@ static MACHINE_CONFIG_START( dragrace, dragrace_state )
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 4*60)
MCFG_WATCHDOG_VBLANK_INIT(8)
- MCFG_MACHINE_START(dragrace)
- MCFG_MACHINE_RESET(dragrace)
MCFG_TIMER_ADD_PERIODIC("frame_timer", dragrace_frame_callback, attotime::from_hz(60))
@@ -351,8 +347,6 @@ static MACHINE_CONFIG_START( dragrace, dragrace_state )
MCFG_GFXDECODE(dragrace)
MCFG_PALETTE_LENGTH(16)
- MCFG_PALETTE_INIT(dragrace)
- MCFG_VIDEO_START(dragrace)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/dreamwld.c b/src/mame/drivers/dreamwld.c
index 35945bbdd08..a1fd4dd6b0a 100644
--- a/src/mame/drivers/dreamwld.c
+++ b/src/mame/drivers/dreamwld.c
@@ -160,6 +160,9 @@ public:
DECLARE_WRITE32_MEMBER(dreamwld_palette_w);
TILE_GET_INFO_MEMBER(get_dreamwld_bg_tile_info);
TILE_GET_INFO_MEMBER(get_dreamwld_bg2_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -262,22 +265,21 @@ TILE_GET_INFO_MEMBER(dreamwld_state::get_dreamwld_bg2_tile_info)
SET_TILE_INFO_MEMBER(1, tileno + m_tilebank[1] * 0x2000, 0xc0 + colour, 0);
}
-static VIDEO_START( dreamwld )
+void dreamwld_state::video_start()
{
- dreamwld_state *state = machine.driver_data<dreamwld_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dreamwld_state::get_dreamwld_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 64,32);
- state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dreamwld_state::get_dreamwld_bg2_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 64,32);
- state->m_bg2_tilemap->set_transparent_pen(0);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dreamwld_state::get_dreamwld_bg_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16, 64,32);
+ m_bg2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dreamwld_state::get_dreamwld_bg2_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16, 64,32);
+ m_bg2_tilemap->set_transparent_pen(0);
- state->m_bg_tilemap->set_scroll_rows(256); // line scrolling
- state->m_bg_tilemap->set_scroll_cols(1);
+ m_bg_tilemap->set_scroll_rows(256); // line scrolling
+ m_bg_tilemap->set_scroll_cols(1);
- state->m_bg2_tilemap->set_scroll_rows(256); // line scrolling
- state->m_bg2_tilemap->set_scroll_cols(1);
+ m_bg2_tilemap->set_scroll_rows(256); // line scrolling
+ m_bg2_tilemap->set_scroll_cols(1);
- state->m_spritebuf1 = auto_alloc_array(machine, UINT32, 0x2000 / 4);
- state->m_spritebuf2 = auto_alloc_array(machine, UINT32, 0x2000 / 4);
+ m_spritebuf1 = auto_alloc_array(machine(), UINT32, 0x2000 / 4);
+ m_spritebuf2 = auto_alloc_array(machine(), UINT32, 0x2000 / 4);
}
@@ -563,22 +565,20 @@ GFXDECODE_END
-static MACHINE_START( dreamwld )
+void dreamwld_state::machine_start()
{
- dreamwld_state *state = machine.driver_data<dreamwld_state>();
- state->save_item(NAME(state->m_protindex));
- state->save_item(NAME(state->m_tilebank));
- state->save_item(NAME(state->m_tilebankold));
+ save_item(NAME(m_protindex));
+ save_item(NAME(m_tilebank));
+ save_item(NAME(m_tilebankold));
}
-static MACHINE_RESET( dreamwld )
+void dreamwld_state::machine_reset()
{
- dreamwld_state *state = machine.driver_data<dreamwld_state>();
- state->m_tilebankold[0] = state->m_tilebankold[1] = -1;
- state->m_tilebank[0] = state->m_tilebank[1] = 0;
- state->m_protindex = 0;
+ m_tilebankold[0] = m_tilebankold[1] = -1;
+ m_tilebank[0] = m_tilebank[1] = 0;
+ m_protindex = 0;
}
@@ -591,8 +591,6 @@ static MACHINE_CONFIG_START( baryon, dreamwld_state )
MCFG_CPU_PROGRAM_MAP(baryon_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold )
- MCFG_MACHINE_START(dreamwld)
- MCFG_MACHINE_RESET(dreamwld)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -606,7 +604,6 @@ static MACHINE_CONFIG_START( baryon, dreamwld_state )
MCFG_PALETTE_LENGTH(0x1000)
MCFG_GFXDECODE(dreamwld)
- MCFG_VIDEO_START(dreamwld)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/drgnmst.c b/src/mame/drivers/drgnmst.c
index abf7a13cc79..e046f153a8a 100644
--- a/src/mame/drivers/drgnmst.c
+++ b/src/mame/drivers/drgnmst.c
@@ -369,30 +369,28 @@ static GFXDECODE_START( drgnmst )
GFXDECODE_END
-static MACHINE_START( drgnmst )
+void drgnmst_state::machine_start()
{
- drgnmst_state *state = machine.driver_data<drgnmst_state>();
-
- state->save_item(NAME(state->m_snd_flag));
- state->save_item(NAME(state->m_snd_command));
- state->save_item(NAME(state->m_oki_control));
- state->save_item(NAME(state->m_oki_command));
- state->save_item(NAME(state->m_pic16c5x_port0));
- state->save_item(NAME(state->m_oki1_bank));
- state->save_item(NAME(state->m_oki0_bank));
+
+ save_item(NAME(m_snd_flag));
+ save_item(NAME(m_snd_command));
+ save_item(NAME(m_oki_control));
+ save_item(NAME(m_oki_command));
+ save_item(NAME(m_pic16c5x_port0));
+ save_item(NAME(m_oki1_bank));
+ save_item(NAME(m_oki0_bank));
}
-static MACHINE_RESET( drgnmst )
+void drgnmst_state::machine_reset()
{
- drgnmst_state *state = machine.driver_data<drgnmst_state>();
-
- state->m_snd_flag = 0;
- state->m_snd_command = 0;
- state->m_oki_control = 0;
- state->m_oki_command = 0;
- state->m_pic16c5x_port0 = 0;
- state->m_oki1_bank = 0;
- state->m_oki0_bank = 0;
+
+ m_snd_flag = 0;
+ m_snd_command = 0;
+ m_oki_control = 0;
+ m_oki_command = 0;
+ m_pic16c5x_port0 = 0;
+ m_oki1_bank = 0;
+ m_oki0_bank = 0;
}
static MACHINE_CONFIG_START( drgnmst, drgnmst_state )
@@ -405,8 +403,6 @@ static MACHINE_CONFIG_START( drgnmst, drgnmst_state )
/* Program and Data Maps are internal to the MCU */
MCFG_CPU_IO_MAP(drgnmst_sound_io_map)
- MCFG_MACHINE_START(drgnmst)
- MCFG_MACHINE_RESET(drgnmst)
MCFG_GFXDECODE(drgnmst)
@@ -419,7 +415,6 @@ static MACHINE_CONFIG_START( drgnmst, drgnmst_state )
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(drgnmst)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/dribling.c b/src/mame/drivers/dribling.c
index da53e0d8ba7..c3cea192ea0 100644
--- a/src/mame/drivers/dribling.c
+++ b/src/mame/drivers/dribling.c
@@ -276,28 +276,26 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_START( dribling )
+void dribling_state::machine_start()
{
- dribling_state *state = machine.driver_data<dribling_state>();
-
- state->save_item(NAME(state->m_abca));
- state->save_item(NAME(state->m_di));
- state->save_item(NAME(state->m_dr));
- state->save_item(NAME(state->m_ds));
- state->save_item(NAME(state->m_sh));
- state->save_item(NAME(state->m_input_mux));
+
+ save_item(NAME(m_abca));
+ save_item(NAME(m_di));
+ save_item(NAME(m_dr));
+ save_item(NAME(m_ds));
+ save_item(NAME(m_sh));
+ save_item(NAME(m_input_mux));
}
-static MACHINE_RESET( dribling )
+void dribling_state::machine_reset()
{
- dribling_state *state = machine.driver_data<dribling_state>();
-
- state->m_abca = 0;
- state->m_di = 0;
- state->m_dr = 0;
- state->m_ds = 0;
- state->m_sh = 0;
- state->m_input_mux = 0;
+
+ m_abca = 0;
+ m_di = 0;
+ m_dr = 0;
+ m_ds = 0;
+ m_sh = 0;
+ m_input_mux = 0;
}
@@ -312,8 +310,6 @@ static MACHINE_CONFIG_START( dribling, dribling_state )
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf )
MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf )
- MCFG_MACHINE_START(dribling)
- MCFG_MACHINE_RESET(dribling)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -327,7 +323,6 @@ static MACHINE_CONFIG_START( dribling, dribling_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(dribling)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/drmicro.c b/src/mame/drivers/drmicro.c
index d437c6af1d0..738806a9c06 100644
--- a/src/mame/drivers/drmicro.c
+++ b/src/mame/drivers/drmicro.c
@@ -238,24 +238,22 @@ static const sn76496_config psg_intf =
*
*************************************/
-static MACHINE_START( drmicro )
+void drmicro_state::machine_start()
{
- drmicro_state *state = machine.driver_data<drmicro_state>();
- state->m_msm = machine.device("msm");
+ m_msm = machine().device("msm");
- state->save_item(NAME(state->m_nmi_enable));
- state->save_item(NAME(state->m_pcm_adr));
- state->save_item(NAME(state->m_flipscreen));
+ save_item(NAME(m_nmi_enable));
+ save_item(NAME(m_pcm_adr));
+ save_item(NAME(m_flipscreen));
}
-static MACHINE_RESET( drmicro )
+void drmicro_state::machine_reset()
{
- drmicro_state *state = machine.driver_data<drmicro_state>();
- state->m_nmi_enable = 0;
- state->m_pcm_adr = 0;
- state->m_flipscreen = 0;
+ m_nmi_enable = 0;
+ m_pcm_adr = 0;
+ m_flipscreen = 0;
}
@@ -269,8 +267,6 @@ static MACHINE_CONFIG_START( drmicro, drmicro_state )
MCFG_QUANTUM_TIME(attotime::from_hz(60))
- MCFG_MACHINE_START(drmicro)
- MCFG_MACHINE_RESET(drmicro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -283,8 +279,6 @@ static MACHINE_CONFIG_START( drmicro, drmicro_state )
MCFG_GFXDECODE(drmicro)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(drmicro)
- MCFG_VIDEO_START(drmicro)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/drtomy.c b/src/mame/drivers/drtomy.c
index 08941c3302d..684ce096e67 100644
--- a/src/mame/drivers/drtomy.c
+++ b/src/mame/drivers/drtomy.c
@@ -37,6 +37,9 @@ public:
DECLARE_WRITE16_MEMBER(drtomy_okibank_w);
TILE_GET_INFO_MEMBER(get_tile_info_fg);
TILE_GET_INFO_MEMBER(get_tile_info_bg);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -119,14 +122,13 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-static VIDEO_START( drtomy )
+void drtomy_state::video_start()
{
- drtomy_state *state = machine.driver_data<drtomy_state>();
- state->m_tilemap_bg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drtomy_state::get_tile_info_bg),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- state->m_tilemap_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drtomy_state::get_tile_info_fg),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap_bg = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(drtomy_state::get_tile_info_bg),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap_fg = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(drtomy_state::get_tile_info_fg),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- state->m_tilemap_fg->set_transparent_pen(0);
+ m_tilemap_fg->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16( drtomy )
@@ -281,18 +283,16 @@ static INPUT_PORTS_START( drtomy )
INPUT_PORTS_END
-static MACHINE_START( drtomy )
+void drtomy_state::machine_start()
{
- drtomy_state *state = machine.driver_data<drtomy_state>();
- state->save_item(NAME(state->m_oki_bank));
+ save_item(NAME(m_oki_bank));
}
-static MACHINE_RESET( drtomy )
+void drtomy_state::machine_reset()
{
- drtomy_state *state = machine.driver_data<drtomy_state>();
- state->m_oki_bank = 0;
+ m_oki_bank = 0;
}
static MACHINE_CONFIG_START( drtomy, drtomy_state )
@@ -302,8 +302,6 @@ static MACHINE_CONFIG_START( drtomy, drtomy_state )
MCFG_CPU_PROGRAM_MAP(drtomy_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)
- MCFG_MACHINE_START(drtomy)
- MCFG_MACHINE_RESET(drtomy)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -316,7 +314,6 @@ static MACHINE_CONFIG_START( drtomy, drtomy_state )
MCFG_GFXDECODE(drtomy)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(drtomy)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/drw80pkr.c b/src/mame/drivers/drw80pkr.c
index 3d58de44998..15a77ab5e3d 100644
--- a/src/mame/drivers/drw80pkr.c
+++ b/src/mame/drivers/drw80pkr.c
@@ -67,6 +67,9 @@ public:
DECLARE_READ8_MEMBER(drw80pkr_io_r);
DECLARE_DRIVER_INIT(drw80pkr);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void machine_start();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -74,10 +77,9 @@ public:
#define DATA_NVRAM_SIZE 0x100
-static MACHINE_START( drw80pkr )
+void drw80pkr_state::machine_start()
{
- drw80pkr_state *state = machine.driver_data<drw80pkr_state>();
- machine.device<nvram_device>("nvram")->set_base(state->m_pkr_io_ram, sizeof(state->m_pkr_io_ram));
+ machine().device<nvram_device>("nvram")->set_base(m_pkr_io_ram, sizeof(m_pkr_io_ram));
}
/*****************
@@ -332,10 +334,9 @@ TILE_GET_INFO_MEMBER(drw80pkr_state::get_bg_tile_info)
SET_TILE_INFO_MEMBER(0, code, color, 0);
}
-static VIDEO_START( drw80pkr )
+void drw80pkr_state::video_start()
{
- drw80pkr_state *state = machine.driver_data<drw80pkr_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drw80pkr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 24, 27);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(drw80pkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 24, 27);
}
static SCREEN_UPDATE_IND16( drw80pkr )
@@ -346,12 +347,12 @@ static SCREEN_UPDATE_IND16( drw80pkr )
return 0;
}
-static PALETTE_INIT( drw80pkr )
+void drw80pkr_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int j;
- for (j = 0; j < machine.total_colors(); j++)
+ for (j = 0; j < machine().total_colors(); j++)
{
int r, g, b, tr, tg, tb, i;
@@ -370,7 +371,7 @@ static PALETTE_INIT( drw80pkr )
tb = 0xf0 - (0xf0 * ((color_prom[j] >> 2) & 0x01));
b = tb - (i * (tb / 5));
- palette_set_color(machine, j, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), j, MAKE_RGB(r, g, b));
}
}
@@ -468,7 +469,6 @@ static MACHINE_CONFIG_START( drw80pkr, drw80pkr_state )
MCFG_CPU_IO_MAP(drw80pkr_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(drw80pkr)
// video hardware
@@ -482,8 +482,6 @@ static MACHINE_CONFIG_START( drw80pkr, drw80pkr_state )
MCFG_GFXDECODE(drw80pkr)
MCFG_PALETTE_LENGTH(16*16)
- MCFG_PALETTE_INIT(drw80pkr)
- MCFG_VIDEO_START(drw80pkr)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/dunhuang.c b/src/mame/drivers/dunhuang.c
index 1611f749252..7ab60f6245c 100644
--- a/src/mame/drivers/dunhuang.c
+++ b/src/mame/drivers/dunhuang.c
@@ -119,6 +119,9 @@ public:
DECLARE_READ8_MEMBER(dunhuang_dsw_r);
TILE_GET_INFO_MEMBER(get_tile_info);
TILE_GET_INFO_MEMBER(get_tile_info2);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -140,20 +143,19 @@ TILE_GET_INFO_MEMBER(dunhuang_state::get_tile_info2)
SET_TILE_INFO_MEMBER(1, code, color, 0);
}
-static VIDEO_START(dunhuang)
+void dunhuang_state::video_start()
{
- dunhuang_state *state = machine.driver_data<dunhuang_state>();
- state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dunhuang_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20);
- state->m_tmap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dunhuang_state::get_tile_info2),state), TILEMAP_SCAN_ROWS, 8,32, 0x40,0x8);
+ m_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dunhuang_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20);
+ m_tmap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dunhuang_state::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8,32, 0x40,0x8);
- state->m_tmap->set_transparent_pen(0);
- state->m_tmap2->set_transparent_pen(0);
+ m_tmap->set_transparent_pen(0);
+ m_tmap2->set_transparent_pen(0);
- state->save_item(NAME(state->m_videoram));
- state->save_item(NAME(state->m_colorram));
- state->save_item(NAME(state->m_videoram2));
- state->save_item(NAME(state->m_colorram2));
- state->save_item(NAME(state->m_paldata));
+ save_item(NAME(m_videoram));
+ save_item(NAME(m_colorram));
+ save_item(NAME(m_videoram2));
+ save_item(NAME(m_colorram2));
+ save_item(NAME(m_paldata));
}
static SCREEN_UPDATE_IND16( dunhuang )
@@ -763,53 +765,51 @@ static const ay8910_interface dunhuang_ay8910_interface =
-static MACHINE_START( dunhuang )
+void dunhuang_state::machine_start()
{
- dunhuang_state *state = machine.driver_data<dunhuang_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000);
+ membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000);
- state->save_item(NAME(state->m_written));
- state->save_item(NAME(state->m_written2));
- state->save_item(NAME(state->m_pos_x));
- state->save_item(NAME(state->m_pos_y));
- state->save_item(NAME(state->m_clear_y));
- state->save_item(NAME(state->m_block_x));
- state->save_item(NAME(state->m_block_y));
- state->save_item(NAME(state->m_block_w));
- state->save_item(NAME(state->m_block_h));
- state->save_item(NAME(state->m_block_addr_hi));
- state->save_item(NAME(state->m_block_addr_lo));
- state->save_item(NAME(state->m_block_dest));
- state->save_item(NAME(state->m_block_c));
- state->save_item(NAME(state->m_layers));
- state->save_item(NAME(state->m_paloffs));
- state->save_item(NAME(state->m_input));
- state->save_item(NAME(state->m_hopper));
+ save_item(NAME(m_written));
+ save_item(NAME(m_written2));
+ save_item(NAME(m_pos_x));
+ save_item(NAME(m_pos_y));
+ save_item(NAME(m_clear_y));
+ save_item(NAME(m_block_x));
+ save_item(NAME(m_block_y));
+ save_item(NAME(m_block_w));
+ save_item(NAME(m_block_h));
+ save_item(NAME(m_block_addr_hi));
+ save_item(NAME(m_block_addr_lo));
+ save_item(NAME(m_block_dest));
+ save_item(NAME(m_block_c));
+ save_item(NAME(m_layers));
+ save_item(NAME(m_paloffs));
+ save_item(NAME(m_input));
+ save_item(NAME(m_hopper));
}
-static MACHINE_RESET( dunhuang )
-{
- dunhuang_state *state = machine.driver_data<dunhuang_state>();
-
- state->m_written = 0;
- state->m_written2 = 0;
- state->m_pos_x = 0;
- state->m_pos_y = 0;
- state->m_clear_y = 0;
- state->m_block_x = 0;
- state->m_block_y = 0;
- state->m_block_w = 0;
- state->m_block_h = 0;
- state->m_block_addr_hi = 0;
- state->m_block_addr_lo = 0;
- state->m_block_dest = 0;
- state->m_block_c = 0;
- state->m_layers = 0;
- state->m_paloffs = 0;
- state->m_input = 0;
- state->m_hopper = 0;
+void dunhuang_state::machine_reset()
+{
+
+ m_written = 0;
+ m_written2 = 0;
+ m_pos_x = 0;
+ m_pos_y = 0;
+ m_clear_y = 0;
+ m_block_x = 0;
+ m_block_y = 0;
+ m_block_w = 0;
+ m_block_h = 0;
+ m_block_addr_hi = 0;
+ m_block_addr_lo = 0;
+ m_block_dest = 0;
+ m_block_c = 0;
+ m_layers = 0;
+ m_paloffs = 0;
+ m_input = 0;
+ m_hopper = 0;
}
@@ -821,8 +821,6 @@ static MACHINE_CONFIG_START( dunhuang, dunhuang_state )
MCFG_CPU_IO_MAP(dunhuang_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(dunhuang)
- MCFG_MACHINE_RESET(dunhuang)
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(5))
@@ -837,7 +835,6 @@ static MACHINE_CONFIG_START( dunhuang, dunhuang_state )
MCFG_GFXDECODE(dunhuang)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(dunhuang)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dwarfd.c b/src/mame/drivers/dwarfd.c
index 010ef924e92..f0a5903ed76 100644
--- a/src/mame/drivers/dwarfd.c
+++ b/src/mame/drivers/dwarfd.c
@@ -345,6 +345,10 @@ public:
DECLARE_WRITE_LINE_MEMBER(dwarfd_sod_callback);
DECLARE_DRIVER_INIT(qc);
DECLARE_DRIVER_INIT(dwarfd);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -778,7 +782,7 @@ static INPUT_PORTS_START( quarterh )
INPUT_PORTS_END
-static VIDEO_START(dwarfd)
+void dwarfd_state::video_start()
{
}
@@ -985,23 +989,23 @@ static GFXDECODE_START( dwarfd )
GFXDECODE_ENTRY( "gfx2", 0, tiles8x8_layout3, 0, 16 )
GFXDECODE_END
-static PALETTE_INIT(dwarfd)
+void dwarfd_state::palette_init()
{
int i;
for (i = 0; i < 256; i++)
{
- int r = machine.rand()|0x80;
- int g = machine.rand()|0x80;
- int b = machine.rand()|0x80;
+ int r = machine().rand()|0x80;
+ int g = machine().rand()|0x80;
+ int b = machine().rand()|0x80;
if (i == 0) r = g = b = 0;
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
}
- palette_set_color(machine, 8, MAKE_RGB(255, 255, 0));
- palette_set_color(machine, 12, MAKE_RGB(127, 127, 255));
- palette_set_color(machine, 4, MAKE_RGB(0, 255, 0));
- palette_set_color(machine, 6, MAKE_RGB(255, 0, 0));
+ palette_set_color(machine(), 8, MAKE_RGB(255, 255, 0));
+ palette_set_color(machine(), 12, MAKE_RGB(127, 127, 255));
+ palette_set_color(machine(), 4, MAKE_RGB(0, 255, 0));
+ palette_set_color(machine(), 6, MAKE_RGB(255, 0, 0));
}
static const ay8910_interface ay8910_config =
@@ -1015,50 +1019,48 @@ static const ay8910_interface ay8910_config =
};
-static MACHINE_START( dwarfd )
+void dwarfd_state::machine_start()
{
- dwarfd_state *state = machine.driver_data<dwarfd_state>();
- state->save_item(NAME(state->m_bank));
- state->save_item(NAME(state->m_line));
- state->save_item(NAME(state->m_idx));
- state->save_item(NAME(state->m_crt_access));
+ save_item(NAME(m_bank));
+ save_item(NAME(m_line));
+ save_item(NAME(m_idx));
+ save_item(NAME(m_crt_access));
/* i8275 */
- state->save_item(NAME(state->m_i8275Command));
- state->save_item(NAME(state->m_i8275HorizontalCharactersRow));
- state->save_item(NAME(state->m_i8275CommandSeqCnt));
- state->save_item(NAME(state->m_i8275SpacedRows));
- state->save_item(NAME(state->m_i8275VerticalRows));
- state->save_item(NAME(state->m_i8275VerticalRetraceRows));
- state->save_item(NAME(state->m_i8275Underline));
- state->save_item(NAME(state->m_i8275Lines));
- state->save_item(NAME(state->m_i8275LineCounterMode));
- state->save_item(NAME(state->m_i8275FieldAttributeMode));
- state->save_item(NAME(state->m_i8275CursorFormat));
- state->save_item(NAME(state->m_i8275HorizontalRetrace));
+ save_item(NAME(m_i8275Command));
+ save_item(NAME(m_i8275HorizontalCharactersRow));
+ save_item(NAME(m_i8275CommandSeqCnt));
+ save_item(NAME(m_i8275SpacedRows));
+ save_item(NAME(m_i8275VerticalRows));
+ save_item(NAME(m_i8275VerticalRetraceRows));
+ save_item(NAME(m_i8275Underline));
+ save_item(NAME(m_i8275Lines));
+ save_item(NAME(m_i8275LineCounterMode));
+ save_item(NAME(m_i8275FieldAttributeMode));
+ save_item(NAME(m_i8275CursorFormat));
+ save_item(NAME(m_i8275HorizontalRetrace));
}
-static MACHINE_RESET( dwarfd )
+void dwarfd_state::machine_reset()
{
- dwarfd_state *state = machine.driver_data<dwarfd_state>();
- state->m_bank = 0;
- state->m_line = 0;
- state->m_idx = 0;
- state->m_crt_access = 0;
- state->m_i8275Command = 0;
- state->m_i8275HorizontalCharactersRow = 0;
- state->m_i8275CommandSeqCnt = 0;
- state->m_i8275SpacedRows = 0;
- state->m_i8275VerticalRows = 0;
- state->m_i8275VerticalRetraceRows = 0;
- state->m_i8275Underline = 0;
- state->m_i8275Lines = 0;
- state->m_i8275LineCounterMode = 0;
- state->m_i8275FieldAttributeMode = 0;
- state->m_i8275CursorFormat = 0;
- state->m_i8275HorizontalRetrace = 0;
+ m_bank = 0;
+ m_line = 0;
+ m_idx = 0;
+ m_crt_access = 0;
+ m_i8275Command = 0;
+ m_i8275HorizontalCharactersRow = 0;
+ m_i8275CommandSeqCnt = 0;
+ m_i8275SpacedRows = 0;
+ m_i8275VerticalRows = 0;
+ m_i8275VerticalRetraceRows = 0;
+ m_i8275Underline = 0;
+ m_i8275Lines = 0;
+ m_i8275LineCounterMode = 0;
+ m_i8275FieldAttributeMode = 0;
+ m_i8275CursorFormat = 0;
+ m_i8275HorizontalRetrace = 0;
}
static MACHINE_CONFIG_START( dwarfd, dwarfd_state )
@@ -1071,8 +1073,6 @@ static MACHINE_CONFIG_START( dwarfd, dwarfd_state )
MCFG_CPU_IO_MAP(io_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", dwarfd_interrupt, "screen", 0, 1)
- MCFG_MACHINE_START(dwarfd)
- MCFG_MACHINE_RESET(dwarfd)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1084,9 +1084,7 @@ static MACHINE_CONFIG_START( dwarfd, dwarfd_state )
MCFG_GFXDECODE(dwarfd)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT(dwarfd)
- MCFG_VIDEO_START(dwarfd)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1500000)
diff --git a/src/mame/drivers/dynadice.c b/src/mame/drivers/dynadice.c
index 2908eb33204..2c070fb6d7d 100644
--- a/src/mame/drivers/dynadice.c
+++ b/src/mame/drivers/dynadice.c
@@ -61,6 +61,10 @@ public:
DECLARE_WRITE8_MEMBER(sound_control_w);
DECLARE_DRIVER_INIT(dynadice);
TILE_GET_INFO_MEMBER(get_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -199,14 +203,13 @@ TILE_GET_INFO_MEMBER(dynadice_state::get_tile_info)
SET_TILE_INFO_MEMBER(1, code, 0, 0);
}
-static VIDEO_START( dynadice )
+void dynadice_state::video_start()
{
- dynadice_state *state = machine.driver_data<dynadice_state>();
/* pacman - style videoram layout */
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dynadice_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_top_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dynadice_state::get_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 2, 32);
- state->m_bg_tilemap->set_scrollx(0, -16);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dynadice_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_top_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dynadice_state::get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 2, 32);
+ m_bg_tilemap->set_scrollx(0, -16);
}
static SCREEN_UPDATE_IND16( dynadice )
@@ -219,23 +222,21 @@ static SCREEN_UPDATE_IND16( dynadice )
return 0;
}
-static PALETTE_INIT( dynadice )
+void dynadice_state::palette_init()
{
int i;
for(i = 0; i < 8; i++)
- palette_set_color_rgb(machine, i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
+ palette_set_color_rgb(machine(), i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
}
-static MACHINE_START( dynadice )
+void dynadice_state::machine_start()
{
- dynadice_state *state = machine.driver_data<dynadice_state>();
- state->save_item(NAME(state->m_ay_data));
+ save_item(NAME(m_ay_data));
}
-static MACHINE_RESET( dynadice )
+void dynadice_state::machine_reset()
{
- dynadice_state *state = machine.driver_data<dynadice_state>();
- state->m_ay_data = 0;
+ m_ay_data = 0;
}
static MACHINE_CONFIG_START( dynadice, dynadice_state )
@@ -249,8 +250,6 @@ static MACHINE_CONFIG_START( dynadice, dynadice_state )
MCFG_CPU_PROGRAM_MAP(dynadice_sound_map)
MCFG_CPU_IO_MAP(dynadice_sound_io_map)
- MCFG_MACHINE_START(dynadice)
- MCFG_MACHINE_RESET(dynadice)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -264,9 +263,7 @@ static MACHINE_CONFIG_START( dynadice, dynadice_state )
MCFG_GFXDECODE(dynadice)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(dynadice)
- MCFG_VIDEO_START(dynadice)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c
index f93d61b66da..2e5f32ecb4d 100644
--- a/src/mame/drivers/dynax.c
+++ b/src/mame/drivers/dynax.c
@@ -438,12 +438,11 @@ WRITE8_MEMBER(dynax_state::adpcm_reset_w)
msm5205_reset_w(device, ~data & 1);
}
-static MACHINE_RESET( adpcm )
+MACHINE_RESET_MEMBER(dynax_state,adpcm)
{
- dynax_state *state = machine.driver_data<dynax_state>();
/* start with the MSM5205 reset */
- state->m_resetkludge = 0;
- msm5205_reset_w(machine.device("msm"), 1);
+ m_resetkludge = 0;
+ msm5205_reset_w(machine().device("msm"), 1);
}
WRITE8_MEMBER(dynax_state::yarunara_layer_half_w)
@@ -4153,111 +4152,109 @@ INPUT_PORTS_END
***************************************************************************/
-static MACHINE_START( dynax )
-{
- dynax_state *state = machine.driver_data<dynax_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_soundcpu = machine.device<cpu_device>("soundcpu");
- state->m_rtc = machine.device("rtc");
- state->m_ymsnd = machine.device("ymsnd");
-
- state->save_item(NAME(state->m_sound_irq));
- state->save_item(NAME(state->m_vblank_irq));
- state->save_item(NAME(state->m_blitter_irq));
- state->save_item(NAME(state->m_blitter2_irq));
- state->save_item(NAME(state->m_soundlatch_irq));
- state->save_item(NAME(state->m_sound_vblank_irq));
-
- state->save_item(NAME(state->m_input_sel));
- state->save_item(NAME(state->m_dsw_sel));
- state->save_item(NAME(state->m_keyb));
- state->save_item(NAME(state->m_coins));
- state->save_item(NAME(state->m_hopper));
- state->save_item(NAME(state->m_hnoridur_bank));
- state->save_item(NAME(state->m_palbank));
- state->save_item(NAME(state->m_msm5205next));
- state->save_item(NAME(state->m_resetkludge));
- state->save_item(NAME(state->m_toggle));
- state->save_item(NAME(state->m_toggle_cpu1));
- state->save_item(NAME(state->m_yarunara_clk_toggle));
- state->save_item(NAME(state->m_soundlatch_ack));
- state->save_item(NAME(state->m_soundlatch_full));
- state->save_item(NAME(state->m_latch));
- state->save_item(NAME(state->m_rombank));
- state->save_item(NAME(state->m_tenkai_p5_val));
- state->save_item(NAME(state->m_tenkai_6c));
- state->save_item(NAME(state->m_tenkai_70));
- state->save_item(NAME(state->m_gekisha_val));
- state->save_item(NAME(state->m_palette_ram));
- state->save_item(NAME(state->m_gekisha_rom_enable));
+MACHINE_START_MEMBER(dynax_state,dynax)
+{
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_soundcpu = machine().device<cpu_device>("soundcpu");
+ m_rtc = machine().device("rtc");
+ m_ymsnd = machine().device("ymsnd");
+
+ save_item(NAME(m_sound_irq));
+ save_item(NAME(m_vblank_irq));
+ save_item(NAME(m_blitter_irq));
+ save_item(NAME(m_blitter2_irq));
+ save_item(NAME(m_soundlatch_irq));
+ save_item(NAME(m_sound_vblank_irq));
+
+ save_item(NAME(m_input_sel));
+ save_item(NAME(m_dsw_sel));
+ save_item(NAME(m_keyb));
+ save_item(NAME(m_coins));
+ save_item(NAME(m_hopper));
+ save_item(NAME(m_hnoridur_bank));
+ save_item(NAME(m_palbank));
+ save_item(NAME(m_msm5205next));
+ save_item(NAME(m_resetkludge));
+ save_item(NAME(m_toggle));
+ save_item(NAME(m_toggle_cpu1));
+ save_item(NAME(m_yarunara_clk_toggle));
+ save_item(NAME(m_soundlatch_ack));
+ save_item(NAME(m_soundlatch_full));
+ save_item(NAME(m_latch));
+ save_item(NAME(m_rombank));
+ save_item(NAME(m_tenkai_p5_val));
+ save_item(NAME(m_tenkai_6c));
+ save_item(NAME(m_tenkai_70));
+ save_item(NAME(m_gekisha_val));
+ save_item(NAME(m_palette_ram));
+ save_item(NAME(m_gekisha_rom_enable));
}
-static MACHINE_RESET( dynax )
+MACHINE_RESET_MEMBER(dynax_state,dynax)
{
- dynax_state *state = machine.driver_data<dynax_state>();
- if (machine.device("msm") != NULL)
- MACHINE_RESET_CALL(adpcm);
-
- state->m_sound_irq = 0;
- state->m_vblank_irq = 0;
- state->m_blitter_irq = 0;
- state->m_blitter2_irq = 0;
- state->m_soundlatch_irq = 0;
- state->m_sound_vblank_irq = 0;
-
- state->m_input_sel = 0;
- state->m_dsw_sel = 0;
- state->m_keyb = 0;
- state->m_coins = 0;
- state->m_hopper = 0;
- state->m_hnoridur_bank = 0;
- state->m_palbank = 0;
- state->m_msm5205next = 0;
- state->m_resetkludge = 0;
- state->m_toggle = 0;
- state->m_toggle_cpu1 = 0;
- state->m_yarunara_clk_toggle = 0;
- state->m_soundlatch_ack = 0;
- state->m_soundlatch_full = 0;
- state->m_latch = 0;
- state->m_rombank = 0;
- state->m_tenkai_p5_val = 0;
- state->m_tenkai_6c = 0;
- state->m_tenkai_70 = 0;
- state->m_gekisha_val[0] = 0;
- state->m_gekisha_val[1] = 0;
- state->m_gekisha_rom_enable = 0;
-
- memset(state->m_palette_ram, 0, ARRAY_LENGTH(state->m_palette_ram));
+ if (machine().device("msm") != NULL)
+ MACHINE_RESET_CALL_MEMBER(adpcm);
+
+ m_sound_irq = 0;
+ m_vblank_irq = 0;
+ m_blitter_irq = 0;
+ m_blitter2_irq = 0;
+ m_soundlatch_irq = 0;
+ m_sound_vblank_irq = 0;
+
+ m_input_sel = 0;
+ m_dsw_sel = 0;
+ m_keyb = 0;
+ m_coins = 0;
+ m_hopper = 0;
+ m_hnoridur_bank = 0;
+ m_palbank = 0;
+ m_msm5205next = 0;
+ m_resetkludge = 0;
+ m_toggle = 0;
+ m_toggle_cpu1 = 0;
+ m_yarunara_clk_toggle = 0;
+ m_soundlatch_ack = 0;
+ m_soundlatch_full = 0;
+ m_latch = 0;
+ m_rombank = 0;
+ m_tenkai_p5_val = 0;
+ m_tenkai_6c = 0;
+ m_tenkai_70 = 0;
+ m_gekisha_val[0] = 0;
+ m_gekisha_val[1] = 0;
+ m_gekisha_rom_enable = 0;
+
+ memset(m_palette_ram, 0, ARRAY_LENGTH(m_palette_ram));
}
-static MACHINE_START( hanamai )
+MACHINE_START_MEMBER(dynax_state,hanamai)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x8000], 0x8000);
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x8000], 0x8000);
- MACHINE_START_CALL(dynax);
+ MACHINE_START_CALL_MEMBER(dynax);
}
-static MACHINE_START( hnoridur )
+MACHINE_START_MEMBER(dynax_state,hnoridur)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- int bank_n = (machine.root_device().memregion("maincpu")->bytes() - 0x10000) / 0x8000;
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ int bank_n = (machine().root_device().memregion("maincpu")->bytes() - 0x10000) / 0x8000;
- machine.root_device().membank("bank1")->configure_entries(0, bank_n, &ROM[0x10000], 0x8000);
+ machine().root_device().membank("bank1")->configure_entries(0, bank_n, &ROM[0x10000], 0x8000);
- MACHINE_START_CALL(dynax);
+ MACHINE_START_CALL_MEMBER(dynax);
}
-static MACHINE_START( htengoku )
+MACHINE_START_MEMBER(dynax_state,htengoku)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000);
+ machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000);
- MACHINE_START_CALL(dynax);
+ MACHINE_START_CALL_MEMBER(dynax);
}
/***************************************************************************
@@ -4293,8 +4290,8 @@ static MACHINE_CONFIG_START( hanamai, dynax_state )
MCFG_CPU_IO_MAP(hanamai_io_map)
MCFG_CPU_VBLANK_INT("screen", sprtmtch_vblank_interrupt) /* IM 0 needs an opcode on the data bus */
- MCFG_MACHINE_START(hanamai)
- MCFG_MACHINE_RESET(dynax)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,hanamai)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -4308,8 +4305,8 @@ static MACHINE_CONFIG_START( hanamai, dynax_state )
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(sprtmtch) // static palette
- MCFG_VIDEO_START(hanamai)
+ MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,hanamai)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4350,8 +4347,8 @@ static MACHINE_CONFIG_START( hnoridur, dynax_state )
MCFG_CPU_IO_MAP(hnoridur_io_map)
MCFG_CPU_VBLANK_INT("screen", sprtmtch_vblank_interrupt) /* IM 0 needs an opcode on the data bus */
- MCFG_MACHINE_START(hnoridur)
- MCFG_MACHINE_RESET(dynax)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,hnoridur)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -4365,7 +4362,7 @@ static MACHINE_CONFIG_START( hnoridur, dynax_state )
MCFG_PALETTE_LENGTH(16*256)
- MCFG_VIDEO_START(hnoridur)
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,hnoridur)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4395,8 +4392,8 @@ static MACHINE_CONFIG_START( hjingi, dynax_state )
MCFG_CPU_IO_MAP(hjingi_io_map)
MCFG_CPU_VBLANK_INT("screen", sprtmtch_vblank_interrupt) /* IM 0 needs an opcode on the data bus */
- MCFG_MACHINE_START(hnoridur)
- MCFG_MACHINE_RESET(dynax)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,hnoridur)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -4410,7 +4407,7 @@ static MACHINE_CONFIG_START( hjingi, dynax_state )
MCFG_PALETTE_LENGTH(16*256)
- MCFG_VIDEO_START(hnoridur)
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,hnoridur)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4453,8 +4450,8 @@ static MACHINE_CONFIG_START( sprtmtch, dynax_state )
MCFG_CPU_IO_MAP(sprtmtch_io_map)
MCFG_CPU_VBLANK_INT("screen", sprtmtch_vblank_interrupt) /* IM 0 needs an opcode on the data bus */
- MCFG_MACHINE_START(hanamai)
- MCFG_MACHINE_RESET(dynax)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,hanamai)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -4468,8 +4465,8 @@ static MACHINE_CONFIG_START( sprtmtch, dynax_state )
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(sprtmtch) // static palette
- MCFG_VIDEO_START(sprtmtch)
+ MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,sprtmtch)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4495,8 +4492,8 @@ static MACHINE_CONFIG_START( mjfriday, dynax_state )
MCFG_CPU_IO_MAP(mjfriday_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(hanamai)
- MCFG_MACHINE_RESET(dynax)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,hanamai)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -4510,8 +4507,8 @@ static MACHINE_CONFIG_START( mjfriday, dynax_state )
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(sprtmtch) // static palette
- MCFG_VIDEO_START(mjdialq2)
+ MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,mjdialq2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4586,7 +4583,7 @@ static MACHINE_CONFIG_DERIVED( mcnpshnt, hnoridur )
MCFG_CPU_PROGRAM_MAP(mcnpshnt_mem_map)
MCFG_CPU_IO_MAP(mcnpshnt_io_map)
- MCFG_VIDEO_START(mcnpshnt) // different priorities
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,mcnpshnt) // different priorities
MACHINE_CONFIG_END
@@ -4623,19 +4620,18 @@ static const msm5205_interface jantouki_msm5205_interface =
MSM5205_S48_4B /* 8 KHz, 4 Bits */
};
-static MACHINE_START( jantouki )
+MACHINE_START_MEMBER(dynax_state,jantouki)
{
- dynax_state *state = machine.driver_data<dynax_state>();
- UINT8 *MAIN = state->memregion("maincpu")->base();
- UINT8 *SOUND = state->memregion("soundcpu")->base();
+ UINT8 *MAIN = memregion("maincpu")->base();
+ UINT8 *SOUND = memregion("soundcpu")->base();
- state->membank("bank1")->configure_entries(0, 0x10, &MAIN[0x8000], 0x8000);
- state->membank("bank2")->configure_entries(0, 12, &SOUND[0x8000], 0x8000);
+ membank("bank1")->configure_entries(0, 0x10, &MAIN[0x8000], 0x8000);
+ membank("bank2")->configure_entries(0, 12, &SOUND[0x8000], 0x8000);
- state->m_top_scr = machine.device("top");
- state->m_bot_scr = machine.device("bottom");
+ m_top_scr = machine().device("top");
+ m_bot_scr = machine().device("bottom");
- MACHINE_START_CALL(dynax);
+ MACHINE_START_CALL_MEMBER(dynax);
}
static MSM6242_INTERFACE( jantouki_rtc_intf )
@@ -4657,8 +4653,8 @@ static MACHINE_CONFIG_START( jantouki, dynax_state )
MCFG_CPU_IO_MAP(jantouki_sound_io_map)
MCFG_CPU_VBLANK_INT("top", jantouki_sound_vblank_interrupt) /* IM 0 needs an opcode on the data bus */
- MCFG_MACHINE_START(jantouki)
- MCFG_MACHINE_RESET(dynax)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,jantouki)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -4680,8 +4676,8 @@ static MACHINE_CONFIG_START( jantouki, dynax_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1)
MCFG_SCREEN_UPDATE_STATIC(jantouki_bottom)
- MCFG_PALETTE_INIT(sprtmtch) // static palette
- MCFG_VIDEO_START(jantouki)
+ MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,jantouki)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4735,7 +4731,7 @@ static MACHINE_CONFIG_DERIVED( mjelctrn, hnoridur )
MCFG_CPU_IO_MAP(mjelctrn_io_map)
MCFG_CPU_VBLANK_INT("screen", mjelctrn_vblank_interrupt) /* IM 2 needs a vector on the data bus */
- MCFG_VIDEO_START(mjelctrn)
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,mjelctrn)
MACHINE_CONFIG_END
@@ -4773,7 +4769,7 @@ static MACHINE_CONFIG_DERIVED( neruton, mjelctrn )
MCFG_CPU_MODIFY("maincpu")
MCFG_TIMER_ADD_SCANLINE("scantimer", neruton_irq_scanline, "screen", 0, 1)
- MCFG_VIDEO_START(neruton)
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,neruton)
MACHINE_CONFIG_END
/***************************************************************************
@@ -4833,8 +4829,8 @@ static MACHINE_CONFIG_START( htengoku, dynax_state )
MCFG_CPU_VBLANK_INT("screen", sprtmtch_vblank_interrupt) /* IM 0 needs an opcode on the data bus */
MCFG_CPU_PERIODIC_INT(yarunara_clock_interrupt, 60) // RTC
- MCFG_MACHINE_START(htengoku)
- MCFG_MACHINE_RESET(dynax)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,htengoku)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -4849,7 +4845,7 @@ static MACHINE_CONFIG_START( htengoku, dynax_state )
MCFG_PALETTE_LENGTH(16*256)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(htengoku)
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,htengoku)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4891,11 +4887,11 @@ static const ay8910_interface tenkai_ay8910_interface =
DEVCB_NULL, DEVCB_DRIVER_MEMBER(dynax_state,tenkai_dswsel_w) // Write
};
-static MACHINE_START( tenkai )
+MACHINE_START_MEMBER(dynax_state,tenkai)
{
- MACHINE_START_CALL(dynax);
+ MACHINE_START_CALL_MEMBER(dynax);
- machine.save().register_postload(save_prepost_delegate(FUNC(tenkai_update_rombank), &machine));
+ machine().save().register_postload(save_prepost_delegate(FUNC(tenkai_update_rombank), &machine()));
}
WRITE_LINE_MEMBER(dynax_state::tenkai_rtc_irq)
@@ -4916,8 +4912,8 @@ static MACHINE_CONFIG_START( tenkai, dynax_state )
MCFG_CPU_IO_MAP(tenkai_io_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", tenkai_interrupt, "screen", 0, 1)
- MCFG_MACHINE_START(tenkai)
- MCFG_MACHINE_RESET(dynax)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,tenkai)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -4931,7 +4927,7 @@ static MACHINE_CONFIG_START( tenkai, dynax_state )
MCFG_PALETTE_LENGTH(16*256)
- MCFG_VIDEO_START(mjelctrn)
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,mjelctrn)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4949,7 +4945,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( majrjhdx, tenkai )
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(sprtmtch) // static palette
+ MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
MACHINE_CONFIG_END
/***************************************************************************
@@ -4963,18 +4959,18 @@ static void gekisha_bank_postload(running_machine &machine)
gekisha_set_rombank(machine, state->m_rombank);
}
-static MACHINE_START( gekisha )
+MACHINE_START_MEMBER(dynax_state,gekisha)
{
- MACHINE_START_CALL(dynax);
+ MACHINE_START_CALL_MEMBER(dynax);
- machine.save().register_postload(save_prepost_delegate(FUNC(gekisha_bank_postload), &machine));
+ machine().save().register_postload(save_prepost_delegate(FUNC(gekisha_bank_postload), &machine()));
}
-static MACHINE_RESET( gekisha )
+MACHINE_RESET_MEMBER(dynax_state,gekisha)
{
- MACHINE_RESET_CALL(dynax);
+ MACHINE_RESET_CALL_MEMBER(dynax);
- gekisha_set_rombank(machine, 0);
+ gekisha_set_rombank(machine(), 0);
}
static MACHINE_CONFIG_START( gekisha, dynax_state )
@@ -4985,8 +4981,8 @@ static MACHINE_CONFIG_START( gekisha, dynax_state )
MCFG_CPU_IO_MAP(gekisha_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(gekisha)
- MCFG_MACHINE_RESET(gekisha)
+ MCFG_MACHINE_START_OVERRIDE(dynax_state,gekisha)
+ MCFG_MACHINE_RESET_OVERRIDE(dynax_state,gekisha)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -4999,8 +4995,8 @@ static MACHINE_CONFIG_START( gekisha, dynax_state )
MCFG_SCREEN_UPDATE_STATIC(mjdialq2)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(sprtmtch) // static palette
- MCFG_VIDEO_START(mjdialq2)
+ MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
+ MCFG_VIDEO_START_OVERRIDE(dynax_state,mjdialq2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dynduke.c b/src/mame/drivers/dynduke.c
index 07875ea4be3..60da0946272 100644
--- a/src/mame/drivers/dynduke.c
+++ b/src/mame/drivers/dynduke.c
@@ -300,7 +300,6 @@ static MACHINE_CONFIG_START( dynduke, dynduke_state )
MCFG_GFXDECODE(dynduke)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(dynduke)
// sound hardware
SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4,1320000)
diff --git a/src/mame/drivers/ecoinfr.c b/src/mame/drivers/ecoinfr.c
index 9954e482e6c..6b0b82a6c1d 100644
--- a/src/mame/drivers/ecoinfr.c
+++ b/src/mame/drivers/ecoinfr.c
@@ -86,6 +86,7 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(ecoinfr_reel3_opto_r);
DECLARE_DRIVER_INIT(ecoinfr);
DECLARE_DRIVER_INIT(ecoinfrmab);
+ virtual void machine_reset();
};
@@ -614,36 +615,35 @@ static INPUT_PORTS_START( ecoinfr_barx )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
INPUT_PORTS_END
-static MACHINE_RESET( ecoinfr )
+void ecoinfr_state::machine_reset()
{
- ecoinfr_state *state = machine.driver_data<ecoinfr_state>();
-
-// state->port00_value = 0x00;
-// state->port01_value = 0x00;
-// state->port02_value = 0x00;
-// state->port03_value = 0x00;
-// state->port04_value = 0x00;
-// state->port05_value = 0x00;
-// state->port06_value = 0x00;
-// state->port07_value = 0x00;
-// state->port08_value = 0x00;
- state->port09_value = 0x00;
-// state->port0a_value = 0x00;
-// state->port0b_value = 0x00;
-// state->port0c_value = 0x00;
-// state->port0d_value = 0x00;
-// state->port0e_value = 0x00;
-// state->port0f_value = 0x00;
- state->port10_value = 0x00;
- state->port11_value = 0x00;
- state->port12_value = 0x00;
- state->port13_value = 0x00;
- state->port14_value = 0x00;
- state->port15_value = 0x00;
- state->port16_value = 0x00;
- state->port17_value = 0x00;
-
- state->irq_toggle = 0;
+
+// port00_value = 0x00;
+// port01_value = 0x00;
+// port02_value = 0x00;
+// port03_value = 0x00;
+// port04_value = 0x00;
+// port05_value = 0x00;
+// port06_value = 0x00;
+// port07_value = 0x00;
+// port08_value = 0x00;
+ port09_value = 0x00;
+// port0a_value = 0x00;
+// port0b_value = 0x00;
+// port0c_value = 0x00;
+// port0d_value = 0x00;
+// port0e_value = 0x00;
+// port0f_value = 0x00;
+ port10_value = 0x00;
+ port11_value = 0x00;
+ port12_value = 0x00;
+ port13_value = 0x00;
+ port14_value = 0x00;
+ port15_value = 0x00;
+ port16_value = 0x00;
+ port17_value = 0x00;
+
+ irq_toggle = 0;
}
static MACHINE_CONFIG_START( ecoinfr, ecoinfr_state )
@@ -652,7 +652,6 @@ static MACHINE_CONFIG_START( ecoinfr, ecoinfr_state )
MCFG_CPU_PROGRAM_MAP(memmap)
MCFG_CPU_IO_MAP(portmap)
MCFG_TIMER_ADD_PERIODIC("ectimer",ecoinfr_irq_timer, attotime::from_hz(250))
- MCFG_MACHINE_RESET(ecoinfr)
MCFG_I8251_ADD(UPD8251_TAG, default_i8251_interface)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/egghunt.c b/src/mame/drivers/egghunt.c
index 5f5b58360d2..200ecab5f04 100644
--- a/src/mame/drivers/egghunt.c
+++ b/src/mame/drivers/egghunt.c
@@ -76,6 +76,9 @@ public:
DECLARE_READ8_MEMBER(egghunt_okibanking_r);
DECLARE_WRITE8_MEMBER(egghunt_okibanking_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -168,14 +171,13 @@ WRITE8_MEMBER(egghunt_state::egghunt_atram_w)
}
-static VIDEO_START(egghunt)
+void egghunt_state::video_start()
{
- egghunt_state *state = machine.driver_data<egghunt_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(egghunt_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(egghunt_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- state->save_item(NAME(state->m_bgram));
- state->save_item(NAME(state->m_spram));
+ save_item(NAME(m_bgram));
+ save_item(NAME(m_spram));
}
static SCREEN_UPDATE_IND16(egghunt)
@@ -387,23 +389,21 @@ static GFXDECODE_START( egghunt )
GFXDECODE_END
-static MACHINE_START( egghunt )
+void egghunt_state::machine_start()
{
- egghunt_state *state = machine.driver_data<egghunt_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_gfx_banking));
- state->save_item(NAME(state->m_okibanking));
- state->save_item(NAME(state->m_vidram_bank));
+ save_item(NAME(m_gfx_banking));
+ save_item(NAME(m_okibanking));
+ save_item(NAME(m_vidram_bank));
}
-static MACHINE_RESET( egghunt )
+void egghunt_state::machine_reset()
{
- egghunt_state *state = machine.driver_data<egghunt_state>();
- state->m_gfx_banking = 0;
- state->m_okibanking = 0;
- state->m_vidram_bank = 0;
+ m_gfx_banking = 0;
+ m_okibanking = 0;
+ m_vidram_bank = 0;
}
static MACHINE_CONFIG_START( egghunt, egghunt_state )
@@ -417,8 +417,6 @@ static MACHINE_CONFIG_START( egghunt, egghunt_state )
MCFG_CPU_ADD("audiocpu", Z80,12000000/2) /* 6 MHz ?*/
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(egghunt)
- MCFG_MACHINE_RESET(egghunt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -431,7 +429,6 @@ static MACHINE_CONFIG_START( egghunt, egghunt_state )
MCFG_GFXDECODE(egghunt)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(egghunt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/embargo.c b/src/mame/drivers/embargo.c
index 9f846c894b1..c5796b8005e 100644
--- a/src/mame/drivers/embargo.c
+++ b/src/mame/drivers/embargo.c
@@ -27,6 +27,8 @@ public:
DECLARE_WRITE8_MEMBER(port_1_w);
DECLARE_WRITE8_MEMBER(port_2_w);
DECLARE_WRITE8_MEMBER(input_select_w);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -226,24 +228,22 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_START( embargo )
+void embargo_state::machine_start()
{
- embargo_state *state = machine.driver_data<embargo_state>();
/* register for state saving */
- state->save_item(NAME(state->m_dial_enable_1));
- state->save_item(NAME(state->m_dial_enable_2));
- state->save_item(NAME(state->m_input_select));
+ save_item(NAME(m_dial_enable_1));
+ save_item(NAME(m_dial_enable_2));
+ save_item(NAME(m_input_select));
}
-static MACHINE_RESET( embargo )
+void embargo_state::machine_reset()
{
- embargo_state *state = machine.driver_data<embargo_state>();
- state->m_dial_enable_1 = 0;
- state->m_dial_enable_2 = 0;
- state->m_input_select = 0;
+ m_dial_enable_1 = 0;
+ m_dial_enable_2 = 0;
+ m_input_select = 0;
}
/*************************************
@@ -259,8 +259,6 @@ static MACHINE_CONFIG_START( embargo, embargo_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_IO_MAP(main_io_map)
- MCFG_MACHINE_START(embargo)
- MCFG_MACHINE_RESET(embargo)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/enigma2.c b/src/mame/drivers/enigma2.c
index e68d394d65d..3ceddf51373 100644
--- a/src/mame/drivers/enigma2.c
+++ b/src/mame/drivers/enigma2.c
@@ -87,6 +87,8 @@ public:
DECLARE_READ8_MEMBER(sound_latch_r);
DECLARE_WRITE8_MEMBER(protection_data_w);
DECLARE_DRIVER_INIT(enigma2);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -157,33 +159,31 @@ static void start_interrupt_timers( running_machine &machine )
-static MACHINE_START( enigma2 )
+void enigma2_state::machine_start()
{
- enigma2_state *state = machine.driver_data<enigma2_state>();
- create_interrupt_timers(machine);
+ create_interrupt_timers(machine());
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_blink_count));
- state->save_item(NAME(state->m_sound_latch));
- state->save_item(NAME(state->m_last_sound_data));
- state->save_item(NAME(state->m_protection_data));
- state->save_item(NAME(state->m_flip_screen));
+ save_item(NAME(m_blink_count));
+ save_item(NAME(m_sound_latch));
+ save_item(NAME(m_last_sound_data));
+ save_item(NAME(m_protection_data));
+ save_item(NAME(m_flip_screen));
}
-static MACHINE_RESET( enigma2 )
+void enigma2_state::machine_reset()
{
- enigma2_state *state = machine.driver_data<enigma2_state>();
- machine.device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
+ machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
- state->m_last_sound_data = 0;
- state->m_flip_screen = 0;
- state->m_sound_latch = 0;
- state->m_blink_count = 0;
+ m_last_sound_data = 0;
+ m_flip_screen = 0;
+ m_sound_latch = 0;
+ m_blink_count = 0;
- start_interrupt_timers(machine);
+ start_interrupt_timers(machine());
}
@@ -613,8 +613,6 @@ static MACHINE_CONFIG_START( enigma2, enigma2_state )
MCFG_CPU_PROGRAM_MAP(engima2_audio_cpu_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,8*52)
- MCFG_MACHINE_START(enigma2)
- MCFG_MACHINE_RESET(enigma2)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -641,8 +639,6 @@ static MACHINE_CONFIG_START( enigma2a, enigma2_state )
MCFG_CPU_PROGRAM_MAP(engima2_audio_cpu_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,8*52)
- MCFG_MACHINE_START(enigma2)
- MCFG_MACHINE_RESET(enigma2)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/eolith.c b/src/mame/drivers/eolith.c
index 5a32f1f61d4..9f71d5d9a4e 100644
--- a/src/mame/drivers/eolith.c
+++ b/src/mame/drivers/eolith.c
@@ -106,7 +106,7 @@
#include "includes/eolithsp.h"
-static MACHINE_RESET( eolith );
+
/*************************************
@@ -578,7 +578,7 @@ static MACHINE_CONFIG_START( eolith45, eolith_state )
MCFG_CPU_PROGRAM_MAP(sound_prg_map)
MCFG_CPU_IO_MAP(sound_io_map)
- MCFG_MACHINE_RESET(eolith)
+ MCFG_MACHINE_RESET_OVERRIDE(eolith_state,eolith)
MCFG_EEPROM_ADD("eeprom", eeprom_interface_93C66)
@@ -597,7 +597,7 @@ static MACHINE_CONFIG_START( eolith45, eolith_state )
MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
MCFG_PALETTE_LENGTH(32768)
- MCFG_VIDEO_START(eolith)
+ MCFG_VIDEO_START_OVERRIDE(eolith_state,eolith)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1433,9 +1433,9 @@ ROM_START( hidctch3 )
ROM_END
-static MACHINE_RESET( eolith )
+MACHINE_RESET_MEMBER(eolith_state,eolith)
{
- machine.device("soundcpu")->execute().set_input_line(MCS51_INT1_LINE, ASSERT_LINE);
+ machine().device("soundcpu")->execute().set_input_line(MCS51_INT1_LINE, ASSERT_LINE);
}
DRIVER_INIT_MEMBER(eolith_state,eolith)
diff --git a/src/mame/drivers/eolith16.c b/src/mame/drivers/eolith16.c
index 3e5c315dc56..0eb54fde3ac 100644
--- a/src/mame/drivers/eolith16.c
+++ b/src/mame/drivers/eolith16.c
@@ -31,6 +31,8 @@ public:
DECLARE_WRITE16_MEMBER(vram_w);
DECLARE_READ16_MEMBER(vram_r);
DECLARE_DRIVER_INIT(eolith16);
+ DECLARE_VIDEO_START(eolith16);
+ DECLARE_PALETTE_INIT(eolith16);
};
@@ -119,10 +121,9 @@ static INPUT_PORTS_START( eolith16 )
PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit)
INPUT_PORTS_END
-static VIDEO_START( eolith16 )
+VIDEO_START_MEMBER(eolith16_state,eolith16)
{
- eolith16_state *state = machine.driver_data<eolith16_state>();
- state->m_vram = auto_alloc_array(machine, UINT16, 0x10000);
+ m_vram = auto_alloc_array(machine(), UINT16, 0x10000);
}
static SCREEN_UPDATE_IND16( eolith16 )
@@ -150,7 +151,7 @@ static SCREEN_UPDATE_IND16( eolith16 )
// setup a custom palette because pixels use 8 bits per color
-static PALETTE_INIT( eolith16 )
+PALETTE_INIT_MEMBER(eolith16_state,eolith16)
{
int c;
@@ -169,7 +170,7 @@ static PALETTE_INIT( eolith16 )
bit1 = (c >> 7) & 0x01;
b = 0x55 * bit0 + 0xaa * bit1;
- palette_set_color(machine,c,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),c,MAKE_RGB(r,g,b));
}
}
@@ -192,8 +193,8 @@ static MACHINE_CONFIG_START( eolith16, eolith16_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(eolith16)
- MCFG_VIDEO_START(eolith16)
+ MCFG_PALETTE_INIT_OVERRIDE(eolith16_state,eolith16)
+ MCFG_VIDEO_START_OVERRIDE(eolith16_state,eolith16)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/epos.c b/src/mame/drivers/epos.c
index 5db961b8d33..e0aa19cd52e 100644
--- a/src/mame/drivers/epos.c
+++ b/src/mame/drivers/epos.c
@@ -365,33 +365,31 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_START( epos )
+MACHINE_START_MEMBER(epos_state,epos)
{
- epos_state *state = machine.driver_data<epos_state>();
- state->save_item(NAME(state->m_palette));
- state->save_item(NAME(state->m_counter));
+ save_item(NAME(m_palette));
+ save_item(NAME(m_counter));
}
-static MACHINE_RESET( epos )
+void epos_state::machine_reset()
{
- epos_state *state = machine.driver_data<epos_state>();
- state->m_palette = 0;
- state->m_counter = 0;
+ m_palette = 0;
+ m_counter = 0;
}
-static MACHINE_START( dealer )
+MACHINE_START_MEMBER(epos_state,dealer)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 4, &ROM[0x0000], 0x10000);
- machine.root_device().membank("bank2")->configure_entries(0, 2, &ROM[0x6000], 0x1000);
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 4, &ROM[0x0000], 0x10000);
+ machine().root_device().membank("bank2")->configure_entries(0, 2, &ROM[0x6000], 0x1000);
- machine.root_device().membank("bank1")->set_entry(0);
- machine.root_device().membank("bank2")->set_entry(0);
+ machine().root_device().membank("bank1")->set_entry(0);
+ machine().root_device().membank("bank2")->set_entry(0);
- MACHINE_START_CALL(epos);
+ MACHINE_START_CALL_MEMBER(epos);
}
static MACHINE_CONFIG_START( epos, epos_state )
@@ -402,8 +400,6 @@ static MACHINE_CONFIG_START( epos, epos_state )
MCFG_CPU_IO_MAP(io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_RESET(epos)
- MCFG_MACHINE_RESET(epos)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -430,8 +426,7 @@ static MACHINE_CONFIG_START( dealer, epos_state )
MCFG_I8255A_ADD( "ppi8255", ppi8255_intf )
- MCFG_MACHINE_START(dealer)
- MCFG_MACHINE_RESET(epos)
+ MCFG_MACHINE_START_OVERRIDE(epos_state,dealer)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/eprom.c b/src/mame/drivers/eprom.c
index 2f247ad42c4..c88baa6ec81 100644
--- a/src/mame/drivers/eprom.c
+++ b/src/mame/drivers/eprom.c
@@ -50,19 +50,18 @@ static void update_interrupts(running_machine &machine)
}
-static MACHINE_START( eprom )
+MACHINE_START_MEMBER(eprom_state,eprom)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( eprom )
+MACHINE_RESET_MEMBER(eprom_state,eprom)
{
- eprom_state *state = machine.driver_data<eprom_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, eprom_scanline_update, 8);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, eprom_scanline_update, 8);
atarijsa_reset();
}
@@ -414,8 +413,8 @@ static MACHINE_CONFIG_START( eprom, eprom_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(eprom)
- MCFG_MACHINE_RESET(eprom)
+ MCFG_MACHINE_START_OVERRIDE(eprom_state,eprom)
+ MCFG_MACHINE_RESET_OVERRIDE(eprom_state,eprom)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -429,7 +428,7 @@ static MACHINE_CONFIG_START( eprom, eprom_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(eprom)
- MCFG_VIDEO_START(eprom)
+ MCFG_VIDEO_START_OVERRIDE(eprom_state,eprom)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_i_mono_speech)
@@ -445,8 +444,8 @@ static MACHINE_CONFIG_START( klaxp, eprom_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(eprom)
- MCFG_MACHINE_RESET(eprom)
+ MCFG_MACHINE_START_OVERRIDE(eprom_state,eprom)
+ MCFG_MACHINE_RESET_OVERRIDE(eprom_state,eprom)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -460,7 +459,7 @@ static MACHINE_CONFIG_START( klaxp, eprom_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(eprom)
- MCFG_VIDEO_START(eprom)
+ MCFG_VIDEO_START_OVERRIDE(eprom_state,eprom)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_ii_mono)
@@ -476,8 +475,8 @@ static MACHINE_CONFIG_START( guts, eprom_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(eprom)
- MCFG_MACHINE_RESET(eprom)
+ MCFG_MACHINE_START_OVERRIDE(eprom_state,eprom)
+ MCFG_MACHINE_RESET_OVERRIDE(eprom_state,eprom)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -491,7 +490,7 @@ static MACHINE_CONFIG_START( guts, eprom_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(guts)
- MCFG_VIDEO_START(guts)
+ MCFG_VIDEO_START_OVERRIDE(eprom_state,guts)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_ii_mono)
diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c
index 7820336fdd4..78ceaf7815b 100644
--- a/src/mame/drivers/equites.c
+++ b/src/mame/drivers/equites.c
@@ -1188,62 +1188,60 @@ MACHINE_CONFIG_END
/******************************************************************************/
-static MACHINE_START( equites )
+MACHINE_START_MEMBER(equites_state,equites)
{
- equites_state *state = machine.driver_data<equites_state>();
- state->m_mcu = machine.device("mcu");
- state->m_audio_cpu = machine.device("audiocpu");
- state->m_msm = machine.device<msm5232_device>("msm");
- state->m_dac_1 = machine.device<dac_device>("dac1");
- state->m_dac_2 = machine.device<dac_device>("dac2");
-
- state->save_item(NAME(state->m_fg_char_bank));
- state->save_item(NAME(state->m_bgcolor));
- state->save_item(NAME(state->m_splndrbt_bg_scrollx));
- state->save_item(NAME(state->m_splndrbt_bg_scrolly));
- state->save_item(NAME(state->m_sound_prom_address));
- state->save_item(NAME(state->m_dac_latch));
- state->save_item(NAME(state->m_eq8155_port_b));
- state->save_item(NAME(state->m_eq8155_port_a));
- state->save_item(NAME(state->m_eq8155_port_c));
- state->save_item(NAME(state->m_ay_port_a));
- state->save_item(NAME(state->m_ay_port_b));
- state->save_item(NAME(state->m_eq_cymbal_ctrl));
- state->save_item(NAME(state->m_cymvol));
- state->save_item(NAME(state->m_hihatvol));
- state->save_item(NAME(state->m_timer_count));
- state->save_item(NAME(state->m_unknown_bit));
+ m_mcu = machine().device("mcu");
+ m_audio_cpu = machine().device("audiocpu");
+ m_msm = machine().device<msm5232_device>("msm");
+ m_dac_1 = machine().device<dac_device>("dac1");
+ m_dac_2 = machine().device<dac_device>("dac2");
+
+ save_item(NAME(m_fg_char_bank));
+ save_item(NAME(m_bgcolor));
+ save_item(NAME(m_splndrbt_bg_scrollx));
+ save_item(NAME(m_splndrbt_bg_scrolly));
+ save_item(NAME(m_sound_prom_address));
+ save_item(NAME(m_dac_latch));
+ save_item(NAME(m_eq8155_port_b));
+ save_item(NAME(m_eq8155_port_a));
+ save_item(NAME(m_eq8155_port_c));
+ save_item(NAME(m_ay_port_a));
+ save_item(NAME(m_ay_port_b));
+ save_item(NAME(m_eq_cymbal_ctrl));
+ save_item(NAME(m_cymvol));
+ save_item(NAME(m_hihatvol));
+ save_item(NAME(m_timer_count));
+ save_item(NAME(m_unknown_bit));
#if POPDRUMKIT
- state->save_item(NAME(state->m_hihat));
- state->save_item(NAME(state->m_cymbal));
+ save_item(NAME(m_hihat));
+ save_item(NAME(m_cymbal));
#endif
}
-static MACHINE_RESET( equites )
+MACHINE_RESET_MEMBER(equites_state,equites)
{
- equites_state *state = machine.driver_data<equites_state>();
- state->flip_screen_set(0);
-
- state->m_fg_char_bank = 0;
- state->m_bgcolor = 0;
- state->m_splndrbt_bg_scrollx = 0;
- state->m_splndrbt_bg_scrolly = 0;
- state->m_sound_prom_address = 0;
- state->m_dac_latch = 0;
- state->m_eq8155_port_b = 0;
- state->m_eq8155_port_a = 0;
- state->m_eq8155_port_c = 0;
- state->m_ay_port_a = 0;
- state->m_ay_port_b = 0;
- state->m_eq_cymbal_ctrl = 0;
- state->m_cymvol = 0.0;
- state->m_hihatvol = 0.0;
- state->m_timer_count = 0;
- state->m_unknown_bit = 0;
+ flip_screen_set(0);
+
+ m_fg_char_bank = 0;
+ m_bgcolor = 0;
+ m_splndrbt_bg_scrollx = 0;
+ m_splndrbt_bg_scrolly = 0;
+ m_sound_prom_address = 0;
+ m_dac_latch = 0;
+ m_eq8155_port_b = 0;
+ m_eq8155_port_a = 0;
+ m_eq8155_port_c = 0;
+ m_ay_port_a = 0;
+ m_ay_port_b = 0;
+ m_eq_cymbal_ctrl = 0;
+ m_cymvol = 0.0;
+ m_hihatvol = 0.0;
+ m_timer_count = 0;
+ m_unknown_bit = 0;
#if POPDRUMKIT
- state->m_hihat = state->m_cymbal = 0;
+ m_hihat = m_cymbal = 0;
#endif
}
@@ -1269,11 +1267,11 @@ static MACHINE_CONFIG_START( equites, equites_state )
MCFG_GFXDECODE(equites)
MCFG_PALETTE_LENGTH(0x180)
- MCFG_PALETTE_INIT(equites)
- MCFG_VIDEO_START(equites)
+ MCFG_PALETTE_INIT_OVERRIDE(equites_state,equites)
+ MCFG_VIDEO_START_OVERRIDE(equites_state,equites)
- MCFG_MACHINE_START(equites)
- MCFG_MACHINE_RESET(equites)
+ MCFG_MACHINE_START_OVERRIDE(equites_state,equites)
+ MCFG_MACHINE_RESET_OVERRIDE(equites_state,equites)
MACHINE_CONFIG_END
@@ -1306,11 +1304,11 @@ static MACHINE_CONFIG_START( splndrbt, equites_state )
MCFG_GFXDECODE(splndrbt)
MCFG_PALETTE_LENGTH(0x280)
- MCFG_PALETTE_INIT(splndrbt)
- MCFG_VIDEO_START(splndrbt)
+ MCFG_PALETTE_INIT_OVERRIDE(equites_state,splndrbt)
+ MCFG_VIDEO_START_OVERRIDE(equites_state,splndrbt)
- MCFG_MACHINE_START(equites)
- MCFG_MACHINE_RESET(equites)
+ MCFG_MACHINE_START_OVERRIDE(equites_state,equites)
+ MCFG_MACHINE_RESET_OVERRIDE(equites_state,equites)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ertictac.c b/src/mame/drivers/ertictac.c
index 638c16a9fde..3dae19301ee 100644
--- a/src/mame/drivers/ertictac.c
+++ b/src/mame/drivers/ertictac.c
@@ -36,6 +36,8 @@ public:
DECLARE_READ32_MEMBER(ertictac_podule_r);
DECLARE_DRIVER_INIT(ertictac);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -193,17 +195,17 @@ DRIVER_INIT_MEMBER(ertictac_state,ertictac)
archimedes_driver_init(machine());
}
-static MACHINE_START( ertictac )
+void ertictac_state::machine_start()
{
- archimedes_init(machine);
+ archimedes_init(machine());
// reset the DAC to centerline
- //machine.device<dac_device>("dac")->write_signed8(0x80);
+ //machine().device<dac_device>("dac")->write_signed8(0x80);
}
-static MACHINE_RESET( ertictac )
+void ertictac_state::machine_reset()
{
- archimedes_reset(machine);
+ archimedes_reset(machine());
}
static INTERRUPT_GEN( ertictac_podule_irq )
@@ -226,8 +228,6 @@ static MACHINE_CONFIG_START( ertictac, ertictac_state )
MCFG_CPU_PROGRAM_MAP(ertictac_map)
MCFG_CPU_PERIODIC_INT(ertictac_podule_irq,60) // FIXME: timing of this
- MCFG_MACHINE_START(ertictac)
- MCFG_MACHINE_RESET(ertictac)
MCFG_I2CMEM_ADD("i2cmem",i2cmem_interface)
diff --git a/src/mame/drivers/esd16.c b/src/mame/drivers/esd16.c
index 8d96ab90a1a..99ed71bbff9 100644
--- a/src/mame/drivers/esd16.c
+++ b/src/mame/drivers/esd16.c
@@ -585,24 +585,22 @@ GFXDECODE_END
***************************************************************************/
-static MACHINE_START( esd16 )
+void esd16_state::machine_start()
{
- esd16_state *state = machine.driver_data<esd16_state>();
- UINT8 *AUDIO = state->memregion("audiocpu")->base();
+ UINT8 *AUDIO = memregion("audiocpu")->base();
- state->membank("bank1")->configure_entries(0, 16, &AUDIO[0x0000], 0x4000);
+ membank("bank1")->configure_entries(0, 16, &AUDIO[0x0000], 0x4000);
- state->m_audio_cpu = machine.device("audiocpu");
- state->m_eeprom = machine.device<eeprom_device>("eeprom");
+ m_audio_cpu = machine().device("audiocpu");
+ m_eeprom = machine().device<eeprom_device>("eeprom");
- state->save_item(NAME(state->m_tilemap0_color));
+ save_item(NAME(m_tilemap0_color));
}
-static MACHINE_RESET( esd16 )
+void esd16_state::machine_reset()
{
- esd16_state *state = machine.driver_data<esd16_state>();
- state->m_tilemap0_color = 0;
+ m_tilemap0_color = 0;
}
static UINT16 hedpanic_pri_callback(UINT16 x)
@@ -625,8 +623,6 @@ static MACHINE_CONFIG_START( esd16, esd16_state )
MCFG_CPU_IO_MAP(multchmp_sound_io_map)
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,32*60) /* IRQ By Main CPU */
- MCFG_MACHINE_START(esd16)
- MCFG_MACHINE_RESET(esd16)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -645,7 +641,6 @@ static MACHINE_CONFIG_START( esd16, esd16_state )
MCFG_GFXDECODE(esd16)
MCFG_PALETTE_LENGTH(0x1000/2)
- MCFG_VIDEO_START(esd16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/esh.c b/src/mame/drivers/esh.c
index 7ae5d339293..a11ce729649 100644
--- a/src/mame/drivers/esh.c
+++ b/src/mame/drivers/esh.c
@@ -47,6 +47,8 @@ public:
DECLARE_WRITE8_MEMBER(led_writes);
DECLARE_WRITE8_MEMBER(nmi_line_w);
DECLARE_DRIVER_INIT(esh);
+ virtual void machine_start();
+ virtual void palette_init();
};
@@ -223,13 +225,13 @@ static INPUT_PORTS_START( esh )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
-static PALETTE_INIT( esh )
+void esh_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
/* Oddly enough, the top 4 bits of each byte is 0 */
- for (i = 0; i < machine.total_colors(); i++)
+ for (i = 0; i < machine().total_colors(); i++)
{
int r,g,b;
int bit0,bit1,bit2;
@@ -254,11 +256,11 @@ static PALETTE_INIT( esh )
bit2 = (color_prom[i+0x100] >> 6) & 0x01;
b = (0x97 * bit2) + (0x47 * bit1) + (0x21 * bit0);
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
}
/* make color 0 transparent */
- palette_set_color(machine, 0, MAKE_ARGB(0,0,0,0));
+ palette_set_color(machine(), 0, MAKE_ARGB(0,0,0,0));
}
static const gfx_layout esh_gfx_layout =
@@ -288,7 +290,7 @@ static INTERRUPT_GEN( vblank_callback_esh )
device->machine().scheduler().timer_set(attotime::from_usec(50), FUNC(irq_stop));
}
-static MACHINE_START( esh )
+void esh_state::machine_start()
{
}
@@ -304,7 +306,6 @@ static MACHINE_CONFIG_START( esh, esh_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_MACHINE_START(esh)
MCFG_LASERDISC_LDV1000_ADD("laserdisc")
MCFG_LASERDISC_OVERLAY_STATIC(256, 256, esh)
@@ -313,7 +314,6 @@ static MACHINE_CONFIG_START( esh, esh_state )
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(esh)
MCFG_GFXDECODE(esh)
diff --git a/src/mame/drivers/espial.c b/src/mame/drivers/espial.c
index 0dcf1022e7b..a909f64dbac 100644
--- a/src/mame/drivers/espial.c
+++ b/src/mame/drivers/espial.c
@@ -44,25 +44,23 @@ Stephh's notes (based on the games Z80 code and some tests) :
-static MACHINE_RESET( espial )
+void espial_state::machine_reset()
{
- espial_state *state = machine.driver_data<espial_state>();
- state->m_flipscreen = 0;
+ m_flipscreen = 0;
- state->m_main_nmi_enabled = FALSE;
- state->m_sound_nmi_enabled = FALSE;
+ m_main_nmi_enabled = FALSE;
+ m_sound_nmi_enabled = FALSE;
}
-static MACHINE_START( espial )
+void espial_state::machine_start()
{
- espial_state *state = machine.driver_data<espial_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- //state_save_register_global_array(machine, mcu_out[1]);
- state->save_item(NAME(state->m_sound_nmi_enabled));
+ //state_save_register_global_array(machine(), mcu_out[1]);
+ save_item(NAME(m_sound_nmi_enabled));
}
@@ -332,8 +330,6 @@ static MACHINE_CONFIG_START( espial, espial_state )
MCFG_CPU_IO_MAP(espial_sound_io_map)
MCFG_CPU_PERIODIC_INT(espial_sound_nmi_gen,4*60)
- MCFG_MACHINE_RESET(espial)
- MCFG_MACHINE_START(espial)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -346,8 +342,6 @@ static MACHINE_CONFIG_START( espial, espial_state )
MCFG_GFXDECODE(espial)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(espial)
- MCFG_VIDEO_START(espial)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -366,7 +360,7 @@ static MACHINE_CONFIG_DERIVED( netwars, espial )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(32*8, 64*8)
- MCFG_VIDEO_START(netwars)
+ MCFG_VIDEO_START_OVERRIDE(espial_state,netwars)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/esripsys.c b/src/mame/drivers/esripsys.c
index b2a96ef963d..cc581d83a22 100644
--- a/src/mame/drivers/esripsys.c
+++ b/src/mame/drivers/esripsys.c
@@ -719,7 +719,6 @@ static MACHINE_CONFIG_START( esripsys, esripsys_state )
MCFG_SCREEN_UPDATE_STATIC(esripsys)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(esripsys)
/* Sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c
index 4966cd07a0a..711903fcb4f 100644
--- a/src/mame/drivers/ettrivia.c
+++ b/src/mame/drivers/ettrivia.c
@@ -58,6 +58,8 @@ public:
DECLARE_WRITE8_MEMBER(b800_w);
TILE_GET_INFO_MEMBER(get_tile_info_bg);
TILE_GET_INFO_MEMBER(get_tile_info_fg);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -213,9 +215,9 @@ TILE_GET_INFO_MEMBER(ettrivia_state::get_tile_info_fg)
get_tile_info(machine(), tileinfo, tile_index, m_fg_videoram, 1);
}
-static PALETTE_INIT( ettrivia )
+void ettrivia_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
static const int resistances[2] = { 270, 130 };
double weights[2];
int i;
@@ -226,7 +228,7 @@ static PALETTE_INIT( ettrivia )
2, resistances, weights, 0, 0,
0, 0, 0, 0, 0);
- for (i = 0;i < machine.total_colors(); i++)
+ for (i = 0;i < machine().total_colors(); i++)
{
int bit0, bit1;
int r, g, b;
@@ -246,17 +248,16 @@ static PALETTE_INIT( ettrivia )
bit1 = (color_prom[i+0x100] >> 1) & 0x01;
b = combine_2_weights(weights, bit0, bit1);
- palette_set_color(machine, BITSWAP8(i,5,7,6,2,1,0,4,3), MAKE_RGB(r, g, b));
+ palette_set_color(machine(), BITSWAP8(i,5,7,6,2,1,0,4,3), MAKE_RGB(r, g, b));
}
}
-static VIDEO_START( ettrivia )
+void ettrivia_state::video_start()
{
- ettrivia_state *state = machine.driver_data<ettrivia_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ettrivia_state::get_tile_info_bg),state),TILEMAP_SCAN_ROWS,8,8,64,32 );
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ettrivia_state::get_tile_info_fg),state),TILEMAP_SCAN_ROWS,8,8,64,32 );
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ettrivia_state::get_tile_info_bg),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ettrivia_state::get_tile_info_fg),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_fg_tilemap->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16( ettrivia )
@@ -315,8 +316,6 @@ static MACHINE_CONFIG_START( ettrivia, ettrivia_state )
MCFG_GFXDECODE(ettrivia)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(ettrivia)
- MCFG_VIDEO_START(ettrivia)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/exedexes.c b/src/mame/drivers/exedexes.c
index 3a6c5b8f78d..a2c82bf00f3 100644
--- a/src/mame/drivers/exedexes.c
+++ b/src/mame/drivers/exedexes.c
@@ -205,24 +205,22 @@ static const sn76496_config psg_intf =
};
-static MACHINE_START( exedexes )
+void exedexes_state::machine_start()
{
- exedexes_state *state = machine.driver_data<exedexes_state>();
- state->save_item(NAME(state->m_chon));
- state->save_item(NAME(state->m_objon));
- state->save_item(NAME(state->m_sc1on));
- state->save_item(NAME(state->m_sc2on));
+ save_item(NAME(m_chon));
+ save_item(NAME(m_objon));
+ save_item(NAME(m_sc1on));
+ save_item(NAME(m_sc2on));
}
-static MACHINE_RESET( exedexes )
+void exedexes_state::machine_reset()
{
- exedexes_state *state = machine.driver_data<exedexes_state>();
- state->m_chon = 0;
- state->m_objon = 0;
- state->m_sc1on = 0;
- state->m_sc2on = 0;
+ m_chon = 0;
+ m_objon = 0;
+ m_sc1on = 0;
+ m_sc2on = 0;
}
static MACHINE_CONFIG_START( exedexes, exedexes_state )
@@ -236,8 +234,6 @@ static MACHINE_CONFIG_START( exedexes, exedexes_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,4*60)
- MCFG_MACHINE_START(exedexes)
- MCFG_MACHINE_RESET(exedexes)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -253,8 +249,6 @@ static MACHINE_CONFIG_START( exedexes, exedexes_state )
MCFG_GFXDECODE(exedexes)
MCFG_PALETTE_LENGTH(64*4+64*4+16*16+16*16)
- MCFG_PALETTE_INIT(exedexes)
- MCFG_VIDEO_START(exedexes)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/exerion.c b/src/mame/drivers/exerion.c
index 750e13a77d1..8c89178b8a2 100644
--- a/src/mame/drivers/exerion.c
+++ b/src/mame/drivers/exerion.c
@@ -377,35 +377,33 @@ static const ay8910_interface ay8910_config =
*
*************************************/
-static MACHINE_START( exerion )
+void exerion_state::machine_start()
{
- exerion_state *state = machine.driver_data<exerion_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_porta));
- state->save_item(NAME(state->m_portb));
- state->save_item(NAME(state->m_cocktail_flip));
- state->save_item(NAME(state->m_char_palette));
- state->save_item(NAME(state->m_sprite_palette));
- state->save_item(NAME(state->m_char_bank));
- state->save_item(NAME(state->m_background_latches));
+ save_item(NAME(m_porta));
+ save_item(NAME(m_portb));
+ save_item(NAME(m_cocktail_flip));
+ save_item(NAME(m_char_palette));
+ save_item(NAME(m_sprite_palette));
+ save_item(NAME(m_char_bank));
+ save_item(NAME(m_background_latches));
}
-static MACHINE_RESET( exerion )
+void exerion_state::machine_reset()
{
- exerion_state *state = machine.driver_data<exerion_state>();
int i;
- state->m_porta = 0;
- state->m_portb = 0;
- state->m_cocktail_flip = 0;
- state->m_char_palette = 0;
- state->m_sprite_palette = 0;
- state->m_char_bank = 0;
+ m_porta = 0;
+ m_portb = 0;
+ m_cocktail_flip = 0;
+ m_char_palette = 0;
+ m_sprite_palette = 0;
+ m_char_bank = 0;
for (i = 0; i < 13; i++)
- state->m_background_latches[i] = 0;
+ m_background_latches[i] = 0;
}
static MACHINE_CONFIG_START( exerion, exerion_state )
@@ -416,8 +414,6 @@ static MACHINE_CONFIG_START( exerion, exerion_state )
MCFG_CPU_ADD("sub", Z80, EXERION_CPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(sub_map)
- MCFG_MACHINE_START(exerion)
- MCFG_MACHINE_RESET(exerion)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -427,8 +423,6 @@ static MACHINE_CONFIG_START( exerion, exerion_state )
MCFG_GFXDECODE(exerion)
MCFG_PALETTE_LENGTH(256*3)
- MCFG_PALETTE_INIT(exerion)
- MCFG_VIDEO_START(exerion)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/exidy.c b/src/mame/drivers/exidy.c
index 16b3c62eb27..47f0b283af2 100644
--- a/src/mame/drivers/exidy.c
+++ b/src/mame/drivers/exidy.c
@@ -791,10 +791,9 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( teetert )
+MACHINE_START_MEMBER(exidy_state,teetert)
{
- exidy_state *state = machine.driver_data<exidy_state>();
- state_save_register_global(machine, state->m_last_dial);
+ state_save_register_global(machine(), m_last_dial);
}
/*************************************
@@ -811,7 +810,6 @@ static MACHINE_CONFIG_START( base, exidy_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(exidy)
MCFG_GFXDECODE(exidy)
MCFG_PALETTE_LENGTH(8)
@@ -882,7 +880,7 @@ static MACHINE_CONFIG_DERIVED( teetert, venture )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,10*60)
- MCFG_MACHINE_START( teetert )
+ MCFG_MACHINE_START_OVERRIDE(exidy_state, teetert )
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/exidy440.c b/src/mame/drivers/exidy440.c
index c16ce0940c3..2a763ba0a16 100644
--- a/src/mame/drivers/exidy440.c
+++ b/src/mame/drivers/exidy440.c
@@ -441,21 +441,19 @@ WRITE8_MEMBER(exidy440_state::topsecex_yscroll_w)
*
*************************************/
-static MACHINE_START( exidy440 )
+void exidy440_state::machine_start()
{
- exidy440_state *state = machine.driver_data<exidy440_state>();
/* the EEROM lives in the uppermost 8k of the top bank */
- UINT8 *rom = state->memregion("maincpu")->base();
+ UINT8 *rom = memregion("maincpu")->base();
- state->m_custom = machine.device("custom");
- machine.device<nvram_device>("nvram")->set_base(&rom[0x10000 + 15 * 0x4000 + 0x2000], 0x2000);
+ m_custom = machine().device("custom");
+ machine().device<nvram_device>("nvram")->set_base(&rom[0x10000 + 15 * 0x4000 + 0x2000], 0x2000);
}
-static MACHINE_RESET( exidy440 )
+void exidy440_state::machine_reset()
{
- exidy440_state *state = machine.driver_data<exidy440_state>();
- state->m_bank = 0xff;
- exidy440_bank_select(machine, 0);
+ m_bank = 0xff;
+ exidy440_bank_select(machine(), 0);
}
@@ -1003,8 +1001,6 @@ static MACHINE_CONFIG_START( exidy440, exidy440_state )
MCFG_CPU_PROGRAM_MAP(exidy440_map)
MCFG_CPU_VBLANK_INT("screen", exidy440_vblank_interrupt)
- MCFG_MACHINE_START(exidy440)
- MCFG_MACHINE_RESET(exidy440)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
diff --git a/src/mame/drivers/expro02.c b/src/mame/drivers/expro02.c
index fd8718ba6fb..9a30a91cedd 100644
--- a/src/mame/drivers/expro02.c
+++ b/src/mame/drivers/expro02.c
@@ -179,10 +179,13 @@ public:
DECLARE_WRITE16_MEMBER(galsnew_vram_0_bank_w);
DECLARE_WRITE16_MEMBER(galsnew_vram_1_bank_w);
DECLARE_DRIVER_INIT(galsnew);
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
-PALETTE_INIT( galsnew )
+void expro02_state::palette_init()
{
int i;
@@ -190,7 +193,7 @@ PALETTE_INIT( galsnew )
/* initialize 555 RGB lookup */
for (i = 0; i < 32768; i++)
- palette_set_color_rgb(machine,2048 + i,pal5bit(i >> 5),pal5bit(i >> 10),pal5bit(i >> 0));
+ palette_set_color_rgb(machine(),2048 + i,pal5bit(i >> 5),pal5bit(i >> 10),pal5bit(i >> 0));
}
SCREEN_UPDATE_IND16( galsnew )
@@ -248,7 +251,7 @@ SCREEN_UPDATE_IND16( galsnew )
return 0;
}
-VIDEO_START( galsnew )
+void expro02_state::video_start()
{
}
@@ -506,9 +509,8 @@ static TIMER_DEVICE_CALLBACK( expro02_scanline )
timer.machine().device("maincpu")->execute().set_input_line(4, HOLD_LINE);
}
-static MACHINE_RESET( galsnew )
+void expro02_state::machine_reset()
{
-// expro02_state *state = machine.driver_data<expro02_state>();
}
/*************************************
@@ -559,7 +561,6 @@ static MACHINE_CONFIG_START( galsnew, expro02_state )
MCFG_GFXDECODE(1x4bit_1x4bit)
MCFG_PALETTE_LENGTH(2048 + 32768)
- MCFG_MACHINE_RESET( galsnew )
MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0)
kaneko_view2_tilemap_device::set_gfx_region(*device, 1);
@@ -573,8 +574,6 @@ static MACHINE_CONFIG_START( galsnew, expro02_state )
kaneko_hit_device::set_type(*device, 0);
- MCFG_VIDEO_START(galsnew)
- MCFG_PALETTE_INIT(galsnew)
/* arm watchdog */
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */
diff --git a/src/mame/drivers/exprraid.c b/src/mame/drivers/exprraid.c
index 89c42528c1f..0953205323a 100644
--- a/src/mame/drivers/exprraid.c
+++ b/src/mame/drivers/exprraid.c
@@ -468,24 +468,22 @@ static INTERRUPT_GEN( exprraid_interrupt )
#endif
-static MACHINE_START( exprraid )
+void exprraid_state::machine_start()
{
- exprraid_state *state = machine.driver_data<exprraid_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_slave = machine.device("slave");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_slave = machine().device("slave");
- state->save_item(NAME(state->m_bg_index));
+ save_item(NAME(m_bg_index));
}
-static MACHINE_RESET( exprraid )
+void exprraid_state::machine_reset()
{
- exprraid_state *state = machine.driver_data<exprraid_state>();
- state->m_bg_index[0] = 0;
- state->m_bg_index[1] = 0;
- state->m_bg_index[2] = 0;
- state->m_bg_index[3] = 0;
+ m_bg_index[0] = 0;
+ m_bg_index[1] = 0;
+ m_bg_index[2] = 0;
+ m_bg_index[3] = 0;
}
static MACHINE_CONFIG_START( exprraid, exprraid_state )
@@ -498,8 +496,6 @@ static MACHINE_CONFIG_START( exprraid, exprraid_state )
MCFG_CPU_ADD("slave", M6809, 2000000) /* 2 MHz ??? */
MCFG_CPU_PROGRAM_MAP(slave_map)
/* IRQs are caused by the YM3526 */
- MCFG_MACHINE_START(exprraid)
- MCFG_MACHINE_RESET(exprraid)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -513,7 +509,6 @@ static MACHINE_CONFIG_START( exprraid, exprraid_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(exprraid)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/exterm.c b/src/mame/drivers/exterm.c
index bf753b26324..d4e8d1c533b 100644
--- a/src/mame/drivers/exterm.c
+++ b/src/mame/drivers/exterm.c
@@ -467,7 +467,6 @@ static MACHINE_CONFIG_START( exterm, exterm_state )
MCFG_SCREEN_RAW_PARAMS(40000000/8, 318, 0, 256, 264, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(tms340x0_ind16)
- MCFG_PALETTE_INIT(exterm)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c
index 74845a475cc..18a27ec18b0 100644
--- a/src/mame/drivers/f1gp.c
+++ b/src/mame/drivers/f1gp.c
@@ -413,40 +413,37 @@ static const k053936_interface f1gp2_k053936_intf =
};
-static MACHINE_START( f1gpb )
+MACHINE_START_MEMBER(f1gp_state,f1gpb)
{
- f1gp_state *state = machine.driver_data<f1gp_state>();
- state->save_item(NAME(state->m_pending_command));
- state->save_item(NAME(state->m_roz_bank));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_gfxctrl));
- state->save_item(NAME(state->m_scroll));
+ save_item(NAME(m_pending_command));
+ save_item(NAME(m_roz_bank));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_gfxctrl));
+ save_item(NAME(m_scroll));
}
-static MACHINE_START( f1gp )
+MACHINE_START_MEMBER(f1gp_state,f1gp)
{
- f1gp_state *state = machine.driver_data<f1gp_state>();
- UINT8 *ROM = state->memregion("audiocpu")->base();
+ UINT8 *ROM = memregion("audiocpu")->base();
- state->membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x8000);
+ membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x8000);
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k053936 = machine.device("k053936");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k053936 = machine().device("k053936");
- MACHINE_START_CALL(f1gpb);
+ MACHINE_START_CALL_MEMBER(f1gpb);
}
-static MACHINE_RESET( f1gp )
+MACHINE_RESET_MEMBER(f1gp_state,f1gp)
{
- f1gp_state *state = machine.driver_data<f1gp_state>();
-
- state->m_pending_command = 0;
- state->m_roz_bank = 0;
- state->m_flipscreen = 0;
- state->m_gfxctrl = 0;
- state->m_scroll[0] = 0;
- state->m_scroll[1] = 0;
+
+ m_pending_command = 0;
+ m_roz_bank = 0;
+ m_flipscreen = 0;
+ m_gfxctrl = 0;
+ m_scroll[0] = 0;
+ m_scroll[1] = 0;
}
static MACHINE_CONFIG_START( f1gp, f1gp_state )
@@ -466,8 +463,8 @@ static MACHINE_CONFIG_START( f1gp, f1gp_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame */
- MCFG_MACHINE_START(f1gp)
- MCFG_MACHINE_RESET(f1gp)
+ MCFG_MACHINE_START_OVERRIDE(f1gp_state,f1gp)
+ MCFG_MACHINE_RESET_OVERRIDE(f1gp_state,f1gp)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -479,7 +476,7 @@ static MACHINE_CONFIG_START( f1gp, f1gp_state )
MCFG_GFXDECODE(f1gp)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(f1gp)
+ MCFG_VIDEO_START_OVERRIDE(f1gp_state,f1gp)
MCFG_K053936_ADD("k053936", f1gp_k053936_intf)
@@ -509,8 +506,8 @@ static MACHINE_CONFIG_START( f1gpb, f1gp_state )
/* NO sound CPU */
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame */
- MCFG_MACHINE_START(f1gpb)
- MCFG_MACHINE_RESET(f1gp)
+ MCFG_MACHINE_START_OVERRIDE(f1gp_state,f1gpb)
+ MCFG_MACHINE_RESET_OVERRIDE(f1gp_state,f1gp)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -522,7 +519,7 @@ static MACHINE_CONFIG_START( f1gpb, f1gp_state )
MCFG_GFXDECODE(f1gp)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(f1gpb)
+ MCFG_VIDEO_START_OVERRIDE(f1gp_state,f1gpb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -548,7 +545,7 @@ static MACHINE_CONFIG_DERIVED( f1gp2, f1gp )
MCFG_DEVICE_REMOVE("k053936")
MCFG_K053936_ADD("k053936", f1gp2_k053936_intf)
- MCFG_VIDEO_START(f1gp2)
+ MCFG_VIDEO_START_OVERRIDE(f1gp_state,f1gp2)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/famibox.c b/src/mame/drivers/famibox.c
index ddc775e8b26..2aa36998a79 100644
--- a/src/mame/drivers/famibox.c
+++ b/src/mame/drivers/famibox.c
@@ -105,6 +105,10 @@ public:
DECLARE_READ8_MEMBER(psg_4015_r);
DECLARE_WRITE8_MEMBER(psg_4015_w);
DECLARE_WRITE8_MEMBER(psg_4017_w);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
/******************************************************
@@ -508,10 +512,10 @@ static const nes_interface famibox_interface_1 =
"maincpu"
};
-static PALETTE_INIT( famibox )
+void famibox_state::palette_init()
{
- ppu2c0x_device *ppu = machine.device<ppu2c0x_device>("ppu");
- ppu->init_palette(machine, 0);
+ ppu2c0x_device *ppu = machine().device<ppu2c0x_device>("ppu");
+ ppu->init_palette(machine(), 0);
}
static void ppu_irq( device_t *device, int *ppu_regs )
@@ -530,7 +534,7 @@ static const ppu2c0x_interface ppu_interface =
ppu_irq /* irq */
};
-static VIDEO_START( famibox )
+void famibox_state::video_start()
{
}
@@ -546,33 +550,32 @@ static GFXDECODE_START( famibox )
/* none, the ppu generates one */
GFXDECODE_END
-static MACHINE_RESET( famibox )
+void famibox_state::machine_reset()
{
- famicombox_bankswitch(machine, 0);
+ famicombox_bankswitch(machine(), 0);
}
-static MACHINE_START( famibox )
+void famibox_state::machine_start()
{
- famibox_state *state = machine.driver_data<famibox_state>();
- state->m_nt_ram = auto_alloc_array(machine, UINT8, 0x1000);
- state->m_nt_page[0] = state->m_nt_ram;
- state->m_nt_page[1] = state->m_nt_ram + 0x400;
- state->m_nt_page[2] = state->m_nt_ram + 0x800;
- state->m_nt_page[3] = state->m_nt_ram + 0xc00;
+ m_nt_ram = auto_alloc_array(machine(), UINT8, 0x1000);
+ m_nt_page[0] = m_nt_ram;
+ m_nt_page[1] = m_nt_ram + 0x400;
+ m_nt_page[2] = m_nt_ram + 0x800;
+ m_nt_page[3] = m_nt_ram + 0xc00;
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(famibox_state::famibox_nt_r), state), write8_delegate(FUNC(famibox_state::famibox_nt_w), state));
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x1fff, "ppubank1");
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(famibox_state::famibox_nt_r), this), write8_delegate(FUNC(famibox_state::famibox_nt_w), this));
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x1fff, "ppubank1");
- famicombox_bankswitch(machine, 0);
+ famicombox_bankswitch(machine(), 0);
- state->m_attract_timer = machine.scheduler().timer_alloc(FUNC(famicombox_attract_timer_callback));
- state->m_gameplay_timer = machine.scheduler().timer_alloc(FUNC(famicombox_gameplay_timer_callback));
- state->m_exception_cause = 0xff;
- state->m_exception_mask = 0;
- state->m_attract_timer_period = 0;
- state->m_money_reg = 0;
- state->m_coins = 0;
+ m_attract_timer = machine().scheduler().timer_alloc(FUNC(famicombox_attract_timer_callback));
+ m_gameplay_timer = machine().scheduler().timer_alloc(FUNC(famicombox_gameplay_timer_callback));
+ m_exception_cause = 0xff;
+ m_exception_mask = 0;
+ m_attract_timer_period = 0;
+ m_money_reg = 0;
+ m_coins = 0;
}
static MACHINE_CONFIG_START( famibox, famibox_state )
@@ -580,8 +583,6 @@ static MACHINE_CONFIG_START( famibox, famibox_state )
MCFG_CPU_ADD("maincpu", N2A03, N2A03_DEFAULTCLOCK)
MCFG_CPU_PROGRAM_MAP(famibox_map)
- MCFG_MACHINE_START( famibox )
- MCFG_MACHINE_RESET( famibox )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -593,8 +594,6 @@ static MACHINE_CONFIG_START( famibox, famibox_state )
MCFG_GFXDECODE(famibox)
MCFG_PALETTE_LENGTH(8*4*16)
- MCFG_PALETTE_INIT(famibox)
- MCFG_VIDEO_START(famibox)
MCFG_PPU2C04_ADD("ppu", ppu_interface)
diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c
index 5af6a13619b..8b65d0f41d5 100644
--- a/src/mame/drivers/fantland.c
+++ b/src/mame/drivers/fantland.c
@@ -816,19 +816,17 @@ GFXDECODE_END
***************************************************************************/
-static MACHINE_START( fantland )
+MACHINE_START_MEMBER(fantland_state,fantland)
{
- fantland_state *state = machine.driver_data<fantland_state>();
- state->m_audio_cpu = machine.device("audiocpu");
+ m_audio_cpu = machine().device("audiocpu");
- state->save_item(NAME(state->m_nmi_enable));
+ save_item(NAME(m_nmi_enable));
}
-static MACHINE_RESET( fantland )
+MACHINE_RESET_MEMBER(fantland_state,fantland)
{
- fantland_state *state = machine.driver_data<fantland_state>();
- state->m_nmi_enable = 0;
+ m_nmi_enable = 0;
}
static INTERRUPT_GEN( fantland_irq )
@@ -856,8 +854,8 @@ static MACHINE_CONFIG_START( fantland, fantland_state )
MCFG_CPU_PERIODIC_INT(fantland_sound_irq, 8000)
// NMI when soundlatch is written
- MCFG_MACHINE_START(fantland)
- MCFG_MACHINE_RESET(fantland)
+ MCFG_MACHINE_START_OVERRIDE(fantland_state,fantland)
+ MCFG_MACHINE_RESET_OVERRIDE(fantland_state,fantland)
MCFG_QUANTUM_TIME(attotime::from_hz(8000)) // sound irq must feed the DAC at 8kHz
@@ -908,8 +906,8 @@ static MACHINE_CONFIG_START( galaxygn, fantland_state )
MCFG_CPU_IO_MAP(galaxygn_sound_iomap)
// IRQ by YM2151, NMI when soundlatch is written
- MCFG_MACHINE_START(fantland)
- MCFG_MACHINE_RESET(fantland)
+ MCFG_MACHINE_START_OVERRIDE(fantland_state,fantland)
+ MCFG_MACHINE_RESET_OVERRIDE(fantland_state,fantland)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -954,54 +952,52 @@ static const msm5205_interface msm5205_config_3 =
MSM5205_S48_4B /* 8 kHz, 4 Bits */
};
-static MACHINE_START( borntofi )
+MACHINE_START_MEMBER(fantland_state,borntofi)
{
- fantland_state *state = machine.driver_data<fantland_state>();
-
- MACHINE_START_CALL(fantland);
-
- state->m_msm1 = machine.device("msm1");
- state->m_msm2 = machine.device("msm2");
- state->m_msm3 = machine.device("msm3");
- state->m_msm4 = machine.device("msm4");
-
- state->save_item(NAME(state->m_old_x));
- state->save_item(NAME(state->m_old_y));
- state->save_item(NAME(state->m_old_f));
- state->save_item(NAME(state->m_input_ret));
- state->save_item(NAME(state->m_adpcm_playing));
- state->save_item(NAME(state->m_adpcm_addr[0]));
- state->save_item(NAME(state->m_adpcm_addr[1]));
- state->save_item(NAME(state->m_adpcm_nibble));
+
+ MACHINE_START_CALL_MEMBER(fantland);
+
+ m_msm1 = machine().device("msm1");
+ m_msm2 = machine().device("msm2");
+ m_msm3 = machine().device("msm3");
+ m_msm4 = machine().device("msm4");
+
+ save_item(NAME(m_old_x));
+ save_item(NAME(m_old_y));
+ save_item(NAME(m_old_f));
+ save_item(NAME(m_input_ret));
+ save_item(NAME(m_adpcm_playing));
+ save_item(NAME(m_adpcm_addr[0]));
+ save_item(NAME(m_adpcm_addr[1]));
+ save_item(NAME(m_adpcm_nibble));
}
-static MACHINE_RESET( borntofi )
+MACHINE_RESET_MEMBER(fantland_state,borntofi)
{
- fantland_state *state = machine.driver_data<fantland_state>();
int i;
- MACHINE_RESET_CALL(fantland);
+ MACHINE_RESET_CALL_MEMBER(fantland);
for (i = 0; i < 2; i++)
{
- state->m_old_x[i] = 0;
- state->m_old_y[i] = 0;
- state->m_old_f[i] = 0;
- state->m_input_ret[i] = 0;
+ m_old_x[i] = 0;
+ m_old_y[i] = 0;
+ m_old_f[i] = 0;
+ m_input_ret[i] = 0;
}
for (i = 0; i < 4; i++)
{
- state->m_adpcm_playing[i] = 1;
- state->m_adpcm_addr[0][i] = 0;
- state->m_adpcm_addr[1][i] = 0;
- state->m_adpcm_nibble[i] = 0;
+ m_adpcm_playing[i] = 1;
+ m_adpcm_addr[0][i] = 0;
+ m_adpcm_addr[1][i] = 0;
+ m_adpcm_nibble[i] = 0;
}
- borntofi_adpcm_stop(machine.device("msm1"), 0);
- borntofi_adpcm_stop(machine.device("msm2"), 1);
- borntofi_adpcm_stop(machine.device("msm3"), 2);
- borntofi_adpcm_stop(machine.device("msm4"), 3);
+ borntofi_adpcm_stop(machine().device("msm1"), 0);
+ borntofi_adpcm_stop(machine().device("msm2"), 1);
+ borntofi_adpcm_stop(machine().device("msm3"), 2);
+ borntofi_adpcm_stop(machine().device("msm4"), 3);
}
static MACHINE_CONFIG_START( borntofi, fantland_state )
@@ -1014,8 +1010,8 @@ static MACHINE_CONFIG_START( borntofi, fantland_state )
MCFG_CPU_ADD("audiocpu", I8088, 18432000/3) // 8088 - AMD P8088-2 CPU, running at 6.144MHz [18.432/3]
MCFG_CPU_PROGRAM_MAP(borntofi_sound_map)
- MCFG_MACHINE_START(borntofi)
- MCFG_MACHINE_RESET(borntofi)
+ MCFG_MACHINE_START_OVERRIDE(fantland_state,borntofi)
+ MCFG_MACHINE_RESET_OVERRIDE(fantland_state,borntofi)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1054,8 +1050,8 @@ static MACHINE_CONFIG_START( wheelrun, fantland_state )
MCFG_CPU_PROGRAM_MAP(wheelrun_sound_map)
// IRQ by YM3526, NMI when soundlatch is written
- MCFG_MACHINE_START(fantland)
- MCFG_MACHINE_RESET(fantland)
+ MCFG_MACHINE_START_OVERRIDE(fantland_state,fantland)
+ MCFG_MACHINE_RESET_OVERRIDE(fantland_state,fantland)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/fastfred.c b/src/mame/drivers/fastfred.c
index 2bac8245be7..215d9eddd55 100644
--- a/src/mame/drivers/fastfred.c
+++ b/src/mame/drivers/fastfred.c
@@ -124,10 +124,9 @@ READ8_MEMBER(fastfred_state::boggy84_custom_io_r)
*/
-static MACHINE_START( imago )
+MACHINE_START_MEMBER(fastfred_state,imago)
{
- fastfred_state *state = machine.driver_data<fastfred_state>();
- machine.gfx[1]->set_source(state->m_imago_sprites);
+ machine().gfx[1]->set_source(m_imago_sprites);
}
WRITE8_MEMBER(fastfred_state::imago_dma_irq_w)
@@ -665,8 +664,8 @@ static MACHINE_CONFIG_START( fastfred, fastfred_state )
MCFG_GFXDECODE(fastfred)
MCFG_PALETTE_LENGTH(32*8)
- MCFG_PALETTE_INIT(fastfred)
- MCFG_VIDEO_START(fastfred)
+ MCFG_PALETTE_INIT_OVERRIDE(fastfred_state,fastfred)
+ MCFG_VIDEO_START_OVERRIDE(fastfred_state,fastfred)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -699,13 +698,13 @@ static MACHINE_CONFIG_DERIVED( imago, fastfred )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(imago_map)
- MCFG_MACHINE_START(imago)
+ MCFG_MACHINE_START_OVERRIDE(fastfred_state,imago)
/* video hardware */
MCFG_PALETTE_LENGTH(256+64+2) /* 256 for characters, 64 for the stars and 2 for the web */
MCFG_GFXDECODE(imago)
- MCFG_VIDEO_START(imago)
+ MCFG_VIDEO_START_OVERRIDE(fastfred_state,imago)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(imago)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c
index 51d13a05087..d028286b156 100644
--- a/src/mame/drivers/fastlane.c
+++ b/src/mame/drivers/fastlane.c
@@ -203,15 +203,14 @@ static const k007232_interface k007232_interface_2 =
volume_callback1
};
-static MACHINE_START( fastlane )
+void fastlane_state::machine_start()
{
- fastlane_state *state = machine.driver_data<fastlane_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
- state->m_konami2 = machine.device("konami2");
- state->m_k007121 = machine.device("k007121");
+ m_konami2 = machine().device("konami2");
+ m_k007121 = machine().device("k007121");
}
static MACHINE_CONFIG_START( fastlane, fastlane_state )
@@ -221,7 +220,6 @@ static MACHINE_CONFIG_START( fastlane, fastlane_state )
MCFG_CPU_PROGRAM_MAP(fastlane_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", fastlane_scanline, "screen", 0, 1)
- MCFG_MACHINE_START(fastlane)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -234,8 +232,6 @@ static MACHINE_CONFIG_START( fastlane, fastlane_state )
MCFG_GFXDECODE(fastlane)
MCFG_PALETTE_LENGTH(1024*16)
- MCFG_PALETTE_INIT(fastlane)
- MCFG_VIDEO_START(fastlane)
MCFG_K007121_ADD("k007121")
MCFG_K051733_ADD("k051733")
diff --git a/src/mame/drivers/fcombat.c b/src/mame/drivers/fcombat.c
index ed2ffe9c24d..e7890604b7a 100644
--- a/src/mame/drivers/fcombat.c
+++ b/src/mame/drivers/fcombat.c
@@ -257,34 +257,32 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( fcombat )
+void fcombat_state::machine_start()
{
- fcombat_state *state = machine.driver_data<fcombat_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
-
- state->save_item(NAME(state->m_cocktail_flip));
- state->save_item(NAME(state->m_char_palette));
- state->save_item(NAME(state->m_sprite_palette));
- state->save_item(NAME(state->m_char_bank));
- state->save_item(NAME(state->m_fcombat_sh));
- state->save_item(NAME(state->m_fcombat_sv));
- state->save_item(NAME(state->m_tx));
- state->save_item(NAME(state->m_ty));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+
+ save_item(NAME(m_cocktail_flip));
+ save_item(NAME(m_char_palette));
+ save_item(NAME(m_sprite_palette));
+ save_item(NAME(m_char_bank));
+ save_item(NAME(m_fcombat_sh));
+ save_item(NAME(m_fcombat_sv));
+ save_item(NAME(m_tx));
+ save_item(NAME(m_ty));
}
-static MACHINE_RESET( fcombat )
+void fcombat_state::machine_reset()
{
- fcombat_state *state = machine.driver_data<fcombat_state>();
-
- state->m_cocktail_flip = 0;
- state->m_char_palette = 0;
- state->m_sprite_palette = 0;
- state->m_char_bank = 0;
- state->m_fcombat_sh = 0;
- state->m_fcombat_sv = 0;
- state->m_tx = 0;
- state->m_ty = 0;
+
+ m_cocktail_flip = 0;
+ m_char_palette = 0;
+ m_sprite_palette = 0;
+ m_char_bank = 0;
+ m_fcombat_sh = 0;
+ m_fcombat_sv = 0;
+ m_tx = 0;
+ m_ty = 0;
}
static MACHINE_CONFIG_START( fcombat, fcombat_state )
@@ -296,8 +294,6 @@ static MACHINE_CONFIG_START( fcombat, fcombat_state )
MCFG_CPU_ADD("audiocpu", Z80, 10000000/3)
MCFG_CPU_PROGRAM_MAP(audio_map)
- MCFG_MACHINE_START(fcombat)
- MCFG_MACHINE_RESET(fcombat)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -307,8 +303,6 @@ static MACHINE_CONFIG_START( fcombat, fcombat_state )
MCFG_GFXDECODE(fcombat)
MCFG_PALETTE_LENGTH(256*3)
- MCFG_PALETTE_INIT(fcombat)
- MCFG_VIDEO_START(fcombat)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/fcrash.c b/src/mame/drivers/fcrash.c
index 0eb374036fd..fb0cd8ecd6a 100644
--- a/src/mame/drivers/fcrash.c
+++ b/src/mame/drivers/fcrash.c
@@ -690,40 +690,37 @@ static const msm5205_interface msm5205_interface2 =
};
-static MACHINE_START( fcrash )
+MACHINE_START_MEMBER(cps_state,fcrash)
{
- cps_state *state = machine.driver_data<cps_state>();
- UINT8 *ROM = state->memregion("soundcpu")->base();
+ UINT8 *ROM = memregion("soundcpu")->base();
- state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("soundcpu");
- state->m_msm_1 = machine.device<msm5205_device>("msm1");
- state->m_msm_2 = machine.device<msm5205_device>("msm2");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("soundcpu");
+ m_msm_1 = machine().device<msm5205_device>("msm1");
+ m_msm_2 = machine().device<msm5205_device>("msm2");
- state->save_item(NAME(state->m_sample_buffer1));
- state->save_item(NAME(state->m_sample_buffer2));
- state->save_item(NAME(state->m_sample_select1));
- state->save_item(NAME(state->m_sample_select2));
+ save_item(NAME(m_sample_buffer1));
+ save_item(NAME(m_sample_buffer2));
+ save_item(NAME(m_sample_select1));
+ save_item(NAME(m_sample_select2));
}
-static MACHINE_START( kodb )
+MACHINE_START_MEMBER(cps_state,kodb)
{
- cps_state *state = machine.driver_data<cps_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("soundcpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("soundcpu");
}
-static MACHINE_RESET( fcrash )
+MACHINE_RESET_MEMBER(cps_state,fcrash)
{
- cps_state *state = machine.driver_data<cps_state>();
- state->m_sample_buffer1 = 0;
- state->m_sample_buffer2 = 0;
- state->m_sample_select1 = 0;
- state->m_sample_select2 = 0;
+ m_sample_buffer1 = 0;
+ m_sample_buffer2 = 0;
+ m_sample_select1 = 0;
+ m_sample_select2 = 0;
}
static MACHINE_CONFIG_START( fcrash, cps_state )
@@ -736,8 +733,8 @@ static MACHINE_CONFIG_START( fcrash, cps_state )
MCFG_CPU_ADD("soundcpu", Z80, 24000000/6) /* ? */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(fcrash)
- MCFG_MACHINE_RESET(fcrash)
+ MCFG_MACHINE_START_OVERRIDE(cps_state,fcrash)
+ MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -751,7 +748,7 @@ static MACHINE_CONFIG_START( fcrash, cps_state )
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(cps1)
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -787,7 +784,7 @@ static MACHINE_CONFIG_START( kodb, cps_state )
// MCFG_CPU_ADD("soundcpu", Z80, 3579545)
// MCFG_CPU_PROGRAM_MAP(sub_map)
- MCFG_MACHINE_START(kodb)
+ MCFG_MACHINE_START_OVERRIDE(cps_state,kodb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -801,7 +798,7 @@ static MACHINE_CONFIG_START( kodb, cps_state )
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(0xc00)
- MCFG_VIDEO_START(cps1)
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
/* sound hardware */
// MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -943,7 +940,7 @@ static MACHINE_CONFIG_START( sgyxz, cps_state )
// MCFG_CPU_ADD("soundcpu", Z80, 3579545)
// MCFG_CPU_PROGRAM_MAP(sub_map)
- MCFG_MACHINE_START(kodb)
+ MCFG_MACHINE_START_OVERRIDE(cps_state,kodb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -957,7 +954,7 @@ static MACHINE_CONFIG_START( sgyxz, cps_state )
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(0xc00)
- MCFG_VIDEO_START(cps1)
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/feversoc.c b/src/mame/drivers/feversoc.c
index e0bb9222b4b..e9b93ed2035 100644
--- a/src/mame/drivers/feversoc.c
+++ b/src/mame/drivers/feversoc.c
@@ -77,12 +77,13 @@ public:
DECLARE_READ32_MEMBER(in0_r);
DECLARE_WRITE32_MEMBER(output_w);
DECLARE_DRIVER_INIT(feversoc);
+ virtual void video_start();
};
#define MASTER_CLOCK XTAL_28_63636MHz
-static VIDEO_START( feversoc )
+void feversoc_state::video_start()
{
}
@@ -268,7 +269,6 @@ static MACHINE_CONFIG_START( feversoc, feversoc_state )
MCFG_GFXDECODE(feversoc)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(feversoc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c
index d2e5565611a..f29ee1d2a96 100644
--- a/src/mame/drivers/fgoal.c
+++ b/src/mame/drivers/fgoal.c
@@ -45,9 +45,9 @@ static int intensity(int bits)
}
-static PALETTE_INIT( fgoal )
+void fgoal_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
/* for B/W screens PCB can be jumpered to use lower half of PROM */
@@ -55,17 +55,17 @@ static PALETTE_INIT( fgoal )
for (i = 0; i < 128; i++)
{
UINT8 color = color_prom[0x80 | i] & 63;
- palette_set_color_rgb(machine, i, intensity(color >> 4), intensity(color >> 2), intensity(color >> 0));
+ palette_set_color_rgb(machine(), i, intensity(color >> 4), intensity(color >> 2), intensity(color >> 0));
}
for (i = 0; i < 8; i++)
{
- palette_set_color(machine, 128 + 0*8 + i, MAKE_RGB(0x2e,0x80,0x2e));
- palette_set_color(machine, 128 + 1*8 + i, MAKE_RGB(0x2e,0x2e,0x2e));
+ palette_set_color(machine(), 128 + 0*8 + i, MAKE_RGB(0x2e,0x80,0x2e));
+ palette_set_color(machine(), 128 + 1*8 + i, MAKE_RGB(0x2e,0x2e,0x2e));
}
/* ball is a fixed color */
- palette_set_color_rgb(machine, 128 + 16, intensity(0x38 >> 4), intensity(0x38 >> 2), intensity(0x38 >> 0));
+ palette_set_color_rgb(machine(), 128 + 16, intensity(0x38 >> 4), intensity(0x38 >> 2), intensity(0x38 >> 0));
}
@@ -328,35 +328,33 @@ GFXDECODE_END
-static MACHINE_START( fgoal )
+void fgoal_state::machine_start()
{
- fgoal_state *state = machine.driver_data<fgoal_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_mb14241 = machine.device("mb14241");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_mb14241 = machine().device("mb14241");
- state->save_item(NAME(state->m_xpos));
- state->save_item(NAME(state->m_ypos));
- state->save_item(NAME(state->m_current_color));
- state->save_item(NAME(state->m_fgoal_player));
- state->save_item(NAME(state->m_row));
- state->save_item(NAME(state->m_col));
- state->save_item(NAME(state->m_prev_coin));
+ save_item(NAME(m_xpos));
+ save_item(NAME(m_ypos));
+ save_item(NAME(m_current_color));
+ save_item(NAME(m_fgoal_player));
+ save_item(NAME(m_row));
+ save_item(NAME(m_col));
+ save_item(NAME(m_prev_coin));
}
-static MACHINE_RESET( fgoal )
+void fgoal_state::machine_reset()
{
- fgoal_state *state = machine.driver_data<fgoal_state>();
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(0), FUNC(interrupt_callback));
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), FUNC(interrupt_callback));
- state->m_xpos = 0;
- state->m_ypos = 0;
- state->m_current_color = 0;
- state->m_fgoal_player = 0;
- state->m_row = 0;
- state->m_col = 0;
- state->m_prev_coin = 0;
+ m_xpos = 0;
+ m_ypos = 0;
+ m_current_color = 0;
+ m_fgoal_player = 0;
+ m_row = 0;
+ m_col = 0;
+ m_prev_coin = 0;
}
static MACHINE_CONFIG_START( fgoal, fgoal_state )
@@ -365,8 +363,6 @@ static MACHINE_CONFIG_START( fgoal, fgoal_state )
MCFG_CPU_ADD("maincpu", M6800, 10065000 / 10) /* ? */
MCFG_CPU_PROGRAM_MAP(cpu_map)
- MCFG_MACHINE_START(fgoal)
- MCFG_MACHINE_RESET(fgoal)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -381,8 +377,6 @@ static MACHINE_CONFIG_START( fgoal, fgoal_state )
MCFG_GFXDECODE(fgoal)
MCFG_PALETTE_LENGTH(128 + 16 + 1)
- MCFG_PALETTE_INIT(fgoal)
- MCFG_VIDEO_START(fgoal)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/finalizr.c b/src/mame/drivers/finalizr.c
index deb0e77c3d8..400801c8fe6 100644
--- a/src/mame/drivers/finalizr.c
+++ b/src/mame/drivers/finalizr.c
@@ -252,28 +252,26 @@ static const sn76496_config psg_intf =
};
-static MACHINE_START( finalizr )
+void finalizr_state::machine_start()
{
- finalizr_state *state = machine.driver_data<finalizr_state>();
- state->m_audio_cpu = machine.device("audiocpu");
+ m_audio_cpu = machine().device("audiocpu");
- state->save_item(NAME(state->m_spriterambank));
- state->save_item(NAME(state->m_charbank));
- state->save_item(NAME(state->m_T1_line));
- state->save_item(NAME(state->m_nmi_enable));
- state->save_item(NAME(state->m_irq_enable));
+ save_item(NAME(m_spriterambank));
+ save_item(NAME(m_charbank));
+ save_item(NAME(m_T1_line));
+ save_item(NAME(m_nmi_enable));
+ save_item(NAME(m_irq_enable));
}
-static MACHINE_RESET( finalizr )
+void finalizr_state::machine_reset()
{
- finalizr_state *state = machine.driver_data<finalizr_state>();
- state->m_spriterambank = 0;
- state->m_charbank = 0;
- state->m_T1_line = 0;
- state->m_nmi_enable = 0;
- state->m_irq_enable = 0;
+ m_spriterambank = 0;
+ m_charbank = 0;
+ m_T1_line = 0;
+ m_nmi_enable = 0;
+ m_irq_enable = 0;
}
static MACHINE_CONFIG_START( finalizr, finalizr_state )
@@ -287,8 +285,6 @@ static MACHINE_CONFIG_START( finalizr, finalizr_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(sound_io_map)
- MCFG_MACHINE_START(finalizr)
- MCFG_MACHINE_RESET(finalizr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -301,8 +297,6 @@ static MACHINE_CONFIG_START( finalizr, finalizr_state )
MCFG_GFXDECODE(finalizr)
MCFG_PALETTE_LENGTH(2*16*16)
- MCFG_PALETTE_INIT(finalizr)
- MCFG_VIDEO_START(finalizr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/firebeat.c b/src/mame/drivers/firebeat.c
index 26383a3bb93..03a69babd89 100644
--- a/src/mame/drivers/firebeat.c
+++ b/src/mame/drivers/firebeat.c
@@ -180,6 +180,9 @@ public:
DECLARE_DRIVER_INIT(ppd);
DECLARE_DRIVER_INIT(kbm);
DECLARE_DRIVER_INIT(ppp);
+ DECLARE_MACHINE_START(firebeat);
+ DECLARE_MACHINE_RESET(firebeat);
+ DECLARE_VIDEO_START(firebeat);
};
@@ -187,13 +190,12 @@ public:
-static VIDEO_START(firebeat)
+VIDEO_START_MEMBER(firebeat_state,firebeat)
{
- firebeat_state *state = machine.driver_data<firebeat_state>();
- state->m_gcu[0].vram = auto_alloc_array(machine, UINT32, 0x2000000/4);
- state->m_gcu[1].vram = auto_alloc_array(machine, UINT32, 0x2000000/4);
- memset(state->m_gcu[0].vram, 0, 0x2000000);
- memset(state->m_gcu[1].vram, 0, 0x2000000);
+ m_gcu[0].vram = auto_alloc_array(machine(), UINT32, 0x2000000/4);
+ m_gcu[1].vram = auto_alloc_array(machine(), UINT32, 0x2000000/4);
+ memset(m_gcu[0].vram, 0, 0x2000000);
+ memset(m_gcu[1].vram, 0, 0x2000000);
}
@@ -1730,18 +1732,17 @@ static READ16_HANDLER(spu_unk_r)
/*****************************************************************************/
-static MACHINE_START( firebeat )
+MACHINE_START_MEMBER(firebeat_state,firebeat)
{
- firebeat_state *state = machine.driver_data<firebeat_state>();
/* set conservative DRC options */
- ppcdrc_set_options(machine.device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
+ ppcdrc_set_options(machine().device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
/* configure fast RAM regions for DRC */
- ppcdrc_add_fastram(machine.device("maincpu"), 0x00000000, 0x01ffffff, FALSE, state->m_work_ram);
+ ppcdrc_add_fastram(machine().device("maincpu"), 0x00000000, 0x01ffffff, FALSE, m_work_ram);
- state->m_flash[0] = machine.device<fujitsu_29f016a_device>("flash0");
- state->m_flash[1] = machine.device<fujitsu_29f016a_device>("flash1");
- state->m_flash[2] = machine.device<fujitsu_29f016a_device>("flash2");
+ m_flash[0] = machine().device<fujitsu_29f016a_device>("flash0");
+ m_flash[1] = machine().device<fujitsu_29f016a_device>("flash1");
+ m_flash[2] = machine().device<fujitsu_29f016a_device>("flash2");
}
static ADDRESS_MAP_START( firebeat_map, AS_PROGRAM, 32, firebeat_state )
@@ -1944,21 +1945,20 @@ static INTERRUPT_GEN(firebeat_interrupt)
device->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
}
-static MACHINE_RESET( firebeat )
+MACHINE_RESET_MEMBER(firebeat_state,firebeat)
{
- firebeat_state *state = machine.driver_data<firebeat_state>();
void *cd;
int i;
- UINT8 *sound = state->memregion("ymz")->base();
+ UINT8 *sound = memregion("ymz")->base();
for (i=0; i < 0x200000; i++)
{
- sound[i] = state->m_flash[1]->read(i);
- sound[i+0x200000] = state->m_flash[2]->read(i);
+ sound[i] = m_flash[1]->read(i);
+ sound[i+0x200000] = m_flash[2]->read(i);
}
- state->m_atapi_device_data[1]->GetDevice( &cd );
- cdda_set_cdrom(machine.device("cdda"), cd);
+ m_atapi_device_data[1]->GetDevice( &cd );
+ cdda_set_cdrom(machine().device("cdda"), cd);
}
const rtc65271_interface firebeat_rtc =
@@ -1973,8 +1973,8 @@ static MACHINE_CONFIG_START( firebeat, firebeat_state )
MCFG_CPU_PROGRAM_MAP(firebeat_map)
MCFG_CPU_VBLANK_INT("screen", firebeat_interrupt)
- MCFG_MACHINE_START(firebeat)
- MCFG_MACHINE_RESET(firebeat)
+ MCFG_MACHINE_START_OVERRIDE(firebeat_state,firebeat)
+ MCFG_MACHINE_RESET_OVERRIDE(firebeat_state,firebeat)
MCFG_RTC65271_ADD("rtc", firebeat_rtc)
@@ -1996,7 +1996,7 @@ static MACHINE_CONFIG_START( firebeat, firebeat_state )
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
MCFG_SCREEN_UPDATE_STATIC(firebeat_0)
- MCFG_VIDEO_START(firebeat)
+ MCFG_VIDEO_START_OVERRIDE(firebeat_state,firebeat)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2019,8 +2019,8 @@ static MACHINE_CONFIG_START( firebeat2, firebeat_state )
MCFG_CPU_PROGRAM_MAP(firebeat_map)
MCFG_CPU_VBLANK_INT("lscreen", firebeat_interrupt)
- MCFG_MACHINE_START(firebeat)
- MCFG_MACHINE_RESET(firebeat)
+ MCFG_MACHINE_START_OVERRIDE(firebeat_state,firebeat)
+ MCFG_MACHINE_RESET_OVERRIDE(firebeat_state,firebeat)
MCFG_RTC65271_ADD("rtc", firebeat_rtc)
@@ -2049,7 +2049,7 @@ static MACHINE_CONFIG_START( firebeat2, firebeat_state )
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
MCFG_SCREEN_UPDATE_STATIC(firebeat_1)
- MCFG_VIDEO_START(firebeat)
+ MCFG_VIDEO_START_OVERRIDE(firebeat_state,firebeat)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/firefox.c b/src/mame/drivers/firefox.c
index c77f3040631..0f9a29efcdc 100644
--- a/src/mame/drivers/firefox.c
+++ b/src/mame/drivers/firefox.c
@@ -96,6 +96,8 @@ public:
DECLARE_WRITE8_MEMBER(riot_porta_w);
DECLARE_WRITE_LINE_MEMBER(riot_irq);
TILE_GET_INFO_MEMBER(bgtile_get_info);
+ virtual void machine_start();
+ virtual void video_start();
};
@@ -204,12 +206,11 @@ WRITE8_MEMBER(firefox_state::tileram_w)
}
-static VIDEO_START( firefox )
+void firefox_state::video_start()
{
- firefox_state *state = machine.driver_data<firefox_state>();
- state->m_bgtiles = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firefox_state::bgtile_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,64);
- state->m_bgtiles->set_transparent_pen(0);
- state->m_bgtiles->set_scrolldy(machine.primary_screen->visible_area().min_y, 0);
+ m_bgtiles = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firefox_state::bgtile_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_bgtiles->set_transparent_pen(0);
+ m_bgtiles->set_scrolldy(machine().primary_screen->visible_area().min_y, 0);
}
@@ -481,17 +482,16 @@ static void firq_gen(running_machine &machine, phillips_22vp931_device &laserdis
}
-static MACHINE_START( firefox )
+void firefox_state::machine_start()
{
- firefox_state *state = machine.driver_data<firefox_state>();
- state->membank("bank1")->configure_entries(0, 32, state->memregion("maincpu")->base() + 0x10000, 0x1000);
- state->m_nvram_1c = machine.device<x2212_device>("nvram_1c");
- state->m_nvram_1d = machine.device<x2212_device>("nvram_1d");
+ membank("bank1")->configure_entries(0, 32, memregion("maincpu")->base() + 0x10000, 0x1000);
+ m_nvram_1c = machine().device<x2212_device>("nvram_1c");
+ m_nvram_1d = machine().device<x2212_device>("nvram_1d");
- state->m_laserdisc->set_data_ready_callback(phillips_22vp931_device::data_ready_delegate(FUNC(firq_gen), &machine));
+ m_laserdisc->set_data_ready_callback(phillips_22vp931_device::data_ready_delegate(FUNC(firq_gen), &machine()));
- state->m_control_num = 0;
- state->m_sprite_bank = 0;
+ m_control_num = 0;
+ m_sprite_bank = 0;
}
@@ -708,14 +708,12 @@ static MACHINE_CONFIG_START( firefox, firefox_state )
MCFG_QUANTUM_TIME(attotime::from_hz(60000))
- MCFG_MACHINE_START(firefox)
MCFG_WATCHDOG_TIME_INIT(attotime::from_hz((double)MASTER_XTAL/8/16/16/16/16))
/* video hardware */
MCFG_GFXDECODE(firefox)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(firefox)
MCFG_LASERDISC_22VP931_ADD("laserdisc")
MCFG_LASERDISC_OVERLAY_STATIC(64*8, 525, firefox)
diff --git a/src/mame/drivers/firetrap.c b/src/mame/drivers/firetrap.c
index f64043aa3ba..74fe287930a 100644
--- a/src/mame/drivers/firetrap.c
+++ b/src/mame/drivers/firetrap.c
@@ -590,54 +590,52 @@ static INTERRUPT_GEN( firetrap_irq )
}
-static MACHINE_START( firetrap )
+void firetrap_state::machine_start()
{
- firetrap_state *state = machine.driver_data<firetrap_state>();
- UINT8 *MAIN = state->memregion("maincpu")->base();
- UINT8 *SOUND = state->memregion("audiocpu")->base();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_msm = machine.device("msm");
-
- state->membank("bank1")->configure_entries(0, 4, &MAIN[0x10000], 0x4000);
- state->membank("bank2")->configure_entries(0, 2, &SOUND[0x10000], 0x4000);
-
- state->save_item(NAME(state->m_i8751_current_command));
- state->save_item(NAME(state->m_sound_irq_enable));
- state->save_item(NAME(state->m_nmi_enable));
- state->save_item(NAME(state->m_i8751_return));
- state->save_item(NAME(state->m_i8751_init_ptr));
- state->save_item(NAME(state->m_msm5205next));
- state->save_item(NAME(state->m_adpcm_toggle));
- state->save_item(NAME(state->m_coin_command_pending));
- state->save_item(NAME(state->m_scroll1_x));
- state->save_item(NAME(state->m_scroll1_y));
- state->save_item(NAME(state->m_scroll2_x));
- state->save_item(NAME(state->m_scroll2_y));
+ UINT8 *MAIN = memregion("maincpu")->base();
+ UINT8 *SOUND = memregion("audiocpu")->base();
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_msm = machine().device("msm");
+
+ membank("bank1")->configure_entries(0, 4, &MAIN[0x10000], 0x4000);
+ membank("bank2")->configure_entries(0, 2, &SOUND[0x10000], 0x4000);
+
+ save_item(NAME(m_i8751_current_command));
+ save_item(NAME(m_sound_irq_enable));
+ save_item(NAME(m_nmi_enable));
+ save_item(NAME(m_i8751_return));
+ save_item(NAME(m_i8751_init_ptr));
+ save_item(NAME(m_msm5205next));
+ save_item(NAME(m_adpcm_toggle));
+ save_item(NAME(m_coin_command_pending));
+ save_item(NAME(m_scroll1_x));
+ save_item(NAME(m_scroll1_y));
+ save_item(NAME(m_scroll2_x));
+ save_item(NAME(m_scroll2_y));
}
-static MACHINE_RESET( firetrap )
+void firetrap_state::machine_reset()
{
- firetrap_state *state = machine.driver_data<firetrap_state>();
int i;
for (i = 0; i < 2; i++)
{
- state->m_scroll1_x[i] = 0;
- state->m_scroll1_y[i] = 0;
- state->m_scroll2_x[i] = 0;
- state->m_scroll2_y[i] = 0;
+ m_scroll1_x[i] = 0;
+ m_scroll1_y[i] = 0;
+ m_scroll2_x[i] = 0;
+ m_scroll2_y[i] = 0;
}
- state->m_i8751_current_command = 0;
- state->m_sound_irq_enable = 0;
- state->m_nmi_enable = 0;
- state->m_i8751_return = 0;
- state->m_i8751_init_ptr = 0;
- state->m_msm5205next = 0xff;
- state->m_adpcm_toggle = 0;
- state->m_coin_command_pending = 0;
+ m_i8751_current_command = 0;
+ m_sound_irq_enable = 0;
+ m_nmi_enable = 0;
+ m_i8751_return = 0;
+ m_i8751_init_ptr = 0;
+ m_msm5205next = 0xff;
+ m_adpcm_toggle = 0;
+ m_coin_command_pending = 0;
}
static MACHINE_CONFIG_START( firetrap, firetrap_state )
@@ -652,8 +650,6 @@ static MACHINE_CONFIG_START( firetrap, firetrap_state )
/* IRQs are caused by the ADPCM chip */
/* NMIs are caused by the main CPU */
- MCFG_MACHINE_START(firetrap)
- MCFG_MACHINE_RESET(firetrap)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -666,8 +662,6 @@ static MACHINE_CONFIG_START( firetrap, firetrap_state )
MCFG_GFXDECODE(firetrap)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(firetrap)
- MCFG_VIDEO_START(firetrap)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -692,8 +686,6 @@ static MACHINE_CONFIG_START( firetrapbl, firetrap_state )
/* IRQs are caused by the ADPCM chip */
/* NMIs are caused by the main CPU */
- MCFG_MACHINE_START(firetrap)
- MCFG_MACHINE_RESET(firetrap)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -705,8 +697,6 @@ static MACHINE_CONFIG_START( firetrapbl, firetrap_state )
MCFG_GFXDECODE(firetrap)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(firetrap)
- MCFG_VIDEO_START(firetrap)
MCFG_SCREEN_UPDATE_STATIC(firetrap)
/* sound hardware */
diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c
index 297bbb7ab1f..ac0cd7fc88c 100644
--- a/src/mame/drivers/firetrk.c
+++ b/src/mame/drivers/firetrk.c
@@ -162,11 +162,11 @@ WRITE8_MEMBER(firetrk_state::montecar_output_2_w)
}
-static MACHINE_RESET( firetrk )
+void firetrk_state::machine_reset()
{
- set_service_mode(machine, 0);
+ set_service_mode(machine(), 0);
- machine.scheduler().synchronize(FUNC(periodic_callback));
+ machine().scheduler().synchronize(FUNC(periodic_callback));
}
@@ -879,7 +879,6 @@ static MACHINE_CONFIG_START( firetrk, firetrk_state )
MCFG_CPU_VBLANK_INT("screen", firetrk_interrupt)
MCFG_WATCHDOG_VBLANK_INIT(5)
- MCFG_MACHINE_RESET(firetrk)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
@@ -890,8 +889,6 @@ static MACHINE_CONFIG_START( firetrk, firetrk_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
MCFG_SCREEN_UPDATE_STATIC(firetrk)
- MCFG_VIDEO_START(firetrk)
- MCFG_PALETTE_INIT(firetrk)
MCFG_PALETTE_LENGTH(28)
MCFG_GFXDECODE(firetrk)
@@ -914,7 +911,7 @@ static MACHINE_CONFIG_DERIVED( superbug, firetrk )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(superbug)
- MCFG_VIDEO_START(superbug)
+ MCFG_VIDEO_START_OVERRIDE(firetrk_state,superbug)
MCFG_GFXDECODE(superbug)
MCFG_PALETTE_LENGTH(28)
@@ -935,10 +932,10 @@ static MACHINE_CONFIG_DERIVED( montecar, firetrk )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(montecar)
- MCFG_VIDEO_START(montecar)
+ MCFG_VIDEO_START_OVERRIDE(firetrk_state,montecar)
MCFG_GFXDECODE(montecar)
- MCFG_PALETTE_INIT(montecar)
+ MCFG_PALETTE_INIT_OVERRIDE(firetrk_state,montecar)
MCFG_PALETTE_LENGTH(46)
/* sound hardware */
diff --git a/src/mame/drivers/fitfight.c b/src/mame/drivers/fitfight.c
index 46c2e0b3537..afa8f1a930a 100644
--- a/src/mame/drivers/fitfight.c
+++ b/src/mame/drivers/fitfight.c
@@ -719,18 +719,16 @@ static GFXDECODE_START( prot )
GFXDECODE_END
-static MACHINE_START( fitfight )
+void fitfight_state::machine_start()
{
- fitfight_state *state = machine.driver_data<fitfight_state>();
- state->save_item(NAME(state->m_fof_700000_data));
+ save_item(NAME(m_fof_700000_data));
}
-static MACHINE_RESET( fitfight )
+void fitfight_state::machine_reset()
{
- fitfight_state *state = machine.driver_data<fitfight_state>();
- state->m_fof_700000_data = 0;
+ m_fof_700000_data = 0;
}
static MACHINE_CONFIG_START( fitfight, fitfight_state )
@@ -745,8 +743,6 @@ static MACHINE_CONFIG_START( fitfight, fitfight_state )
MCFG_CPU_IO_MAP(snd_io)
MCFG_CPU_VBLANK_INT("screen", snd_irq)
- MCFG_MACHINE_START(fitfight)
- MCFG_MACHINE_RESET(fitfight)
MCFG_GFXDECODE(fitfight)
@@ -759,7 +755,6 @@ static MACHINE_CONFIG_START( fitfight, fitfight_state )
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(fitfight)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -773,8 +768,6 @@ static MACHINE_CONFIG_START( bbprot, fitfight_state )
MCFG_CPU_PROGRAM_MAP(bbprot_main_map)
MCFG_CPU_VBLANK_INT("screen", irq2_line_hold)
- MCFG_MACHINE_START(fitfight)
- MCFG_MACHINE_RESET(fitfight)
MCFG_GFXDECODE(prot)
@@ -787,7 +780,6 @@ static MACHINE_CONFIG_START( bbprot, fitfight_state )
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(fitfight)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/flipjack.c b/src/mame/drivers/flipjack.c
index 13cb952c585..5f2cbd92664 100644
--- a/src/mame/drivers/flipjack.c
+++ b/src/mame/drivers/flipjack.c
@@ -120,6 +120,8 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(flipjack_coin);
DECLARE_READ8_MEMBER(flipjack_soundlatch_r);
DECLARE_WRITE8_MEMBER(flipjack_portc_w);
+ virtual void machine_start();
+ virtual void palette_init();
};
@@ -129,19 +131,19 @@ public:
***************************************************************************/
-PALETTE_INIT( flipjack )
+void flipjack_state::palette_init()
{
// from prom
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
for (int i = 0; i < 0x40; i++)
{
- palette_set_color_rgb(machine, 2*i+1, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
- palette_set_color_rgb(machine, 2*i+0, pal1bit(color_prom[i] >> 1), pal1bit(color_prom[i] >> 2), pal1bit(color_prom[i] >> 0));
+ palette_set_color_rgb(machine(), 2*i+1, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
+ palette_set_color_rgb(machine(), 2*i+0, pal1bit(color_prom[i] >> 1), pal1bit(color_prom[i] >> 2), pal1bit(color_prom[i] >> 0));
}
// standard 3bpp for blitter
for (int i = 0; i < 8; i++)
- palette_set_color_rgb(machine, i+0x80, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
+ palette_set_color_rgb(machine(), i+0x80, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
}
@@ -458,16 +460,15 @@ GFXDECODE_END
-static MACHINE_START( flipjack )
+void flipjack_state::machine_start()
{
- flipjack_state *state = machine.driver_data<flipjack_state>();
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x2000);
- state->membank("bank1")->set_entry(0);
-
- state->save_item(NAME(state->m_soundlatch));
- state->save_item(NAME(state->m_bank));
- state->save_item(NAME(state->m_layer));
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x2000);
+ membank("bank1")->set_entry(0);
+
+ save_item(NAME(m_soundlatch));
+ save_item(NAME(m_bank));
+ save_item(NAME(m_layer));
}
@@ -486,7 +487,6 @@ static MACHINE_CONFIG_START( flipjack, flipjack_state )
MCFG_I8255A_ADD( "ppi8255", ppi8255_intf )
- MCFG_MACHINE_START(flipjack)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -498,7 +498,6 @@ static MACHINE_CONFIG_START( flipjack, flipjack_state )
MCFG_GFXDECODE(flipjack)
MCFG_PALETTE_LENGTH(128+8)
- MCFG_PALETTE_INIT(flipjack)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/flkatck.c b/src/mame/drivers/flkatck.c
index 83e70886446..323b46472a5 100644
--- a/src/mame/drivers/flkatck.c
+++ b/src/mame/drivers/flkatck.c
@@ -192,31 +192,29 @@ static const k007232_interface k007232_config =
};
-static MACHINE_START( flkatck )
+void flkatck_state::machine_start()
{
- flkatck_state *state = machine.driver_data<flkatck_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 3, &ROM[0x10000], 0x2000);
+ membank("bank1")->configure_entries(0, 3, &ROM[0x10000], 0x2000);
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k007121 = machine.device("k007121");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k007121 = machine().device("k007121");
- state->save_item(NAME(state->m_irq_enabled));
- state->save_item(NAME(state->m_multiply_reg));
- state->save_item(NAME(state->m_flipscreen));
+ save_item(NAME(m_irq_enabled));
+ save_item(NAME(m_multiply_reg));
+ save_item(NAME(m_flipscreen));
}
-static MACHINE_RESET( flkatck )
+void flkatck_state::machine_reset()
{
- flkatck_state *state = machine.driver_data<flkatck_state>();
- k007232_set_bank(machine.device("konami"), 0, 1);
+ k007232_set_bank(machine().device("konami"), 0, 1);
- state->m_irq_enabled = 0;
- state->m_multiply_reg[0] = 0;
- state->m_multiply_reg[1] = 0;
- state->m_flipscreen = 0;
+ m_irq_enabled = 0;
+ m_multiply_reg[0] = 0;
+ m_multiply_reg[1] = 0;
+ m_flipscreen = 0;
}
static MACHINE_CONFIG_START( flkatck, flkatck_state )
@@ -231,8 +229,6 @@ static MACHINE_CONFIG_START( flkatck, flkatck_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(flkatck)
- MCFG_MACHINE_RESET(flkatck)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -245,7 +241,6 @@ static MACHINE_CONFIG_START( flkatck, flkatck_state )
MCFG_GFXDECODE(flkatck)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(flkatck)
MCFG_K007121_ADD("k007121")
diff --git a/src/mame/drivers/flower.c b/src/mame/drivers/flower.c
index 87d5abed6d6..ef360f0b1a2 100644
--- a/src/mame/drivers/flower.c
+++ b/src/mame/drivers/flower.c
@@ -274,10 +274,8 @@ static MACHINE_CONFIG_START( flower, flower_state )
MCFG_GFXDECODE(flower)
- MCFG_PALETTE_INIT(flower)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(flower)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c
index dca3415925f..f152256a93e 100644
--- a/src/mame/drivers/flstory.c
+++ b/src/mame/drivers/flstory.c
@@ -359,9 +359,8 @@ static ADDRESS_MAP_START( rumba_map, AS_PROGRAM, 8, flstory_state )
ADDRESS_MAP_END
-static MACHINE_RESET( ta7630 )
+MACHINE_RESET_MEMBER(flstory_state,ta7630)
{
- flstory_state *state = machine.driver_data<flstory_state>();
int i;
double db = 0.0;
@@ -370,8 +369,8 @@ static MACHINE_RESET( ta7630 )
for (i = 0; i < 16; i++)
{
double max = 100.0 / pow(10.0, db/20.0 );
- state->m_vol_ctrl[15 - i] = max;
- /*logerror("vol_ctrl[%x] = %i (%f dB)\n", 15 - i, state->m_vol_ctrl[15 - i], db);*/
+ m_vol_ctrl[15 - i] = max;
+ /*logerror("vol_ctrl[%x] = %i (%f dB)\n", 15 - i, m_vol_ctrl[15 - i], db);*/
db += db_step;
db_step += db_step_inc;
}
@@ -1002,81 +1001,79 @@ static const msm5232_interface msm5232_config =
};
-static MACHINE_START( flstory )
+void flstory_state::machine_start()
{
- flstory_state *state = machine.driver_data<flstory_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_mcu = machine.device("mcu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_mcu = machine().device("mcu");
/* video */
- state->save_item(NAME(state->m_char_bank));
- state->save_item(NAME(state->m_palette_bank));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_gfxctrl));
+ save_item(NAME(m_char_bank));
+ save_item(NAME(m_palette_bank));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_gfxctrl));
/* sound */
- state->save_item(NAME(state->m_snd_data));
- state->save_item(NAME(state->m_snd_flag));
- state->save_item(NAME(state->m_sound_nmi_enable));
- state->save_item(NAME(state->m_pending_nmi));
- state->save_item(NAME(state->m_vol_ctrl));
- state->save_item(NAME(state->m_snd_ctrl0));
- state->save_item(NAME(state->m_snd_ctrl1));
- state->save_item(NAME(state->m_snd_ctrl2));
- state->save_item(NAME(state->m_snd_ctrl3));
+ save_item(NAME(m_snd_data));
+ save_item(NAME(m_snd_flag));
+ save_item(NAME(m_sound_nmi_enable));
+ save_item(NAME(m_pending_nmi));
+ save_item(NAME(m_vol_ctrl));
+ save_item(NAME(m_snd_ctrl0));
+ save_item(NAME(m_snd_ctrl1));
+ save_item(NAME(m_snd_ctrl2));
+ save_item(NAME(m_snd_ctrl3));
/* mcu */
- state->save_item(NAME(state->m_from_main));
- state->save_item(NAME(state->m_from_mcu));
- state->save_item(NAME(state->m_mcu_sent));
- state->save_item(NAME(state->m_main_sent));
- state->save_item(NAME(state->m_port_a_in));
- state->save_item(NAME(state->m_port_a_out));
- state->save_item(NAME(state->m_ddr_a));
- state->save_item(NAME(state->m_port_b_in));
- state->save_item(NAME(state->m_port_b_out));
- state->save_item(NAME(state->m_ddr_b));
- state->save_item(NAME(state->m_port_c_in));
- state->save_item(NAME(state->m_port_c_out));
- state->save_item(NAME(state->m_ddr_c));
- state->save_item(NAME(state->m_mcu_select));
+ save_item(NAME(m_from_main));
+ save_item(NAME(m_from_mcu));
+ save_item(NAME(m_mcu_sent));
+ save_item(NAME(m_main_sent));
+ save_item(NAME(m_port_a_in));
+ save_item(NAME(m_port_a_out));
+ save_item(NAME(m_ddr_a));
+ save_item(NAME(m_port_b_in));
+ save_item(NAME(m_port_b_out));
+ save_item(NAME(m_ddr_b));
+ save_item(NAME(m_port_c_in));
+ save_item(NAME(m_port_c_out));
+ save_item(NAME(m_ddr_c));
+ save_item(NAME(m_mcu_select));
}
-static MACHINE_RESET( flstory )
+MACHINE_RESET_MEMBER(flstory_state,flstory)
{
- flstory_state *state = machine.driver_data<flstory_state>();
- MACHINE_RESET_CALL(ta7630);
+ MACHINE_RESET_CALL_MEMBER(ta7630);
/* video */
- state->m_char_bank = 0;
- state->m_palette_bank = 0;
- state->m_flipscreen = 0;
- state->m_gfxctrl = 0;
+ m_char_bank = 0;
+ m_palette_bank = 0;
+ m_flipscreen = 0;
+ m_gfxctrl = 0;
/* sound */
- state->m_snd_data = 0;
- state->m_snd_flag = 0;
- state->m_sound_nmi_enable = 0;
- state->m_pending_nmi = 0;
- state->m_snd_ctrl0 = 0;
- state->m_snd_ctrl1 = 0;
- state->m_snd_ctrl2 = 0;
- state->m_snd_ctrl3 = 0;
+ m_snd_data = 0;
+ m_snd_flag = 0;
+ m_sound_nmi_enable = 0;
+ m_pending_nmi = 0;
+ m_snd_ctrl0 = 0;
+ m_snd_ctrl1 = 0;
+ m_snd_ctrl2 = 0;
+ m_snd_ctrl3 = 0;
/* mcu */
- state->m_from_main = 0;
- state->m_from_mcu = 0;
- state->m_mcu_sent = 0;
- state->m_main_sent = 0;
- state->m_port_a_in = 0;
- state->m_port_a_out = 0;
- state->m_ddr_a = 0;
- state->m_port_b_in = 0;
- state->m_port_b_out = 0;
- state->m_ddr_b = 0;
- state->m_port_c_in = 0;
- state->m_port_c_out = 0;
- state->m_ddr_c = 0;
- state->m_mcu_select = 0;
+ m_from_main = 0;
+ m_from_mcu = 0;
+ m_mcu_sent = 0;
+ m_main_sent = 0;
+ m_port_a_in = 0;
+ m_port_a_out = 0;
+ m_ddr_a = 0;
+ m_port_b_in = 0;
+ m_port_b_out = 0;
+ m_ddr_b = 0;
+ m_port_c_in = 0;
+ m_port_c_out = 0;
+ m_ddr_c = 0;
+ m_mcu_select = 0;
}
static MACHINE_CONFIG_START( flstory, flstory_state )
@@ -1096,8 +1093,7 @@ static MACHINE_CONFIG_START( flstory, flstory_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_START(flstory)
- MCFG_MACHINE_RESET(flstory)
+ MCFG_MACHINE_RESET_OVERRIDE(flstory_state,flstory)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1110,7 +1106,7 @@ static MACHINE_CONFIG_START( flstory, flstory_state )
MCFG_GFXDECODE(flstory)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(flstory)
+ MCFG_VIDEO_START_OVERRIDE(flstory_state,flstory)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1154,8 +1150,7 @@ static MACHINE_CONFIG_START( onna34ro, flstory_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_START(flstory)
- MCFG_MACHINE_RESET(flstory)
+ MCFG_MACHINE_RESET_OVERRIDE(flstory_state,flstory)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1168,7 +1163,7 @@ static MACHINE_CONFIG_START( onna34ro, flstory_state )
MCFG_GFXDECODE(flstory)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(flstory)
+ MCFG_VIDEO_START_OVERRIDE(flstory_state,flstory)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1212,8 +1207,7 @@ static MACHINE_CONFIG_START( victnine, flstory_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_START(flstory)
- MCFG_MACHINE_RESET(flstory)
+ MCFG_MACHINE_RESET_OVERRIDE(flstory_state,flstory)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1226,7 +1220,7 @@ static MACHINE_CONFIG_START( victnine, flstory_state )
MCFG_GFXDECODE(flstory)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(victnine)
+ MCFG_VIDEO_START_OVERRIDE(flstory_state,victnine)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1253,11 +1247,10 @@ static MACHINE_CONFIG_START( victnine, flstory_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MACHINE_CONFIG_END
-static MACHINE_RESET( rumba )
+MACHINE_RESET_MEMBER(flstory_state,rumba)
{
- flstory_state *state = machine.driver_data<flstory_state>();
- MACHINE_RESET_CALL(flstory);
- state->m_mcu_cmd = 0;
+ MACHINE_RESET_CALL_MEMBER(flstory);
+ m_mcu_cmd = 0;
}
static MACHINE_CONFIG_START( rumba, flstory_state )
@@ -1277,8 +1270,7 @@ static MACHINE_CONFIG_START( rumba, flstory_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_START(flstory)
- MCFG_MACHINE_RESET(rumba)
+ MCFG_MACHINE_RESET_OVERRIDE(flstory_state,rumba)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1291,7 +1283,7 @@ static MACHINE_CONFIG_START( rumba, flstory_state )
MCFG_GFXDECODE(flstory)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(rumba)
+ MCFG_VIDEO_START_OVERRIDE(flstory_state,rumba)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c
index 2065b60f17b..75d9fb43925 100644
--- a/src/mame/drivers/flyball.c
+++ b/src/mame/drivers/flyball.c
@@ -56,6 +56,10 @@ public:
DECLARE_WRITE8_MEMBER(flyball_misc_w);
TILEMAP_MAPPER_MEMBER(flyball_get_memory_offset);
TILE_GET_INFO_MEMBER(flyball_get_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -89,10 +93,9 @@ TILE_GET_INFO_MEMBER(flyball_state::flyball_get_tile_info)
}
-static VIDEO_START( flyball )
+void flyball_state::video_start()
{
- flyball_state *state = machine.driver_data<flyball_state>();
- state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flyball_state::flyball_get_tile_info),state), tilemap_mapper_delegate(FUNC(flyball_state::flyball_get_memory_offset),state), 8, 16, 32, 16);
+ m_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(flyball_state::flyball_get_tile_info),this), tilemap_mapper_delegate(FUNC(flyball_state::flyball_get_memory_offset),this), 8, 16, 32, 16);
}
@@ -354,12 +357,12 @@ static GFXDECODE_START( flyball )
GFXDECODE_END
-static PALETTE_INIT( flyball )
+void flyball_state::palette_init()
{
- palette_set_color(machine, 0, MAKE_RGB(0x3F, 0x3F, 0x3F)); /* tiles, ball */
- palette_set_color(machine, 1, MAKE_RGB(0xFF, 0xFF, 0xFF));
- palette_set_color(machine, 2, MAKE_RGB(0xFF ,0xFF, 0xFF)); /* sprites */
- palette_set_color(machine, 3, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), 0, MAKE_RGB(0x3F, 0x3F, 0x3F)); /* tiles, ball */
+ palette_set_color(machine(), 1, MAKE_RGB(0xFF, 0xFF, 0xFF));
+ palette_set_color(machine(), 2, MAKE_RGB(0xFF ,0xFF, 0xFF)); /* sprites */
+ palette_set_color(machine(), 3, MAKE_RGB(0x00, 0x00, 0x00));
}
@@ -369,43 +372,41 @@ static PALETTE_INIT( flyball )
*
*************************************/
-static MACHINE_START( flyball )
+void flyball_state::machine_start()
{
- flyball_state *state = machine.driver_data<flyball_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_pitcher_vert));
- state->save_item(NAME(state->m_pitcher_horz));
- state->save_item(NAME(state->m_pitcher_pic));
- state->save_item(NAME(state->m_ball_vert));
- state->save_item(NAME(state->m_ball_horz));
- state->save_item(NAME(state->m_potmask));
- state->save_item(NAME(state->m_potsense));
+ save_item(NAME(m_pitcher_vert));
+ save_item(NAME(m_pitcher_horz));
+ save_item(NAME(m_pitcher_pic));
+ save_item(NAME(m_ball_vert));
+ save_item(NAME(m_ball_horz));
+ save_item(NAME(m_potmask));
+ save_item(NAME(m_potsense));
}
-static MACHINE_RESET( flyball )
+void flyball_state::machine_reset()
{
- flyball_state *state = machine.driver_data<flyball_state>();
int i;
/* address bits 0 through 8 are inverted */
- UINT8* ROM = state->memregion("maincpu")->base() + 0x2000;
+ UINT8* ROM = memregion("maincpu")->base() + 0x2000;
for (i = 0; i < 0x1000; i++)
- state->m_rombase[i] = ROM[i ^ 0x1ff];
+ m_rombase[i] = ROM[i ^ 0x1ff];
- machine.device("maincpu")->reset();
+ machine().device("maincpu")->reset();
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(0), FUNC(flyball_quarter_callback));
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), FUNC(flyball_quarter_callback));
- state->m_pitcher_vert = 0;
- state->m_pitcher_horz = 0;
- state->m_pitcher_pic = 0;
- state->m_ball_vert = 0;
- state->m_ball_horz = 0;
- state->m_potmask = 0;
- state->m_potsense = 0;
+ m_pitcher_vert = 0;
+ m_pitcher_horz = 0;
+ m_pitcher_pic = 0;
+ m_ball_vert = 0;
+ m_ball_horz = 0;
+ m_potmask = 0;
+ m_potsense = 0;
}
@@ -416,8 +417,6 @@ static MACHINE_CONFIG_START( flyball, flyball_state )
MCFG_CPU_PROGRAM_MAP(flyball_map)
MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse)
- MCFG_MACHINE_START(flyball)
- MCFG_MACHINE_RESET(flyball)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -429,8 +428,6 @@ static MACHINE_CONFIG_START( flyball, flyball_state )
MCFG_GFXDECODE(flyball)
MCFG_PALETTE_LENGTH(4)
- MCFG_PALETTE_INIT(flyball)
- MCFG_VIDEO_START(flyball)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c
index 3312af9c51e..9dee82fcc60 100644
--- a/src/mame/drivers/foodf.c
+++ b/src/mame/drivers/foodf.c
@@ -135,20 +135,18 @@ static TIMER_DEVICE_CALLBACK( scanline_update )
}
-static MACHINE_START( foodf )
+MACHINE_START_MEMBER(foodf_state,foodf)
{
- foodf_state *state = machine.driver_data<foodf_state>();
- atarigen_init(machine);
- state->save_item(NAME(state->m_whichport));
+ atarigen_init(machine());
+ save_item(NAME(m_whichport));
}
-static MACHINE_RESET( foodf )
+MACHINE_RESET_MEMBER(foodf_state,foodf)
{
- foodf_state *state = machine.driver_data<foodf_state>();
- atarigen_interrupt_reset(state, update_interrupts);
- timer_device *scan_timer = machine.device<timer_device>("scan_timer");
- scan_timer->adjust(machine.primary_screen->time_until_pos(0));
+ atarigen_interrupt_reset(this, update_interrupts);
+ timer_device *scan_timer = machine().device<timer_device>("scan_timer");
+ scan_timer->adjust(machine().primary_screen->time_until_pos(0));
}
@@ -358,8 +356,8 @@ static MACHINE_CONFIG_START( foodf, foodf_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
- MCFG_MACHINE_START(foodf)
- MCFG_MACHINE_RESET(foodf)
+ MCFG_MACHINE_START_OVERRIDE(foodf_state,foodf)
+ MCFG_MACHINE_RESET_OVERRIDE(foodf_state,foodf)
MCFG_X2212_ADD_AUTOSAVE("nvram")
@@ -375,7 +373,7 @@ static MACHINE_CONFIG_START( foodf, foodf_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 0, 256, 259, 0, 224)
MCFG_SCREEN_UPDATE_STATIC(foodf)
- MCFG_VIDEO_START(foodf)
+ MCFG_VIDEO_START_OVERRIDE(foodf_state,foodf)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/forte2.c b/src/mame/drivers/forte2.c
index 84b0927d519..1b668942bff 100644
--- a/src/mame/drivers/forte2.c
+++ b/src/mame/drivers/forte2.c
@@ -37,6 +37,8 @@ public:
DECLARE_WRITE8_MEMBER(forte2_ay8910_set_input_mask);
DECLARE_WRITE_LINE_MEMBER(vdp_interrupt);
DECLARE_DRIVER_INIT(pesadelo);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -107,18 +109,16 @@ static TMS9928A_INTERFACE(forte2_tms9928a_interface)
DEVCB_DRIVER_LINE_MEMBER(forte2_state,vdp_interrupt)
};
-static MACHINE_RESET( forte2 )
+void forte2_state::machine_reset()
{
- forte2_state *state = machine.driver_data<forte2_state>();
- state->m_input_mask = 0xff;
+ m_input_mask = 0xff;
}
-static MACHINE_START( forte2 )
+void forte2_state::machine_start()
{
- forte2_state *state = machine.driver_data<forte2_state>();
/* register for save states */
- state_save_register_global(machine, state->m_input_mask);
+ state_save_register_global(machine(), m_input_mask);
}
@@ -128,8 +128,6 @@ static MACHINE_CONFIG_START( pesadelo, forte2_state )
MCFG_CPU_PROGRAM_MAP(program_mem)
MCFG_CPU_IO_MAP(io_mem)
- MCFG_MACHINE_START( forte2 )
- MCFG_MACHINE_RESET( forte2 )
/* video hardware */
MCFG_TMS9928A_ADD( "tms9928a", TMS9928A, forte2_tms9928a_interface )
diff --git a/src/mame/drivers/fortecar.c b/src/mame/drivers/fortecar.c
index 2e0f89ed51d..259a63d05bf 100644
--- a/src/mame/drivers/fortecar.c
+++ b/src/mame/drivers/fortecar.c
@@ -340,10 +340,13 @@ public:
DECLARE_WRITE8_MEMBER(ayporta_w);
DECLARE_WRITE8_MEMBER(ayportb_w);
DECLARE_DRIVER_INIT(fortecar);
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
-static VIDEO_START(fortecar)
+void fortecar_state::video_start()
{
}
@@ -375,9 +378,9 @@ static SCREEN_UPDATE_IND16(fortecar)
return 0;
}
-static PALETTE_INIT( fortecar )
+void fortecar_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
/* Video resistors...
O1 (LS374) R1K RED
@@ -422,7 +425,7 @@ R = 82 Ohms Pull Down.
bit1 = (color_prom[i] >> 7) & 0x01;
b = combine_2_weights(weights_b, bit0, bit1);
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -672,14 +675,13 @@ GFXDECODE_END
-static MACHINE_RESET(fortecar)
+void fortecar_state::machine_reset()
{
- fortecar_state *state = machine.driver_data<fortecar_state>();
int i;
/* apparently there's a random fill in there (checked thru trojan TODO: extract proper algorythm) */
- for(i=0;i<state->m_vram.bytes();i++)
- state->m_vram[i] = machine.rand();
+ for(i=0;i<m_vram.bytes();i++)
+ m_vram[i] = machine().rand();
}
@@ -701,7 +703,6 @@ static MACHINE_CONFIG_START( fortecar, fortecar_state )
MCFG_SCREEN_VISIBLE_AREA(0, 600-1, 0, 240-1) /* driven by CRTC */
MCFG_SCREEN_UPDATE_STATIC(fortecar)
- MCFG_MACHINE_RESET(fortecar)
MCFG_EEPROM_ADD("eeprom", forte_eeprom_intf)
MCFG_EEPROM_DEFAULT_VALUE(0)
@@ -711,9 +712,7 @@ static MACHINE_CONFIG_START( fortecar, fortecar_state )
MCFG_GFXDECODE(fortecar)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT(fortecar)
- MCFG_VIDEO_START(fortecar)
MCFG_MC6845_ADD("crtc", MC6845, CRTC_CLOCK, mc6845_intf) /* 1.5 MHz, measured */
diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c
index a8124792baa..536cc24bce0 100644
--- a/src/mame/drivers/freekick.c
+++ b/src/mame/drivers/freekick.c
@@ -583,53 +583,49 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( freekick )
+MACHINE_START_MEMBER(freekick_state,freekick)
{
- freekick_state *state = machine.driver_data<freekick_state>();
- state->save_item(NAME(state->m_romaddr));
- state->save_item(NAME(state->m_spinner));
- state->save_item(NAME(state->m_nmi_en));
- state->save_item(NAME(state->m_ff_data));
+ save_item(NAME(m_romaddr));
+ save_item(NAME(m_spinner));
+ save_item(NAME(m_nmi_en));
+ save_item(NAME(m_ff_data));
}
-static MACHINE_RESET( freekick )
+MACHINE_RESET_MEMBER(freekick_state,freekick)
{
- freekick_state *state = machine.driver_data<freekick_state>();
- state->m_romaddr = 0;
- state->m_spinner = 0;
- state->m_nmi_en = 0;
- state->m_ff_data = 0;
+ m_romaddr = 0;
+ m_spinner = 0;
+ m_nmi_en = 0;
+ m_ff_data = 0;
}
-static MACHINE_START( pbillrd )
+MACHINE_START_MEMBER(freekick_state,pbillrd)
{
- machine.root_device().membank("bank1")->configure_entries(0, 2, machine.root_device().memregion("maincpu")->base() + 0x10000, 0x4000);
+ machine().root_device().membank("bank1")->configure_entries(0, 2, machine().root_device().memregion("maincpu")->base() + 0x10000, 0x4000);
- MACHINE_START_CALL(freekick);
+ MACHINE_START_CALL_MEMBER(freekick);
}
-static MACHINE_START( oigas )
+MACHINE_START_MEMBER(freekick_state,oigas)
{
- freekick_state *state = machine.driver_data<freekick_state>();
- state->save_item(NAME(state->m_inval));
- state->save_item(NAME(state->m_outval));
- state->save_item(NAME(state->m_cnt));
+ save_item(NAME(m_inval));
+ save_item(NAME(m_outval));
+ save_item(NAME(m_cnt));
- MACHINE_START_CALL(freekick);
+ MACHINE_START_CALL_MEMBER(freekick);
}
-static MACHINE_RESET( oigas )
+MACHINE_RESET_MEMBER(freekick_state,oigas)
{
- freekick_state *state = machine.driver_data<freekick_state>();
- MACHINE_RESET_CALL(freekick);
+ MACHINE_RESET_CALL_MEMBER(freekick);
- state->m_inval = 0;
- state->m_outval = 0;
- state->m_cnt = 0;
+ m_inval = 0;
+ m_outval = 0;
+ m_cnt = 0;
}
static MACHINE_CONFIG_START( base, freekick_state )
@@ -651,7 +647,6 @@ static MACHINE_CONFIG_START( base, freekick_state )
MCFG_PALETTE_LENGTH(0x200)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(freekick)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -675,8 +670,8 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( pbillrd, base )
- MCFG_MACHINE_START(pbillrd)
- MCFG_MACHINE_RESET(freekick)
+ MCFG_MACHINE_START_OVERRIDE(freekick_state,pbillrd)
+ MCFG_MACHINE_RESET_OVERRIDE(freekick_state,freekick)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( freekickb, base )
@@ -685,8 +680,8 @@ static MACHINE_CONFIG_DERIVED( freekickb, base )
MCFG_CPU_PROGRAM_MAP(freekickb_map)
MCFG_CPU_IO_MAP(freekickb_io_map)
- MCFG_MACHINE_START(freekick)
- MCFG_MACHINE_RESET(freekick)
+ MCFG_MACHINE_START_OVERRIDE(freekick_state,freekick)
+ MCFG_MACHINE_RESET_OVERRIDE(freekick_state,freekick)
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf )
MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf )
@@ -701,8 +696,8 @@ static MACHINE_CONFIG_DERIVED( gigas, base )
MCFG_CPU_PROGRAM_MAP(gigas_map)
MCFG_CPU_IO_MAP(gigas_io_map)
- MCFG_MACHINE_START(freekick)
- MCFG_MACHINE_RESET(freekick)
+ MCFG_MACHINE_START_OVERRIDE(freekick_state,freekick)
+ MCFG_MACHINE_RESET_OVERRIDE(freekick_state,freekick)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(gigas)
@@ -712,8 +707,8 @@ static MACHINE_CONFIG_DERIVED( oigas, gigas )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(oigas_io_map)
- MCFG_MACHINE_START(oigas)
- MCFG_MACHINE_RESET(oigas)
+ MCFG_MACHINE_START_OVERRIDE(freekick_state,oigas)
+ MCFG_MACHINE_RESET_OVERRIDE(freekick_state,oigas)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c
index 2a707ad406f..6b26d9af908 100644
--- a/src/mame/drivers/fromanc2.c
+++ b/src/mame/drivers/fromanc2.c
@@ -501,47 +501,44 @@ static const ym2610_interface ym2610_config =
*
*************************************/
-static MACHINE_START( fromanc4 )
+MACHINE_START_MEMBER(fromanc2_state,fromanc4)
{
- fromanc2_state *state = machine.driver_data<fromanc2_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
- state->m_eeprom = machine.device("eeprom");
- state->m_left_screen = machine.device("lscreen");
- state->m_right_screen = machine.device("rscreen");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_subcpu = machine().device<cpu_device>("sub");
+ m_eeprom = machine().device("eeprom");
+ m_left_screen = machine().device("lscreen");
+ m_right_screen = machine().device("rscreen");
- state->save_item(NAME(state->m_portselect));
- state->save_item(NAME(state->m_sndcpu_nmi_flag));
- state->save_item(NAME(state->m_datalatch1));
- state->save_item(NAME(state->m_datalatch_2h));
- state->save_item(NAME(state->m_datalatch_2l));
+ save_item(NAME(m_portselect));
+ save_item(NAME(m_sndcpu_nmi_flag));
+ save_item(NAME(m_datalatch1));
+ save_item(NAME(m_datalatch_2h));
+ save_item(NAME(m_datalatch_2l));
/* video-related elements are saved in VIDEO_START */
}
-static MACHINE_START( fromanc2 )
+MACHINE_START_MEMBER(fromanc2_state,fromanc2)
{
- fromanc2_state *state = machine.driver_data<fromanc2_state>();
- state->membank("bank1")->configure_entries(0, 4, state->memregion("sub")->base(), 0x4000);
- state->membank("bank2")->configure_entry(0, state->memregion("sub")->base() + 0x08000);
- state->membank("bank2")->configure_entries(1, 3, state->memregion("sub")->base() + 0x14000, 0x4000);
+ membank("bank1")->configure_entries(0, 4, memregion("sub")->base(), 0x4000);
+ membank("bank2")->configure_entry(0, memregion("sub")->base() + 0x08000);
+ membank("bank2")->configure_entries(1, 3, memregion("sub")->base() + 0x14000, 0x4000);
- MACHINE_START_CALL(fromanc4);
+ MACHINE_START_CALL_MEMBER(fromanc4);
- state->save_item(NAME(state->m_subcpu_int_flag));
- state->save_item(NAME(state->m_subcpu_nmi_flag));
+ save_item(NAME(m_subcpu_int_flag));
+ save_item(NAME(m_subcpu_nmi_flag));
}
-static MACHINE_RESET( fromanc2 )
+void fromanc2_state::machine_reset()
{
- fromanc2_state *state = machine.driver_data<fromanc2_state>();
- state->m_portselect = 0;
- state->m_datalatch1 = 0;
- state->m_datalatch_2h = 0;
- state->m_datalatch_2l = 0;
+ m_portselect = 0;
+ m_datalatch1 = 0;
+ m_datalatch_2h = 0;
+ m_datalatch_2l = 0;
}
static MACHINE_CONFIG_START( fromanc2, fromanc2_state )
@@ -559,8 +556,7 @@ static MACHINE_CONFIG_START( fromanc2, fromanc2_state )
MCFG_CPU_PROGRAM_MAP(fromanc2_sub_map)
MCFG_CPU_IO_MAP(fromanc2_sub_io_map)
- MCFG_MACHINE_START(fromanc2)
- MCFG_MACHINE_RESET(fromanc2)
+ MCFG_MACHINE_START_OVERRIDE(fromanc2_state,fromanc2)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -583,7 +579,7 @@ static MACHINE_CONFIG_START( fromanc2, fromanc2_state )
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
MCFG_SCREEN_UPDATE_STATIC(fromanc2_right)
- MCFG_VIDEO_START(fromanc2)
+ MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -610,8 +606,7 @@ static MACHINE_CONFIG_START( fromancr, fromanc2_state )
MCFG_CPU_PROGRAM_MAP(fromanc2_sub_map)
MCFG_CPU_IO_MAP(fromanc2_sub_io_map)
- MCFG_MACHINE_START(fromanc2)
- MCFG_MACHINE_RESET(fromanc2)
+ MCFG_MACHINE_START_OVERRIDE(fromanc2_state,fromanc2)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -634,7 +629,7 @@ static MACHINE_CONFIG_START( fromancr, fromanc2_state )
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
MCFG_SCREEN_UPDATE_STATIC(fromanc2_right)
- MCFG_VIDEO_START(fromancr)
+ MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromancr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -657,8 +652,7 @@ static MACHINE_CONFIG_START( fromanc4, fromanc2_state )
MCFG_CPU_PROGRAM_MAP(fromanc2_sound_map)
MCFG_CPU_IO_MAP(fromanc2_sound_io_map)
- MCFG_MACHINE_START(fromanc4)
- MCFG_MACHINE_RESET(fromanc2)
+ MCFG_MACHINE_START_OVERRIDE(fromanc2_state,fromanc4)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -682,7 +676,7 @@ static MACHINE_CONFIG_START( fromanc4, fromanc2_state )
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
MCFG_SCREEN_UPDATE_STATIC(fromanc2_right)
- MCFG_VIDEO_START(fromanc4)
+ MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc4)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/fromance.c b/src/mame/drivers/fromance.c
index e24c0ee2579..442bda25619 100644
--- a/src/mame/drivers/fromance.c
+++ b/src/mame/drivers/fromance.c
@@ -951,54 +951,52 @@ static const msm5205_interface msm5205_config =
*
*************************************/
-static MACHINE_START( fromance )
+MACHINE_START_MEMBER(fromance_state,fromance)
{
- fromance_state *state = machine.driver_data<fromance_state>();
- UINT8 *ROM = state->memregion("sub")->base();
+ UINT8 *ROM = memregion("sub")->base();
- state->membank("bank1")->configure_entries(0, 0x100, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 0x100, &ROM[0x10000], 0x4000);
- state->m_subcpu = machine.device<cpu_device>("sub");
+ m_subcpu = machine().device<cpu_device>("sub");
- state->save_item(NAME(state->m_directionflag));
- state->save_item(NAME(state->m_commanddata));
- state->save_item(NAME(state->m_portselect));
+ save_item(NAME(m_directionflag));
+ save_item(NAME(m_commanddata));
+ save_item(NAME(m_portselect));
- state->save_item(NAME(state->m_adpcm_reset));
- state->save_item(NAME(state->m_adpcm_data));
- state->save_item(NAME(state->m_vclk_left));
+ save_item(NAME(m_adpcm_reset));
+ save_item(NAME(m_adpcm_data));
+ save_item(NAME(m_vclk_left));
/* video-related elements are saved in VIDEO_START */
}
-static MACHINE_RESET( fromance )
+MACHINE_RESET_MEMBER(fromance_state,fromance)
{
- fromance_state *state = machine.driver_data<fromance_state>();
int i;
- state->m_directionflag = 0;
- state->m_commanddata = 0;
- state->m_portselect = 0;
+ m_directionflag = 0;
+ m_commanddata = 0;
+ m_portselect = 0;
- state->m_adpcm_reset = 0;
- state->m_adpcm_data = 0;
- state->m_vclk_left = 0;
+ m_adpcm_reset = 0;
+ m_adpcm_data = 0;
+ m_vclk_left = 0;
- state->m_flipscreen_old = -1;
- state->m_scrollx_ofs = 0x159;
- state->m_scrolly_ofs = 0x10;
+ m_flipscreen_old = -1;
+ m_scrollx_ofs = 0x159;
+ m_scrolly_ofs = 0x10;
- state->m_selected_videoram = state->m_selected_paletteram = 0;
- state->m_scrollx[0] = 0;
- state->m_scrollx[1] = 0;
- state->m_scrolly[0] = 0;
- state->m_scrolly[1] = 0;
- state->m_gfxreg = 0;
- state->m_flipscreen = 0;
- state->m_crtc_register = 0;
+ m_selected_videoram = m_selected_paletteram = 0;
+ m_scrollx[0] = 0;
+ m_scrollx[1] = 0;
+ m_scrolly[0] = 0;
+ m_scrolly[1] = 0;
+ m_gfxreg = 0;
+ m_flipscreen = 0;
+ m_crtc_register = 0;
for (i = 0; i < 0x10; i++)
- state->m_crtc_data[i] = 0;
+ m_crtc_data[i] = 0;
}
static MACHINE_CONFIG_START( nekkyoku, fromance_state )
@@ -1012,8 +1010,8 @@ static MACHINE_CONFIG_START( nekkyoku, fromance_state )
MCFG_CPU_PROGRAM_MAP(nekkyoku_sub_map)
MCFG_CPU_IO_MAP(nekkyoku_sub_io_map)
- MCFG_MACHINE_START(fromance)
- MCFG_MACHINE_RESET(fromance)
+ MCFG_MACHINE_START_OVERRIDE(fromance_state,fromance)
+ MCFG_MACHINE_RESET_OVERRIDE(fromance_state,fromance)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1025,7 +1023,7 @@ static MACHINE_CONFIG_START( nekkyoku, fromance_state )
MCFG_GFXDECODE(fromance)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(nekkyoku)
+ MCFG_VIDEO_START_OVERRIDE(fromance_state,nekkyoku)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1050,8 +1048,8 @@ static MACHINE_CONFIG_START( idolmj, fromance_state )
MCFG_CPU_PROGRAM_MAP(fromance_sub_map)
MCFG_CPU_IO_MAP(idolmj_sub_io_map)
- MCFG_MACHINE_START(fromance)
- MCFG_MACHINE_RESET(fromance)
+ MCFG_MACHINE_START_OVERRIDE(fromance_state,fromance)
+ MCFG_MACHINE_RESET_OVERRIDE(fromance_state,fromance)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1063,7 +1061,7 @@ static MACHINE_CONFIG_START( idolmj, fromance_state )
MCFG_GFXDECODE(fromance)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(fromance)
+ MCFG_VIDEO_START_OVERRIDE(fromance_state,fromance)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1088,8 +1086,8 @@ static MACHINE_CONFIG_START( fromance, fromance_state )
MCFG_CPU_PROGRAM_MAP(fromance_sub_map)
MCFG_CPU_IO_MAP(fromance_sub_io_map)
- MCFG_MACHINE_START(fromance)
- MCFG_MACHINE_RESET(fromance)
+ MCFG_MACHINE_START_OVERRIDE(fromance_state,fromance)
+ MCFG_MACHINE_RESET_OVERRIDE(fromance_state,fromance)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1101,7 +1099,7 @@ static MACHINE_CONFIG_START( fromance, fromance_state )
MCFG_GFXDECODE(fromance)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(fromance)
+ MCFG_VIDEO_START_OVERRIDE(fromance_state,fromance)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/funkball.c b/src/mame/drivers/funkball.c
index 0a274b754d8..7f90aa7e8fb 100644
--- a/src/mame/drivers/funkball.c
+++ b/src/mame/drivers/funkball.c
@@ -162,6 +162,8 @@ public:
DECLARE_READ8_MEMBER(io20_r);
DECLARE_WRITE8_MEMBER(io20_w);
DECLARE_WRITE_LINE_MEMBER(funkball_pic8259_1_set_int_line);
+ virtual void machine_start();
+ virtual void machine_reset();
};
void funkball_state::video_start()
@@ -1103,35 +1105,33 @@ static void ide_interrupt(device_t *device, int state)
pic8259_ir6_w(drvstate->m_pic8259_2, state);
}
-static MACHINE_START( funkball )
+void funkball_state::machine_start()
{
- funkball_state *state = machine.driver_data<funkball_state>();
- state->m_bios_ram = auto_alloc_array(machine, UINT8, 0x20000);
+ m_bios_ram = auto_alloc_array(machine(), UINT8, 0x20000);
- init_pc_common(machine, PCCOMMON_KEYBOARD_AT, funkball_set_keyb_int);
+ init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, funkball_set_keyb_int);
- state->m_maincpu->set_irq_acknowledge_callback(irq_callback);
+ m_maincpu->set_irq_acknowledge_callback(irq_callback);
- kbdc8042_init(machine, &at8042);
+ kbdc8042_init(machine(), &at8042);
/* defaults, otherwise it won't boot */
- state->m_unk_ram[0x010/4] = 0x2f8d85ff;
- state->m_unk_ram[0x018/4] = 0x000018c5;
+ m_unk_ram[0x010/4] = 0x2f8d85ff;
+ m_unk_ram[0x018/4] = 0x000018c5;
}
-static MACHINE_RESET( funkball )
+void funkball_state::machine_reset()
{
- funkball_state *state = machine.driver_data<funkball_state>();
- state->membank("bios_ext1")->set_base(state->memregion("bios")->base() + 0x00000);
- state->membank("bios_ext2")->set_base(state->memregion("bios")->base() + 0x04000);
- state->membank("bios_ext3")->set_base(state->memregion("bios")->base() + 0x08000);
- state->membank("bios_ext4")->set_base(state->memregion("bios")->base() + 0x0c000);
- state->membank("bios_bank1")->set_base(state->memregion("bios")->base() + 0x10000);
- state->membank("bios_bank2")->set_base(state->memregion("bios")->base() + 0x14000);
- state->membank("bios_bank3")->set_base(state->memregion("bios")->base() + 0x18000);
- state->membank("bios_bank4")->set_base(state->memregion("bios")->base() + 0x1c000);
- state->m_voodoo_pci_regs.base_addr = 0xff000000;
+ membank("bios_ext1")->set_base(memregion("bios")->base() + 0x00000);
+ membank("bios_ext2")->set_base(memregion("bios")->base() + 0x04000);
+ membank("bios_ext3")->set_base(memregion("bios")->base() + 0x08000);
+ membank("bios_ext4")->set_base(memregion("bios")->base() + 0x0c000);
+ membank("bios_bank1")->set_base(memregion("bios")->base() + 0x10000);
+ membank("bios_bank2")->set_base(memregion("bios")->base() + 0x14000);
+ membank("bios_bank3")->set_base(memregion("bios")->base() + 0x18000);
+ membank("bios_bank4")->set_base(memregion("bios")->base() + 0x1c000);
+ m_voodoo_pci_regs.base_addr = 0xff000000;
}
SCREEN_UPDATE_RGB32( funkball )
@@ -1163,8 +1163,6 @@ static MACHINE_CONFIG_START( funkball, funkball_state )
MCFG_CPU_PROGRAM_MAP(funkball_map)
MCFG_CPU_IO_MAP(funkball_io)
- MCFG_MACHINE_START(funkball)
- MCFG_MACHINE_RESET(funkball)
MCFG_PIT8254_ADD( "pit8254", funkball_pit8254_config )
MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
diff --git a/src/mame/drivers/funkybee.c b/src/mame/drivers/funkybee.c
index 976750b56c7..ddc30a1fcd8 100644
--- a/src/mame/drivers/funkybee.c
+++ b/src/mame/drivers/funkybee.c
@@ -278,18 +278,16 @@ static const ay8910_interface ay8910_config =
};
-static MACHINE_START( funkybee )
+void funkybee_state::machine_start()
{
- funkybee_state *state = machine.driver_data<funkybee_state>();
- state->save_item(NAME(state->m_gfx_bank));
+ save_item(NAME(m_gfx_bank));
}
-static MACHINE_RESET( funkybee )
+void funkybee_state::machine_reset()
{
- funkybee_state *state = machine.driver_data<funkybee_state>();
- state->m_gfx_bank = 0;
+ m_gfx_bank = 0;
}
static MACHINE_CONFIG_START( funkybee, funkybee_state )
@@ -300,8 +298,6 @@ static MACHINE_CONFIG_START( funkybee, funkybee_state )
MCFG_CPU_IO_MAP(io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(funkybee)
- MCFG_MACHINE_RESET(funkybee)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -314,8 +310,6 @@ static MACHINE_CONFIG_START( funkybee, funkybee_state )
MCFG_GFXDECODE(funkybee)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(funkybee)
- MCFG_VIDEO_START(funkybee)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/funkyjet.c b/src/mame/drivers/funkyjet.c
index 07543e19e00..a022ab19d53 100644
--- a/src/mame/drivers/funkyjet.c
+++ b/src/mame/drivers/funkyjet.c
@@ -297,15 +297,14 @@ static const deco16ic_interface funkyjet_deco16ic_tilegen1_intf =
0,1,
};
-static MACHINE_START( funkyjet )
+void funkyjet_state::machine_start()
{
- funkyjet_state *state = machine.driver_data<funkyjet_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_deco_tilegen1 = machine.device("tilegen1");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_deco_tilegen1 = machine().device("tilegen1");
- decoprot_reset(machine);
+ decoprot_reset(machine());
}
static MACHINE_CONFIG_START( funkyjet, funkyjet_state )
@@ -318,7 +317,6 @@ static MACHINE_CONFIG_START( funkyjet, funkyjet_state )
MCFG_CPU_ADD("audiocpu", H6280, XTAL_32_22MHz/4) /* Custom chip 45, Audio section crystal is 32.220 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(funkyjet)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c
index e56ad2f5d27..484036967e5 100644
--- a/src/mame/drivers/funworld.c
+++ b/src/mame/drivers/funworld.c
@@ -2371,8 +2371,8 @@ static MACHINE_CONFIG_START( fw1stpal, funworld_state )
MCFG_GFXDECODE(fw1stpal)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT(funworld)
- MCFG_VIDEO_START(funworld)
+ MCFG_PALETTE_INIT_OVERRIDE(funworld_state,funworld)
+ MCFG_VIDEO_START_OVERRIDE(funworld_state,funworld)
MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/8, mc6845_intf) /* 2MHz, veryfied on jollycrd & royalcrd */
@@ -2414,7 +2414,7 @@ static MACHINE_CONFIG_DERIVED( magicrd2, fw1stpal )
MCFG_CPU_PROGRAM_MAP(magicrd2_map)
MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse)
- MCFG_VIDEO_START(magicrd2)
+ MCFG_VIDEO_START_OVERRIDE(funworld_state,magicrd2)
MCFG_SOUND_REPLACE("ay8910", AY8910, MASTER_CLOCK/8) /* 2MHz */
MCFG_SOUND_CONFIG(ay8910_intf)
diff --git a/src/mame/drivers/funybubl.c b/src/mame/drivers/funybubl.c
index 03317832320..5823b292229 100644
--- a/src/mame/drivers/funybubl.c
+++ b/src/mame/drivers/funybubl.c
@@ -200,19 +200,18 @@ GFXDECODE_END
-static MACHINE_START( funybubl )
+void funybubl_state::machine_start()
{
- funybubl_state *state = machine.driver_data<funybubl_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_banked_vram));
+ save_item(NAME(m_banked_vram));
- state->membank("bank1")->configure_entries(0, 2, &state->m_banked_vram[0x0000], 0x1000);
- state->membank("bank2")->configure_entries(0, 0x10, ROM, 0x4000);
+ membank("bank1")->configure_entries(0, 2, &m_banked_vram[0x0000], 0x1000);
+ membank("bank2")->configure_entries(0, 0x10, ROM, 0x4000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->set_entry(0);
}
@@ -227,7 +226,6 @@ static MACHINE_CONFIG_START( funybubl, funybubl_state )
MCFG_CPU_ADD("audiocpu", Z80,8000000/2) /* 4 MHz?? */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(funybubl)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -241,7 +239,6 @@ static MACHINE_CONFIG_START( funybubl, funybubl_state )
MCFG_GFXDECODE(funybubl)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(funybubl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c
index 21a44158b5b..dcf7fdc7e2d 100644
--- a/src/mame/drivers/fuukifg2.c
+++ b/src/mame/drivers/fuukifg2.c
@@ -439,28 +439,26 @@ static TIMER_CALLBACK( raster_interrupt_callback )
}
-static MACHINE_START( fuuki16 )
+void fuuki16_state::machine_start()
{
- fuuki16_state *state = machine.driver_data<fuuki16_state>();
- UINT8 *ROM = state->memregion("audiocpu")->base();
+ UINT8 *ROM = memregion("audiocpu")->base();
- state->membank("bank1")->configure_entries(0, 3, &ROM[0x10000], 0x8000);
+ membank("bank1")->configure_entries(0, 3, &ROM[0x10000], 0x8000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->m_raster_interrupt_timer = machine.scheduler().timer_alloc(FUNC(raster_interrupt_callback));
+ m_raster_interrupt_timer = machine().scheduler().timer_alloc(FUNC(raster_interrupt_callback));
}
-static MACHINE_RESET( fuuki16 )
+void fuuki16_state::machine_reset()
{
- fuuki16_state *state = machine.driver_data<fuuki16_state>();
- const rectangle &visarea = machine.primary_screen->visible_area();
+ const rectangle &visarea = machine().primary_screen->visible_area();
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(248), FUNC(level_1_interrupt_callback));
- machine.scheduler().timer_set(machine.primary_screen->time_until_vblank_start(), FUNC(vblank_interrupt_callback));
- state->m_raster_interrupt_timer->adjust(machine.primary_screen->time_until_pos(0, visarea.max_x + 1));
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(248), FUNC(level_1_interrupt_callback));
+ machine().scheduler().timer_set(machine().primary_screen->time_until_vblank_start(), FUNC(vblank_interrupt_callback));
+ m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(0, visarea.max_x + 1));
}
@@ -474,8 +472,6 @@ static MACHINE_CONFIG_START( fuuki16, fuuki16_state )
MCFG_CPU_PROGRAM_MAP(fuuki16_sound_map)
MCFG_CPU_IO_MAP(fuuki16_sound_io_map)
- MCFG_MACHINE_START(fuuki16)
- MCFG_MACHINE_RESET(fuuki16)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -487,7 +483,6 @@ static MACHINE_CONFIG_START( fuuki16, fuuki16_state )
MCFG_GFXDECODE(fuuki16)
MCFG_PALETTE_LENGTH(0x800*4)
- MCFG_VIDEO_START(fuuki16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c
index 1327ed3f6ef..b8f61914ab7 100644
--- a/src/mame/drivers/fuukifg3.c
+++ b/src/mame/drivers/fuukifg3.c
@@ -547,31 +547,29 @@ static TIMER_CALLBACK( raster_interrupt_callback )
}
-static MACHINE_START( fuuki32 )
+void fuuki32_state::machine_start()
{
- fuuki32_state *state = machine.driver_data<fuuki32_state>();
- UINT8 *ROM = state->memregion("soundcpu")->base();
+ UINT8 *ROM = memregion("soundcpu")->base();
- state->membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000);
+ membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("soundcpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("soundcpu");
- state->m_raster_interrupt_timer = machine.scheduler().timer_alloc(FUNC(raster_interrupt_callback));
+ m_raster_interrupt_timer = machine().scheduler().timer_alloc(FUNC(raster_interrupt_callback));
- state->save_item(NAME(state->m_spr_buffered_tilebank));
- state->save_item(NAME(state->m_shared_ram));
+ save_item(NAME(m_spr_buffered_tilebank));
+ save_item(NAME(m_shared_ram));
}
-static MACHINE_RESET( fuuki32 )
+void fuuki32_state::machine_reset()
{
- fuuki32_state *state = machine.driver_data<fuuki32_state>();
- const rectangle &visarea = machine.primary_screen->visible_area();
+ const rectangle &visarea = machine().primary_screen->visible_area();
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(248), FUNC(level_1_interrupt_callback));
- machine.scheduler().timer_set(machine.primary_screen->time_until_vblank_start(), FUNC(vblank_interrupt_callback));
- state->m_raster_interrupt_timer->adjust(machine.primary_screen->time_until_pos(0, visarea.max_x + 1));
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(248), FUNC(level_1_interrupt_callback));
+ machine().scheduler().timer_set(machine().primary_screen->time_until_vblank_start(), FUNC(vblank_interrupt_callback));
+ m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(0, visarea.max_x + 1));
}
@@ -601,8 +599,6 @@ static MACHINE_CONFIG_START( fuuki32, fuuki32_state )
MCFG_CPU_PROGRAM_MAP(fuuki32_sound_map)
MCFG_CPU_IO_MAP(fuuki32_sound_io_map)
- MCFG_MACHINE_START(fuuki32)
- MCFG_MACHINE_RESET(fuuki32)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -615,7 +611,6 @@ static MACHINE_CONFIG_START( fuuki32, fuuki32_state )
MCFG_GFXDECODE(fuuki32)
MCFG_PALETTE_LENGTH(0x4000/2)
- MCFG_VIDEO_START(fuuki32)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/gaelco.c b/src/mame/drivers/gaelco.c
index 3d658ff6b83..c3e06876285 100644
--- a/src/mame/drivers/gaelco.c
+++ b/src/mame/drivers/gaelco.c
@@ -495,11 +495,10 @@ GFXDECODEINFO(0x100000,64)
*
*************************************/
-static MACHINE_START( gaelco )
+void gaelco_state::machine_start()
{
- gaelco_state *state = machine.driver_data<gaelco_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
}
static MACHINE_CONFIG_START( bigkarnk, gaelco_state )
@@ -514,7 +513,6 @@ static MACHINE_CONFIG_START( bigkarnk, gaelco_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(gaelco)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -527,7 +525,7 @@ static MACHINE_CONFIG_START( bigkarnk, gaelco_state )
MCFG_GFXDECODE(0x100000)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(bigkarnk)
+ MCFG_VIDEO_START_OVERRIDE(gaelco_state,bigkarnk)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -546,7 +544,6 @@ static MACHINE_CONFIG_START( maniacsq, gaelco_state )
MCFG_CPU_PROGRAM_MAP(maniacsq_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)
- MCFG_MACHINE_START(gaelco)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -559,7 +556,7 @@ static MACHINE_CONFIG_START( maniacsq, gaelco_state )
MCFG_GFXDECODE(0x100000)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(maniacsq)
+ MCFG_VIDEO_START_OVERRIDE(gaelco_state,maniacsq)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -577,7 +574,6 @@ static MACHINE_CONFIG_START( squash, gaelco_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(gaelco)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -590,7 +586,7 @@ static MACHINE_CONFIG_START( squash, gaelco_state )
MCFG_GFXDECODE(0x100000)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(maniacsq)
+ MCFG_VIDEO_START_OVERRIDE(gaelco_state,maniacsq)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -608,7 +604,6 @@ static MACHINE_CONFIG_START( thoop, gaelco_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(gaelco)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -621,7 +616,7 @@ static MACHINE_CONFIG_START( thoop, gaelco_state )
MCFG_GFXDECODE(0x100000)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(maniacsq)
+ MCFG_VIDEO_START_OVERRIDE(gaelco_state,maniacsq)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gaelco2.c b/src/mame/drivers/gaelco2.c
index 4123f273dab..80a2c7aaec0 100644
--- a/src/mame/drivers/gaelco2.c
+++ b/src/mame/drivers/gaelco2.c
@@ -173,7 +173,7 @@ static MACHINE_CONFIG_START( maniacsq, gaelco2_state )
MCFG_GFXDECODE(0x0080000)
MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
- MCFG_VIDEO_START(gaelco2)
+ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -306,7 +306,7 @@ static MACHINE_CONFIG_START( bang, gaelco2_state )
MCFG_GFXDECODE(0x0200000)
MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
- MCFG_VIDEO_START(gaelco2)
+ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -547,7 +547,7 @@ static MACHINE_CONFIG_START( alighunt, gaelco2_state )
MCFG_GFXDECODE(0x0400000)
MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
- MCFG_VIDEO_START(gaelco2)
+ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -796,7 +796,7 @@ static MACHINE_CONFIG_START( touchgo, gaelco2_state )
MCFG_SCREEN_UPDATE_STATIC(gaelco2_right)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
- MCFG_VIDEO_START(gaelco2_dual)
+ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2_dual)
/* sound hardware */
/* the chip is stereo, but the game sound is mono because the right channel
@@ -983,7 +983,7 @@ static MACHINE_CONFIG_START( snowboar, gaelco2_state )
MCFG_GFXDECODE(0x0400000)
MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
- MCFG_VIDEO_START(gaelco2)
+ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1232,7 +1232,7 @@ static MACHINE_CONFIG_START( wrally2, gaelco2_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
- MCFG_VIDEO_START(gaelco2_dual)
+ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2_dual)
/* sound hardware */
/* the chip is stereo, but the game sound is mono because the right channel
diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c
index 358bbc134a3..8a282e3c69c 100644
--- a/src/mame/drivers/gaelco3d.c
+++ b/src/mame/drivers/gaelco3d.c
@@ -182,68 +182,64 @@ static const gaelco_serial_interface serial_interface =
*
*************************************/
-static MACHINE_START( gaelco3d )
+void gaelco3d_state::machine_start()
{
- gaelco3d_state *state = machine.driver_data<gaelco3d_state>();
/* Save state support */
- state_save_register_global(machine, state->m_sound_data);
- state_save_register_global(machine, state->m_sound_status);
- state_save_register_global_array(machine, state->m_analog_ports);
- state_save_register_global(machine, state->m_framenum);
- state_save_register_global(machine, state->m_adsp_ireg);
- state_save_register_global(machine, state->m_adsp_ireg_base);
- state_save_register_global(machine, state->m_adsp_incs);
- state_save_register_global(machine, state->m_adsp_size);
+ state_save_register_global(machine(), m_sound_data);
+ state_save_register_global(machine(), m_sound_status);
+ state_save_register_global_array(machine(), m_analog_ports);
+ state_save_register_global(machine(), m_framenum);
+ state_save_register_global(machine(), m_adsp_ireg);
+ state_save_register_global(machine(), m_adsp_ireg_base);
+ state_save_register_global(machine(), m_adsp_incs);
+ state_save_register_global(machine(), m_adsp_size);
}
-static MACHINE_RESET( common )
+MACHINE_RESET_MEMBER(gaelco3d_state,common)
{
- gaelco3d_state *state = machine.driver_data<gaelco3d_state>();
UINT16 *src;
int i;
- state->m_framenum = 0;
+ m_framenum = 0;
/* boot the ADSP chip */
- src = (UINT16 *)state->memregion("user1")->base();
+ src = (UINT16 *)memregion("user1")->base();
for (i = 0; i < (src[3] & 0xff) * 8; i++)
{
UINT32 opcode = ((src[i*4+0] & 0xff) << 16) | ((src[i*4+1] & 0xff) << 8) | (src[i*4+2] & 0xff);
- state->m_adsp_ram_base[i] = opcode;
+ m_adsp_ram_base[i] = opcode;
}
/* allocate a timer for feeding the autobuffer */
- state->m_adsp_autobuffer_timer = machine.device<timer_device>("adsp_timer");
+ m_adsp_autobuffer_timer = machine().device<timer_device>("adsp_timer");
- state->membank("bank1")->configure_entries(0, 256, machine.root_device().memregion("user1")->base(), 0x4000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 256, machine().root_device().memregion("user1")->base(), 0x4000);
+ membank("bank1")->set_entry(0);
/* keep the TMS32031 halted until the code is ready to go */
- machine.device("tms")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("tms")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
for (i = 0; i < SOUND_CHANNELS; i++)
{
char buffer[10];
sprintf(buffer, "dac%d", i + 1);
- state->m_dmadac[i] = machine.device<dmadac_sound_device>(buffer);
+ m_dmadac[i] = machine().device<dmadac_sound_device>(buffer);
}
}
-static MACHINE_RESET( gaelco3d )
+void gaelco3d_state::machine_reset()
{
- gaelco3d_state *state = machine.driver_data<gaelco3d_state>();
- MACHINE_RESET_CALL( common );
- state->m_tms_offset_xor = 0;
+ MACHINE_RESET_CALL_MEMBER( common );
+ m_tms_offset_xor = 0;
}
-static MACHINE_RESET( gaelco3d2 )
+MACHINE_RESET_MEMBER(gaelco3d_state,gaelco3d2)
{
- gaelco3d_state *state = machine.driver_data<gaelco3d_state>();
- MACHINE_RESET_CALL( common );
- state->m_tms_offset_xor = BYTE_XOR_BE(0);
+ MACHINE_RESET_CALL_MEMBER( common );
+ m_tms_offset_xor = BYTE_XOR_BE(0);
}
@@ -1009,8 +1005,6 @@ static MACHINE_CONFIG_START( gaelco3d, gaelco3d_state )
MCFG_CPU_PROGRAM_MAP(adsp_program_map)
MCFG_CPU_DATA_MAP(adsp_data_map)
- MCFG_MACHINE_START(gaelco3d)
- MCFG_MACHINE_RESET(gaelco3d)
MCFG_EEPROM_93C66B_ADD("eeprom")
@@ -1030,7 +1024,6 @@ static MACHINE_CONFIG_START( gaelco3d, gaelco3d_state )
MCFG_PALETTE_LENGTH(32768)
MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
- MCFG_VIDEO_START(gaelco3d)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1059,7 +1052,7 @@ static MACHINE_CONFIG_DERIVED( gaelco3d2, gaelco3d )
MCFG_CPU_MODIFY("tms")
MCFG_CPU_CLOCK(50000000)
- MCFG_MACHINE_RESET(gaelco3d2)
+ MCFG_MACHINE_RESET_OVERRIDE(gaelco3d_state,gaelco3d2)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/gaiden.c b/src/mame/drivers/gaiden.c
index f495d6731d0..051e4a55872 100644
--- a/src/mame/drivers/gaiden.c
+++ b/src/mame/drivers/gaiden.c
@@ -289,45 +289,43 @@ static const int jumppoints_other[0x100] =
-1, -1, -1, -1, -1, -1, -1, -1
};
-static MACHINE_RESET( raiga )
+MACHINE_RESET_MEMBER(gaiden_state,raiga)
{
- gaiden_state *state = machine.driver_data<gaiden_state>();
-
- state->m_prot = 0;
- state->m_jumpcode = 0;
-
- state->m_tx_scroll_x = 0;
- state->m_tx_scroll_y = 0;
- state->m_bg_scroll_x = 0;
- state->m_bg_scroll_y = 0;
- state->m_fg_scroll_x = 0;
- state->m_fg_scroll_y = 0;
-
- state->m_tx_offset_y = 0;
- state->m_fg_offset_y = 0;
- state->m_bg_offset_y = 0;
- state->m_spr_offset_y = 0;
+
+ m_prot = 0;
+ m_jumpcode = 0;
+
+ m_tx_scroll_x = 0;
+ m_tx_scroll_y = 0;
+ m_bg_scroll_x = 0;
+ m_bg_scroll_y = 0;
+ m_fg_scroll_x = 0;
+ m_fg_scroll_y = 0;
+
+ m_tx_offset_y = 0;
+ m_fg_offset_y = 0;
+ m_bg_offset_y = 0;
+ m_spr_offset_y = 0;
}
-static MACHINE_START( raiga )
+MACHINE_START_MEMBER(gaiden_state,raiga)
{
- gaiden_state *state = machine.driver_data<gaiden_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
-
- state->save_item(NAME(state->m_prot));
- state->save_item(NAME(state->m_jumpcode));
-
- state->save_item(NAME(state->m_tx_scroll_x));
- state->save_item(NAME(state->m_tx_scroll_y));
- state->save_item(NAME(state->m_bg_scroll_x));
- state->save_item(NAME(state->m_bg_scroll_y));
- state->save_item(NAME(state->m_fg_scroll_x));
- state->save_item(NAME(state->m_fg_scroll_y));
-
- state->save_item(NAME(state->m_tx_offset_y));
- state->save_item(NAME(state->m_fg_offset_y));
- state->save_item(NAME(state->m_bg_offset_y));
- state->save_item(NAME(state->m_spr_offset_y));
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+
+ save_item(NAME(m_prot));
+ save_item(NAME(m_jumpcode));
+
+ save_item(NAME(m_tx_scroll_x));
+ save_item(NAME(m_tx_scroll_y));
+ save_item(NAME(m_bg_scroll_x));
+ save_item(NAME(m_bg_scroll_y));
+ save_item(NAME(m_fg_scroll_x));
+ save_item(NAME(m_fg_scroll_y));
+
+ save_item(NAME(m_tx_offset_y));
+ save_item(NAME(m_fg_offset_y));
+ save_item(NAME(m_bg_offset_y));
+ save_item(NAME(m_spr_offset_y));
}
WRITE16_MEMBER(gaiden_state::raiga_protection_w)
@@ -772,8 +770,8 @@ static MACHINE_CONFIG_START( shadoww, gaiden_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
/* IRQs are triggered by the YM2203 */
- MCFG_MACHINE_START(raiga)
- MCFG_MACHINE_RESET(raiga)
+ MCFG_MACHINE_START_OVERRIDE(gaiden_state,raiga)
+ MCFG_MACHINE_RESET_OVERRIDE(gaiden_state,raiga)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -786,7 +784,7 @@ static MACHINE_CONFIG_START( shadoww, gaiden_state )
MCFG_GFXDECODE(gaiden)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(gaiden)
+ MCFG_VIDEO_START_OVERRIDE(gaiden_state,gaiden)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -813,7 +811,7 @@ static MACHINE_CONFIG_DERIVED( raiga, shadoww )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(raiga)
- MCFG_VIDEO_START(raiga)
+ MCFG_VIDEO_START_OVERRIDE(gaiden_state,raiga)
MCFG_GFXDECODE(raiga)
MACHINE_CONFIG_END
@@ -828,8 +826,8 @@ static MACHINE_CONFIG_START( drgnbowl, gaiden_state )
MCFG_CPU_PROGRAM_MAP(drgnbowl_sound_map)
MCFG_CPU_IO_MAP(drgnbowl_sound_port_map)
- MCFG_MACHINE_START(raiga)
- MCFG_MACHINE_RESET(raiga)
+ MCFG_MACHINE_START_OVERRIDE(gaiden_state,raiga)
+ MCFG_MACHINE_RESET_OVERRIDE(gaiden_state,raiga)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -842,7 +840,7 @@ static MACHINE_CONFIG_START( drgnbowl, gaiden_state )
MCFG_GFXDECODE(drgnbowl)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(drgnbowl)
+ MCFG_VIDEO_START_OVERRIDE(gaiden_state,drgnbowl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -944,8 +942,8 @@ static MACHINE_CONFIG_START( mastninj, gaiden_state )
MCFG_CPU_PROGRAM_MAP(mastninj_sound_map)
/* IRQs are triggered by the YM2203 */
- MCFG_MACHINE_START(raiga)
- MCFG_MACHINE_RESET(raiga)
+ MCFG_MACHINE_START_OVERRIDE(gaiden_state,raiga)
+ MCFG_MACHINE_RESET_OVERRIDE(gaiden_state,raiga)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -958,7 +956,7 @@ static MACHINE_CONFIG_START( mastninj, gaiden_state )
MCFG_GFXDECODE(mastninj)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(mastninj)
+ MCFG_VIDEO_START_OVERRIDE(gaiden_state,mastninj)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gal3.c b/src/mame/drivers/gal3.c
index 08574508bcb..06a3d947a89 100644
--- a/src/mame/drivers/gal3.c
+++ b/src/mame/drivers/gal3.c
@@ -158,15 +158,15 @@ public:
DECLARE_WRITE32_MEMBER(namcos21_video_enable_w);
DECLARE_READ32_MEMBER(rso_r);
DECLARE_WRITE32_MEMBER(rso_w);
+ DECLARE_VIDEO_START(gal3);
};
-static VIDEO_START(gal3)
+VIDEO_START_MEMBER(gal3_state,gal3)
{
- gal3_state *state = machine.driver_data<gal3_state>();
- state->m_generic_paletteram_16.allocate(0x10000);
+ m_generic_paletteram_16.allocate(0x10000);
- state->c355_obj_init(
+ c355_obj_init(
0, /* gfx bank */
0xf, /* reverse palette mapping */
namcos2_shared_state::c355_obj_code2tile_delegate() );
@@ -670,7 +670,7 @@ static MACHINE_CONFIG_START( gal3, gal3_state )
MCFG_GFXDECODE(namcos21)
MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
- MCFG_VIDEO_START(gal3)
+ MCFG_VIDEO_START_OVERRIDE(gal3_state,gal3)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c
index 4cca6192d2c..f6ac59565ba 100644
--- a/src/mame/drivers/galaga.c
+++ b/src/mame/drivers/galaga.c
@@ -874,17 +874,16 @@ static TIMER_CALLBACK( cpu3_interrupt_callback )
}
-static MACHINE_START( galaga )
+MACHINE_START_MEMBER(galaga_state,galaga)
{
- galaga_state *state = machine.driver_data<galaga_state>();
/* create the interrupt timer */
- state->m_cpu3_interrupt_timer = machine.scheduler().timer_alloc(FUNC(cpu3_interrupt_callback));
- state->m_custom_mod = 0;
- state_save_register_global(machine, state->m_custom_mod);
- state->save_item(NAME(state->m_main_irq_mask));
- state->save_item(NAME(state->m_sub_irq_mask));
- state->save_item(NAME(state->m_sub2_nmi_mask));
+ m_cpu3_interrupt_timer = machine().scheduler().timer_alloc(FUNC(cpu3_interrupt_callback));
+ m_custom_mod = 0;
+ state_save_register_global(machine(), m_custom_mod);
+ save_item(NAME(m_main_irq_mask));
+ save_item(NAME(m_sub_irq_mask));
+ save_item(NAME(m_sub2_nmi_mask));
}
static void bosco_latch_reset(running_machine &machine)
@@ -898,20 +897,19 @@ static void bosco_latch_reset(running_machine &machine)
state->bosco_latch_w(*space,i,0);
}
-static MACHINE_RESET( galaga )
+MACHINE_RESET_MEMBER(galaga_state,galaga)
{
- galaga_state *state = machine.driver_data<galaga_state>();
/* Reset all latches */
- bosco_latch_reset(machine);
+ bosco_latch_reset(machine());
- state->m_cpu3_interrupt_timer->adjust(machine.primary_screen->time_until_pos(64), 64);
+ m_cpu3_interrupt_timer->adjust(machine().primary_screen->time_until_pos(64), 64);
}
-static MACHINE_RESET( battles )
+MACHINE_RESET_MEMBER(xevious_state,battles)
{
- MACHINE_RESET_CALL(galaga);
- battles_customio_init(machine);
+ MACHINE_RESET_CALL_MEMBER(galaga);
+ battles_customio_init(machine());
}
@@ -1696,8 +1694,8 @@ static MACHINE_CONFIG_START( bosco, bosco_state )
MCFG_WATCHDOG_VBLANK_INIT(8)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_START(galaga)
- MCFG_MACHINE_RESET(galaga)
+ MCFG_MACHINE_START_OVERRIDE(bosco_state,galaga)
+ MCFG_MACHINE_RESET_OVERRIDE(bosco_state,galaga)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1708,8 +1706,8 @@ static MACHINE_CONFIG_START( bosco, bosco_state )
MCFG_GFXDECODE(bosco)
MCFG_PALETTE_LENGTH(64*4+64*4+4+64)
- MCFG_PALETTE_INIT(bosco)
- MCFG_VIDEO_START(bosco)
+ MCFG_PALETTE_INIT_OVERRIDE(bosco_state,bosco)
+ MCFG_VIDEO_START_OVERRIDE(bosco_state,bosco)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1752,8 +1750,8 @@ static MACHINE_CONFIG_START( galaga, galaga_state )
MCFG_WATCHDOG_VBLANK_INIT(8)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_START(galaga)
- MCFG_MACHINE_RESET(galaga)
+ MCFG_MACHINE_START_OVERRIDE(bosco_state,galaga)
+ MCFG_MACHINE_RESET_OVERRIDE(bosco_state,galaga)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1764,8 +1762,8 @@ static MACHINE_CONFIG_START( galaga, galaga_state )
MCFG_GFXDECODE(galaga)
MCFG_PALETTE_LENGTH(64*4+64*4+64)
- MCFG_PALETTE_INIT(galaga)
- MCFG_VIDEO_START(galaga)
+ MCFG_PALETTE_INIT_OVERRIDE(bosco_state,galaga)
+ MCFG_VIDEO_START_OVERRIDE(bosco_state,galaga)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1830,8 +1828,8 @@ static MACHINE_CONFIG_START( xevious, xevious_state )
MCFG_WATCHDOG_VBLANK_INIT(8)
MCFG_QUANTUM_TIME(attotime::from_hz(60000)) /* 1000 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_START(galaga)
- MCFG_MACHINE_RESET(galaga)
+ MCFG_MACHINE_START_OVERRIDE(galaga_state,galaga)
+ MCFG_MACHINE_RESET_OVERRIDE(galaga_state,galaga)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1841,8 +1839,8 @@ static MACHINE_CONFIG_START( xevious, xevious_state )
MCFG_GFXDECODE(xevious)
MCFG_PALETTE_LENGTH(128*4+64*8+64*2)
- MCFG_PALETTE_INIT(xevious)
- MCFG_VIDEO_START(xevious)
+ MCFG_PALETTE_INIT_OVERRIDE(xevious_state,xevious)
+ MCFG_VIDEO_START_OVERRIDE(xevious_state,xevious)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1879,10 +1877,10 @@ static MACHINE_CONFIG_DERIVED( battles, xevious )
MCFG_TIMER_ADD("battles_nmi", battles_nmi_generate)
- MCFG_MACHINE_RESET(battles)
+ MCFG_MACHINE_RESET_OVERRIDE(xevious_state,battles)
/* video hardware */
- MCFG_PALETTE_INIT(battles)
+ MCFG_PALETTE_INIT_OVERRIDE(xevious_state,battles)
/* sound hardware */
MCFG_DEVICE_REMOVE("discrete")
@@ -1917,8 +1915,8 @@ static MACHINE_CONFIG_START( digdug, digdug_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_START(galaga)
- MCFG_MACHINE_RESET(galaga)
+ MCFG_MACHINE_START_OVERRIDE(galaga_state,galaga)
+ MCFG_MACHINE_RESET_OVERRIDE(galaga_state,galaga)
MCFG_ATARIVGEAROM_ADD("earom")
@@ -1930,8 +1928,8 @@ static MACHINE_CONFIG_START( digdug, digdug_state )
MCFG_GFXDECODE(digdug)
MCFG_PALETTE_LENGTH(16*2+64*4+64*4)
- MCFG_PALETTE_INIT(digdug)
- MCFG_VIDEO_START(digdug)
+ MCFG_PALETTE_INIT_OVERRIDE(digdug_state,digdug)
+ MCFG_VIDEO_START_OVERRIDE(digdug_state,digdug)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/galastrm.c b/src/mame/drivers/galastrm.c
index 6b1f50f187e..c07f45a3d05 100644
--- a/src/mame/drivers/galastrm.c
+++ b/src/mame/drivers/galastrm.c
@@ -325,7 +325,6 @@ static MACHINE_CONFIG_START( galastrm, galastrm_state )
MCFG_GFXDECODE(galastrm)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(galastrm)
MCFG_TC0100SCN_ADD("tc0100scn", galastrm_tc0100scn_intf)
MCFG_TC0480SCP_ADD("tc0480scp", galastrm_tc0480scp_intf)
diff --git a/src/mame/drivers/galaxi.c b/src/mame/drivers/galaxi.c
index e829674bd6c..2bb6f855a6d 100644
--- a/src/mame/drivers/galaxi.c
+++ b/src/mame/drivers/galaxi.c
@@ -91,6 +91,9 @@ public:
TILE_GET_INFO_MEMBER(get_bg3_tile_info);
TILE_GET_INFO_MEMBER(get_bg4_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -158,25 +161,24 @@ WRITE16_MEMBER(galaxi_state::galaxi_fg_w)
m_fg_tmap->mark_tile_dirty(offset);
}
-static VIDEO_START(galaxi)
+void galaxi_state::video_start()
{
- galaxi_state *state = machine.driver_data<galaxi_state>();
- state->m_bg1_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
- state->m_bg2_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
- state->m_bg3_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg3_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
- state->m_bg4_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg4_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_bg1_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_bg2_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_bg3_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg3_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_bg4_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg4_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
- state->m_fg_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
+ m_fg_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
- state->m_bg1_tmap->set_transparent_pen(0);
- state->m_bg2_tmap->set_transparent_pen(0);
- state->m_bg3_tmap->set_transparent_pen(0);
- state->m_bg4_tmap->set_transparent_pen(0);
+ m_bg1_tmap->set_transparent_pen(0);
+ m_bg2_tmap->set_transparent_pen(0);
+ m_bg3_tmap->set_transparent_pen(0);
+ m_bg4_tmap->set_transparent_pen(0);
- state->m_fg_tmap->set_transparent_pen(0);
+ m_fg_tmap->set_transparent_pen(0);
- state->m_bg3_tmap->set_scrolldx(-8, 0);
+ m_bg3_tmap->set_scrolldx(-8, 0);
}
static SCREEN_UPDATE_IND16(galaxi)
@@ -381,24 +383,22 @@ GFXDECODE_END
Machine Drivers
***************************************************************************/
-static MACHINE_START( galaxi )
+void galaxi_state::machine_start()
{
- galaxi_state *state = machine.driver_data<galaxi_state>();
- state->save_item(NAME(state->m_hopper));
- state->save_item(NAME(state->m_ticket));
- state->save_item(NAME(state->m_out));
+ save_item(NAME(m_hopper));
+ save_item(NAME(m_ticket));
+ save_item(NAME(m_out));
}
-static MACHINE_RESET( galaxi )
+void galaxi_state::machine_reset()
{
- galaxi_state *state = machine.driver_data<galaxi_state>();
- state->m_hopper = 0;
- state->m_ticket = 0;
- state->m_out[0] = 0;
- state->m_out[1] = 0;
- state->m_out[2] = 0;
+ m_hopper = 0;
+ m_ticket = 0;
+ m_out[0] = 0;
+ m_out[1] = 0;
+ m_out[2] = 0;
}
static MACHINE_CONFIG_START( galaxi, galaxi_state )
@@ -408,8 +408,6 @@ static MACHINE_CONFIG_START( galaxi, galaxi_state )
MCFG_CPU_PROGRAM_MAP(galaxi_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
- MCFG_MACHINE_START(galaxi)
- MCFG_MACHINE_RESET(galaxi)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -423,7 +421,6 @@ static MACHINE_CONFIG_START( galaxi, galaxi_state )
MCFG_GFXDECODE(galaxi)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(galaxi)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c
index 1b170cd8172..bf2b446251f 100644
--- a/src/mame/drivers/galaxia.c
+++ b/src/mame/drivers/galaxia.c
@@ -310,8 +310,8 @@ static MACHINE_CONFIG_START( galaxia, galaxia_state )
MCFG_GFXDECODE(galaxia)
MCFG_PALETTE_LENGTH(0x18+2)
- MCFG_PALETTE_INIT(galaxia)
- MCFG_VIDEO_START(galaxia)
+ MCFG_PALETTE_INIT_OVERRIDE(galaxia_state,galaxia)
+ MCFG_VIDEO_START_OVERRIDE(galaxia_state,galaxia)
MCFG_S2636_ADD("s2636_0", galaxia_s2636_config[0])
MCFG_S2636_ADD("s2636_1", galaxia_s2636_config[1])
@@ -350,8 +350,8 @@ static MACHINE_CONFIG_START( astrowar, galaxia_state )
MCFG_GFXDECODE(astrowar)
MCFG_PALETTE_LENGTH(0x18+2)
- MCFG_PALETTE_INIT(astrowar)
- MCFG_VIDEO_START(astrowar)
+ MCFG_PALETTE_INIT_OVERRIDE(galaxia_state,astrowar)
+ MCFG_VIDEO_START_OVERRIDE(galaxia_state,astrowar)
MCFG_S2636_ADD("s2636_0", astrowar_s2636_config)
diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c
index 2887b7fd211..17c8b1b463d 100644
--- a/src/mame/drivers/galaxian.c
+++ b/src/mame/drivers/galaxian.c
@@ -456,7 +456,7 @@ static INTERRUPT_GEN( fakechange_interrupt_gen )
{
state->m_tenspot_current_game++;
state->m_tenspot_current_game%=10;
- tenspot_set_game_bank(device->machine(), state->m_tenspot_current_game, 1);
+ state->tenspot_set_game_bank(device->machine(), state->m_tenspot_current_game, 1);
device->machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE);
}
}
@@ -2096,8 +2096,6 @@ static MACHINE_CONFIG_START( galaxian_base, galaxian_state )
MCFG_SCREEN_RAW_PARAMS(GALAXIAN_PIXEL_CLOCK, GALAXIAN_HTOTAL, GALAXIAN_HBEND, GALAXIAN_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART)
MCFG_SCREEN_UPDATE_STATIC(galaxian)
- MCFG_PALETTE_INIT(galaxian)
- MCFG_VIDEO_START(galaxian)
/* blinking frequency is determined by 555 counter with Ra=100k, Rb=10k, C=10uF */
MCFG_TIMER_ADD_PERIODIC("stars", galaxian_stars_blink_timer, PERIOD_OF_555_ASTABLE(100000, 10000, 0.00001))
@@ -2510,7 +2508,7 @@ static MACHINE_CONFIG_DERIVED( moonwar, scobra )
MCFG_I8255A_ADD( "ppi8255_0", moonwar_ppi8255_0_intf )
MCFG_I8255A_ADD( "ppi8255_1", konami_ppi8255_1_intf )
- MCFG_PALETTE_INIT(moonwar) // bullets are less yellow
+ MCFG_PALETTE_INIT_OVERRIDE(galaxian_state,moonwar) // bullets are less yellow
MACHINE_CONFIG_END
@@ -2915,7 +2913,7 @@ READ8_MEMBER(galaxian_state::tenspot_dsw_read)
}
-void tenspot_set_game_bank(running_machine& machine, int bank, int from_game)
+void galaxian_state::tenspot_set_game_bank(running_machine& machine, int bank, int from_game)
{
char tmp[64];
UINT8* srcregion;
@@ -2953,7 +2951,7 @@ void tenspot_set_game_bank(running_machine& machine, int bank, int from_game)
dstregion = machine.root_device().memregion("proms")->base();
memcpy(dstregion, srcregion, 0x20);
- PALETTE_INIT_CALL(galaxian);
+ galaxian_state::palette_init();
}
DRIVER_INIT_MEMBER(galaxian_state,tenspot)
diff --git a/src/mame/drivers/galaxold.c b/src/mame/drivers/galaxold.c
index 9c5d916448c..1cb224147c4 100644
--- a/src/mame/drivers/galaxold.c
+++ b/src/mame/drivers/galaxold.c
@@ -2174,7 +2174,7 @@ static MACHINE_CONFIG_START( galaxold_base, galaxold_state )
MCFG_CPU_ADD("maincpu", Z80, PIXEL_CLOCK/2) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(galaxold_map)
- MCFG_MACHINE_RESET(galaxold)
+ MCFG_MACHINE_RESET_OVERRIDE(galaxold_state,galaxold)
MCFG_7474_ADD("7474_9m_1", "7474_9m_1", galaxold_7474_9m_1_callback, NULL)
MCFG_7474_ADD("7474_9m_2", "7474_9m_1", NULL, galaxold_7474_9m_2_q_callback)
@@ -2189,8 +2189,8 @@ static MACHINE_CONFIG_START( galaxold_base, galaxold_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(galaxold)
- MCFG_PALETTE_INIT(galaxold)
- MCFG_VIDEO_START(galaxold)
+ MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,galaxold)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,galaxold)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2211,7 +2211,7 @@ static MACHINE_CONFIG_DERIVED( batman2, galaxian )
/* basic machine hardware */
/* video hardware */
- MCFG_VIDEO_START(batman2)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,batman2)
MACHINE_CONFIG_END
@@ -2222,7 +2222,7 @@ static MACHINE_CONFIG_DERIVED( mooncrst, galaxian )
MCFG_CPU_PROGRAM_MAP(mooncrst_map)
/* video hardware */
- MCFG_VIDEO_START(mooncrst)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,mooncrst)
MACHINE_CONFIG_END
@@ -2235,8 +2235,8 @@ static MACHINE_CONFIG_DERIVED( scramblb, galaxian )
/* video hardware */
MCFG_PALETTE_LENGTH(32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */
- MCFG_PALETTE_INIT(scrambold)
- MCFG_VIDEO_START(scrambold)
+ MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,scrambold)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( scramb2, galaxian )
@@ -2248,8 +2248,8 @@ static MACHINE_CONFIG_DERIVED( scramb2, galaxian )
/* video hardware */
MCFG_PALETTE_LENGTH(32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */
- MCFG_PALETTE_INIT(scrambold)
- MCFG_VIDEO_START(scrambold)
+ MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,scrambold)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold)
MACHINE_CONFIG_END
@@ -2263,7 +2263,7 @@ static MACHINE_CONFIG_DERIVED( 4in1, galaxian )
/* video hardware */
MCFG_GFXDECODE(_4in1)
- MCFG_VIDEO_START(pisces)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,pisces)
MACHINE_CONFIG_END
@@ -2273,12 +2273,12 @@ static MACHINE_CONFIG_DERIVED( bagmanmc, galaxian )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(bagmanmc_map)
- MCFG_MACHINE_RESET( devilfsg )
+ MCFG_MACHINE_RESET_OVERRIDE(galaxold_state, devilfsg )
/* video hardware */
MCFG_GFXDECODE(bagmanmc)
- MCFG_VIDEO_START(pisces)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,pisces)
MACHINE_CONFIG_END
@@ -2289,7 +2289,7 @@ static MACHINE_CONFIG_DERIVED( dkongjrm, galaxian )
MCFG_CPU_PROGRAM_MAP(dkongjrm_map)
/* video hardware */
- MCFG_VIDEO_START(dkongjrm)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,dkongjrm)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( rockclim, galaxian )
@@ -2299,9 +2299,9 @@ static MACHINE_CONFIG_DERIVED( rockclim, galaxian )
MCFG_CPU_PROGRAM_MAP(rockclim_map)
MCFG_GFXDECODE(rockclim)
/* video hardware */
- MCFG_VIDEO_START(rockclim)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,rockclim)
MCFG_PALETTE_LENGTH(64+64+2) /* 64 colors only, but still uses bullets so we need to keep the palette big */
- MCFG_PALETTE_INIT(rockclim)
+ MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(64*8, 32*8)
@@ -2318,10 +2318,10 @@ static MACHINE_CONFIG_DERIVED( ozon1, galaxold_base )
MCFG_MACHINE_RESET(0)
- MCFG_PALETTE_INIT(rockclim)
+ MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
MCFG_PALETTE_LENGTH(32)
- MCFG_VIDEO_START(galaxold_plain)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,galaxold_plain)
MCFG_SOUND_ADD("aysnd", AY8910, PIXEL_CLOCK/4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -2345,9 +2345,9 @@ static MACHINE_CONFIG_START( drivfrcg, galaxold_state )
MCFG_PALETTE_LENGTH(64)
MCFG_GFXDECODE(gmgalax)
- MCFG_PALETTE_INIT(rockclim)
+ MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
- MCFG_VIDEO_START(drivfrcg)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,drivfrcg)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2362,7 +2362,7 @@ static MACHINE_CONFIG_DERIVED( bongo, galaxold_base )
MCFG_CPU_PROGRAM_MAP(bongo)
MCFG_CPU_IO_MAP(bongo_io)
- MCFG_VIDEO_START(bongo)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,bongo)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(galaxold)
@@ -2379,7 +2379,7 @@ static MACHINE_CONFIG_DERIVED( hunchbkg, galaxold_base )
MCFG_CPU_PROGRAM_MAP(hunchbkg)
MCFG_CPU_IO_MAP(hunchbkg_io)
- MCFG_MACHINE_RESET(hunchbkg)
+ MCFG_MACHINE_RESET_OVERRIDE(galaxold_state,hunchbkg)
MCFG_FRAGMENT_ADD(galaxian_audio)
MACHINE_CONFIG_END
@@ -2405,10 +2405,10 @@ static MACHINE_CONFIG_DERIVED( harem, galaxold_base )
MCFG_MACHINE_RESET(0)
- MCFG_PALETTE_INIT(rockclim)
+ MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
MCFG_PALETTE_LENGTH(32)
- MCFG_VIDEO_START(galaxold_plain)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,galaxold_plain)
MCFG_SOUND_ADD("ay1", AY8910, 2000000) //?
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33/3)
@@ -2442,8 +2442,8 @@ static MACHINE_CONFIG_START( racknrol, galaxold_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(galaxold)
- MCFG_PALETTE_INIT(rockclim)
- MCFG_VIDEO_START(racknrol)
+ MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2468,7 +2468,7 @@ static MACHINE_CONFIG_DERIVED( ckongg, galaxian )
MCFG_GFXDECODE(gmgalax)
- MCFG_VIDEO_START(ckongs)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,ckongs)
MACHINE_CONFIG_END
@@ -2480,7 +2480,7 @@ static MACHINE_CONFIG_DERIVED( ckongmc, galaxian )
MCFG_GFXDECODE(gmgalax)
- MCFG_VIDEO_START(ckongs)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,ckongs)
MACHINE_CONFIG_END
@@ -2500,8 +2500,8 @@ static MACHINE_CONFIG_START( hexpoola, galaxold_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(galaxold)
- MCFG_PALETTE_INIT(rockclim)
- MCFG_VIDEO_START(racknrol)
+ MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/galgame.c b/src/mame/drivers/galgame.c
index e89e1611d6d..482d275a4bb 100644
--- a/src/mame/drivers/galgame.c
+++ b/src/mame/drivers/galgame.c
@@ -45,6 +45,8 @@ public:
DECLARE_WRITE16_MEMBER(y_w);
DECLARE_WRITE16_MEMBER(clk_w);
DECLARE_DRIVER_INIT(galaxygame);
+ virtual void machine_reset();
+ virtual void palette_init();
};
/*************************************
@@ -287,10 +289,10 @@ static ADDRESS_MAP_START( galaxygame_map, AS_PROGRAM, 16, galaxygame_state )
ADDRESS_MAP_END
-static PALETTE_INIT( galaxygame )
+void galaxygame_state::palette_init()
{
- palette_set_color(machine,0,RGB_BLACK); /* black */
- palette_set_color(machine,1,RGB_WHITE); /* white */
+ palette_set_color(machine(),0,RGB_BLACK); /* black */
+ palette_set_color(machine(),1,RGB_WHITE); /* white */
}
static IRQ_CALLBACK(galaxygame_irq_callback)
@@ -309,15 +311,14 @@ static INTERRUPT_GEN(galaxygame_irq)
}
}
-static MACHINE_RESET( galaxygame )
+void galaxygame_state::machine_reset()
{
- galaxygame_state *state = machine.driver_data<galaxygame_state>();
- state->m_clk = 0x00;
- state->m_point_work_list_index = 0;
- state->m_point_display_list_index = 0;
- state->m_interrupt = 0;
+ m_clk = 0x00;
+ m_point_work_list_index = 0;
+ m_point_display_list_index = 0;
+ m_interrupt = 0;
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(galaxygame_irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(galaxygame_irq_callback);
}
static const struct t11_setup t11_data =
@@ -341,9 +342,7 @@ static MACHINE_CONFIG_START( galaxygame, galaxygame_state )
MCFG_SCREEN_UPDATE_STATIC(galaxygame)
MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT(galaxygame)
- MCFG_MACHINE_RESET(galaxygame)
MACHINE_CONFIG_END
ROM_START(galgame)
diff --git a/src/mame/drivers/galivan.c b/src/mame/drivers/galivan.c
index 974270f66aa..78089123b39 100644
--- a/src/mame/drivers/galivan.c
+++ b/src/mame/drivers/galivan.c
@@ -375,63 +375,59 @@ GFXDECODE_END
-static MACHINE_START( galivan )
+MACHINE_START_MEMBER(galivan_state,galivan)
{
- galivan_state *state = machine.driver_data<galivan_state>();
/* configure ROM banking */
- UINT8 *rombase = state->memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 2, &rombase[0x10000], 0x2000);
- state->membank("bank1")->set_entry(0);
+ UINT8 *rombase = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 2, &rombase[0x10000], 0x2000);
+ membank("bank1")->set_entry(0);
/* register for saving */
- state->save_item(NAME(state->m_scrollx));
- state->save_item(NAME(state->m_scrolly));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_write_layers));
- state->save_item(NAME(state->m_layers));
+ save_item(NAME(m_scrollx));
+ save_item(NAME(m_scrolly));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_write_layers));
+ save_item(NAME(m_layers));
}
-static MACHINE_START( ninjemak )
+MACHINE_START_MEMBER(galivan_state,ninjemak)
{
- galivan_state *state = machine.driver_data<galivan_state>();
/* configure ROM banking */
- UINT8 *rombase = state->memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &rombase[0x10000], 0x2000);
- state->membank("bank1")->set_entry(0);
+ UINT8 *rombase = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 4, &rombase[0x10000], 0x2000);
+ membank("bank1")->set_entry(0);
/* register for saving */
- state->save_item(NAME(state->m_scrollx));
- state->save_item(NAME(state->m_scrolly));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_ninjemak_dispdisable));
+ save_item(NAME(m_scrollx));
+ save_item(NAME(m_scrolly));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_ninjemak_dispdisable));
}
-static MACHINE_RESET( galivan )
+MACHINE_RESET_MEMBER(galivan_state,galivan)
{
- galivan_state *state = machine.driver_data<galivan_state>();
- machine.device("maincpu")->reset();
+ machine().device("maincpu")->reset();
-// state->m_layers = 0x60;
- state->m_layers = 0;
- state->m_write_layers = 0;
- state->m_galivan_scrollx[0] = state->m_galivan_scrollx[1] = 0;
- state->m_galivan_scrolly[0] = state->m_galivan_scrolly[1] = 0;
- state->m_flipscreen = 0;
+// m_layers = 0x60;
+ m_layers = 0;
+ m_write_layers = 0;
+ m_galivan_scrollx[0] = m_galivan_scrollx[1] = 0;
+ m_galivan_scrolly[0] = m_galivan_scrolly[1] = 0;
+ m_flipscreen = 0;
}
-static MACHINE_RESET( ninjemak )
+MACHINE_RESET_MEMBER(galivan_state,ninjemak)
{
- galivan_state *state = machine.driver_data<galivan_state>();
- machine.device("maincpu")->reset();
+ machine().device("maincpu")->reset();
- state->m_scrollx = 0;
- state->m_scrolly = 0;
- state->m_flipscreen = 0;
- state->m_ninjemak_dispdisable = 0;
+ m_scrollx = 0;
+ m_scrolly = 0;
+ m_flipscreen = 0;
+ m_ninjemak_dispdisable = 0;
}
static MACHINE_CONFIG_START( galivan, galivan_state )
@@ -447,8 +443,8 @@ static MACHINE_CONFIG_START( galivan, galivan_state )
MCFG_CPU_IO_MAP(sound_io_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, XTAL_8MHz/2/512) // ?
- MCFG_MACHINE_START(galivan)
- MCFG_MACHINE_RESET(galivan)
+ MCFG_MACHINE_START_OVERRIDE(galivan_state,galivan)
+ MCFG_MACHINE_RESET_OVERRIDE(galivan_state,galivan)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -461,8 +457,7 @@ static MACHINE_CONFIG_START( galivan, galivan_state )
MCFG_GFXDECODE(galivan)
MCFG_PALETTE_LENGTH(8*16+16*16+256*16)
- MCFG_PALETTE_INIT(galivan)
- MCFG_VIDEO_START(galivan)
+ MCFG_VIDEO_START_OVERRIDE(galivan_state,galivan)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -490,8 +485,8 @@ static MACHINE_CONFIG_START( ninjemak, galivan_state )
MCFG_CPU_IO_MAP(sound_io_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, XTAL_8MHz/2/512) // ?
- MCFG_MACHINE_START(ninjemak)
- MCFG_MACHINE_RESET(ninjemak)
+ MCFG_MACHINE_START_OVERRIDE(galivan_state,ninjemak)
+ MCFG_MACHINE_RESET_OVERRIDE(galivan_state,ninjemak)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -504,8 +499,7 @@ static MACHINE_CONFIG_START( ninjemak, galivan_state )
MCFG_GFXDECODE(ninjemak)
MCFG_PALETTE_LENGTH(8*16+16*16+256*16)
- MCFG_PALETTE_INIT(galivan)
- MCFG_VIDEO_START(ninjemak)
+ MCFG_VIDEO_START_OVERRIDE(galivan_state,ninjemak)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/galpani2.c b/src/mame/drivers/galpani2.c
index ff65b9678ab..57c1f99e7d5 100644
--- a/src/mame/drivers/galpani2.c
+++ b/src/mame/drivers/galpani2.c
@@ -70,9 +70,9 @@ WRITE16_MEMBER(galpani2_state::galpani2_eeprom_w)
***************************************************************************/
-static MACHINE_RESET( galpani2 )
+void galpani2_state::machine_reset()
{
- machine.scheduler().boost_interleave(attotime::zero, attotime::from_usec(50)); //initial mcu xchk
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50)); //initial mcu xchk
}
static void galpani2_write_kaneko(device_t *device)
@@ -589,7 +589,6 @@ static MACHINE_CONFIG_START( galpani2, galpani2_state )
MCFG_CPU_PROGRAM_MAP(galpani2_mem2)
MCFG_TIMER_ADD_SCANLINE("s_scantimer", galpani2_interrupt2, "screen", 0, 1)
- MCFG_MACHINE_RESET(galpani2)
MCFG_EEPROM_93C46_ADD("eeprom")
/* video hardware */
@@ -606,8 +605,6 @@ static MACHINE_CONFIG_START( galpani2, galpani2_state )
MCFG_DEVICE_ADD_KC002_SPRITES
kaneko16_sprite_device::set_offsets(*device, 0x10000 - 0x16c0 + 0xc00, 0);
- MCFG_PALETTE_INIT(galpani2)
- MCFG_VIDEO_START(galpani2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/galpani3.c b/src/mame/drivers/galpani3.c
index f1eb61d5085..7702ee97741 100644
--- a/src/mame/drivers/galpani3.c
+++ b/src/mame/drivers/galpani3.c
@@ -111,6 +111,7 @@ public:
DECLARE_DRIVER_INIT( galpani3 )
{
}
+ virtual void video_start();
};
@@ -138,13 +139,12 @@ static TIMER_DEVICE_CALLBACK( galpani3_vblank ) // 2, 3, 5 ?
}
-static VIDEO_START(galpani3)
+void galpani3_state::video_start()
{
- galpani3_state *state = machine.driver_data<galpani3_state>();
/* so we can use suprnova.c */
- state->m_spritegen = machine.device<sknsspr_device>("spritegen");
- state->m_spritegen->skns_sprite_kludge(0,0);
+ m_spritegen = machine().device<sknsspr_device>("spritegen");
+ m_spritegen->skns_sprite_kludge(0,0);
}
@@ -526,7 +526,6 @@ static MACHINE_CONFIG_START( galpani3, galpani3_state )
MCFG_PALETTE_LENGTH(0x4303)
- MCFG_VIDEO_START(galpani3)
MCFG_DEVICE_ADD("spritegen", SKNS_SPRITE, 0)
diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c
index f24ceb17241..04ccbe53df2 100644
--- a/src/mame/drivers/galpanic.c
+++ b/src/mame/drivers/galpanic.c
@@ -581,8 +581,8 @@ static MACHINE_CONFIG_START( galpanic, galpanic_state )
- MCFG_PALETTE_INIT(galpanic)
- MCFG_VIDEO_START(galpanic)
+ MCFG_PALETTE_INIT_OVERRIDE(galpanic_state,galpanic)
+ MCFG_VIDEO_START_OVERRIDE(galpanic_state,galpanic)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/galspnbl.c b/src/mame/drivers/galspnbl.c
index 01d0f3b35e0..2ef75dc56ec 100644
--- a/src/mame/drivers/galspnbl.c
+++ b/src/mame/drivers/galspnbl.c
@@ -218,11 +218,10 @@ static const ym3812_interface ym3812_config =
};
-static MACHINE_START( galspnbl )
+void galspnbl_state::machine_start()
{
- galspnbl_state *state = machine.driver_data<galspnbl_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
}
static MACHINE_CONFIG_START( galspnbl, galspnbl_state )
@@ -236,7 +235,6 @@ static MACHINE_CONFIG_START( galspnbl, galspnbl_state )
MCFG_CPU_PROGRAM_MAP(audio_map)
/* NMI is caused by the main CPU */
- MCFG_MACHINE_START(galspnbl)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -249,7 +247,6 @@ static MACHINE_CONFIG_START( galspnbl, galspnbl_state )
MCFG_GFXDECODE(galspnbl)
MCFG_PALETTE_LENGTH(1024 + 32768)
- MCFG_PALETTE_INIT(galspnbl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gamecstl.c b/src/mame/drivers/gamecstl.c
index 56185712b66..5c007a1468a 100644
--- a/src/mame/drivers/gamecstl.c
+++ b/src/mame/drivers/gamecstl.c
@@ -116,6 +116,9 @@ public:
DECLARE_WRITE_LINE_MEMBER(gamecstl_pic8259_1_set_int_line);
DECLARE_READ8_MEMBER(get_slave_ack);
DECLARE_DRIVER_INIT(gamecstl);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -130,11 +133,11 @@ static const rgb_t cga_palette[16] =
MAKE_RGB( 0xff, 0x55, 0x55 ), MAKE_RGB( 0xff, 0x55, 0xff ), MAKE_RGB( 0xff, 0xff, 0x55 ), MAKE_RGB( 0xff, 0xff, 0xff ),
};
-static VIDEO_START(gamecstl)
+void gamecstl_state::video_start()
{
int i;
for (i=0; i < 16; i++)
- palette_set_color(machine, i, cga_palette[i]);
+ palette_set_color(machine(), i, cga_palette[i]);
}
static void draw_char(bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, int ch, int att, int x, int y)
@@ -608,21 +611,20 @@ static IRQ_CALLBACK(irq_callback)
return pic8259_acknowledge(state->m_pic8259_1);
}
-static MACHINE_START(gamecstl)
+void gamecstl_state::machine_start()
{
- gamecstl_state *state = machine.driver_data<gamecstl_state>();
- state->m_pit8254 = machine.device( "pit8254" );
- state->m_pic8259_1 = machine.device( "pic8259_1" );
- state->m_pic8259_2 = machine.device( "pic8259_2" );
- state->m_dma8237_1 = machine.device( "dma8237_1" );
- state->m_dma8237_2 = machine.device( "dma8237_2" );
+ m_pit8254 = machine().device( "pit8254" );
+ m_pic8259_1 = machine().device( "pic8259_1" );
+ m_pic8259_2 = machine().device( "pic8259_2" );
+ m_dma8237_1 = machine().device( "dma8237_1" );
+ m_dma8237_2 = machine().device( "dma8237_2" );
}
-static MACHINE_RESET(gamecstl)
+void gamecstl_state::machine_reset()
{
- machine.root_device().membank("bank1")->set_base(machine.root_device().memregion("bios")->base() + 0x30000);
+ machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("bios")->base() + 0x30000);
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
}
@@ -699,8 +701,6 @@ static MACHINE_CONFIG_START( gamecstl, gamecstl_state )
MCFG_CPU_PROGRAM_MAP(gamecstl_map)
MCFG_CPU_IO_MAP(gamecstl_io)
- MCFG_MACHINE_START(gamecstl)
- MCFG_MACHINE_RESET(gamecstl)
MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0)
MCFG_PCI_BUS_LEGACY_DEVICE(0, NULL, intel82439tx_pci_r, intel82439tx_pci_w)
@@ -731,7 +731,6 @@ static MACHINE_CONFIG_START( gamecstl, gamecstl_state )
MCFG_GFXDECODE(CGA)
MCFG_PALETTE_LENGTH(16)
- MCFG_VIDEO_START(gamecstl)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/gameplan.c b/src/mame/drivers/gameplan.c
index e41baade1c4..0beaa31ea46 100644
--- a/src/mame/drivers/gameplan.c
+++ b/src/mame/drivers/gameplan.c
@@ -973,31 +973,29 @@ static const ay8910_interface ay8910_config =
-static MACHINE_START( gameplan )
+MACHINE_START_MEMBER(gameplan_state,gameplan)
{
- gameplan_state *state = machine.driver_data<gameplan_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_riot = machine.device("riot");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_riot = machine().device("riot");
/* register for save states */
- state->save_item(NAME(state->m_current_port));
- state->save_item(NAME(state->m_video_x));
- state->save_item(NAME(state->m_video_y));
- state->save_item(NAME(state->m_video_command));
- state->save_item(NAME(state->m_video_data));
+ save_item(NAME(m_current_port));
+ save_item(NAME(m_video_x));
+ save_item(NAME(m_video_y));
+ save_item(NAME(m_video_command));
+ save_item(NAME(m_video_data));
}
-static MACHINE_RESET( gameplan )
+MACHINE_RESET_MEMBER(gameplan_state,gameplan)
{
- gameplan_state *state = machine.driver_data<gameplan_state>();
- state->m_current_port = 0;
- state->m_video_x = 0;
- state->m_video_y = 0;
- state->m_video_command = 0;
- state->m_video_data = 0;
+ m_current_port = 0;
+ m_video_x = 0;
+ m_video_y = 0;
+ m_video_command = 0;
+ m_video_data = 0;
}
static MACHINE_CONFIG_START( gameplan, gameplan_state )
@@ -1011,8 +1009,8 @@ static MACHINE_CONFIG_START( gameplan, gameplan_state )
MCFG_RIOT6532_ADD("riot", GAMEPLAN_AUDIO_CPU_CLOCK, r6532_interface)
- MCFG_MACHINE_START(gameplan)
- MCFG_MACHINE_RESET(gameplan)
+ MCFG_MACHINE_START_OVERRIDE(gameplan_state,gameplan)
+ MCFG_MACHINE_RESET_OVERRIDE(gameplan_state,gameplan)
/* video hardware */
MCFG_FRAGMENT_ADD(gameplan_video)
diff --git a/src/mame/drivers/gaplus.c b/src/mame/drivers/gaplus.c
index 75cfc9d92a5..452e720b5eb 100644
--- a/src/mame/drivers/gaplus.c
+++ b/src/mame/drivers/gaplus.c
@@ -227,12 +227,11 @@ static const namco_62xx_interface namco_62xx_intf =
};
-static MACHINE_RESET( gaplus )
+void gaplus_state::machine_reset()
{
- gaplus_state *state = machine.driver_data<gaplus_state>();
/* on reset, VINTON is reset, while the other flags don't seem to be affected */
- state->m_sub_irq_mask = 0;
- machine.device("sub")->execute().set_input_line(0, CLEAR_LINE);
+ m_sub_irq_mask = 0;
+ machine().device("sub")->execute().set_input_line(0, CLEAR_LINE);
}
static TIMER_CALLBACK( namcoio_run )
@@ -572,7 +571,6 @@ static MACHINE_CONFIG_START( gaplus, gaplus_state )
MCFG_CPU_VBLANK_INT("screen", gaplus_vblank_sub2_irq)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* a high value to ensure proper synchronization of the CPUs */
- MCFG_MACHINE_RESET(gaplus)
MCFG_NAMCO56XX_ADD("56xx", intf0_lamps)
MCFG_NAMCO58XX_ADD("58xx", intf1)
@@ -591,8 +589,6 @@ static MACHINE_CONFIG_START( gaplus, gaplus_state )
MCFG_GFXDECODE(gaplus)
MCFG_PALETTE_LENGTH(64*4+64*8)
- MCFG_PALETTE_INIT(gaplus)
- MCFG_VIDEO_START(gaplus)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gatron.c b/src/mame/drivers/gatron.c
index 4f9ef22d5d0..9dbd59111b6 100644
--- a/src/mame/drivers/gatron.c
+++ b/src/mame/drivers/gatron.c
@@ -463,9 +463,7 @@ static MACHINE_CONFIG_START( gat, gatron_state )
MCFG_SCREEN_UPDATE_STATIC(gat)
MCFG_GFXDECODE(gat)
- MCFG_PALETTE_INIT(gat)
MCFG_PALETTE_LENGTH(8)
- MCFG_VIDEO_START(gat)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gauntlet.c b/src/mame/drivers/gauntlet.c
index 2a10c5ff472..597c7e13ec6 100644
--- a/src/mame/drivers/gauntlet.c
+++ b/src/mame/drivers/gauntlet.c
@@ -155,26 +155,24 @@ static void scanline_update(screen_device &screen, int scanline)
}
-static MACHINE_START( gauntlet )
+MACHINE_START_MEMBER(gauntlet_state,gauntlet)
{
- gauntlet_state *state = machine.driver_data<gauntlet_state>();
- atarigen_init(machine);
+ atarigen_init(machine());
- state->save_item(NAME(state->m_sound_reset_val));
+ save_item(NAME(m_sound_reset_val));
}
-static MACHINE_RESET( gauntlet )
+MACHINE_RESET_MEMBER(gauntlet_state,gauntlet)
{
- gauntlet_state *state = machine.driver_data<gauntlet_state>();
- state->m_sound_reset_val = 1;
+ m_sound_reset_val = 1;
- atarigen_eeprom_reset(state);
- atarigen_slapstic_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, scanline_update, 32);
- atarigen_sound_io_reset(machine.device("audiocpu"));
+ atarigen_eeprom_reset(this);
+ atarigen_slapstic_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, scanline_update, 32);
+ atarigen_sound_io_reset(machine().device("audiocpu"));
}
@@ -521,8 +519,8 @@ static MACHINE_CONFIG_START( gauntlet, gauntlet_state )
MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(gauntlet)
- MCFG_MACHINE_RESET(gauntlet)
+ MCFG_MACHINE_START_OVERRIDE(gauntlet_state,gauntlet)
+ MCFG_MACHINE_RESET_OVERRIDE(gauntlet_state,gauntlet)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -536,7 +534,7 @@ static MACHINE_CONFIG_START( gauntlet, gauntlet_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(gauntlet)
- MCFG_VIDEO_START(gauntlet)
+ MCFG_VIDEO_START_OVERRIDE(gauntlet_state,gauntlet)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/gberet.c b/src/mame/drivers/gberet.c
index b09056e8aa0..150144f3f02 100644
--- a/src/mame/drivers/gberet.c
+++ b/src/mame/drivers/gberet.c
@@ -402,22 +402,20 @@ static const sn76496_config psg_intf =
*
*************************************/
-static MACHINE_START( gberet )
+MACHINE_START_MEMBER(gberet_state,gberet)
{
- gberet_state *state = machine.driver_data<gberet_state>();
- state->save_item(NAME(state->m_interrupt_mask));
- state->save_item(NAME(state->m_interrupt_ticks));
- state->save_item(NAME(state->m_spritebank));
+ save_item(NAME(m_interrupt_mask));
+ save_item(NAME(m_interrupt_ticks));
+ save_item(NAME(m_spritebank));
}
-static MACHINE_RESET( gberet )
+MACHINE_RESET_MEMBER(gberet_state,gberet)
{
- gberet_state *state = machine.driver_data<gberet_state>();
- state->m_interrupt_mask = 0;
- state->m_interrupt_ticks = 0;
- state->m_spritebank = 0;
+ m_interrupt_mask = 0;
+ m_interrupt_ticks = 0;
+ m_spritebank = 0;
}
static MACHINE_CONFIG_START( gberet, gberet_state )
@@ -427,8 +425,8 @@ static MACHINE_CONFIG_START( gberet, gberet_state )
MCFG_CPU_PROGRAM_MAP(gberet_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", gberet_interrupt_tick, "screen", 0, 16) // ?
- MCFG_MACHINE_START(gberet)
- MCFG_MACHINE_RESET(gberet)
+ MCFG_MACHINE_START_OVERRIDE(gberet_state,gberet)
+ MCFG_MACHINE_RESET_OVERRIDE(gberet_state,gberet)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -441,8 +439,8 @@ static MACHINE_CONFIG_START( gberet, gberet_state )
MCFG_GFXDECODE(gberet)
MCFG_PALETTE_LENGTH(2*16*16)
- MCFG_PALETTE_INIT(gberet)
- MCFG_VIDEO_START(gberet)
+ MCFG_PALETTE_INIT_OVERRIDE(gberet_state,gberet)
+ MCFG_VIDEO_START_OVERRIDE(gberet_state,gberet)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -467,8 +465,8 @@ static MACHINE_CONFIG_START( gberetb, gberet_state )
MCFG_CPU_VBLANK_INT("screen", irq0_line_assert)
MCFG_CPU_PERIODIC_INT(nmi_line_assert, XTAL_20MHz/0x8000) // divider guessed
- MCFG_MACHINE_START(gberet)
- MCFG_MACHINE_RESET(gberet)
+ MCFG_MACHINE_START_OVERRIDE(gberet_state,gberet)
+ MCFG_MACHINE_RESET_OVERRIDE(gberet_state,gberet)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -481,8 +479,8 @@ static MACHINE_CONFIG_START( gberetb, gberet_state )
MCFG_GFXDECODE(gberetb)
MCFG_PALETTE_LENGTH(2*16*16)
- MCFG_PALETTE_INIT(gberet)
- MCFG_VIDEO_START(gberet)
+ MCFG_PALETTE_INIT_OVERRIDE(gberet_state,gberet)
+ MCFG_VIDEO_START_OVERRIDE(gberet_state,gberet)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gbusters.c b/src/mame/drivers/gbusters.c
index 3b5eda68ac5..1361d38410a 100644
--- a/src/mame/drivers/gbusters.c
+++ b/src/mame/drivers/gbusters.c
@@ -266,38 +266,36 @@ static const k051960_interface gbusters_k051960_intf =
gbusters_sprite_callback
};
-static MACHINE_START( gbusters )
+void gbusters_state::machine_start()
{
- gbusters_state *state = machine.driver_data<gbusters_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x2000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x2000);
+ membank("bank1")->set_entry(0);
- state->m_generic_paletteram_8.allocate(0x800);
+ m_generic_paletteram_8.allocate(0x800);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k052109 = machine.device("k052109");
- state->m_k051960 = machine.device("k051960");
- state->m_k007232 = machine.device("k007232");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k052109 = machine().device("k052109");
+ m_k051960 = machine().device("k051960");
+ m_k007232 = machine().device("k007232");
- state->save_item(NAME(state->m_palette_selected));
- state->save_item(NAME(state->m_priority));
+ save_item(NAME(m_palette_selected));
+ save_item(NAME(m_priority));
}
-static MACHINE_RESET( gbusters )
+void gbusters_state::machine_reset()
{
- gbusters_state *state = machine.driver_data<gbusters_state>();
- UINT8 *RAM = state->memregion("maincpu")->base();
+ UINT8 *RAM = memregion("maincpu")->base();
- konami_configure_set_lines(machine.device("maincpu"), gbusters_banking);
+ konami_configure_set_lines(machine().device("maincpu"), gbusters_banking);
/* mirror address for banked ROM */
memcpy(&RAM[0x18000], &RAM[0x10000], 0x08000);
- state->m_palette_selected = 0;
- state->m_priority = 0;
+ m_palette_selected = 0;
+ m_priority = 0;
}
static MACHINE_CONFIG_START( gbusters, gbusters_state )
@@ -310,8 +308,6 @@ static MACHINE_CONFIG_START( gbusters, gbusters_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545) /* ? */
MCFG_CPU_PROGRAM_MAP(gbusters_sound_map)
- MCFG_MACHINE_START(gbusters)
- MCFG_MACHINE_RESET(gbusters)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -325,7 +321,6 @@ static MACHINE_CONFIG_START( gbusters, gbusters_state )
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(gbusters)
MCFG_K052109_ADD("k052109", gbusters_k052109_intf)
MCFG_K051960_ADD("k051960", gbusters_k051960_intf)
diff --git a/src/mame/drivers/gcpinbal.c b/src/mame/drivers/gcpinbal.c
index c5b0ad8e17d..a2202f1ff8d 100644
--- a/src/mame/drivers/gcpinbal.c
+++ b/src/mame/drivers/gcpinbal.c
@@ -395,45 +395,43 @@ static const msm5205_interface msm6585_config =
MACHINE DRIVERS
***********************************************************/
-static MACHINE_START( gcpinbal )
+void gcpinbal_state::machine_start()
{
- gcpinbal_state *state = machine.driver_data<gcpinbal_state>();
- state->save_item(NAME(state->m_scrollx));
- state->save_item(NAME(state->m_scrolly));
- state->save_item(NAME(state->m_bg0_gfxset));
- state->save_item(NAME(state->m_bg1_gfxset));
- state->save_item(NAME(state->m_msm_start));
- state->save_item(NAME(state->m_msm_end));
- state->save_item(NAME(state->m_msm_bank));
- state->save_item(NAME(state->m_adpcm_start));
- state->save_item(NAME(state->m_adpcm_end));
- state->save_item(NAME(state->m_adpcm_idle));
- state->save_item(NAME(state->m_adpcm_trigger));
- state->save_item(NAME(state->m_adpcm_data));
+ save_item(NAME(m_scrollx));
+ save_item(NAME(m_scrolly));
+ save_item(NAME(m_bg0_gfxset));
+ save_item(NAME(m_bg1_gfxset));
+ save_item(NAME(m_msm_start));
+ save_item(NAME(m_msm_end));
+ save_item(NAME(m_msm_bank));
+ save_item(NAME(m_adpcm_start));
+ save_item(NAME(m_adpcm_end));
+ save_item(NAME(m_adpcm_idle));
+ save_item(NAME(m_adpcm_trigger));
+ save_item(NAME(m_adpcm_data));
}
-static MACHINE_RESET( gcpinbal )
+void gcpinbal_state::machine_reset()
{
- gcpinbal_state *state = machine.driver_data<gcpinbal_state>();
int i;
for (i = 0; i < 3; i++)
{
- state->m_scrollx[i] = 0;
- state->m_scrolly[i] = 0;
+ m_scrollx[i] = 0;
+ m_scrolly[i] = 0;
}
- state->m_adpcm_idle = 1;
- state->m_adpcm_start = 0;
- state->m_adpcm_end = 0;
- state->m_adpcm_trigger = 0;
- state->m_adpcm_data = 0;
- state->m_bg0_gfxset = 0;
- state->m_bg1_gfxset = 0;
- state->m_msm_start = 0;
- state->m_msm_end = 0;
- state->m_msm_bank = 0;
+ m_adpcm_idle = 1;
+ m_adpcm_start = 0;
+ m_adpcm_end = 0;
+ m_adpcm_trigger = 0;
+ m_adpcm_data = 0;
+ m_bg0_gfxset = 0;
+ m_bg1_gfxset = 0;
+ m_msm_start = 0;
+ m_msm_end = 0;
+ m_msm_bank = 0;
}
static MACHINE_CONFIG_START( gcpinbal, gcpinbal_state )
@@ -451,13 +449,10 @@ static MACHINE_CONFIG_START( gcpinbal, gcpinbal_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(gcpinbal)
- MCFG_MACHINE_START(gcpinbal)
- MCFG_MACHINE_RESET(gcpinbal)
MCFG_GFXDECODE(gcpinbal)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(gcpinbal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gei.c b/src/mame/drivers/gei.c
index e6ae48ab335..10fb7779384 100644
--- a/src/mame/drivers/gei.c
+++ b/src/mame/drivers/gei.c
@@ -132,6 +132,8 @@ public:
DECLARE_READ8_MEMBER(portC_r);
DECLARE_DRIVER_INIT(geimulti);
DECLARE_DRIVER_INIT(setbank);
+ virtual void palette_init();
+ DECLARE_PALETTE_INIT(quizvid);
};
@@ -163,23 +165,23 @@ WRITE8_MEMBER(gei_state::gei_bitmap_w)
m_bitmap.pix16(sy, sx+i) = m_color[8-i-1];
}
-static PALETTE_INIT(gei)
+void gei_state::palette_init()
{
int i;
for (i = 0; i < 8; i++ )
{
- palette_set_color(machine, i, MAKE_RGB(pal1bit(i >> 2), pal1bit(i), pal1bit(i >> 1)));
+ palette_set_color(machine(), i, MAKE_RGB(pal1bit(i >> 2), pal1bit(i), pal1bit(i >> 1)));
}
}
-static PALETTE_INIT(quizvid)
+PALETTE_INIT_MEMBER(gei_state,quizvid)
{
int i;
for (i = 0; i < 8; i++ )
{
- palette_set_color(machine, i, MAKE_RGB(pal1bit(i >> 1), pal1bit(i), pal1bit(i >> 2)));
+ palette_set_color(machine(), i, MAKE_RGB(pal1bit(i >> 1), pal1bit(i), pal1bit(i >> 2)));
}
}
@@ -1126,7 +1128,6 @@ static MACHINE_CONFIG_START( getrivia, gei_state )
MCFG_SCREEN_VISIBLE_AREA(48, 511-48, 16, 255-16)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(gei)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -1155,7 +1156,7 @@ static MACHINE_CONFIG_DERIVED( quizvid, findout )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(quizvid_map)
- MCFG_PALETTE_INIT(quizvid)
+ MCFG_PALETTE_INIT_OVERRIDE(gei_state,quizvid)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( gselect, getrivia )
diff --git a/src/mame/drivers/ghosteo.c b/src/mame/drivers/ghosteo.c
index f908874aaa6..d315a68a638 100644
--- a/src/mame/drivers/ghosteo.c
+++ b/src/mame/drivers/ghosteo.c
@@ -93,6 +93,7 @@ public:
int m_rom_pagesize;
DECLARE_DRIVER_INIT(touryuu);
DECLARE_DRIVER_INIT(bballoon);
+ virtual void machine_reset();
};
@@ -578,11 +579,10 @@ READ32_MEMBER(ghosteo_state::bballoon_speedup_r)
return ret;
}
-static MACHINE_RESET( bballoon )
+void ghosteo_state::machine_reset()
{
- ghosteo_state *state = machine.driver_data<ghosteo_state>();
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x4d000010, 0x4d000013,read32_delegate(FUNC(ghosteo_state::bballoon_speedup_r), state));
- s3c2410 = machine.device("s3c2410");
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x4d000010, 0x4d000013,read32_delegate(FUNC(ghosteo_state::bballoon_speedup_r), this));
+ s3c2410 = machine().device("s3c2410");
}
static MACHINE_CONFIG_START( ghosteo, ghosteo_state )
@@ -599,7 +599,6 @@ static MACHINE_CONFIG_START( ghosteo, ghosteo_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_MACHINE_RESET( bballoon )
MCFG_S3C2410_ADD("s3c2410", 12000000, bballoon_s3c2410_intf)
diff --git a/src/mame/drivers/gijoe.c b/src/mame/drivers/gijoe.c
index 73a57800d9d..ebf34277de9 100644
--- a/src/mame/drivers/gijoe.c
+++ b/src/mame/drivers/gijoe.c
@@ -271,26 +271,24 @@ static const k053247_interface gijoe_k053247_intf =
gijoe_sprite_callback
};
-static MACHINE_START( gijoe )
+void gijoe_state::machine_start()
{
- gijoe_state *state = machine.driver_data<gijoe_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k054539 = machine.device("k054539");
- state->m_k056832 = machine.device("k056832");
- state->m_k053246 = machine.device("k053246");
- state->m_k053251 = machine.device("k053251");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k054539 = machine().device("k054539");
+ m_k056832 = machine().device("k056832");
+ m_k053246 = machine().device("k053246");
+ m_k053251 = machine().device("k053251");
- state->m_dmadelay_timer = machine.scheduler().timer_alloc(FUNC(dmaend_callback));
+ m_dmadelay_timer = machine().scheduler().timer_alloc(FUNC(dmaend_callback));
- state->save_item(NAME(state->m_cur_control2));
+ save_item(NAME(m_cur_control2));
}
-static MACHINE_RESET( gijoe )
+void gijoe_state::machine_reset()
{
- gijoe_state *state = machine.driver_data<gijoe_state>();
- state->m_cur_control2 = 0;
+ m_cur_control2 = 0;
}
static MACHINE_CONFIG_START( gijoe, gijoe_state )
@@ -303,8 +301,6 @@ static MACHINE_CONFIG_START( gijoe, gijoe_state )
MCFG_CPU_ADD("audiocpu", Z80, 8000000) /* Amuse & confirmed. z80e */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(gijoe)
- MCFG_MACHINE_RESET(gijoe)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -320,7 +316,6 @@ static MACHINE_CONFIG_START( gijoe, gijoe_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(gijoe)
MCFG_K056832_ADD("k056832", gijoe_k056832_intf)
MCFG_K053246_ADD("k053246", gijoe_k053247_intf)
diff --git a/src/mame/drivers/ginganin.c b/src/mame/drivers/ginganin.c
index 47bc0787b0a..bb4aa11bae6 100644
--- a/src/mame/drivers/ginganin.c
+++ b/src/mame/drivers/ginganin.c
@@ -226,22 +226,20 @@ GFXDECODE_END
-static MACHINE_START( ginganin )
+void ginganin_state::machine_start()
{
- ginganin_state *state = machine.driver_data<ginganin_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_layers_ctrl));
- state->save_item(NAME(state->m_flipscreen));
+ save_item(NAME(m_layers_ctrl));
+ save_item(NAME(m_flipscreen));
}
-static MACHINE_RESET( ginganin )
+void ginganin_state::machine_reset()
{
- ginganin_state *state = machine.driver_data<ginganin_state>();
- state->m_layers_ctrl = 0;
- state->m_flipscreen = 0;
+ m_layers_ctrl = 0;
+ m_flipscreen = 0;
}
@@ -268,8 +266,6 @@ static MACHINE_CONFIG_START( ginganin, ginganin_state )
MCFG_CPU_ADD("audiocpu", M6809, SOUND_CLOCK)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(ginganin)
- MCFG_MACHINE_RESET(ginganin)
MCFG_PTM6840_ADD("6840ptm", ptm_intf)
@@ -284,7 +280,6 @@ static MACHINE_CONFIG_START( ginganin, ginganin_state )
MCFG_GFXDECODE(ginganin)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(ginganin)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c
index 5eba32bee0d..a05e5ff1ca8 100644
--- a/src/mame/drivers/gladiatr.c
+++ b/src/mame/drivers/gladiatr.c
@@ -251,14 +251,14 @@ static const struct TAITO8741interface gladiator_8741interface=
{gladiator_dsw1_r,gladiator_dsw2_r,gladiator_button3_r,gladiator_controls_r} /* port handler */
};
-static MACHINE_RESET( gladiator )
+MACHINE_RESET_MEMBER(gladiatr_state,gladiator)
{
TAITO8741_start(&gladiator_8741interface);
/* 6809 bank memory set */
{
- UINT8 *rom = machine.root_device().memregion("audiocpu")->base() + 0x10000;
- machine.root_device().membank("bank2")->set_base(rom);
- machine.device("audiocpu")->reset();
+ UINT8 *rom = machine().root_device().memregion("audiocpu")->base() + 0x10000;
+ machine().root_device().membank("bank2")->set_base(rom);
+ machine().device("audiocpu")->reset();
}
}
@@ -364,11 +364,10 @@ READ8_MEMBER(gladiatr_state::qx1_r)
return m_flag1;
}
-static MACHINE_RESET( ppking )
+MACHINE_RESET_MEMBER(gladiatr_state,ppking)
{
- gladiatr_state *state = machine.driver_data<gladiatr_state>();
- state->m_data1 = state->m_data2 = 0;
- state->m_flag1 = state->m_flag2 = 1;
+ m_data1 = m_data2 = 0;
+ m_flag1 = m_flag2 = 1;
}
static ADDRESS_MAP_START( ppking_cpu1_map, AS_PROGRAM, 8, gladiatr_state )
@@ -679,7 +678,7 @@ static MACHINE_CONFIG_START( ppking, gladiatr_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_RESET(ppking)
+ MCFG_MACHINE_RESET_OVERRIDE(gladiatr_state,ppking)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -693,7 +692,7 @@ static MACHINE_CONFIG_START( ppking, gladiatr_state )
MCFG_GFXDECODE(ppking)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(ppking)
+ MCFG_VIDEO_START_OVERRIDE(gladiatr_state,ppking)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -727,7 +726,7 @@ static MACHINE_CONFIG_START( gladiatr, gladiatr_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_RESET(gladiator)
+ MCFG_MACHINE_RESET_OVERRIDE(gladiatr_state,gladiator)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -741,7 +740,7 @@ static MACHINE_CONFIG_START( gladiatr, gladiatr_state )
MCFG_GFXDECODE(gladiatr)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(gladiatr)
+ MCFG_VIDEO_START_OVERRIDE(gladiatr_state,gladiatr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/glass.c b/src/mame/drivers/glass.c
index a805f8159d4..77a03b6603a 100644
--- a/src/mame/drivers/glass.c
+++ b/src/mame/drivers/glass.c
@@ -170,27 +170,25 @@ INPUT_PORTS_END
-static MACHINE_START( glass )
+void glass_state::machine_start()
{
- glass_state *state = machine.driver_data<glass_state>();
- state->save_item(NAME(state->m_cause_interrupt));
- state->save_item(NAME(state->m_current_bit));
- state->save_item(NAME(state->m_current_command));
- state->save_item(NAME(state->m_blitter_serial_buffer));
+ save_item(NAME(m_cause_interrupt));
+ save_item(NAME(m_current_bit));
+ save_item(NAME(m_current_command));
+ save_item(NAME(m_blitter_serial_buffer));
}
-static MACHINE_RESET( glass )
+void glass_state::machine_reset()
{
- glass_state *state = machine.driver_data<glass_state>();
int i;
- state->m_cause_interrupt = 1;
- state->m_current_bit = 0;
- state->m_current_command = 0;
+ m_cause_interrupt = 1;
+ m_current_bit = 0;
+ m_current_command = 0;
for (i = 0; i < 5; i++)
- state->m_blitter_serial_buffer[i] = 0;
+ m_blitter_serial_buffer[i] = 0;
}
static MACHINE_CONFIG_START( glass, glass_state )
@@ -200,8 +198,6 @@ static MACHINE_CONFIG_START( glass, glass_state )
MCFG_CPU_PROGRAM_MAP(glass_map)
MCFG_CPU_VBLANK_INT("screen", glass_interrupt)
- MCFG_MACHINE_START(glass)
- MCFG_MACHINE_RESET(glass)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -214,7 +210,6 @@ static MACHINE_CONFIG_START( glass, glass_state )
MCFG_GFXDECODE(glass)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(glass)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gng.c b/src/mame/drivers/gng.c
index 3477fb55901..d0735bad045 100644
--- a/src/mame/drivers/gng.c
+++ b/src/mame/drivers/gng.c
@@ -300,26 +300,24 @@ GFXDECODE_END
-static MACHINE_START( gng )
+void gng_state::machine_start()
{
- gng_state *state = machine.driver_data<gng_state>();
- UINT8 *rombase = state->memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &rombase[0x10000], 0x2000);
- state->membank("bank1")->configure_entry(4, &rombase[0x4000]);
+ UINT8 *rombase = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 4, &rombase[0x10000], 0x2000);
+ membank("bank1")->configure_entry(4, &rombase[0x4000]);
- state->save_item(NAME(state->m_scrollx));
- state->save_item(NAME(state->m_scrolly));
+ save_item(NAME(m_scrollx));
+ save_item(NAME(m_scrolly));
}
-static MACHINE_RESET( gng )
+void gng_state::machine_reset()
{
- gng_state *state = machine.driver_data<gng_state>();
- state->m_scrollx[0] = 0;
- state->m_scrollx[1] = 0;
- state->m_scrolly[0] = 0;
- state->m_scrolly[1] = 0;
+ m_scrollx[0] = 0;
+ m_scrollx[1] = 0;
+ m_scrolly[0] = 0;
+ m_scrolly[1] = 0;
{
int i;
@@ -328,14 +326,14 @@ static MACHINE_RESET( gng )
For now let's fill everything with white colors until we have better info about it */
for(i=0;i<0x100;i+=4)
{
- state->m_generic_paletteram_8[i] = state->m_generic_paletteram2_8[i] = 0x00;
- state->m_generic_paletteram_8[i+1] = state->m_generic_paletteram2_8[i+1] = 0x55;
- state->m_generic_paletteram_8[i+2] = state->m_generic_paletteram2_8[i+2] = 0xaa;
- state->m_generic_paletteram_8[i+3] = state->m_generic_paletteram2_8[i+3] = 0xff;
- palette_set_color_rgb(machine,i+0,0x00,0x00,0x00);
- palette_set_color_rgb(machine,i+1,0x55,0x55,0x55);
- palette_set_color_rgb(machine,i+2,0xaa,0xaa,0xaa);
- palette_set_color_rgb(machine,i+3,0xff,0xff,0xff);
+ m_generic_paletteram_8[i] = m_generic_paletteram2_8[i] = 0x00;
+ m_generic_paletteram_8[i+1] = m_generic_paletteram2_8[i+1] = 0x55;
+ m_generic_paletteram_8[i+2] = m_generic_paletteram2_8[i+2] = 0xaa;
+ m_generic_paletteram_8[i+3] = m_generic_paletteram2_8[i+3] = 0xff;
+ palette_set_color_rgb(machine(),i+0,0x00,0x00,0x00);
+ palette_set_color_rgb(machine(),i+1,0x55,0x55,0x55);
+ palette_set_color_rgb(machine(),i+2,0xaa,0xaa,0xaa);
+ palette_set_color_rgb(machine(),i+3,0xff,0xff,0xff);
}
}
}
@@ -351,8 +349,6 @@ static MACHINE_CONFIG_START( gng, gng_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,4*60)
- MCFG_MACHINE_START(gng)
- MCFG_MACHINE_RESET(gng)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -368,7 +364,6 @@ static MACHINE_CONFIG_START( gng, gng_state )
MCFG_GFXDECODE(gng)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(gng)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/go2000.c b/src/mame/drivers/go2000.c
index b8805af4018..1f0b5d90a6c 100644
--- a/src/mame/drivers/go2000.c
+++ b/src/mame/drivers/go2000.c
@@ -51,6 +51,8 @@ public:
cpu_device *m_soundcpu;
DECLARE_WRITE16_MEMBER(sound_cmd_w);
DECLARE_WRITE8_MEMBER(go2000_pcm_1_bankswitch_w);
+ virtual void machine_start();
+ virtual void video_start();
};
@@ -168,7 +170,7 @@ static GFXDECODE_START( go2000 )
GFXDECODE_ENTRY( "gfx1", 0, go2000_layout, 0x0, 0x80 ) /* tiles */
GFXDECODE_END
-static VIDEO_START(go2000)
+void go2000_state::video_start()
{
}
@@ -307,18 +309,17 @@ static SCREEN_UPDATE_IND16(go2000)
}
-static MACHINE_START( go2000 )
+void go2000_state::machine_start()
{
- go2000_state *state = machine.driver_data<go2000_state>();
- UINT8 *SOUND = state->memregion("soundcpu")->base();
+ UINT8 *SOUND = memregion("soundcpu")->base();
int i;
for (i = 0; i < 8; i++)
- state->membank("bank1")->configure_entry(i, &SOUND[0x00400 + i * 0x10000]);
+ membank("bank1")->configure_entry(i, &SOUND[0x00400 + i * 0x10000]);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->set_entry(0);
- state->m_soundcpu = machine.device<cpu_device>("soundcpu");
+ m_soundcpu = machine().device<cpu_device>("soundcpu");
}
static MACHINE_CONFIG_START( go2000, go2000_state )
@@ -331,7 +332,6 @@ static MACHINE_CONFIG_START( go2000, go2000_state )
MCFG_CPU_PROGRAM_MAP(go2000_sound_map)
MCFG_CPU_IO_MAP(go2000_sound_io)
- MCFG_MACHINE_START(go2000)
MCFG_GFXDECODE(go2000)
@@ -344,7 +344,6 @@ static MACHINE_CONFIG_START( go2000, go2000_state )
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(go2000)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/goal92.c b/src/mame/drivers/goal92.c
index ffe6ebbc6d9..00df6b85e32 100644
--- a/src/mame/drivers/goal92.c
+++ b/src/mame/drivers/goal92.c
@@ -289,27 +289,25 @@ static GFXDECODE_START( goal92 )
GFXDECODE_END
-static MACHINE_START( goal92 )
+void goal92_state::machine_start()
{
- goal92_state *state = machine.driver_data<goal92_state>();
- UINT8 *ROM = state->memregion("audiocpu")->base();
+ UINT8 *ROM = memregion("audiocpu")->base();
- state->membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000);
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_fg_bank));
- state->save_item(NAME(state->m_msm5205next));
- state->save_item(NAME(state->m_adpcm_toggle));
+ save_item(NAME(m_fg_bank));
+ save_item(NAME(m_msm5205next));
+ save_item(NAME(m_adpcm_toggle));
}
-static MACHINE_RESET( goal92 )
+void goal92_state::machine_reset()
{
- goal92_state *state = machine.driver_data<goal92_state>();
- state->m_fg_bank = 0;
- state->m_msm5205next = 0;
- state->m_adpcm_toggle = 0;
+ m_fg_bank = 0;
+ m_msm5205next = 0;
+ m_adpcm_toggle = 0;
}
static MACHINE_CONFIG_START( goal92, goal92_state )
@@ -323,8 +321,6 @@ static MACHINE_CONFIG_START( goal92, goal92_state )
MCFG_CPU_PROGRAM_MAP(sound_cpu)
/* IRQs are triggered by the main CPU */
- MCFG_MACHINE_START(goal92)
- MCFG_MACHINE_RESET(goal92)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -338,7 +334,6 @@ static MACHINE_CONFIG_START( goal92, goal92_state )
MCFG_GFXDECODE(goal92)
MCFG_PALETTE_LENGTH(128*16)
- MCFG_VIDEO_START(goal92)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/goindol.c b/src/mame/drivers/goindol.c
index e00dd633d6d..1304f849920 100644
--- a/src/mame/drivers/goindol.c
+++ b/src/mame/drivers/goindol.c
@@ -217,23 +217,21 @@ GFXDECODE_END
-static MACHINE_START( goindol )
+void goindol_state::machine_start()
{
- goindol_state *state = machine.driver_data<goindol_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
- state->save_item(NAME(state->m_char_bank));
- state->save_item(NAME(state->m_prot_toggle));
+ save_item(NAME(m_char_bank));
+ save_item(NAME(m_prot_toggle));
}
-static MACHINE_RESET( goindol )
+void goindol_state::machine_reset()
{
- goindol_state *state = machine.driver_data<goindol_state>();
- state->m_char_bank = 0;
- state->m_prot_toggle = 0;
+ m_char_bank = 0;
+ m_prot_toggle = 0;
}
static MACHINE_CONFIG_START( goindol, goindol_state )
@@ -247,8 +245,6 @@ static MACHINE_CONFIG_START( goindol, goindol_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,4*60)
- MCFG_MACHINE_START(goindol)
- MCFG_MACHINE_RESET(goindol)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -262,7 +258,6 @@ static MACHINE_CONFIG_START( goindol, goindol_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(goindol)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/goldngam.c b/src/mame/drivers/goldngam.c
index 95e7b6147b7..7d8c1c4c041 100644
--- a/src/mame/drivers/goldngam.c
+++ b/src/mame/drivers/goldngam.c
@@ -246,6 +246,8 @@ public:
required_shared_ptr<UINT16> m_videoram;
DECLARE_READ16_MEMBER(unk_r);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -253,7 +255,7 @@ public:
* Video Hardware *
*************************/
-static VIDEO_START( goldngam )
+void goldngam_state::video_start()
{
}
@@ -281,7 +283,7 @@ static SCREEN_UPDATE_IND16( goldngam )
}
-static PALETTE_INIT( goldngam )
+void goldngam_state::palette_init()
{
}
@@ -570,10 +572,8 @@ static MACHINE_CONFIG_START( swisspkr, goldngam_state )
MCFG_GFXDECODE(goldngam)
- MCFG_PALETTE_INIT(goldngam)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(goldngam)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c
index beb5a872700..b46d7ae6c45 100644
--- a/src/mame/drivers/goldnpkr.c
+++ b/src/mame/drivers/goldnpkr.c
@@ -999,6 +999,11 @@ public:
DECLARE_DRIVER_INIT(vkdlswwv);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(wcrdxtnd_get_bg_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
+ DECLARE_PALETTE_INIT(witchcrd);
+ DECLARE_VIDEO_START(wcrdxtnd);
+ DECLARE_PALETTE_INIT(wcrdxtnd);
};
@@ -1055,16 +1060,14 @@ TILE_GET_INFO_MEMBER(goldnpkr_state::wcrdxtnd_get_bg_tile_info)
SET_TILE_INFO_MEMBER(bank, code, color, 0);
}
-static VIDEO_START( goldnpkr )
+void goldnpkr_state::video_start()
{
- goldnpkr_state *state = machine.driver_data<goldnpkr_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldnpkr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(goldnpkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-static VIDEO_START( wcrdxtnd )
+VIDEO_START_MEMBER(goldnpkr_state,wcrdxtnd)
{
- goldnpkr_state *state = machine.driver_data<goldnpkr_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldnpkr_state::wcrdxtnd_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(goldnpkr_state::wcrdxtnd_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
static SCREEN_UPDATE_IND16( goldnpkr )
@@ -1074,9 +1077,9 @@ static SCREEN_UPDATE_IND16( goldnpkr )
return 0;
}
-static PALETTE_INIT( goldnpkr )
+void goldnpkr_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
/* prom bits
7654 3210
---- ---x red component.
@@ -1090,7 +1093,7 @@ static PALETTE_INIT( goldnpkr )
/* 0000IBGR */
if (color_prom == 0) return;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0, bit1, bit2, r, g, b, inten, intenmin, intenmax;
@@ -1114,13 +1117,13 @@ static PALETTE_INIT( goldnpkr )
b = (bit2 * intenmin) + (inten * (bit2 * (intenmax - intenmin)));
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
-static PALETTE_INIT( witchcrd )
+PALETTE_INIT_MEMBER(goldnpkr_state,witchcrd)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
/*
This hardware has a feature called BLUE KILLER.
Using the original intensity line, the PCB has a bridge
@@ -1142,7 +1145,7 @@ static PALETTE_INIT( witchcrd )
if (color_prom == 0) return;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0, bit1, bit2, bit3, r, g, b, bk;
@@ -1162,13 +1165,13 @@ static PALETTE_INIT( witchcrd )
bit2 = (color_prom[i] >> 2) & 0x01;
b = bk * (bit2 * 0xff);
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
-static PALETTE_INIT( wcrdxtnd )
+PALETTE_INIT_MEMBER(goldnpkr_state,wcrdxtnd)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
/*
Using the original intensity line, the PCB has a bridge
that allow (as default) turn the background dark blue.
@@ -1186,7 +1189,7 @@ static PALETTE_INIT( wcrdxtnd )
if (color_prom == 0) return;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0, bit1, bit2, bit3, r, g, b, bk;
@@ -1208,7 +1211,7 @@ static PALETTE_INIT( wcrdxtnd )
//if ((b == 0) & (bk = 1)) --> needs better implementation
// b = 0x3f;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -3589,9 +3592,7 @@ static MACHINE_CONFIG_START( goldnpkr_base, goldnpkr_state )
MCFG_MC6845_ADD("crtc", MC6845, CPU_CLOCK, mc6845_intf) /* 68B45 or 6845s @ CPU clock */
MCFG_GFXDECODE(goldnpkr)
- MCFG_PALETTE_INIT(goldnpkr)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(goldnpkr)
MACHINE_CONFIG_END
@@ -3630,7 +3631,7 @@ static MACHINE_CONFIG_DERIVED( witchcrd, goldnpkr_base )
MCFG_PIA6821_MODIFY("pia0", pottnpkr_pia0_intf)
/* video hardware */
- MCFG_PALETTE_INIT(witchcrd)
+ MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3650,7 +3651,7 @@ static MACHINE_CONFIG_DERIVED( wcfalcon, goldnpkr_base )
MCFG_PIA6821_MODIFY("pia1", wcfalcon_pia1_intf)
/* video hardware */
- MCFG_PALETTE_INIT(witchcrd)
+ MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3670,8 +3671,8 @@ static MACHINE_CONFIG_DERIVED( wildcard, goldnpkr_base )
/* video hardware */
// MCFG_GFXDECODE(wildcard)
- MCFG_PALETTE_INIT(witchcrd)
-// MCFG_VIDEO_START(wildcard)
+ MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd)
+// MCFG_VIDEO_START_OVERRIDE(goldnpkr_state,wildcard)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3691,8 +3692,8 @@ static MACHINE_CONFIG_DERIVED( wcrdxtnd, goldnpkr_base )
/* video hardware */
MCFG_GFXDECODE(wcrdxtnd)
- MCFG_PALETTE_INIT(wcrdxtnd)
- MCFG_VIDEO_START(wcrdxtnd)
+ MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,wcrdxtnd)
+ MCFG_VIDEO_START_OVERRIDE(goldnpkr_state,wcrdxtnd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3717,8 +3718,8 @@ static MACHINE_CONFIG_DERIVED( wildcrdb, goldnpkr_base )
/* video hardware */
// MCFG_GFXDECODE(wildcard)
- MCFG_PALETTE_INIT(witchcrd)
-// MCFG_VIDEO_START(wildcard)
+ MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd)
+// MCFG_VIDEO_START_OVERRIDE(goldnpkr_state,wildcard)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3737,7 +3738,7 @@ static MACHINE_CONFIG_DERIVED( genie, goldnpkr_base )
MCFG_PIA6821_MODIFY("pia0", pottnpkr_pia0_intf)
/* video hardware */
- MCFG_PALETTE_INIT(witchcrd)
+ MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c
index c8097e87c49..397a64da6ca 100644
--- a/src/mame/drivers/goldstar.c
+++ b/src/mame/drivers/goldstar.c
@@ -5871,7 +5871,7 @@ static MACHINE_CONFIG_START( goldstar, goldstar_state )
MCFG_PALETTE_LENGTH(256)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(goldstar)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -5905,7 +5905,7 @@ static MACHINE_CONFIG_START( goldstbl, goldstar_state )
MCFG_PALETTE_LENGTH(256)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(goldstar)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -5938,7 +5938,7 @@ static MACHINE_CONFIG_START( moonlght, goldstar_state )
MCFG_PALETTE_LENGTH(256)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(goldstar)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -5951,7 +5951,7 @@ static MACHINE_CONFIG_START( moonlght, goldstar_state )
MACHINE_CONFIG_END
-static PALETTE_INIT(cm)
+PALETTE_INIT_MEMBER(goldstar_state,cm)
{
/* BBGGGRRR */
@@ -5960,32 +5960,32 @@ static PALETTE_INIT(cm)
for (i = 0; i < 0x100; i++)
{
UINT8 data;
- UINT8*proms = machine.root_device().memregion("proms")->base();
+ UINT8*proms = machine().root_device().memregion("proms")->base();
data = proms[0x000 + i] | (proms[0x100 + i] << 4);
- palette_set_color_rgb(machine, i, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6));
+ palette_set_color_rgb(machine(), i, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6));
}
}
-static PALETTE_INIT(cmast91)
+PALETTE_INIT_MEMBER(goldstar_state,cmast91)
{
int i;
for (i = 0; i < 0x100; i++)
{
int r,g,b;
- UINT8*proms = machine.root_device().memregion("proms")->base();
+ UINT8*proms = machine().root_device().memregion("proms")->base();
b = proms[0x000 + i] << 4;
g = proms[0x100 + i] << 4;
r = proms[0x200 + i] << 4;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
-static PALETTE_INIT(lucky8)
+PALETTE_INIT_MEMBER(goldstar_state,lucky8)
{
/* BBGGGRRR */
@@ -5993,21 +5993,21 @@ static PALETTE_INIT(lucky8)
UINT8 data;
UINT8 *proms;
- proms = machine.root_device().memregion("proms")->base();
+ proms = machine().root_device().memregion("proms")->base();
for (i = 0; i < 0x100; i++)
{
data = proms[0x000 + i] | (proms[0x100 + i] << 4);
- palette_set_color_rgb(machine, i, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6));
+ palette_set_color_rgb(machine(), i, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6));
}
- proms = machine.root_device().memregion("proms2")->base();
+ proms = machine().root_device().memregion("proms2")->base();
for (i=0; i < 0x20; i++)
{
data = proms[i];
- palette_set_color_rgb(machine, i + 0x80, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6));
+ palette_set_color_rgb(machine(), i + 0x80, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6));
}
}
@@ -6035,10 +6035,10 @@ static MACHINE_CONFIG_START( chrygld, goldstar_state )
MCFG_GFXDECODE(chry10)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(cm)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(goldstar)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6077,10 +6077,10 @@ static MACHINE_CONFIG_START( cb3c, goldstar_state )
MCFG_GFXDECODE(cb3c)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(cm)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(goldstar)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6118,11 +6118,11 @@ static MACHINE_CONFIG_START( ncb3, goldstar_state )
MCFG_GFXDECODE(ncb3)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(cm)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(goldstar)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6159,10 +6159,10 @@ static MACHINE_CONFIG_START( cm, goldstar_state )
MCFG_GFXDECODE(cmbitmap)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(cm)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(cherrym)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6199,10 +6199,10 @@ static MACHINE_CONFIG_START( cmnobmp, goldstar_state )
MCFG_GFXDECODE(cm)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(cm)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(cherrym)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6234,10 +6234,10 @@ static MACHINE_CONFIG_START( cmast91, goldstar_state )
MCFG_GFXDECODE(cmast91)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(cmast91)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cmast91)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(cherrym)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6273,14 +6273,14 @@ static MACHINE_CONFIG_START( lucky8, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_PALETTE_INIT(lucky8)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
MCFG_SCREEN_UPDATE_STATIC(goldstar)
MCFG_GFXDECODE(ncb3)
MCFG_PALETTE_LENGTH(256)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(goldstar)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6313,14 +6313,14 @@ static MACHINE_CONFIG_START( bingowng, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_PALETTE_INIT(lucky8)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
MCFG_SCREEN_UPDATE_STATIC(bingowng)
MCFG_GFXDECODE(ncb3)
MCFG_PALETTE_LENGTH(256)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(bingowng)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,bingowng)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6353,14 +6353,14 @@ static MACHINE_CONFIG_START( bingownga, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_PALETTE_INIT(lucky8)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
MCFG_SCREEN_UPDATE_STATIC(bingowng)
MCFG_GFXDECODE(bingownga) /* GFX Decode is the only difference with the parent machine */
MCFG_PALETTE_LENGTH(256)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(bingowng)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,bingowng)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6374,20 +6374,20 @@ static MACHINE_CONFIG_START( bingownga, goldstar_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
-static PALETTE_INIT(magodds)
+PALETTE_INIT_MEMBER(goldstar_state,magodds)
{
int i;
for (i = 0; i < 0x100; i++)
{
int r,g,b;
- UINT8*proms = machine.root_device().memregion("proms")->base();
+ UINT8*proms = machine().root_device().memregion("proms")->base();
b = proms[0x000 + i] << 4;
g = proms[0x100 + i] << 4;
r = proms[0x200 + i] << 4;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -6411,13 +6411,13 @@ static MACHINE_CONFIG_START( magodds, goldstar_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(magical)
- MCFG_PALETTE_INIT(magodds)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,magodds)
MCFG_GFXDECODE(magodds)
MCFG_PALETTE_LENGTH(256)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(magical)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,magical)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6453,12 +6453,12 @@ static MACHINE_CONFIG_START( kkotnoli, goldstar_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(goldstar)
- MCFG_PALETTE_INIT(lucky8)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
MCFG_GFXDECODE(ncb3)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(goldstar)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6489,13 +6489,13 @@ static MACHINE_CONFIG_START( ladylinr, goldstar_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(goldstar)
- MCFG_PALETTE_INIT(lucky8)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
MCFG_GFXDECODE(ncb3)
MCFG_PALETTE_LENGTH(256)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(goldstar)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")//set up a standard mono speaker called 'mono'
@@ -6530,13 +6530,13 @@ static MACHINE_CONFIG_START( wcat3, goldstar_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(goldstar)
- MCFG_PALETTE_INIT(lucky8)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
MCFG_GFXDECODE(ncb3)
MCFG_PALETTE_LENGTH(256)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(goldstar)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6575,10 +6575,10 @@ static MACHINE_CONFIG_START( amcoe1, goldstar_state )
MCFG_GFXDECODE(cm)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(cm)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(cherrym)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6614,10 +6614,10 @@ static MACHINE_CONFIG_START( amcoe1a, goldstar_state )
MCFG_GFXDECODE(cm)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(cm)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(cherrym)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6653,10 +6653,10 @@ static MACHINE_CONFIG_START( amcoe2, goldstar_state )
MCFG_GFXDECODE(cm)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(cm)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(cherrym)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6687,10 +6687,10 @@ static MACHINE_CONFIG_START( nfm, goldstar_state )
MCFG_GFXDECODE(nfm)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(cm)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(cherrym)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6721,7 +6721,7 @@ static MACHINE_CONFIG_START( unkch, goldstar_state )
//MCFG_NVRAM_HANDLER(goldstar)
- MCFG_VIDEO_START(unkch)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,unkch)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -6766,10 +6766,10 @@ static MACHINE_CONFIG_START( pkrmast, goldstar_state )
MCFG_GFXDECODE(pkrmast)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(cm)
+ MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_START(cherrym)
+ MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gomoku.c b/src/mame/drivers/gomoku.c
index 13ea576f474..06dd3fe148a 100644
--- a/src/mame/drivers/gomoku.c
+++ b/src/mame/drivers/gomoku.c
@@ -134,8 +134,6 @@ static MACHINE_CONFIG_START( gomoku, gomoku_state )
MCFG_GFXDECODE(gomoku)
MCFG_PALETTE_LENGTH(64)
- MCFG_PALETTE_INIT(gomoku)
- MCFG_VIDEO_START(gomoku)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/good.c b/src/mame/drivers/good.c
index 2970ebc53a0..b82548d2b27 100644
--- a/src/mame/drivers/good.c
+++ b/src/mame/drivers/good.c
@@ -56,6 +56,7 @@ public:
DECLARE_WRITE16_MEMBER(bg_tilemapram_w);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void video_start();
};
@@ -87,12 +88,11 @@ TILE_GET_INFO_MEMBER(good_state::get_bg_tile_info)
-static VIDEO_START( good )
+void good_state::video_start()
{
- good_state *state = machine.driver_data<good_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(good_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(good_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- state->m_fg_tilemap->set_transparent_pen(0xf);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(good_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(good_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap->set_transparent_pen(0xf);
}
static SCREEN_UPDATE_IND16( good )
@@ -292,7 +292,6 @@ static MACHINE_CONFIG_START( good, good_state )
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(good)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/gotcha.c b/src/mame/drivers/gotcha.c
index 497f2e246a1..9cf864b9987 100644
--- a/src/mame/drivers/gotcha.c
+++ b/src/mame/drivers/gotcha.c
@@ -250,29 +250,27 @@ static const ym2151_interface ym2151_config =
};
-static MACHINE_START( gotcha )
+void gotcha_state::machine_start()
{
- gotcha_state *state = machine.driver_data<gotcha_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_banksel));
- state->save_item(NAME(state->m_gfxbank));
- state->save_item(NAME(state->m_scroll));
+ save_item(NAME(m_banksel));
+ save_item(NAME(m_gfxbank));
+ save_item(NAME(m_scroll));
}
-static MACHINE_RESET( gotcha )
+void gotcha_state::machine_reset()
{
- gotcha_state *state = machine.driver_data<gotcha_state>();
int i;
for (i = 0; i < 4; i++)
{
- state->m_gfxbank[i] = 0;
- state->m_scroll[i] = 0;
+ m_gfxbank[i] = 0;
+ m_scroll[i] = 0;
}
- state->m_banksel = 0;
+ m_banksel = 0;
}
static MACHINE_CONFIG_START( gotcha, gotcha_state )
@@ -286,8 +284,6 @@ static MACHINE_CONFIG_START( gotcha, gotcha_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
// MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse)
- MCFG_MACHINE_START(gotcha)
- MCFG_MACHINE_RESET(gotcha)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -300,7 +296,6 @@ static MACHINE_CONFIG_START( gotcha, gotcha_state )
MCFG_GFXDECODE(gotcha)
MCFG_PALETTE_LENGTH(768)
- MCFG_VIDEO_START(gotcha)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 1);
diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c
index ad2bb2ef644..a5c9fbae0d2 100644
--- a/src/mame/drivers/gottlieb.c
+++ b/src/mame/drivers/gottlieb.c
@@ -234,52 +234,50 @@ static TIMER_CALLBACK( laserdisc_philips_callback );
*
*************************************/
-static MACHINE_START( gottlieb )
+void gottlieb_state::machine_start()
{
- gottlieb_state *state = machine.driver_data<gottlieb_state>();
/* register for save states */
- state_save_register_global(machine, state->m_joystick_select);
- state_save_register_global_array(machine, state->m_track);
+ state_save_register_global(machine(), m_joystick_select);
+ state_save_register_global_array(machine(), m_track);
/* see if we have a laserdisc */
- if (state->m_laserdisc != NULL)
+ if (m_laserdisc != NULL)
{
/* attach to the I/O ports */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x05805, 0x05807, 0, 0x07f8, read8_delegate(FUNC(gottlieb_state::laserdisc_status_r),state));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x05805, 0x05805, 0, 0x07f8, write8_delegate(FUNC(gottlieb_state::laserdisc_command_w),state)); /* command for the player */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x05806, 0x05806, 0, 0x07f8, write8_delegate(FUNC(gottlieb_state::laserdisc_select_w),state));
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x05805, 0x05807, 0, 0x07f8, read8_delegate(FUNC(gottlieb_state::laserdisc_status_r),this));
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x05805, 0x05805, 0, 0x07f8, write8_delegate(FUNC(gottlieb_state::laserdisc_command_w),this)); /* command for the player */
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x05806, 0x05806, 0, 0x07f8, write8_delegate(FUNC(gottlieb_state::laserdisc_select_w),this));
/* allocate a timer for serial transmission, and one for philips code processing */
- state->m_laserdisc_bit_timer = machine.scheduler().timer_alloc(FUNC(laserdisc_bit_callback));
- state->m_laserdisc_philips_timer = machine.scheduler().timer_alloc(FUNC(laserdisc_philips_callback));
+ m_laserdisc_bit_timer = machine().scheduler().timer_alloc(FUNC(laserdisc_bit_callback));
+ m_laserdisc_philips_timer = machine().scheduler().timer_alloc(FUNC(laserdisc_philips_callback));
/* create some audio RAM */
- state->m_laserdisc_audio_buffer = auto_alloc_array(machine, UINT8, AUDIORAM_SIZE);
- state->m_laserdisc_status = 0x38;
+ m_laserdisc_audio_buffer = auto_alloc_array(machine(), UINT8, AUDIORAM_SIZE);
+ m_laserdisc_status = 0x38;
/* more save state registration */
- state_save_register_global(machine, state->m_laserdisc_select);
- state_save_register_global(machine, state->m_laserdisc_status);
- state_save_register_global(machine, state->m_laserdisc_philips_code);
-
- state_save_register_global_pointer(machine, state->m_laserdisc_audio_buffer, AUDIORAM_SIZE);
- state_save_register_global(machine, state->m_laserdisc_audio_address);
- state_save_register_global_array(machine, state->m_laserdisc_last_samples);
- state_save_register_global(machine, state->m_laserdisc_last_time);
- state_save_register_global(machine, state->m_laserdisc_last_clock);
- state_save_register_global(machine, state->m_laserdisc_zero_seen);
- state_save_register_global(machine, state->m_laserdisc_audio_bits);
- state_save_register_global(machine, state->m_laserdisc_audio_bit_count);
+ state_save_register_global(machine(), m_laserdisc_select);
+ state_save_register_global(machine(), m_laserdisc_status);
+ state_save_register_global(machine(), m_laserdisc_philips_code);
+
+ state_save_register_global_pointer(machine(), m_laserdisc_audio_buffer, AUDIORAM_SIZE);
+ state_save_register_global(machine(), m_laserdisc_audio_address);
+ state_save_register_global_array(machine(), m_laserdisc_last_samples);
+ state_save_register_global(machine(), m_laserdisc_last_time);
+ state_save_register_global(machine(), m_laserdisc_last_clock);
+ state_save_register_global(machine(), m_laserdisc_zero_seen);
+ state_save_register_global(machine(), m_laserdisc_audio_bits);
+ state_save_register_global(machine(), m_laserdisc_audio_bit_count);
}
}
-static MACHINE_RESET( gottlieb )
+void gottlieb_state::machine_reset()
{
- gottlieb_state *state = machine.driver_data<gottlieb_state>();
/* if we have a laserdisc, reset our philips code callback for the next line 17 */
- if (state->m_laserdisc != NULL)
- state->m_laserdisc_philips_timer->adjust(machine.primary_screen->time_until_pos(17), 17);
+ if (m_laserdisc != NULL)
+ m_laserdisc_philips_timer->adjust(machine().primary_screen->time_until_pos(17), 17);
}
@@ -1715,8 +1713,6 @@ static MACHINE_CONFIG_START( gottlieb_core, gottlieb_state )
MCFG_CPU_PROGRAM_MAP(gottlieb_map)
MCFG_CPU_VBLANK_INT("screen", gottlieb_interrupt)
- MCFG_MACHINE_START(gottlieb)
- MCFG_MACHINE_RESET(gottlieb)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_WATCHDOG_VBLANK_INIT(16)
@@ -1728,7 +1724,6 @@ static MACHINE_CONFIG_START( gottlieb_core, gottlieb_state )
MCFG_GFXDECODE(gfxdecode)
MCFG_PALETTE_LENGTH(16)
- MCFG_VIDEO_START(gottlieb)
// basic speaker configuration
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1825,7 +1820,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( screwloo, gottlieb2 )
- MCFG_VIDEO_START(screwloo)
+ MCFG_VIDEO_START_OVERRIDE(gottlieb_state,screwloo)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cobram3, gottlieb_core )
diff --git a/src/mame/drivers/gotya.c b/src/mame/drivers/gotya.c
index 3f6ca9ba81c..aeba686389f 100644
--- a/src/mame/drivers/gotya.c
+++ b/src/mame/drivers/gotya.c
@@ -174,22 +174,20 @@ static const samples_interface gotya_samples_interface =
};
-static MACHINE_START( gotya )
+void gotya_state::machine_start()
{
- gotya_state *state = machine.driver_data<gotya_state>();
- state->m_samples = machine.device<samples_device>("samples");
+ m_samples = machine().device<samples_device>("samples");
- state->save_item(NAME(state->m_scroll_bit_8));
- state->save_item(NAME(state->m_theme_playing));
+ save_item(NAME(m_scroll_bit_8));
+ save_item(NAME(m_theme_playing));
}
-static MACHINE_RESET( gotya )
+void gotya_state::machine_reset()
{
- gotya_state *state = machine.driver_data<gotya_state>();
- state->m_scroll_bit_8 = 0;
- state->m_theme_playing = 0;
+ m_scroll_bit_8 = 0;
+ m_theme_playing = 0;
}
static MACHINE_CONFIG_START( gotya, gotya_state )
@@ -199,8 +197,6 @@ static MACHINE_CONFIG_START( gotya, gotya_state )
MCFG_CPU_PROGRAM_MAP(gotya_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(gotya)
- MCFG_MACHINE_RESET(gotya)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -213,8 +209,6 @@ static MACHINE_CONFIG_START( gotya, gotya_state )
MCFG_GFXDECODE(gotya)
MCFG_PALETTE_LENGTH(16*4)
- MCFG_PALETTE_INIT(gotya)
- MCFG_VIDEO_START(gotya)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gpworld.c b/src/mame/drivers/gpworld.c
index f0863757abb..bff4fc68c52 100644
--- a/src/mame/drivers/gpworld.c
+++ b/src/mame/drivers/gpworld.c
@@ -70,6 +70,7 @@ public:
DECLARE_WRITE8_MEMBER(brake_gas_write);
DECLARE_WRITE8_MEMBER(palette_write);
DECLARE_DRIVER_INIT(gpworld);
+ virtual void machine_start();
};
@@ -233,7 +234,7 @@ static SCREEN_UPDATE_RGB32( gpworld )
}
-static MACHINE_START( gpworld )
+void gpworld_state::machine_start()
{
}
@@ -467,7 +468,6 @@ static MACHINE_CONFIG_START( gpworld, gpworld_state )
MCFG_CPU_IO_MAP(mainport)
MCFG_CPU_VBLANK_INT("screen", vblank_callback_gpworld)
- MCFG_MACHINE_START(gpworld)
MCFG_LASERDISC_LDV1000_ADD("laserdisc")
MCFG_LASERDISC_OVERLAY_STATIC(512, 256, gpworld)
diff --git a/src/mame/drivers/gradius3.c b/src/mame/drivers/gradius3.c
index b5526c3a2f6..9c9fb15217a 100644
--- a/src/mame/drivers/gradius3.c
+++ b/src/mame/drivers/gradius3.c
@@ -286,31 +286,29 @@ static const k051960_interface gradius3_k051960_intf =
gradius3_sprite_callback
};
-static MACHINE_START( gradius3 )
+void gradius3_state::machine_start()
{
- gradius3_state *state = machine.driver_data<gradius3_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
- state->m_k007232 = machine.device("k007232");
- state->m_k052109 = machine.device("k052109");
- state->m_k051960 = machine.device("k051960");
-
- state->save_item(NAME(state->m_irqAen));
- state->save_item(NAME(state->m_irqBmask));
- state->save_item(NAME(state->m_priority));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_subcpu = machine().device<cpu_device>("sub");
+ m_k007232 = machine().device("k007232");
+ m_k052109 = machine().device("k052109");
+ m_k051960 = machine().device("k051960");
+
+ save_item(NAME(m_irqAen));
+ save_item(NAME(m_irqBmask));
+ save_item(NAME(m_priority));
}
-static MACHINE_RESET( gradius3 )
+void gradius3_state::machine_reset()
{
- gradius3_state *state = machine.driver_data<gradius3_state>();
/* start with cpu B halted */
- machine.device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- state->m_irqAen = 0;
- state->m_irqBmask = 0;
- state->m_priority = 0;
+ machine().device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ m_irqAen = 0;
+ m_irqBmask = 0;
+ m_priority = 0;
}
@@ -332,8 +330,6 @@ static MACHINE_CONFIG_START( gradius3, gradius3_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(gradius3)
- MCFG_MACHINE_RESET(gradius3)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -347,7 +343,6 @@ static MACHINE_CONFIG_START( gradius3, gradius3_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(gradius3)
MCFG_K052109_ADD("k052109", gradius3_k052109_intf)
MCFG_K051960_ADD("k051960", gradius3_k051960_intf)
diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c
index aef3d461429..27630996797 100644
--- a/src/mame/drivers/grchamp.c
+++ b/src/mame/drivers/grchamp.c
@@ -76,10 +76,10 @@
*
*************************************/
-static MACHINE_RESET( grchamp )
+void grchamp_state::machine_reset()
{
/* if the coin system is 1 way, lock Coin B (Page 40) */
- coin_lockout_w(machine, 1, (machine.root_device().ioport("DSWB")->read() & 0x10) ? 1 : 0);
+ coin_lockout_w(machine(), 1, (machine().root_device().ioport("DSWB")->read() & 0x10) ? 1 : 0);
}
@@ -684,7 +684,6 @@ static MACHINE_CONFIG_START( grchamp, grchamp_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, (double)SOUND_CLOCK/4/16/16/10/16)
- MCFG_MACHINE_RESET(grchamp)
MCFG_WATCHDOG_VBLANK_INIT(8)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
@@ -696,8 +695,6 @@ static MACHINE_CONFIG_START( grchamp, grchamp_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(grchamp)
- MCFG_PALETTE_INIT(grchamp)
- MCFG_VIDEO_START(grchamp)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gridlee.c b/src/mame/drivers/gridlee.c
index 1bb0de44aa7..92ed64372b2 100644
--- a/src/mame/drivers/gridlee.c
+++ b/src/mame/drivers/gridlee.c
@@ -139,30 +139,28 @@ static TIMER_CALLBACK( firq_timer_tick )
state->m_firq_off->adjust(machine.primary_screen->time_until_pos(FIRQ_SCANLINE, GRIDLEE_HBSTART));
}
-static MACHINE_START( gridlee )
+void gridlee_state::machine_start()
{
- gridlee_state *state = machine.driver_data<gridlee_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
/* create the polynomial tables */
- poly17_init(machine);
+ poly17_init(machine());
- state_save_register_global_array(machine, state->m_last_analog_input);
- state_save_register_global_array(machine, state->m_last_analog_output);
+ state_save_register_global_array(machine(), m_last_analog_input);
+ state_save_register_global_array(machine(), m_last_analog_output);
- state->m_irq_off = machine.scheduler().timer_alloc(FUNC(irq_off_tick));
- state->m_irq_timer = machine.scheduler().timer_alloc(FUNC(irq_timer_tick));
- state->m_firq_off = machine.scheduler().timer_alloc(FUNC(firq_off_tick));
- state->m_firq_timer = machine.scheduler().timer_alloc(FUNC(firq_timer_tick));
+ m_irq_off = machine().scheduler().timer_alloc(FUNC(irq_off_tick));
+ m_irq_timer = machine().scheduler().timer_alloc(FUNC(irq_timer_tick));
+ m_firq_off = machine().scheduler().timer_alloc(FUNC(firq_off_tick));
+ m_firq_timer = machine().scheduler().timer_alloc(FUNC(firq_timer_tick));
}
-static MACHINE_RESET( gridlee )
+void gridlee_state::machine_reset()
{
- gridlee_state *state = machine.driver_data<gridlee_state>();
/* start timers to generate interrupts */
- state->m_irq_timer->adjust(machine.primary_screen->time_until_pos(0));
- state->m_firq_timer->adjust(machine.primary_screen->time_until_pos(FIRQ_SCANLINE));
+ m_irq_timer->adjust(machine().primary_screen->time_until_pos(0));
+ m_firq_timer->adjust(machine().primary_screen->time_until_pos(FIRQ_SCANLINE));
}
@@ -429,8 +427,6 @@ static MACHINE_CONFIG_START( gridlee, gridlee_state )
MCFG_CPU_ADD("maincpu", M6809, GRIDLEE_CPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(cpu1_map)
- MCFG_MACHINE_START(gridlee)
- MCFG_MACHINE_RESET(gridlee)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -440,8 +436,6 @@ static MACHINE_CONFIG_START( gridlee, gridlee_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_PALETTE_INIT(gridlee)
- MCFG_VIDEO_START(gridlee)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/groundfx.c b/src/mame/drivers/groundfx.c
index 6ad3509cdde..3c997649dfc 100644
--- a/src/mame/drivers/groundfx.c
+++ b/src/mame/drivers/groundfx.c
@@ -381,7 +381,6 @@ static MACHINE_CONFIG_START( groundfx, groundfx_state )
MCFG_GFXDECODE(groundfx)
MCFG_PALETTE_LENGTH(16384)
- MCFG_VIDEO_START(groundfx)
MCFG_TC0100SCN_ADD("tc0100scn", groundfx_tc0100scn_intf)
MCFG_TC0480SCP_ADD("tc0480scp", groundfx_tc0480scp_intf)
diff --git a/src/mame/drivers/gstream.c b/src/mame/drivers/gstream.c
index 36a6cda47af..56c3fa60f2a 100644
--- a/src/mame/drivers/gstream.c
+++ b/src/mame/drivers/gstream.c
@@ -180,6 +180,9 @@ public:
TILE_GET_INFO_MEMBER(get_gs1_tile_info);
TILE_GET_INFO_MEMBER(get_gs2_tile_info);
TILE_GET_INFO_MEMBER(get_gs3_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -467,15 +470,14 @@ TILE_GET_INFO_MEMBER(gstream_state::get_gs3_tile_info)
}
-static VIDEO_START(gstream)
+void gstream_state::video_start()
{
- gstream_state *state = machine.driver_data<gstream_state>();
- state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gstream_state::get_gs1_tile_info),state), TILEMAP_SCAN_ROWS, 32, 32, 16, 16);
- state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gstream_state::get_gs2_tile_info),state), TILEMAP_SCAN_ROWS, 32, 32, 16, 16);
- state->m_tilemap3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gstream_state::get_gs3_tile_info),state), TILEMAP_SCAN_ROWS, 32, 32, 16, 16);
+ m_tilemap1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gstream_state::get_gs1_tile_info),this), TILEMAP_SCAN_ROWS, 32, 32, 16, 16);
+ m_tilemap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gstream_state::get_gs2_tile_info),this), TILEMAP_SCAN_ROWS, 32, 32, 16, 16);
+ m_tilemap3 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gstream_state::get_gs3_tile_info),this), TILEMAP_SCAN_ROWS, 32, 32, 16, 16);
- state->m_tilemap1->set_transparent_pen(0);
- state->m_tilemap2->set_transparent_pen(0);
+ m_tilemap1->set_transparent_pen(0);
+ m_tilemap2->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16(gstream)
@@ -531,32 +533,30 @@ static SCREEN_UPDATE_IND16(gstream)
}
-static MACHINE_START( gstream )
+void gstream_state::machine_start()
{
- gstream_state *state = machine.driver_data<gstream_state>();
-
- state->save_item(NAME(state->m_tmap1_scrollx));
- state->save_item(NAME(state->m_tmap2_scrollx));
- state->save_item(NAME(state->m_tmap3_scrollx));
- state->save_item(NAME(state->m_tmap1_scrolly));
- state->save_item(NAME(state->m_tmap2_scrolly));
- state->save_item(NAME(state->m_tmap3_scrolly));
- state->save_item(NAME(state->m_oki_bank_1));
- state->save_item(NAME(state->m_oki_bank_2));
+
+ save_item(NAME(m_tmap1_scrollx));
+ save_item(NAME(m_tmap2_scrollx));
+ save_item(NAME(m_tmap3_scrollx));
+ save_item(NAME(m_tmap1_scrolly));
+ save_item(NAME(m_tmap2_scrolly));
+ save_item(NAME(m_tmap3_scrolly));
+ save_item(NAME(m_oki_bank_1));
+ save_item(NAME(m_oki_bank_2));
}
-static MACHINE_RESET( gstream )
+void gstream_state::machine_reset()
{
- gstream_state *state = machine.driver_data<gstream_state>();
-
- state->m_tmap1_scrollx = 0;
- state->m_tmap2_scrollx = 0;
- state->m_tmap3_scrollx = 0;
- state->m_tmap1_scrolly = 0;
- state->m_tmap2_scrolly = 0;
- state->m_tmap3_scrolly = 0;
- state->m_oki_bank_1 = 0;
- state->m_oki_bank_2 = 0;
+
+ m_tmap1_scrollx = 0;
+ m_tmap2_scrollx = 0;
+ m_tmap3_scrollx = 0;
+ m_tmap1_scrolly = 0;
+ m_tmap2_scrolly = 0;
+ m_tmap3_scrolly = 0;
+ m_oki_bank_1 = 0;
+ m_oki_bank_2 = 0;
}
static MACHINE_CONFIG_START( gstream, gstream_state )
@@ -567,8 +567,6 @@ static MACHINE_CONFIG_START( gstream, gstream_state )
MCFG_CPU_IO_MAP(gstream_io)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(gstream)
- MCFG_MACHINE_RESET(gstream)
MCFG_NVRAM_ADD_1FILL("nvram")
@@ -583,7 +581,6 @@ static MACHINE_CONFIG_START( gstream, gstream_state )
MCFG_PALETTE_LENGTH(0x1000 + 0x400 + 0x400 + 0x400) // sprites + 3 bg layers
MCFG_GFXDECODE(gstream)
- MCFG_VIDEO_START(gstream)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gstriker.c b/src/mame/drivers/gstriker.c
index e8d4bf29244..27156a429fd 100644
--- a/src/mame/drivers/gstriker.c
+++ b/src/mame/drivers/gstriker.c
@@ -560,7 +560,7 @@ static MACHINE_CONFIG_START( gstriker, gstriker_state )
MCFG_GFXDECODE(gstriker)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(gstriker)
+ MCFG_VIDEO_START_OVERRIDE(gstriker_state,gstriker)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -573,7 +573,7 @@ static MACHINE_CONFIG_START( gstriker, gstriker_state )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( twrldc94, gstriker )
- MCFG_VIDEO_START( twrldc94 )
+ MCFG_VIDEO_START_OVERRIDE(gstriker_state, twrldc94 )
MACHINE_CONFIG_END
@@ -598,7 +598,7 @@ static MACHINE_CONFIG_START( vgoal, gstriker_state )
MCFG_GFXDECODE(gstriker)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(vgoalsoc)
+ MCFG_VIDEO_START_OVERRIDE(gstriker_state,vgoalsoc)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/gsword.c b/src/mame/drivers/gsword.c
index 185b5030227..d28e1792065 100644
--- a/src/mame/drivers/gsword.c
+++ b/src/mame/drivers/gsword.c
@@ -228,22 +228,21 @@ static const struct TAITO8741interface gsword_8741interface=
{ "DSW2","DSW1",NULL,NULL }
};
-static MACHINE_RESET( gsword )
+MACHINE_RESET_MEMBER(gsword_state,gsword)
{
- gsword_state *state = machine.driver_data<gsword_state>();
int i;
for(i=0;i<4;i++) TAITO8741_reset(i);
- state->m_coins = 0;
+ m_coins = 0;
/* snd CPU mask NMI during reset phase */
- state->m_nmi_enable = 0;
- state->m_protect_hack = 0;
+ m_nmi_enable = 0;
+ m_protect_hack = 0;
TAITO8741_start(&gsword_8741interface);
}
-static MACHINE_RESET( josvolly )
+MACHINE_RESET_MEMBER(gsword_state,josvolly)
{
josvolly_8741_reset();
}
@@ -674,7 +673,7 @@ static MACHINE_CONFIG_START( gsword, gsword_state )
MCFG_QUANTUM_TIME(attotime::from_hz(12000)) /* Allow time for 2nd cpu to interleave*/
- MCFG_MACHINE_RESET(gsword)
+ MCFG_MACHINE_RESET_OVERRIDE(gsword_state,gsword)
#if 1
/* to MCU timeout champbbj */
@@ -692,8 +691,7 @@ static MACHINE_CONFIG_START( gsword, gsword_state )
MCFG_GFXDECODE(gsword)
MCFG_PALETTE_LENGTH(64*4+64*4)
- MCFG_PALETTE_INIT(gsword)
- MCFG_VIDEO_START(gsword)
+ MCFG_PALETTE_INIT_OVERRIDE(gsword_state,gsword)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -723,7 +721,7 @@ static MACHINE_CONFIG_START( josvolly, gsword_state )
MCFG_CPU_IO_MAP(josvolly_cpu2_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_RESET(josvolly)
+ MCFG_MACHINE_RESET_OVERRIDE(gsword_state,josvolly)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -736,8 +734,7 @@ static MACHINE_CONFIG_START( josvolly, gsword_state )
MCFG_GFXDECODE(gsword)
MCFG_PALETTE_LENGTH(64*4+64*4)
- MCFG_PALETTE_INIT(josvolly)
- MCFG_VIDEO_START(gsword)
+ MCFG_PALETTE_INIT_OVERRIDE(gsword_state,josvolly)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gticlub.c b/src/mame/drivers/gticlub.c
index dbb4126ea45..48f2bb193b8 100644
--- a/src/mame/drivers/gticlub.c
+++ b/src/mame/drivers/gticlub.c
@@ -260,6 +260,9 @@ public:
DECLARE_WRITE32_MEMBER(dsp_dataram1_w);
DECLARE_DRIVER_INIT(hangplt);
DECLARE_DRIVER_INIT(gticlub);
+ DECLARE_MACHINE_START(gticlub);
+ DECLARE_MACHINE_RESET(gticlub);
+ DECLARE_MACHINE_RESET(hangplt);
};
@@ -405,15 +408,14 @@ WRITE8_MEMBER(gticlub_state::sysreg_w)
/******************************************************************/
-static MACHINE_START( gticlub )
+MACHINE_START_MEMBER(gticlub_state,gticlub)
{
- gticlub_state *state = machine.driver_data<gticlub_state>();
/* set conservative DRC options */
- ppcdrc_set_options(machine.device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
+ ppcdrc_set_options(machine().device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
/* configure fast RAM regions for DRC */
- ppcdrc_add_fastram(machine.device("maincpu"), 0x00000000, 0x000fffff, FALSE, state->m_work_ram);
+ ppcdrc_add_fastram(machine().device("maincpu"), 0x00000000, 0x000fffff, FALSE, m_work_ram);
}
static ADDRESS_MAP_START( gticlub_map, AS_PROGRAM, 32, gticlub_state )
@@ -795,9 +797,9 @@ static const k001604_interface hangplt_k001604_intf_r =
};
-static MACHINE_RESET( gticlub )
+MACHINE_RESET_MEMBER(gticlub_state,gticlub)
{
- machine.device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
static MACHINE_CONFIG_START( gticlub, gticlub_state )
@@ -818,8 +820,8 @@ static MACHINE_CONFIG_START( gticlub, gticlub_state )
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
- MCFG_MACHINE_START(gticlub)
- MCFG_MACHINE_RESET(gticlub)
+ MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub)
+ MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,gticlub)
MCFG_ADC1038_ADD("adc1038", gticlub_adc1038_intf)
@@ -876,10 +878,10 @@ static const k033906_interface hangplt_k033906_intf_1 =
"voodoo1"
};
-static MACHINE_RESET( hangplt )
+MACHINE_RESET_MEMBER(gticlub_state,hangplt)
{
- machine.device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- machine.device("dsp2")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("dsp2")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
static const voodoo_config voodoo_l_intf =
@@ -925,8 +927,8 @@ static MACHINE_CONFIG_START( hangplt, gticlub_state )
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
- MCFG_MACHINE_START(gticlub)
- MCFG_MACHINE_RESET(hangplt)
+ MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub)
+ MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,hangplt)
MCFG_ADC1038_ADD("adc1038", thunderh_adc1038_intf)
MCFG_K056230_ADD("k056230", gticlub_k056230_intf)
diff --git a/src/mame/drivers/guab.c b/src/mame/drivers/guab.c
index b31de36ddaa..dd6d6cf2b9d 100644
--- a/src/mame/drivers/guab.c
+++ b/src/mame/drivers/guab.c
@@ -95,6 +95,9 @@ public:
DECLARE_WRITE16_MEMBER(io_w);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
DECLARE_WRITE_LINE_MEMBER(ptm_irq);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -249,9 +252,9 @@ READ16_MEMBER(guab_state::ef9369_r)
}
-static VIDEO_START( guab )
+void guab_state::video_start()
{
- tms34061_start(machine, &tms34061intf);
+ tms34061_start(machine(), &tms34061intf);
}
@@ -799,16 +802,14 @@ static const sn76496_config psg_intf =
*
*************************************/
- static MACHINE_START( guab )
+void guab_state::machine_start()
{
- guab_state *state = machine.driver_data<guab_state>();
- state->m_fdc_timer = machine.scheduler().timer_alloc(FUNC(fdc_data_callback));
+ m_fdc_timer = machine().scheduler().timer_alloc(FUNC(fdc_data_callback));
}
-static MACHINE_RESET( guab )
+void guab_state::machine_reset()
{
- guab_state *state = machine.driver_data<guab_state>();
- memset(&state->m_fdc, 0, sizeof(state->m_fdc));
+ memset(&m_fdc, 0, sizeof(m_fdc));
}
static MACHINE_CONFIG_START( guab, guab_state )
@@ -816,8 +817,6 @@ static MACHINE_CONFIG_START( guab, guab_state )
MCFG_CPU_ADD("maincpu", M68000, 8000000)
MCFG_CPU_PROGRAM_MAP(guab_map)
- MCFG_MACHINE_START(guab)
- MCFG_MACHINE_RESET(guab)
/* TODO: Use real video timings */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -829,7 +828,6 @@ static MACHINE_CONFIG_START( guab, guab_state )
MCFG_PALETTE_LENGTH(16)
- MCFG_VIDEO_START(guab)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gumbo.c b/src/mame/drivers/gumbo.c
index d4926de5f50..c6fed404be9 100644
--- a/src/mame/drivers/gumbo.c
+++ b/src/mame/drivers/gumbo.c
@@ -244,7 +244,6 @@ static MACHINE_CONFIG_START( gumbo, gumbo_state )
MCFG_PALETTE_LENGTH(0x200)
- MCFG_VIDEO_START(gumbo)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/gunbustr.c b/src/mame/drivers/gunbustr.c
index ec6f2a281a5..b90ebcff0d8 100644
--- a/src/mame/drivers/gunbustr.c
+++ b/src/mame/drivers/gunbustr.c
@@ -320,7 +320,6 @@ static MACHINE_CONFIG_START( gunbustr, gunbustr_state )
MCFG_GFXDECODE(gunbustr)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(gunbustr)
MCFG_TC0480SCP_ADD("tc0480scp", gunbustr_tc0480scp_intf)
diff --git a/src/mame/drivers/gundealr.c b/src/mame/drivers/gundealr.c
index e62126c6d19..760554e6be9 100644
--- a/src/mame/drivers/gundealr.c
+++ b/src/mame/drivers/gundealr.c
@@ -361,26 +361,24 @@ GFXDECODE_END
-static MACHINE_START( gundealr )
+void gundealr_state::machine_start()
{
- gundealr_state *state = machine.driver_data<gundealr_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_scroll));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_scroll));
}
-static MACHINE_RESET( gundealr )
+void gundealr_state::machine_reset()
{
- gundealr_state *state = machine.driver_data<gundealr_state>();
- state->m_flipscreen = 0;
- state->m_scroll[0] = 0;
- state->m_scroll[1] = 0;
- state->m_scroll[2] = 0;
- state->m_scroll[3] = 0;
+ m_flipscreen = 0;
+ m_scroll[0] = 0;
+ m_scroll[1] = 0;
+ m_scroll[2] = 0;
+ m_scroll[3] = 0;
}
static TIMER_DEVICE_CALLBACK( gundealr_scanline )
@@ -414,8 +412,6 @@ static MACHINE_CONFIG_START( gundealr, gundealr_state )
MCFG_CPU_IO_MAP(main_portmap)
MCFG_TIMER_ADD_SCANLINE("scantimer", gundealr_scanline, "screen", 0, 1)
- MCFG_MACHINE_START(gundealr)
- MCFG_MACHINE_RESET(gundealr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -428,7 +424,6 @@ static MACHINE_CONFIG_START( gundealr, gundealr_state )
MCFG_GFXDECODE(gundealr)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(gundealr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gunpey.c b/src/mame/drivers/gunpey.c
index c04f510d10c..51ba42a9e88 100644
--- a/src/mame/drivers/gunpey.c
+++ b/src/mame/drivers/gunpey.c
@@ -92,13 +92,14 @@ public:
DECLARE_READ8_MEMBER(gunpey_inputs_r);
DECLARE_WRITE8_MEMBER(gunpey_blitter_w);
DECLARE_DRIVER_INIT(gunpey);
+ virtual void video_start();
+ virtual void palette_init();
};
-static VIDEO_START( gunpey )
+void gunpey_state::video_start()
{
- gunpey_state *state = machine.driver_data<gunpey_state>();
- state->m_blit_buffer = auto_alloc_array(machine, UINT16, 512*512);
+ m_blit_buffer = auto_alloc_array(machine(), UINT16, 512*512);
}
static SCREEN_UPDATE_RGB32( gunpey )
@@ -333,10 +334,10 @@ INPUT_PORTS_END
/***************************************************************************************/
/* test hack */
-static PALETTE_INIT( gunpey )
+void gunpey_state::palette_init()
{
int i,r,g,b,val;
- UINT8 *blit_rom = machine.root_device().memregion("blit_data")->base();
+ UINT8 *blit_rom = machine().root_device().memregion("blit_data")->base();
for (i = 0; i < 512; i+=2)
{
@@ -349,7 +350,7 @@ static PALETTE_INIT( gunpey )
r = (val & 0x7c00) >> 10;
r<<=3;
- palette_set_color(machine, i/2, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i/2, MAKE_RGB(r, g, b));
}
}
@@ -377,9 +378,7 @@ static MACHINE_CONFIG_START( gunpey, gunpey_state )
MCFG_SCREEN_UPDATE_STATIC(gunpey)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_PALETTE_INIT(gunpey)
- MCFG_VIDEO_START(gunpey)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker")
diff --git a/src/mame/drivers/gunsmoke.c b/src/mame/drivers/gunsmoke.c
index ec15fb7202d..241d3ac3854 100644
--- a/src/mame/drivers/gunsmoke.c
+++ b/src/mame/drivers/gunsmoke.c
@@ -271,27 +271,25 @@ GFXDECODE_END
/* Machine Driver */
-static MACHINE_START( gunsmoke )
+void gunsmoke_state::machine_start()
{
- gunsmoke_state *state = machine.driver_data<gunsmoke_state>();
- UINT8 *rombase = state->memregion("maincpu")->base();
+ UINT8 *rombase = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &rombase[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 4, &rombase[0x10000], 0x4000);
- state->save_item(NAME(state->m_chon));
- state->save_item(NAME(state->m_objon));
- state->save_item(NAME(state->m_bgon));
- state->save_item(NAME(state->m_sprite3bank));
+ save_item(NAME(m_chon));
+ save_item(NAME(m_objon));
+ save_item(NAME(m_bgon));
+ save_item(NAME(m_sprite3bank));
}
-static MACHINE_RESET( gunsmoke )
+void gunsmoke_state::machine_reset()
{
- gunsmoke_state *state = machine.driver_data<gunsmoke_state>();
- state->m_chon = 0;
- state->m_objon = 0;
- state->m_bgon = 0;
- state->m_sprite3bank = 0;
+ m_chon = 0;
+ m_objon = 0;
+ m_bgon = 0;
+ m_sprite3bank = 0;
}
static MACHINE_CONFIG_START( gunsmoke, gunsmoke_state )
@@ -305,8 +303,6 @@ static MACHINE_CONFIG_START( gunsmoke, gunsmoke_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 4*60)
- MCFG_MACHINE_START(gunsmoke)
- MCFG_MACHINE_RESET(gunsmoke)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -318,8 +314,6 @@ static MACHINE_CONFIG_START( gunsmoke, gunsmoke_state )
MCFG_GFXDECODE(gunsmoke)
MCFG_PALETTE_LENGTH(32*4+16*16+16*16)
- MCFG_PALETTE_INIT(gunsmoke)
- MCFG_VIDEO_START(gunsmoke)
MCFG_SCREEN_UPDATE_STATIC(gunsmoke)
/* sound hardware */
diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c
index 45ee869a97c..7c83b85c713 100644
--- a/src/mame/drivers/gyruss.c
+++ b/src/mame/drivers/gyruss.c
@@ -488,12 +488,11 @@ static DISCRETE_SOUND_START( gyruss_sound )
DISCRETE_SOUND_END
-static MACHINE_START( gyruss )
+void gyruss_state::machine_start()
{
- gyruss_state *state = machine.driver_data<gyruss_state>();
- state->save_item(NAME(state->m_master_nmi_mask));
- state->save_item(NAME(state->m_slave_irq_mask));
+ save_item(NAME(m_master_nmi_mask));
+ save_item(NAME(m_slave_irq_mask));
}
static INTERRUPT_GEN( master_vblank_irq )
@@ -533,7 +532,6 @@ static MACHINE_CONFIG_START( gyruss, gyruss_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(gyruss)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -543,8 +541,6 @@ static MACHINE_CONFIG_START( gyruss, gyruss_state )
MCFG_GFXDECODE(gyruss)
MCFG_PALETTE_LENGTH(16*4+16*16)
- MCFG_PALETTE_INIT(gyruss)
- MCFG_VIDEO_START(gyruss)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/halleys.c b/src/mame/drivers/halleys.c
index b6396924894..41789bfefff 100644
--- a/src/mame/drivers/halleys.c
+++ b/src/mame/drivers/halleys.c
@@ -261,6 +261,9 @@ public:
DECLARE_DRIVER_INIT(halley87);
DECLARE_DRIVER_INIT(benberob);
DECLARE_DRIVER_INIT(halleys);
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -1104,16 +1107,15 @@ READ8_MEMBER(halleys_state::collision_id_r)
//**************************************************************************
// Video Initializations and Updates
-static PALETTE_INIT( halleys )
+void halleys_state::palette_init()
{
- halleys_state *state = machine.driver_data<halleys_state>();
UINT32 d, r, g, b, i, j, count;
- UINT32 *pal_ptr = state->m_internal_palette;
+ UINT32 *pal_ptr = m_internal_palette;
for (count=0; count<1024; count++)
{
pal_ptr[count] = 0;
- palette_set_color(machine, count, MAKE_RGB(0, 0, 0));
+ palette_set_color(machine(), count, MAKE_RGB(0, 0, 0));
}
// 00-31: palette RAM(ffc0-ffdf)
@@ -1134,7 +1136,7 @@ static PALETTE_INIT( halleys )
g = r + count + BG_MONO;
r += i;
pal_ptr[g] = d;
- palette_set_color(machine, g, MAKE_RGB(r, r, r));
+ palette_set_color(machine(), g, MAKE_RGB(r, r, r));
}
}
@@ -1149,7 +1151,7 @@ static PALETTE_INIT( halleys )
g = d & 0x0c; g |= i;
b = d<<2 & 0x0c; b |= i;
- palette_set_color_rgb(machine, j, pal4bit(r), pal4bit(g), pal4bit(b));
+ palette_set_color_rgb(machine(), j, pal4bit(r), pal4bit(g), pal4bit(b));
}
}
@@ -1228,9 +1230,8 @@ WRITE8_MEMBER(halleys_state::halleys_paletteram_IIRRGGBB_w)
}
-static VIDEO_START( halleys )
+void halleys_state::video_start()
{
- halleys_state *state = machine.driver_data<halleys_state>();
#define HALLEYS_Y0 0x8e
#define HALLEYS_X0 0x9a
#define HALLEYS_Y1 0xa2
@@ -1239,10 +1240,10 @@ static VIDEO_START( halleys )
int dst, src, c;
// create short cuts to scroll registers
- state->m_scrolly0 = state->m_io_ram + HALLEYS_Y0;
- state->m_scrollx0 = state->m_io_ram + HALLEYS_X0;
- state->m_scrolly1 = state->m_io_ram + HALLEYS_Y1;
- state->m_scrollx1 = state->m_io_ram + HALLEYS_X1;
+ m_scrolly0 = m_io_ram + HALLEYS_Y0;
+ m_scrollx0 = m_io_ram + HALLEYS_X0;
+ m_scrolly1 = m_io_ram + HALLEYS_Y1;
+ m_scrollx1 = m_io_ram + HALLEYS_X1;
// fill alpha table
for (src=0; src<256; src++)
@@ -1253,7 +1254,7 @@ static VIDEO_START( halleys )
c += (((src&0x0c)+(dst&0x0c))>>1) & 0x0c;
c += (((src&0x03)+(dst&0x03))>>1) & 0x03;
- state->m_alpha_table[(src<<8)+dst] = c | BG_RGB;
+ m_alpha_table[(src<<8)+dst] = c | BG_RGB;
}
}
@@ -1929,19 +1930,18 @@ INPUT_PORTS_END
//**************************************************************************
// Machine Definitions and Initializations
-static MACHINE_RESET( halleys )
+void halleys_state::machine_reset()
{
- halleys_state *state = machine.driver_data<halleys_state>();
- state->m_mVectorType = 0;
- state->m_firq_level = 0;
- state->m_blitter_busy = 0;
- state->m_collision_count = 0;
- state->m_stars_enabled = 0;
- state->m_bgcolor = get_black_pen(machine);
- state->m_fftail = state->m_ffhead = state->m_ffcount = 0;
-
- memset(state->m_io_ram, 0xff, state->m_io_ram.bytes());
- memset(state->m_render_layer[0], 0, SCREEN_BYTESIZE * MAX_LAYERS);
+ m_mVectorType = 0;
+ m_firq_level = 0;
+ m_blitter_busy = 0;
+ m_collision_count = 0;
+ m_stars_enabled = 0;
+ m_bgcolor = get_black_pen(machine());
+ m_fftail = m_ffhead = m_ffcount = 0;
+
+ memset(m_io_ram, 0xff, m_io_ram.bytes());
+ memset(m_render_layer[0], 0, SCREEN_BYTESIZE * MAX_LAYERS);
}
@@ -1965,7 +1965,6 @@ static MACHINE_CONFIG_START( halleys, halleys_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, (double)6000000/(4*16*16*10*16))
- MCFG_MACHINE_RESET(halleys)
// video hardware
@@ -1977,9 +1976,7 @@ static MACHINE_CONFIG_START( halleys, halleys_state )
MCFG_SCREEN_UPDATE_STATIC(halleys)
MCFG_PALETTE_LENGTH(PALETTE_SIZE)
- MCFG_PALETTE_INIT(halleys)
- MCFG_VIDEO_START(halleys)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hanaawas.c b/src/mame/drivers/hanaawas.c
index 8a06e1dc9cb..75646bab95b 100644
--- a/src/mame/drivers/hanaawas.c
+++ b/src/mame/drivers/hanaawas.c
@@ -182,18 +182,16 @@ static const ay8910_interface ay8910_config =
};
-static MACHINE_START( hanaawas )
+void hanaawas_state::machine_start()
{
- hanaawas_state *state = machine.driver_data<hanaawas_state>();
- state->save_item(NAME(state->m_mux));
+ save_item(NAME(m_mux));
}
-static MACHINE_RESET( hanaawas )
+void hanaawas_state::machine_reset()
{
- hanaawas_state *state = machine.driver_data<hanaawas_state>();
- state->m_mux = 0;
+ m_mux = 0;
}
static MACHINE_CONFIG_START( hanaawas, hanaawas_state )
@@ -204,8 +202,6 @@ static MACHINE_CONFIG_START( hanaawas, hanaawas_state )
MCFG_CPU_IO_MAP(io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(hanaawas)
- MCFG_MACHINE_RESET(hanaawas)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -218,8 +214,6 @@ static MACHINE_CONFIG_START( hanaawas, hanaawas_state )
MCFG_GFXDECODE(hanaawas)
MCFG_PALETTE_LENGTH(32*8)
- MCFG_PALETTE_INIT(hanaawas)
- MCFG_VIDEO_START(hanaawas)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/harddriv.c b/src/mame/drivers/harddriv.c
index 5e334754b00..ff05f994b16 100644
--- a/src/mame/drivers/harddriv.c
+++ b/src/mame/drivers/harddriv.c
@@ -1334,8 +1334,8 @@ static MACHINE_CONFIG_START( driver_nomsp, harddriv_state )
MCFG_QUANTUM_TIME(attotime::from_hz(30000))
- MCFG_MACHINE_START(harddriv)
- MCFG_MACHINE_RESET(harddriv)
+ MCFG_MACHINE_START_OVERRIDE(harddriv_state,harddriv)
+ MCFG_MACHINE_RESET_OVERRIDE(harddriv_state,harddriv)
MCFG_NVRAM_ADD_1FILL("eeprom")
MCFG_DUART68681_ADD("duart68681", XTAL_3_6864MHz, duart_config)
@@ -1348,7 +1348,7 @@ static MACHINE_CONFIG_START( driver_nomsp, harddriv_state )
MCFG_SCREEN_RAW_PARAMS(HARDDRIV_GSP_CLOCK/12*4, 160*4, 0, 127*4, 417, 0, 384)
MCFG_SCREEN_UPDATE_STATIC(tms340x0_ind16)
- MCFG_VIDEO_START(harddriv)
+ MCFG_VIDEO_START_OVERRIDE(harddriv_state,harddriv)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hcastle.c b/src/mame/drivers/hcastle.c
index 9809955ae9c..6d5ae01a0ad 100644
--- a/src/mame/drivers/hcastle.c
+++ b/src/mame/drivers/hcastle.c
@@ -177,33 +177,31 @@ static const ym3812_interface ym3812_config =
irqhandler
};
-static MACHINE_START( hcastle )
+void hcastle_state::machine_start()
{
- hcastle_state *state = machine.driver_data<hcastle_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x2000);
+ membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x2000);
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k007121_1 = machine.device("k007121_1");
- state->m_k007121_2 = machine.device("k007121_2");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k007121_1 = machine().device("k007121_1");
+ m_k007121_2 = machine().device("k007121_2");
- state->save_item(NAME(state->m_pf2_bankbase));
- state->save_item(NAME(state->m_pf1_bankbase));
- state->save_item(NAME(state->m_gfx_bank));
- state->save_item(NAME(state->m_old_pf1));
- state->save_item(NAME(state->m_old_pf2));
+ save_item(NAME(m_pf2_bankbase));
+ save_item(NAME(m_pf1_bankbase));
+ save_item(NAME(m_gfx_bank));
+ save_item(NAME(m_old_pf1));
+ save_item(NAME(m_old_pf2));
}
-static MACHINE_RESET( hcastle )
+void hcastle_state::machine_reset()
{
- hcastle_state *state = machine.driver_data<hcastle_state>();
- state->m_pf2_bankbase = 0;
- state->m_pf1_bankbase = 0;
- state->m_gfx_bank = 0;
- state->m_old_pf1 = -1;
- state->m_old_pf2 = -1;
+ m_pf2_bankbase = 0;
+ m_pf1_bankbase = 0;
+ m_gfx_bank = 0;
+ m_old_pf1 = -1;
+ m_old_pf2 = -1;
}
static MACHINE_CONFIG_START( hcastle, hcastle_state )
@@ -216,8 +214,6 @@ static MACHINE_CONFIG_START( hcastle, hcastle_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(hcastle)
- MCFG_MACHINE_RESET(hcastle)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -233,8 +229,6 @@ static MACHINE_CONFIG_START( hcastle, hcastle_state )
MCFG_GFXDECODE(hcastle)
MCFG_PALETTE_LENGTH(2*8*16*16)
- MCFG_PALETTE_INIT(hcastle)
- MCFG_VIDEO_START(hcastle)
MCFG_K007121_ADD("k007121_1")
MCFG_K007121_ADD("k007121_2")
diff --git a/src/mame/drivers/hexion.c b/src/mame/drivers/hexion.c
index 51378c36484..68a9ed92a10 100644
--- a/src/mame/drivers/hexion.c
+++ b/src/mame/drivers/hexion.c
@@ -241,7 +241,6 @@ static MACHINE_CONFIG_START( hexion, hexion_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(hexion)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/higemaru.c b/src/mame/drivers/higemaru.c
index 3622faac680..5a6402102b0 100644
--- a/src/mame/drivers/higemaru.c
+++ b/src/mame/drivers/higemaru.c
@@ -175,8 +175,6 @@ static MACHINE_CONFIG_START( higemaru, higemaru_state )
MCFG_GFXDECODE(higemaru)
MCFG_PALETTE_LENGTH(32*4+16*16)
- MCFG_PALETTE_INIT(higemaru)
- MCFG_VIDEO_START(higemaru)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/highvdeo.c b/src/mame/drivers/highvdeo.c
index 2438d4516fb..61eb4f9103b 100644
--- a/src/mame/drivers/highvdeo.c
+++ b/src/mame/drivers/highvdeo.c
@@ -124,12 +124,13 @@ public:
DECLARE_WRITE16_MEMBER(tv_ncf_oki6376_st_w);
DECLARE_DRIVER_INIT(fashion);
DECLARE_DRIVER_INIT(ciclone);
+ DECLARE_VIDEO_START(tourvisn);
};
-static VIDEO_START(tourvisn)
+VIDEO_START_MEMBER(highvdeo_state,tourvisn)
{
}
@@ -941,7 +942,7 @@ static MACHINE_CONFIG_START( tv_vcf, highvdeo_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(tourvisn)
+ MCFG_VIDEO_START_OVERRIDE(highvdeo_state,tourvisn)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1007,7 +1008,7 @@ static MACHINE_CONFIG_START( brasil, highvdeo_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(tourvisn)
+ MCFG_VIDEO_START_OVERRIDE(highvdeo_state,tourvisn)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hikaru.c b/src/mame/drivers/hikaru.c
index e12c189c590..ed7121ded5d 100644
--- a/src/mame/drivers/hikaru.c
+++ b/src/mame/drivers/hikaru.c
@@ -393,9 +393,10 @@ public:
hikaru_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
{ }
+ virtual void video_start();
};
-static VIDEO_START(hikaru)
+void hikaru_state::video_start()
{
}
@@ -488,8 +489,8 @@ static MACHINE_CONFIG_START( hikaru, hikaru_state )
MCFG_CPU_ADD("slave", SH4LE, CPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(hikaru_map_slave)
-// MCFG_MACHINE_START( hikaru )
-// MCFG_MACHINE_RESET( hikaru )
+// MCFG_MACHINE_START_OVERRIDE(hikaru_state, hikaru )
+// MCFG_MACHINE_RESET_OVERRIDE(hikaru_state, hikaru )
// MCFG_NVRAM_HANDLER(hikaru_eeproms)
@@ -503,7 +504,6 @@ static MACHINE_CONFIG_START( hikaru, hikaru_state )
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(hikaru)
// MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
// MCFG_SOUND_ADD("aica", AICA, 0)
diff --git a/src/mame/drivers/himesiki.c b/src/mame/drivers/himesiki.c
index 7ab83739c30..1151536f79c 100644
--- a/src/mame/drivers/himesiki.c
+++ b/src/mame/drivers/himesiki.c
@@ -266,26 +266,24 @@ static GFXDECODE_START( himesiki )
GFXDECODE_END
-static MACHINE_START( himesiki )
+void himesiki_state::machine_start()
{
- himesiki_state *state = machine.driver_data<himesiki_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000);
- state->m_subcpu = machine.device<cpu_device>("sub");
+ m_subcpu = machine().device<cpu_device>("sub");
- state->save_item(NAME(state->m_scrollx));
- state->save_item(NAME(state->m_flipscreen));
+ save_item(NAME(m_scrollx));
+ save_item(NAME(m_flipscreen));
}
-static MACHINE_RESET( himesiki )
+void himesiki_state::machine_reset()
{
- himesiki_state *state = machine.driver_data<himesiki_state>();
- state->m_scrollx[0] = 0;
- state->m_scrollx[1] = 0;
- state->m_flipscreen = 0;
+ m_scrollx[0] = 0;
+ m_scrollx[1] = 0;
+ m_flipscreen = 0;
}
static MACHINE_CONFIG_START( himesiki, himesiki_state )
@@ -300,8 +298,6 @@ static MACHINE_CONFIG_START( himesiki, himesiki_state )
MCFG_CPU_PROGRAM_MAP(himesiki_prm1)
MCFG_CPU_IO_MAP(himesiki_iom1)
- MCFG_MACHINE_START(himesiki)
- MCFG_MACHINE_RESET(himesiki)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -314,7 +310,6 @@ static MACHINE_CONFIG_START( himesiki, himesiki_state )
MCFG_GFXDECODE(himesiki)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(himesiki)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c
index 9e05d8785c8..8404cadf89a 100644
--- a/src/mame/drivers/hitme.c
+++ b/src/mame/drivers/hitme.c
@@ -53,17 +53,15 @@ WRITE8_MEMBER(hitme_state::hitme_vidram_w)
*
*************************************/
-static VIDEO_START( hitme )
+void hitme_state::video_start()
{
- hitme_state *state = machine.driver_data<hitme_state>();
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hitme_state::get_hitme_tile_info),state), TILEMAP_SCAN_ROWS, 8, 10, 40, 19);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(hitme_state::get_hitme_tile_info),this), TILEMAP_SCAN_ROWS, 8, 10, 40, 19);
}
-static VIDEO_START( barricad )
+VIDEO_START_MEMBER(hitme_state,barricad)
{
- hitme_state *state = machine.driver_data<hitme_state>();
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hitme_state::get_hitme_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 24);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(hitme_state::get_hitme_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 24);
}
@@ -304,15 +302,14 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( hitme )
+void hitme_state::machine_start()
{
}
-static MACHINE_RESET( hitme )
+void hitme_state::machine_reset()
{
- hitme_state *state = machine.driver_data<hitme_state>();
- state->m_timeout_time = attotime::zero;
+ m_timeout_time = attotime::zero;
}
static MACHINE_CONFIG_START( hitme, hitme_state )
@@ -322,8 +319,6 @@ static MACHINE_CONFIG_START( hitme, hitme_state )
MCFG_CPU_PROGRAM_MAP(hitme_map)
MCFG_CPU_IO_MAP(hitme_portmap)
- MCFG_MACHINE_START(hitme)
- MCFG_MACHINE_RESET(hitme)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -337,7 +332,6 @@ static MACHINE_CONFIG_START( hitme, hitme_state )
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
- MCFG_VIDEO_START(hitme)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -365,7 +359,7 @@ static MACHINE_CONFIG_DERIVED( barricad, hitme )
MCFG_GFXDECODE(barricad)
- MCFG_VIDEO_START(barricad)
+ MCFG_VIDEO_START_OVERRIDE(hitme_state,barricad)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hitpoker.c b/src/mame/drivers/hitpoker.c
index d7ed6198a3e..37f43670589 100644
--- a/src/mame/drivers/hitpoker.c
+++ b/src/mame/drivers/hitpoker.c
@@ -80,17 +80,17 @@ public:
DECLARE_WRITE8_MEMBER(hitpoker_pic_w);
DECLARE_READ8_MEMBER(test_r);
DECLARE_DRIVER_INIT(hitpoker);
+ virtual void video_start();
};
#define CRTC_CLOCK XTAL_3_579545MHz
-static VIDEO_START(hitpoker)
+void hitpoker_state::video_start()
{
- hitpoker_state *state = machine.driver_data<hitpoker_state>();
- state->m_videoram = auto_alloc_array(machine, UINT8, 0x35ff);
- state->m_paletteram = auto_alloc_array(machine, UINT8, 0x1000);
- state->m_colorram = auto_alloc_array(machine, UINT8, 0x2000);
+ m_videoram = auto_alloc_array(machine(), UINT8, 0x35ff);
+ m_paletteram = auto_alloc_array(machine(), UINT8, 0x1000);
+ m_colorram = auto_alloc_array(machine(), UINT8, 0x2000);
}
static SCREEN_UPDATE_IND16(hitpoker)
@@ -512,7 +512,6 @@ static MACHINE_CONFIG_START( hitpoker, hitpoker_state )
MCFG_GFXDECODE(hitpoker)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(hitpoker)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hnayayoi.c b/src/mame/drivers/hnayayoi.c
index c2372280a1b..b85d0a85bf0 100644
--- a/src/mame/drivers/hnayayoi.c
+++ b/src/mame/drivers/hnayayoi.c
@@ -530,29 +530,27 @@ static const msm5205_interface msm5205_config =
-static MACHINE_START( hnayayoi )
+void hnayayoi_state::machine_start()
{
- hnayayoi_state *state = machine.driver_data<hnayayoi_state>();
- state->save_item(NAME(state->m_palbank));
- state->save_item(NAME(state->m_blit_layer));
- state->save_item(NAME(state->m_blit_dest));
- state->save_item(NAME(state->m_blit_src));
- state->save_item(NAME(state->m_keyb));
+ save_item(NAME(m_palbank));
+ save_item(NAME(m_blit_layer));
+ save_item(NAME(m_blit_dest));
+ save_item(NAME(m_blit_src));
+ save_item(NAME(m_keyb));
}
-static MACHINE_RESET( hnayayoi )
+void hnayayoi_state::machine_reset()
{
- hnayayoi_state *state = machine.driver_data<hnayayoi_state>();
/* start with the MSM5205 reset */
- msm5205_reset_w(machine.device("msm"), 1);
+ msm5205_reset_w(machine().device("msm"), 1);
- state->m_palbank = 0;
- state->m_blit_layer = 0;
- state->m_blit_dest = 0;
- state->m_blit_src = 0;
- state->m_keyb = 0;
+ m_palbank = 0;
+ m_blit_layer = 0;
+ m_blit_dest = 0;
+ m_blit_src = 0;
+ m_keyb = 0;
}
@@ -565,8 +563,6 @@ static MACHINE_CONFIG_START( hnayayoi, hnayayoi_state )
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
MCFG_CPU_PERIODIC_INT(nmi_line_pulse, 8000)
- MCFG_MACHINE_START(hnayayoi)
- MCFG_MACHINE_RESET(hnayayoi)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -581,7 +577,6 @@ static MACHINE_CONFIG_START( hnayayoi, hnayayoi_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(hnayayoi)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -608,7 +603,7 @@ static MACHINE_CONFIG_DERIVED( untoucha, hnayayoi )
MCFG_CPU_PROGRAM_MAP(untoucha_map)
MCFG_CPU_IO_MAP(untoucha_io_map)
- MCFG_VIDEO_START(untoucha)
+ MCFG_VIDEO_START_OVERRIDE(hnayayoi_state,untoucha)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c
index b2c210a5a68..9a900d659bf 100644
--- a/src/mame/drivers/hng64.c
+++ b/src/mame/drivers/hng64.c
@@ -1772,54 +1772,52 @@ static TIMER_DEVICE_CALLBACK( hng64_irq )
}
-static MACHINE_START(hyperneo)
+void hng64_state::machine_start()
{
- hng64_state *state = machine.driver_data<hng64_state>();
/* set the fastest DRC options */
- mips3drc_set_options(machine.device("maincpu"), MIPS3DRC_FASTEST_OPTIONS + MIPS3DRC_STRICT_VERIFY);
+ mips3drc_set_options(machine().device("maincpu"), MIPS3DRC_FASTEST_OPTIONS + MIPS3DRC_STRICT_VERIFY);
/* configure fast RAM regions for DRC */
- mips3drc_add_fastram(machine.device("maincpu"), 0x00000000, 0x00ffffff, FALSE, state->m_mainram);
- mips3drc_add_fastram(machine.device("maincpu"), 0x04000000, 0x05ffffff, TRUE, state->m_cart);
- mips3drc_add_fastram(machine.device("maincpu"), 0x1fc00000, 0x1fc7ffff, TRUE, state->m_rombase);
+ mips3drc_add_fastram(machine().device("maincpu"), 0x00000000, 0x00ffffff, FALSE, m_mainram);
+ mips3drc_add_fastram(machine().device("maincpu"), 0x04000000, 0x05ffffff, TRUE, m_cart);
+ mips3drc_add_fastram(machine().device("maincpu"), 0x1fc00000, 0x1fc7ffff, TRUE, m_rombase);
}
-static MACHINE_RESET(hyperneo)
+void hng64_state::machine_reset()
{
- hng64_state *state = machine.driver_data<hng64_state>();
int i;
- const UINT8 *rom = state->memregion("user2")->base();
+ const UINT8 *rom = memregion("user2")->base();
/* Sound CPU */
- UINT8 *RAM = (UINT8*)state->m_soundram;
- state->membank("bank1")->set_base(&RAM[0x1f0000]); // allows us to boot
- state->membank("bank2")->set_base(&RAM[0x1f0000]); // seems to be the right default for most games (initial area jumps to a DI here)
- machine.device("audiocpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
- machine.device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ UINT8 *RAM = (UINT8*)m_soundram;
+ membank("bank1")->set_base(&RAM[0x1f0000]); // allows us to boot
+ membank("bank2")->set_base(&RAM[0x1f0000]); // seems to be the right default for most games (initial area jumps to a DI here)
+ machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+ machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
/* Comm CPU */
- KL5C80_init(state);
+ KL5C80_init(this);
/* Fill up virtual memory with ROM */
for (i = 0x0; i < 0x100000; i++)
- state->m_com_virtual_mem[i] = rom[i];
+ m_com_virtual_mem[i] = rom[i];
- KL5C80_virtual_mem_sync(state);
+ KL5C80_virtual_mem_sync(this);
- address_space *space = machine.device<z80_device>("comm")->space(AS_PROGRAM);
- space->set_direct_update_handler(direct_update_delegate(FUNC(hng64_state::KL5C80_direct_handler), state));
+ address_space *space = machine().device<z80_device>("comm")->space(AS_PROGRAM);
+ space->set_direct_update_handler(direct_update_delegate(FUNC(hng64_state::KL5C80_direct_handler), this));
- machine.device("comm")->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE); // reset the CPU and let 'er rip
-// machine.device("comm")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE); // hold on there pardner...
+ machine().device("comm")->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE); // reset the CPU and let 'er rip
+// machine().device("comm")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE); // hold on there pardner...
// "Display List" init - ugly
- state->m_activeBuffer = 0;
+ m_activeBuffer = 0;
/* For simulate MCU stepping */
- state->m_mcu_fake_time = 0;
- state->m_mcu_en = 0;
+ m_mcu_fake_time = 0;
+ m_mcu_en = 0;
}
@@ -1848,8 +1846,6 @@ static MACHINE_CONFIG_START( hng64, hng64_state )
MCFG_MSM6242_ADD("rtc", hng64_rtc_intf)
MCFG_GFXDECODE(hng64)
- MCFG_MACHINE_START(hyperneo)
- MCFG_MACHINE_RESET(hyperneo)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
@@ -1857,7 +1853,6 @@ static MACHINE_CONFIG_START( hng64, hng64_state )
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(hng64)
MCFG_SCREEN_VBLANK_STATIC(hng64)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/holeland.c b/src/mame/drivers/holeland.c
index 5af99b46e41..67bc9385629 100644
--- a/src/mame/drivers/holeland.c
+++ b/src/mame/drivers/holeland.c
@@ -294,7 +294,7 @@ static MACHINE_CONFIG_START( holeland, holeland_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(holeland)
+ MCFG_VIDEO_START_OVERRIDE(holeland_state,holeland)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -363,8 +363,7 @@ static MACHINE_CONFIG_START( crzrally, holeland_state )
MCFG_GFXDECODE(crzrally)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(crzrally)
+ MCFG_VIDEO_START_OVERRIDE(holeland_state,crzrally)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c
index de8991445d4..7df2f96a32d 100644
--- a/src/mame/drivers/homedata.c
+++ b/src/mame/drivers/homedata.c
@@ -1140,111 +1140,105 @@ static const sn76496_config psg_intf =
};
-static MACHINE_START( homedata )
+MACHINE_START_MEMBER(homedata_state,homedata)
{
- homedata_state *state = machine.driver_data<homedata_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_ym = machine.device("ymsnd");
- state->m_sn = machine.device<sn76489a_new_device>("snsnd");
- state->m_dac = machine.device<dac_device>("dac");
-
- state->save_item(NAME(state->m_visible_page));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_blitter_bank));
- state->save_item(NAME(state->m_blitter_param_count));
- state->save_item(NAME(state->m_blitter_param));
- state->save_item(NAME(state->m_vblank));
- state->save_item(NAME(state->m_sndbank));
- state->save_item(NAME(state->m_keyb));
- state->save_item(NAME(state->m_snd_command));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_ym = machine().device("ymsnd");
+ m_sn = machine().device<sn76489a_new_device>("snsnd");
+ m_dac = machine().device<dac_device>("dac");
+
+ save_item(NAME(m_visible_page));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_blitter_bank));
+ save_item(NAME(m_blitter_param_count));
+ save_item(NAME(m_blitter_param));
+ save_item(NAME(m_vblank));
+ save_item(NAME(m_sndbank));
+ save_item(NAME(m_keyb));
+ save_item(NAME(m_snd_command));
}
-static MACHINE_START( reikaids )
+MACHINE_START_MEMBER(homedata_state,reikaids)
{
- homedata_state *state = machine.driver_data<homedata_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 8, &ROM[0xc000], 0x4000);
- state->membank("bank2")->configure_entries(0, 4, state->memregion("audiocpu")->base(), 0x10000);
+ membank("bank1")->configure_entries(0, 8, &ROM[0xc000], 0x4000);
+ membank("bank2")->configure_entries(0, 4, memregion("audiocpu")->base(), 0x10000);
- MACHINE_START_CALL(homedata);
+ MACHINE_START_CALL_MEMBER(homedata);
- state->save_item(NAME(state->m_upd7807_porta));
- state->save_item(NAME(state->m_upd7807_portc));
+ save_item(NAME(m_upd7807_porta));
+ save_item(NAME(m_upd7807_portc));
- state->save_item(NAME(state->m_reikaids_which));
- state->save_item(NAME(state->m_gfx_bank));
+ save_item(NAME(m_reikaids_which));
+ save_item(NAME(m_gfx_bank));
}
-static MACHINE_START( pteacher )
+MACHINE_START_MEMBER(homedata_state,pteacher)
{
- homedata_state *state = machine.driver_data<homedata_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000);
- state->membank("bank2")->configure_entries(0, 4, state->memregion("audiocpu")->base(), 0x10000);
+ membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000);
+ membank("bank2")->configure_entries(0, 4, memregion("audiocpu")->base(), 0x10000);
- MACHINE_START_CALL(homedata);
+ MACHINE_START_CALL_MEMBER(homedata);
- state->save_item(NAME(state->m_upd7807_porta));
- state->save_item(NAME(state->m_upd7807_portc));
+ save_item(NAME(m_upd7807_porta));
+ save_item(NAME(m_upd7807_portc));
- state->save_item(NAME(state->m_gfx_bank));
- state->save_item(NAME(state->m_to_cpu));
- state->save_item(NAME(state->m_from_cpu));
+ save_item(NAME(m_gfx_bank));
+ save_item(NAME(m_to_cpu));
+ save_item(NAME(m_from_cpu));
}
-static MACHINE_RESET( homedata )
+MACHINE_RESET_MEMBER(homedata_state,homedata)
{
- homedata_state *state = machine.driver_data<homedata_state>();
-
- state->m_visible_page = 0;
- state->m_flipscreen = 0;
- state->m_blitter_bank = 0;
- state->m_blitter_param_count = 0;
- state->m_blitter_param[0] = 0;
- state->m_blitter_param[1] = 0;
- state->m_blitter_param[2] = 0;
- state->m_blitter_param[3] = 0;
- state->m_vblank = 0;
- state->m_sndbank = 0;
- state->m_keyb = 0;
- state->m_snd_command = 0;
+
+ m_visible_page = 0;
+ m_flipscreen = 0;
+ m_blitter_bank = 0;
+ m_blitter_param_count = 0;
+ m_blitter_param[0] = 0;
+ m_blitter_param[1] = 0;
+ m_blitter_param[2] = 0;
+ m_blitter_param[3] = 0;
+ m_vblank = 0;
+ m_sndbank = 0;
+ m_keyb = 0;
+ m_snd_command = 0;
}
-static MACHINE_RESET( pteacher )
+MACHINE_RESET_MEMBER(homedata_state,pteacher)
{
- homedata_state *state = machine.driver_data<homedata_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
/* on reset, ports are set as input (high impedance), therefore 0xff output */
- state->pteacher_upd7807_portc_w(*space, 0, 0xff);
+ pteacher_upd7807_portc_w(*space, 0, 0xff);
- MACHINE_RESET_CALL(homedata);
+ MACHINE_RESET_CALL_MEMBER(homedata);
- state->m_upd7807_porta = 0;
- state->m_gfx_bank[0] = 0;
- state->m_gfx_bank[1] = 0;
- state->m_to_cpu = 0;
- state->m_from_cpu = 0;
+ m_upd7807_porta = 0;
+ m_gfx_bank[0] = 0;
+ m_gfx_bank[1] = 0;
+ m_to_cpu = 0;
+ m_from_cpu = 0;
}
-static MACHINE_RESET( reikaids )
+MACHINE_RESET_MEMBER(homedata_state,reikaids)
{
- homedata_state *state = machine.driver_data<homedata_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
/* on reset, ports are set as input (high impedance), therefore 0xff output */
- state->reikaids_upd7807_portc_w(*space, 0, 0xff);
+ reikaids_upd7807_portc_w(*space, 0, 0xff);
- MACHINE_RESET_CALL(homedata);
+ MACHINE_RESET_CALL_MEMBER(homedata);
- state->m_reikaids_which = state->m_priority; // state->m_priority is set in DRIVER_INIT
- state->m_upd7807_porta = 0;
- state->m_gfx_bank[0] = 0;
- state->m_gfx_bank[1] = 0; // this is not used by reikaids
+ m_reikaids_which = m_priority; // m_priority is set in DRIVER_INIT
+ m_upd7807_porta = 0;
+ m_gfx_bank[0] = 0;
+ m_gfx_bank[1] = 0; // this is not used by reikaids
}
static MACHINE_CONFIG_START( mrokumei, homedata_state )
@@ -1258,8 +1252,8 @@ static MACHINE_CONFIG_START( mrokumei, homedata_state )
MCFG_CPU_PROGRAM_MAP(mrokumei_sound_map)
MCFG_CPU_IO_MAP(mrokumei_sound_io_map)
- MCFG_MACHINE_START(homedata)
- MCFG_MACHINE_RESET(homedata)
+ MCFG_MACHINE_START_OVERRIDE(homedata_state,homedata)
+ MCFG_MACHINE_RESET_OVERRIDE(homedata_state,homedata)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1274,8 +1268,8 @@ static MACHINE_CONFIG_START( mrokumei, homedata_state )
MCFG_GFXDECODE(mrokumei)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT(mrokumei)
- MCFG_VIDEO_START(mrokumei)
+ MCFG_PALETTE_INIT_OVERRIDE(homedata_state,mrokumei)
+ MCFG_VIDEO_START_OVERRIDE(homedata_state,mrokumei)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1328,8 +1322,8 @@ static MACHINE_CONFIG_START( reikaids, homedata_state )
MCFG_QUANTUM_TIME(attotime::from_hz(30000)) // very high interleave required to sync for startup tests
- MCFG_MACHINE_START(reikaids)
- MCFG_MACHINE_RESET(reikaids)
+ MCFG_MACHINE_START_OVERRIDE(homedata_state,reikaids)
+ MCFG_MACHINE_RESET_OVERRIDE(homedata_state,reikaids)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1343,8 +1337,8 @@ static MACHINE_CONFIG_START( reikaids, homedata_state )
MCFG_GFXDECODE(reikaids)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT(reikaids)
- MCFG_VIDEO_START(reikaids)
+ MCFG_PALETTE_INIT_OVERRIDE(homedata_state,reikaids)
+ MCFG_VIDEO_START_OVERRIDE(homedata_state,reikaids)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1378,8 +1372,8 @@ static MACHINE_CONFIG_START( pteacher, homedata_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // should be enough
- MCFG_MACHINE_START(pteacher)
- MCFG_MACHINE_RESET(pteacher)
+ MCFG_MACHINE_START_OVERRIDE(homedata_state,pteacher)
+ MCFG_MACHINE_RESET_OVERRIDE(homedata_state,pteacher)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1394,8 +1388,8 @@ static MACHINE_CONFIG_START( pteacher, homedata_state )
MCFG_GFXDECODE(pteacher)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT(pteacher)
- MCFG_VIDEO_START(pteacher)
+ MCFG_PALETTE_INIT_OVERRIDE(homedata_state,pteacher)
+ MCFG_VIDEO_START_OVERRIDE(homedata_state,pteacher)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1419,7 +1413,7 @@ static MACHINE_CONFIG_DERIVED( lemnangl, pteacher )
/* video hardware */
MCFG_GFXDECODE(lemnangl)
- MCFG_VIDEO_START(lemnangl)
+ MCFG_VIDEO_START_OVERRIDE(homedata_state,lemnangl)
MACHINE_CONFIG_END
static INPUT_PORTS_START( mirderby )
@@ -1557,8 +1551,8 @@ static MACHINE_CONFIG_START( mirderby, homedata_state )
MCFG_GFXDECODE(mirderby)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT(mirderby)
- MCFG_VIDEO_START(mirderby)
+ MCFG_PALETTE_INIT_OVERRIDE(homedata_state,mirderby)
+ MCFG_VIDEO_START_OVERRIDE(homedata_state,mirderby)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c
index d9c27ed7030..e1d28be7a45 100644
--- a/src/mame/drivers/homerun.c
+++ b/src/mame/drivers/homerun.c
@@ -356,34 +356,32 @@ static const ym2203_interface ym2203_config =
/**************************************************************************/
-static MACHINE_START( homerun )
+void homerun_state::machine_start()
{
- homerun_state *state = machine.driver_data<homerun_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
-
- state->membank("bank1")->configure_entry(0, &ROM[0x00000]);
- state->membank("bank1")->configure_entries(1, 7, &ROM[0x10000], 0x4000);
-
- state->save_item(NAME(state->m_control));
- state->save_item(NAME(state->m_sample));
- state->save_item(NAME(state->m_gfx_ctrl));
- state->save_item(NAME(state->m_gc_up));
- state->save_item(NAME(state->m_gc_down));
- state->save_item(NAME(state->m_scrolly));
- state->save_item(NAME(state->m_scrollx));
+ UINT8 *ROM = memregion("maincpu")->base();
+
+ membank("bank1")->configure_entry(0, &ROM[0x00000]);
+ membank("bank1")->configure_entries(1, 7, &ROM[0x10000], 0x4000);
+
+ save_item(NAME(m_control));
+ save_item(NAME(m_sample));
+ save_item(NAME(m_gfx_ctrl));
+ save_item(NAME(m_gc_up));
+ save_item(NAME(m_gc_down));
+ save_item(NAME(m_scrolly));
+ save_item(NAME(m_scrollx));
}
-static MACHINE_RESET( homerun )
+void homerun_state::machine_reset()
{
- homerun_state *state = machine.driver_data<homerun_state>();
-
- state->m_control = 0;
- state->m_sample = 0;
- state->m_gfx_ctrl = 0;
- state->m_gc_up = 0;
- state->m_gc_down = 0;
- state->m_scrolly = 0;
- state->m_scrollx = 0;
+
+ m_control = 0;
+ m_sample = 0;
+ m_gfx_ctrl = 0;
+ m_gc_up = 0;
+ m_gc_down = 0;
+ m_scrolly = 0;
+ m_scrollx = 0;
}
/**************************************************************************/
@@ -396,8 +394,6 @@ static MACHINE_CONFIG_START( dynashot, homerun_state )
MCFG_CPU_IO_MAP(homerun_iomap)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(homerun)
- MCFG_MACHINE_RESET(homerun)
MCFG_I8255A_ADD( "ppi8255", ppi8255_intf )
@@ -412,7 +408,6 @@ static MACHINE_CONFIG_START( dynashot, homerun_state )
MCFG_GFXDECODE(homerun)
MCFG_PALETTE_LENGTH(16*4)
- MCFG_VIDEO_START(homerun)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c
index 133bd0305cb..993154ba896 100644
--- a/src/mame/drivers/hornet.c
+++ b/src/mame/drivers/hornet.c
@@ -366,6 +366,9 @@ public:
DECLARE_WRITE32_MEMBER(dsp_dataram1_w);
DECLARE_DRIVER_INIT(hornet);
DECLARE_DRIVER_INIT(hornet_2board);
+ virtual void machine_start();
+ virtual void machine_reset();
+ DECLARE_MACHINE_RESET(hornet_2board);
};
@@ -879,40 +882,39 @@ static const sharc_config sharc_cfg =
*/
static TIMER_CALLBACK( irq_off );
-static MACHINE_START( hornet )
+void hornet_state::machine_start()
{
- hornet_state *state = machine.driver_data<hornet_state>();
- state->m_jvs_sdata_ptr = 0;
- state->m_jvs_sdata = auto_alloc_array_clear(machine, UINT8, 1024);
+ m_jvs_sdata_ptr = 0;
+ m_jvs_sdata = auto_alloc_array_clear(machine(), UINT8, 1024);
/* set conservative DRC options */
- ppcdrc_set_options(machine.device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
+ ppcdrc_set_options(machine().device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
/* configure fast RAM regions for DRC */
- ppcdrc_add_fastram(machine.device("maincpu"), 0x00000000, 0x003fffff, FALSE, state->m_workram);
+ ppcdrc_add_fastram(machine().device("maincpu"), 0x00000000, 0x003fffff, FALSE, m_workram);
- state_save_register_global(machine, state->m_led_reg0);
- state_save_register_global(machine, state->m_led_reg1);
- state_save_register_global_pointer(machine, state->m_jvs_sdata, 1024);
- state_save_register_global(machine, state->m_jvs_sdata_ptr);
+ state_save_register_global(machine(), m_led_reg0);
+ state_save_register_global(machine(), m_led_reg1);
+ state_save_register_global_pointer(machine(), m_jvs_sdata, 1024);
+ state_save_register_global(machine(), m_jvs_sdata_ptr);
- state->m_sound_irq_timer = machine.scheduler().timer_alloc(FUNC(irq_off));
+ m_sound_irq_timer = machine().scheduler().timer_alloc(FUNC(irq_off));
}
-static MACHINE_RESET( hornet )
+void hornet_state::machine_reset()
{
- UINT8 *usr3 = machine.root_device().memregion("user3")->base();
- UINT8 *usr5 = machine.root_device().memregion("user5")->base();
+ UINT8 *usr3 = machine().root_device().memregion("user3")->base();
+ UINT8 *usr5 = machine().root_device().memregion("user5")->base();
if (usr3 != NULL)
{
- machine.root_device().membank("bank1")->configure_entries(0, machine.root_device().memregion("user3")->bytes() / 0x10000, usr3, 0x10000);
- machine.root_device().membank("bank1")->set_entry(0);
+ machine().root_device().membank("bank1")->configure_entries(0, machine().root_device().memregion("user3")->bytes() / 0x10000, usr3, 0x10000);
+ machine().root_device().membank("bank1")->set_entry(0);
}
- machine.device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
if (usr5)
- machine.root_device().membank("bank5")->set_base(usr5);
+ machine().root_device().membank("bank5")->set_base(usr5);
}
static double adc12138_input_callback( device_t *device, UINT8 input )
@@ -1002,8 +1004,6 @@ static MACHINE_CONFIG_START( hornet, hornet_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START( hornet )
- MCFG_MACHINE_RESET( hornet )
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -1036,23 +1036,23 @@ static MACHINE_CONFIG_START( hornet, hornet_state )
MACHINE_CONFIG_END
-static MACHINE_RESET( hornet_2board )
+MACHINE_RESET_MEMBER(hornet_state,hornet_2board)
{
- UINT8 *usr3 = machine.root_device().memregion("user3")->base();
- UINT8 *usr5 = machine.root_device().memregion("user5")->base();
+ UINT8 *usr3 = machine().root_device().memregion("user3")->base();
+ UINT8 *usr5 = machine().root_device().memregion("user5")->base();
if (usr3 != NULL)
{
- machine.root_device().membank("bank1")->configure_entries(0, machine.root_device().memregion("user3")->bytes() / 0x10000, usr3, 0x10000);
- machine.root_device().membank("bank1")->set_entry(0);
+ machine().root_device().membank("bank1")->configure_entries(0, machine().root_device().memregion("user3")->bytes() / 0x10000, usr3, 0x10000);
+ machine().root_device().membank("bank1")->set_entry(0);
}
- machine.device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- machine.device("dsp2")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("dsp2")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
if (usr5)
{
- machine.root_device().membank("bank5")->set_base(usr5);
- machine.root_device().membank("bank6")->set_base(usr5);
+ machine().root_device().membank("bank5")->set_base(usr5);
+ machine().root_device().membank("bank6")->set_base(usr5);
}
}
@@ -1084,7 +1084,7 @@ static MACHINE_CONFIG_DERIVED( hornet_2board, hornet )
MCFG_CPU_CONFIG(sharc_cfg)
MCFG_CPU_DATA_MAP(sharc1_map)
- MCFG_MACHINE_RESET(hornet_2board)
+ MCFG_MACHINE_RESET_OVERRIDE(hornet_state,hornet_2board)
MCFG_DEVICE_REMOVE("k037122_1")
diff --git a/src/mame/drivers/hotblock.c b/src/mame/drivers/hotblock.c
index 75588841f66..b3bf31f11b0 100644
--- a/src/mame/drivers/hotblock.c
+++ b/src/mame/drivers/hotblock.c
@@ -66,6 +66,7 @@ public:
DECLARE_WRITE8_MEMBER(hotblock_port4_w);
DECLARE_WRITE8_MEMBER(hotblock_port0_w);
DECLARE_WRITE8_MEMBER(hotblock_video_write);
+ virtual void video_start();
};
@@ -136,10 +137,9 @@ ADDRESS_MAP_END
-static VIDEO_START(hotblock)
+void hotblock_state::video_start()
{
- hotblock_state *state = machine.driver_data<hotblock_state>();
- state->save_item(NAME(state->m_pal));
+ save_item(NAME(m_pal));
}
static SCREEN_UPDATE_IND16(hotblock)
@@ -229,7 +229,6 @@ static MACHINE_CONFIG_START( hotblock, hotblock_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(hotblock)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hotstuff.c b/src/mame/drivers/hotstuff.c
index 4617c32bf54..d98328384f5 100644
--- a/src/mame/drivers/hotstuff.c
+++ b/src/mame/drivers/hotstuff.c
@@ -20,10 +20,11 @@ public:
DECLARE_READ8_MEMBER(ioboard_unk_r);
DECLARE_WRITE8_MEMBER(ioboard_data_w);
DECLARE_WRITE8_MEMBER(ioboard_reg_w);
+ virtual void video_start();
};
-VIDEO_START( hotstuff )
+void hotstuff_state::video_start()
{
}
@@ -136,7 +137,6 @@ static MACHINE_CONFIG_START( hotstuff, hotstuff_state )
MCFG_PALETTE_LENGTH(0x200)
- MCFG_VIDEO_START(hotstuff)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hvyunit.c b/src/mame/drivers/hvyunit.c
index 778ad4e5918..3fc29a92769 100644
--- a/src/mame/drivers/hvyunit.c
+++ b/src/mame/drivers/hvyunit.c
@@ -123,6 +123,9 @@ public:
DECLARE_READ8_MEMBER(mermaid_p3_r);
DECLARE_WRITE8_MEMBER(mermaid_p3_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -132,26 +135,24 @@ public:
*
*************************************/
-static MACHINE_START( hvyunit )
+void hvyunit_state::machine_start()
{
- hvyunit_state *state = machine.driver_data<hvyunit_state>();
- state->m_master_cpu = machine.device("master");
- state->m_slave_cpu = machine.device("slave");
- state->m_sound_cpu = machine.device("soundcpu");
- state->m_mermaid = machine.device("mermaid");
- state->m_pandora = machine.device("pandora");
+ m_master_cpu = machine().device("master");
+ m_slave_cpu = machine().device("slave");
+ m_sound_cpu = machine().device("soundcpu");
+ m_mermaid = machine().device("mermaid");
+ m_pandora = machine().device("pandora");
// TODO: Save state
}
-static MACHINE_RESET( hvyunit )
+void hvyunit_state::machine_reset()
{
- hvyunit_state *state = machine.driver_data<hvyunit_state>();
- state->m_mermaid_int0_l = 1;
- state->m_mermaid_to_z80_full = 0;
- state->m_z80_to_mermaid_full = 0;
+ m_mermaid_int0_l = 1;
+ m_mermaid_to_z80_full = 0;
+ m_z80_to_mermaid_full = 0;
}
@@ -171,10 +172,9 @@ TILE_GET_INFO_MEMBER(hvyunit_state::get_bg_tile_info)
SET_TILE_INFO_MEMBER(1, code, color, 0);
}
-static VIDEO_START( hvyunit )
+void hvyunit_state::video_start()
{
- hvyunit_state *state = machine.driver_data<hvyunit_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hvyunit_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(hvyunit_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
}
static SCREEN_UPDATE_IND16( hvyunit )
@@ -673,8 +673,6 @@ static MACHINE_CONFIG_START( hvyunit, hvyunit_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(hvyunit)
- MCFG_MACHINE_RESET(hvyunit)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
@@ -689,7 +687,6 @@ static MACHINE_CONFIG_START( hvyunit, hvyunit_state )
MCFG_KANEKO_PANDORA_ADD("pandora", hvyunit_pandora_config)
- MCFG_VIDEO_START(hvyunit)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hyhoo.c b/src/mame/drivers/hyhoo.c
index 7b54c3beefa..5cfb2cc3897 100644
--- a/src/mame/drivers/hyhoo.c
+++ b/src/mame/drivers/hyhoo.c
@@ -257,7 +257,6 @@ static MACHINE_CONFIG_START( hyhoo, hyhoo_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
MCFG_SCREEN_UPDATE_STATIC(hyhoo)
- MCFG_VIDEO_START(hyhoo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hyperspt.c b/src/mame/drivers/hyperspt.c
index 0844cba03d2..85e14208586 100644
--- a/src/mame/drivers/hyperspt.c
+++ b/src/mame/drivers/hyperspt.c
@@ -312,8 +312,6 @@ static MACHINE_CONFIG_START( hyperspt, hyperspt_state )
MCFG_GFXDECODE(hyperspt)
MCFG_PALETTE_LENGTH(16*16+16*16)
- MCFG_PALETTE_INIT(hyperspt)
- MCFG_VIDEO_START(hyperspt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -347,7 +345,7 @@ static MACHINE_CONFIG_DERIVED( roadf, hyperspt )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(roadf_map)
MCFG_GFXDECODE(roadf)
- MCFG_VIDEO_START(roadf)
+ MCFG_VIDEO_START_OVERRIDE(hyperspt_state,roadf)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hyprduel.c b/src/mame/drivers/hyprduel.c
index 3197a4fb50f..490feac9ce5 100644
--- a/src/mame/drivers/hyprduel.c
+++ b/src/mame/drivers/hyprduel.c
@@ -635,39 +635,36 @@ static const ym2151_interface ym2151_config =
Machine Drivers
***************************************************************************/
-static MACHINE_RESET( hyprduel )
+void hyprduel_state::machine_reset()
{
- hyprduel_state *state = machine.driver_data<hyprduel_state>();
/* start with cpu2 halted */
- machine.device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- state->m_subcpu_resetline = 1;
- state->m_cpu_trigger = 0;
+ machine().device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ m_subcpu_resetline = 1;
+ m_cpu_trigger = 0;
- state->m_requested_int = 0x00;
- state->m_blitter_bit = 2;
- *state->m_irq_enable = 0xff;
+ m_requested_int = 0x00;
+ m_blitter_bit = 2;
+ *m_irq_enable = 0xff;
}
-static MACHINE_START( hyprduel )
+MACHINE_START_MEMBER(hyprduel_state,hyprduel)
{
- hyprduel_state *state = machine.driver_data<hyprduel_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_subcpu = machine().device<cpu_device>("sub");
- state->save_item(NAME(state->m_blitter_bit));
- state->save_item(NAME(state->m_requested_int));
- state->save_item(NAME(state->m_subcpu_resetline));
- state->save_item(NAME(state->m_cpu_trigger));
+ save_item(NAME(m_blitter_bit));
+ save_item(NAME(m_requested_int));
+ save_item(NAME(m_subcpu_resetline));
+ save_item(NAME(m_cpu_trigger));
}
-static MACHINE_START( magerror )
+MACHINE_START_MEMBER(hyprduel_state,magerror)
{
- hyprduel_state *state = machine.driver_data<hyprduel_state>();
- MACHINE_START_CALL(hyprduel);
- state->m_magerror_irq_timer->adjust(attotime::zero, 0, attotime::from_hz(968)); /* tempo? */
+ MACHINE_START_CALL_MEMBER(hyprduel);
+ m_magerror_irq_timer->adjust(attotime::zero, 0, attotime::from_hz(968)); /* tempo? */
}
static MACHINE_CONFIG_START( hyprduel, hyprduel_state )
@@ -680,8 +677,7 @@ static MACHINE_CONFIG_START( hyprduel, hyprduel_state )
MCFG_CPU_ADD("sub", M68000,20000000/2) /* 10MHz */
MCFG_CPU_PROGRAM_MAP(hyprduel_map2)
- MCFG_MACHINE_START(hyprduel)
- MCFG_MACHINE_RESET(hyprduel)
+ MCFG_MACHINE_START_OVERRIDE(hyprduel_state,hyprduel)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
@@ -696,7 +692,7 @@ static MACHINE_CONFIG_START( hyprduel, hyprduel_state )
MCFG_GFXDECODE(14220)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(hyprduel_14220)
+ MCFG_VIDEO_START_OVERRIDE(hyprduel_state,hyprduel_14220)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -722,8 +718,7 @@ static MACHINE_CONFIG_START( magerror, hyprduel_state )
MCFG_CPU_ADD("sub", M68000,20000000/2) /* 10MHz */
MCFG_CPU_PROGRAM_MAP(magerror_map2)
- MCFG_MACHINE_START(magerror)
- MCFG_MACHINE_RESET(hyprduel)
+ MCFG_MACHINE_START_OVERRIDE(hyprduel_state,magerror)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
@@ -738,7 +733,7 @@ static MACHINE_CONFIG_START( magerror, hyprduel_state )
MCFG_GFXDECODE(14220)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(magerror_14220)
+ MCFG_VIDEO_START_OVERRIDE(hyprduel_state,magerror_14220)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c
index c2ae72457e8..6180ad33491 100644
--- a/src/mame/drivers/igs009.c
+++ b/src/mame/drivers/igs009.c
@@ -86,6 +86,9 @@ public:
TILE_GET_INFO_MEMBER(get_jingbell_reel4_tile_info);
TILE_GET_INFO_MEMBER(get_gp98_reel4_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
+ DECLARE_VIDEO_START(gp98);
};
@@ -244,39 +247,37 @@ WRITE8_MEMBER(igs009_state::fg_color_w)
m_fg_tilemap->mark_tile_dirty(offset);
}
-static VIDEO_START(jingbell)
+void igs009_state::video_start()
{
- igs009_state *state = machine.driver_data<igs009_state>();
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
+ m_fg_tilemap->set_transparent_pen(0);
- state->m_gp98_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- state->m_gp98_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- state->m_gp98_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- state->m_gp98_reel4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel4_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_gp98_reel1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_gp98_reel2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_gp98_reel3_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_gp98_reel4_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel4_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- state->m_gp98_reel1_tilemap->set_scroll_cols(128);
- state->m_gp98_reel2_tilemap->set_scroll_cols(128);
- state->m_gp98_reel3_tilemap->set_scroll_cols(128);
- state->m_gp98_reel4_tilemap->set_scroll_cols(128);
+ m_gp98_reel1_tilemap->set_scroll_cols(128);
+ m_gp98_reel2_tilemap->set_scroll_cols(128);
+ m_gp98_reel3_tilemap->set_scroll_cols(128);
+ m_gp98_reel4_tilemap->set_scroll_cols(128);
}
-static VIDEO_START(gp98)
+VIDEO_START_MEMBER(igs009_state,gp98)
{
- igs009_state *state = machine.driver_data<igs009_state>();
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
+ m_fg_tilemap->set_transparent_pen(0);
- state->m_gp98_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- state->m_gp98_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- state->m_gp98_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- state->m_gp98_reel4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel4_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_gp98_reel1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_gp98_reel2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_gp98_reel3_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_gp98_reel4_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel4_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- state->m_gp98_reel1_tilemap->set_scroll_cols(128);
- state->m_gp98_reel2_tilemap->set_scroll_cols(128);
- state->m_gp98_reel3_tilemap->set_scroll_cols(128);
- state->m_gp98_reel4_tilemap->set_scroll_cols(128);
+ m_gp98_reel1_tilemap->set_scroll_cols(128);
+ m_gp98_reel2_tilemap->set_scroll_cols(128);
+ m_gp98_reel3_tilemap->set_scroll_cols(128);
+ m_gp98_reel4_tilemap->set_scroll_cols(128);
}
@@ -725,12 +726,11 @@ GFXDECODE_END
Machine Drivers
***************************************************************************/
-static MACHINE_RESET( jingbell )
+void igs009_state::machine_reset()
{
- igs009_state *state = machine.driver_data<igs009_state>();
- state->m_nmi_enable = 0;
- state->m_hopper = 0;
- state->m_video_enable = 1;
+ m_nmi_enable = 0;
+ m_hopper = 0;
+ m_video_enable = 1;
}
static INTERRUPT_GEN( jingbell_interrupt )
@@ -747,7 +747,6 @@ static MACHINE_CONFIG_START( jingbell, igs009_state )
MCFG_CPU_IO_MAP(jingbell_portmap)
MCFG_CPU_VBLANK_INT("screen",jingbell_interrupt)
- MCFG_MACHINE_RESET(jingbell)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -762,7 +761,6 @@ static MACHINE_CONFIG_START( jingbell, igs009_state )
MCFG_GFXDECODE(jingbell)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(jingbell)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -776,7 +774,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( gp98, jingbell )
MCFG_GFXDECODE(gp98)
- MCFG_VIDEO_START(gp98)
+ MCFG_VIDEO_START_OVERRIDE(igs009_state,gp98)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c
index f319d877688..b1091cd85df 100644
--- a/src/mame/drivers/igs011.c
+++ b/src/mame/drivers/igs011.c
@@ -195,6 +195,7 @@ public:
DECLARE_DRIVER_INIT(vbowl);
DECLARE_DRIVER_INIT(vbowlj);
DECLARE_DRIVER_INIT(ryukobou);
+ virtual void video_start();
};
@@ -230,17 +231,16 @@ WRITE16_MEMBER(igs011_state::igs011_priority_w)
}
-static VIDEO_START( igs011 )
+void igs011_state::video_start()
{
- igs011_state *state = machine.driver_data<igs011_state>();
int i;
for (i = 0; i < 8; i++)
{
- state->m_layer[i] = auto_alloc_array(machine, UINT8, 512 * 256);
+ m_layer[i] = auto_alloc_array(machine(), UINT8, 512 * 256);
}
- state->m_lhb2_pen_hi = 0;
+ m_lhb2_pen_hi = 0;
}
static SCREEN_UPDATE_IND16( igs011 )
@@ -3814,7 +3814,6 @@ static MACHINE_CONFIG_START( igs011_base, igs011_state )
MCFG_PALETTE_LENGTH(0x800)
// MCFG_GFXDECODE(igs011)
- MCFG_VIDEO_START( igs011 )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c
index 0068669fd65..87504342119 100644
--- a/src/mame/drivers/igs017.c
+++ b/src/mame/drivers/igs017.c
@@ -150,6 +150,11 @@ public:
DECLARE_DRIVER_INIT(mgdha);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void video_start();
+ virtual void video_reset();
+ DECLARE_MACHINE_RESET(iqblocka);
+ DECLARE_MACHINE_RESET(mgcs);
+ DECLARE_MACHINE_RESET(lhzb2a);
};
@@ -171,10 +176,9 @@ WRITE16_MEMBER(igs017_state::video_disable_lsb_w)
video_disable_w(space,offset,data);
}
-static VIDEO_RESET( igs017 )
+void igs017_state::video_reset()
{
- igs017_state *state = machine.driver_data<igs017_state>();
- state->m_video_disable = 0;
+ m_video_disable = 0;
}
@@ -261,20 +265,19 @@ static void expand_sprites(running_machine &machine)
}
}
-static VIDEO_START( igs017 )
+void igs017_state::video_start()
{
- igs017_state *state = machine.driver_data<igs017_state>();
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs017_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32);
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs017_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs017_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs017_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- state->m_fg_tilemap->set_transparent_pen(0xf);
- state->m_bg_tilemap->set_transparent_pen(0xf);
+ m_fg_tilemap->set_transparent_pen(0xf);
+ m_bg_tilemap->set_transparent_pen(0xf);
- state->m_toggle = 0;
- state->m_debug_addr = 0;
- state->m_debug_width = 512;
+ m_toggle = 0;
+ m_debug_addr = 0;
+ m_debug_width = 512;
- expand_sprites(machine);
+ expand_sprites(machine());
}
/***************************************************************************
@@ -3243,12 +3246,11 @@ static I8255A_INTERFACE( iqblocka_ppi8255_intf )
};
-static MACHINE_RESET( iqblocka )
+MACHINE_RESET_MEMBER(igs017_state,iqblocka)
{
- igs017_state *state = machine.driver_data<igs017_state>();
- state->m_nmi_enable = 0;
- state->m_irq_enable = 0;
- state->m_input_select = 0;
+ m_nmi_enable = 0;
+ m_irq_enable = 0;
+ m_input_select = 0;
}
static MACHINE_CONFIG_START( iqblocka, igs017_state )
@@ -3259,7 +3261,7 @@ static MACHINE_CONFIG_START( iqblocka, igs017_state )
MCFG_I8255A_ADD( "ppi8255", iqblocka_ppi8255_intf )
- MCFG_MACHINE_RESET(iqblocka)
+ MCFG_MACHINE_RESET_OVERRIDE(igs017_state,iqblocka)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3272,8 +3274,6 @@ static MACHINE_CONFIG_START( iqblocka, igs017_state )
MCFG_GFXDECODE(igs017)
MCFG_PALETTE_LENGTH(0x100*2)
- MCFG_VIDEO_START(igs017)
- MCFG_VIDEO_RESET(igs017)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3300,14 +3300,13 @@ static TIMER_DEVICE_CALLBACK( mgcs_interrupt )
state->m_maincpu->set_input_line(2, HOLD_LINE);
}
-static MACHINE_RESET( mgcs )
+MACHINE_RESET_MEMBER(igs017_state,mgcs)
{
- igs017_state *state = machine.driver_data<igs017_state>();
- MACHINE_RESET_CALL( iqblocka );
- state->m_irq1_enable = 0;
- state->m_irq2_enable = 0;
- state->m_scramble_data = 0;
- memset(state->m_igs_magic, 0, sizeof(state->m_igs_magic));
+ MACHINE_RESET_CALL_MEMBER( iqblocka );
+ m_irq1_enable = 0;
+ m_irq2_enable = 0;
+ m_scramble_data = 0;
+ memset(m_igs_magic, 0, sizeof(m_igs_magic));
}
static I8255A_INTERFACE( mgcs_ppi8255_intf )
@@ -3325,7 +3324,7 @@ static MACHINE_CONFIG_START( mgcs, igs017_state )
MCFG_CPU_PROGRAM_MAP(mgcs)
MCFG_TIMER_ADD_SCANLINE("scantimer", mgcs_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(mgcs)
+ MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs)
MCFG_I8255A_ADD( "ppi8255", mgcs_ppi8255_intf )
@@ -3340,8 +3339,6 @@ static MACHINE_CONFIG_START( mgcs, igs017_state )
MCFG_GFXDECODE(igs017_flipped)
MCFG_PALETTE_LENGTH(0x100*2)
- MCFG_VIDEO_START(igs017)
- MCFG_VIDEO_RESET(igs017)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3367,7 +3364,7 @@ static MACHINE_CONFIG_START( lhzb2, igs017_state )
MCFG_CPU_PROGRAM_MAP(lhzb2)
MCFG_TIMER_ADD_SCANLINE("scantimer", mgcs_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(mgcs)
+ MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs)
MCFG_I8255A_ADD( "ppi8255", lhzb2_ppi8255_intf )
@@ -3382,8 +3379,6 @@ static MACHINE_CONFIG_START( lhzb2, igs017_state )
MCFG_GFXDECODE(igs017_swapped)
MCFG_PALETTE_LENGTH(0x100*2)
- MCFG_VIDEO_START(igs017)
- MCFG_VIDEO_RESET(igs017)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3395,11 +3390,10 @@ MACHINE_CONFIG_END
// lhzb2a
-static MACHINE_RESET( lhzb2a )
+MACHINE_RESET_MEMBER(igs017_state,lhzb2a)
{
- igs017_state *state = machine.driver_data<igs017_state>();
- MACHINE_RESET_CALL( mgcs );
- state->lhzb2a_input_addr_w(*state->m_maincpu->space(AS_PROGRAM), 0, 0xf0);
+ MACHINE_RESET_CALL_MEMBER( mgcs );
+ lhzb2a_input_addr_w(*m_maincpu->space(AS_PROGRAM), 0, 0xf0);
}
static MACHINE_CONFIG_START( lhzb2a, igs017_state )
@@ -3407,7 +3401,7 @@ static MACHINE_CONFIG_START( lhzb2a, igs017_state )
MCFG_CPU_PROGRAM_MAP(lhzb2a)
MCFG_TIMER_ADD_SCANLINE("scantimer", mgcs_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(lhzb2a)
+ MCFG_MACHINE_RESET_OVERRIDE(igs017_state,lhzb2a)
// MCFG_I8255A_ADD( "ppi8255", sdmg2_ppi8255_intf )
@@ -3422,8 +3416,6 @@ static MACHINE_CONFIG_START( lhzb2a, igs017_state )
MCFG_GFXDECODE(igs017_swapped)
MCFG_PALETTE_LENGTH(0x100*2)
- MCFG_VIDEO_START(igs017)
- MCFG_VIDEO_RESET(igs017)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3440,7 +3432,7 @@ static MACHINE_CONFIG_START( slqz2, igs017_state )
MCFG_CPU_PROGRAM_MAP(slqz2)
MCFG_TIMER_ADD_SCANLINE("scantimer", mgcs_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(mgcs)
+ MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs)
MCFG_I8255A_ADD( "ppi8255", lhzb2_ppi8255_intf )
@@ -3455,8 +3447,6 @@ static MACHINE_CONFIG_START( slqz2, igs017_state )
MCFG_GFXDECODE(igs017)
MCFG_PALETTE_LENGTH(0x100*2)
- MCFG_VIDEO_START(igs017)
- MCFG_VIDEO_RESET(igs017)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3482,7 +3472,7 @@ static MACHINE_CONFIG_START( sdmg2, igs017_state )
MCFG_CPU_PROGRAM_MAP(sdmg2)
MCFG_TIMER_ADD_SCANLINE("scantimer", mgcs_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(mgcs)
+ MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs)
MCFG_I8255A_ADD( "ppi8255", sdmg2_ppi8255_intf )
@@ -3497,8 +3487,6 @@ static MACHINE_CONFIG_START( sdmg2, igs017_state )
MCFG_GFXDECODE(igs017)
MCFG_PALETTE_LENGTH(0x100*2)
- MCFG_VIDEO_START(igs017)
- MCFG_VIDEO_RESET(igs017)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3536,7 +3524,7 @@ static MACHINE_CONFIG_START( mgdha, igs017_state )
MCFG_CPU_PROGRAM_MAP(mgdha_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", mgdh_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(mgcs)
+ MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs)
MCFG_I8255A_ADD( "ppi8255", mgdh_ppi8255_intf )
@@ -3551,8 +3539,6 @@ static MACHINE_CONFIG_START( mgdha, igs017_state )
MCFG_GFXDECODE(igs017_swapped)
MCFG_PALETTE_LENGTH(0x100*2)
- MCFG_VIDEO_START(igs017)
- MCFG_VIDEO_RESET(igs017)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3571,7 +3557,7 @@ static MACHINE_CONFIG_START( tjsb, igs017_state )
MCFG_I8255A_ADD( "ppi8255", iqblocka_ppi8255_intf )
- MCFG_MACHINE_RESET(iqblocka)
+ MCFG_MACHINE_RESET_OVERRIDE(igs017_state,iqblocka)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3584,8 +3570,6 @@ static MACHINE_CONFIG_START( tjsb, igs017_state )
MCFG_GFXDECODE(igs017)
MCFG_PALETTE_LENGTH(0x100*2)
- MCFG_VIDEO_START(igs017)
- MCFG_VIDEO_RESET(igs017)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/igs_m027.c b/src/mame/drivers/igs_m027.c
index 05cac89f2cf..eb19b0251b4 100644
--- a/src/mame/drivers/igs_m027.c
+++ b/src/mame/drivers/igs_m027.c
@@ -57,6 +57,7 @@ public:
DECLARE_DRIVER_INIT(klxyj);
TILE_GET_INFO_MEMBER(get_tx_tilemap_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tilemap_tile_info);
+ virtual void video_start();
};
@@ -170,14 +171,13 @@ WRITE32_MEMBER(igs_m027_state::igs_palette32_w)
-static VIDEO_START(igs_majhong)
+void igs_m027_state::video_start()
{
- igs_m027_state *state = machine.driver_data<igs_m027_state>();
- state->m_igs_tx_tilemap= &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs_m027_state::get_tx_tilemap_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32);
- state->m_igs_tx_tilemap->set_transparent_pen(15);
- state->m_igs_bg_tilemap= &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs_m027_state::get_bg_tilemap_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32);
- //state->m_igs_bg_tilemap= &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs_m027_state::get_bg_tilemap_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32);
- //state->m_igs_bg_tilemap->set_transparent_pen(15);
+ m_igs_tx_tilemap= &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs_m027_state::get_tx_tilemap_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_igs_tx_tilemap->set_transparent_pen(15);
+ m_igs_bg_tilemap= &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs_m027_state::get_bg_tilemap_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ //m_igs_bg_tilemap= &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igs_m027_state::get_bg_tilemap_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ //m_igs_bg_tilemap->set_transparent_pen(15);
logerror("Video START OK!\n");
}
@@ -383,7 +383,6 @@ static MACHINE_CONFIG_START( igs_majhong, igs_m027_state )
MCFG_PALETTE_LENGTH(0x200)
- MCFG_VIDEO_START( igs_majhong )
/* sound hardware */
diff --git a/src/mame/drivers/igspoker.c b/src/mame/drivers/igspoker.c
index 63aab4e0657..6d2e6317973 100644
--- a/src/mame/drivers/igspoker.c
+++ b/src/mame/drivers/igspoker.c
@@ -116,15 +116,17 @@ public:
DECLARE_DRIVER_INIT(cpokerpk);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
+ DECLARE_VIDEO_START(cpokerpk);
};
-static MACHINE_RESET( igs )
+void igspoker_state::machine_reset()
{
- igspoker_state *state = machine.driver_data<igspoker_state>();
- state->m_nmi_enable = 0;
- state->m_hopper = 0;
- state->m_bg_enable = 1;
+ m_nmi_enable = 0;
+ m_hopper = 0;
+ m_bg_enable = 1;
}
@@ -187,13 +189,12 @@ WRITE8_MEMBER(igspoker_state::fg_color_w)
m_fg_tilemap->mark_tile_dirty(offset);
}
-static VIDEO_START(igs_video)
+void igspoker_state::video_start()
{
- igspoker_state *state = machine.driver_data<igspoker_state>();
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_fg_tilemap->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16(igs_video)
@@ -209,10 +210,9 @@ static SCREEN_UPDATE_IND16(igs_video)
return 0;
}
-static VIDEO_START(cpokerpk)
+VIDEO_START_MEMBER(igspoker_state,cpokerpk)
{
- igspoker_state *state = machine.driver_data<igspoker_state>();
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
static SCREEN_UPDATE_IND16(cpokerpk)
@@ -1773,7 +1773,6 @@ static MACHINE_CONFIG_START( igspoker, igspoker_state )
MCFG_CPU_IO_MAP(igspoker_io_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", igs_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(igs)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1786,7 +1785,6 @@ static MACHINE_CONFIG_START( igspoker, igspoker_state )
MCFG_GFXDECODE(igspoker)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(igs_video)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1813,7 +1811,7 @@ static MACHINE_CONFIG_DERIVED( number10, igspoker )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(cpokerpk)
- MCFG_VIDEO_START(cpokerpk)
+ MCFG_VIDEO_START_OVERRIDE(igspoker_state,cpokerpk)
MCFG_OKIM6295_ADD("oki", XTAL_12MHz / 12, OKIM6295_PIN7_HIGH)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
diff --git a/src/mame/drivers/ikki.c b/src/mame/drivers/ikki.c
index 96f1a7bdf5a..865839ddc93 100644
--- a/src/mame/drivers/ikki.c
+++ b/src/mame/drivers/ikki.c
@@ -225,20 +225,18 @@ static const sn76496_config psg_intf =
*
*************************************/
-static MACHINE_START( ikki )
+void ikki_state::machine_start()
{
- ikki_state *state = machine.driver_data<ikki_state>();
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_punch_through_pen));
- state->save_item(NAME(state->m_irq_source));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_punch_through_pen));
+ save_item(NAME(m_irq_source));
}
-static MACHINE_RESET( ikki )
+void ikki_state::machine_reset()
{
- ikki_state *state = machine.driver_data<ikki_state>();
- state->m_flipscreen = 0;
+ m_flipscreen = 0;
}
static TIMER_DEVICE_CALLBACK( ikki_irq )
@@ -270,8 +268,6 @@ static MACHINE_CONFIG_START( ikki, ikki_state )
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_START(ikki)
- MCFG_MACHINE_RESET(ikki)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -285,8 +281,6 @@ static MACHINE_CONFIG_START( ikki, ikki_state )
MCFG_GFXDECODE(ikki)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(ikki)
- MCFG_VIDEO_START(ikki)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/imolagp.c b/src/mame/drivers/imolagp.c
index 2a46525add2..8cd1d39eb0f 100644
--- a/src/mame/drivers/imolagp.c
+++ b/src/mame/drivers/imolagp.c
@@ -125,6 +125,9 @@ public:
DECLARE_READ8_MEMBER(imola_slave_port82r);
DECLARE_WRITE8_MEMBER(vreg_control_w);
DECLARE_WRITE8_MEMBER(vreg_data_w);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -195,14 +198,13 @@ static void initialize_colors( running_machine &machine )
}
}
-static VIDEO_START( imolagp )
+void imolagp_state::video_start()
{
- imolagp_state *state = machine.driver_data<imolagp_state>();
- memset(state->m_videoram, 0, sizeof(state->m_videoram));
- state->save_item(NAME(state->m_videoram));
+ memset(m_videoram, 0, sizeof(m_videoram));
+ save_item(NAME(m_videoram));
- initialize_colors(machine);
+ initialize_colors(machine());
}
@@ -514,40 +516,38 @@ static I8255A_INTERFACE( ppi8255_intf )
};
-static MACHINE_START( imolagp )
+void imolagp_state::machine_start()
{
- imolagp_state *state = machine.driver_data<imolagp_state>();
- state->m_slavecpu = machine.device<cpu_device>("slave");
+ m_slavecpu = machine().device<cpu_device>("slave");
- state->save_item(NAME(state->m_control));
- state->save_item(NAME(state->m_scroll));
- state->save_item(NAME(state->m_steerlatch));
- state->save_item(NAME(state->m_draw_mode));
- state->save_item(NAME(state->m_oldsteer));
+ save_item(NAME(m_control));
+ save_item(NAME(m_scroll));
+ save_item(NAME(m_steerlatch));
+ save_item(NAME(m_draw_mode));
+ save_item(NAME(m_oldsteer));
#ifdef HLE_COM
- state->save_item(NAME(state->m_mComData));
- state->save_item(NAME(state->m_mComCount));
+ save_item(NAME(m_mComData));
+ save_item(NAME(m_mComCount));
#else
- state->save_item(NAME(state->m_mLatchedData));
+ save_item(NAME(m_mLatchedData));
#endif
}
-static MACHINE_RESET( imolagp )
+void imolagp_state::machine_reset()
{
- imolagp_state *state = machine.driver_data<imolagp_state>();
- state->m_control = 0;
- state->m_scroll = 0;
- state->m_steerlatch = 0;
- state->m_draw_mode = 0;
- state->m_oldsteer = 0;
+ m_control = 0;
+ m_scroll = 0;
+ m_steerlatch = 0;
+ m_draw_mode = 0;
+ m_oldsteer = 0;
#ifdef HLE_COM
- state->m_mComCount = 0;
- memset(state->m_mComData, 0, 0x100);
+ m_mComCount = 0;
+ memset(m_mComData, 0, 0x100);
#else
- state->m_mLatchedData[0] = 0;
- state->m_mLatchedData[1] = 0;
+ m_mLatchedData[0] = 0;
+ m_mLatchedData[1] = 0;
#endif
}
@@ -566,8 +566,6 @@ static MACHINE_CONFIG_START( imolagp, imolagp_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(imolagp)
- MCFG_MACHINE_RESET(imolagp)
MCFG_I8255A_ADD( "ppi8255", ppi8255_intf )
@@ -579,7 +577,6 @@ static MACHINE_CONFIG_START( imolagp, imolagp_state )
MCFG_SCREEN_UPDATE_STATIC(imolagp)
MCFG_PALETTE_LENGTH(0x20)
- MCFG_VIDEO_START(imolagp)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 2000000)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
diff --git a/src/mame/drivers/intrscti.c b/src/mame/drivers/intrscti.c
index 0cd21d65953..00923241d92 100644
--- a/src/mame/drivers/intrscti.c
+++ b/src/mame/drivers/intrscti.c
@@ -25,9 +25,10 @@ public:
required_shared_ptr<UINT8> m_vram;
// DECLARE_READ8_MEMBER(unk_r);
DECLARE_DRIVER_INIT(intrscti);
+ virtual void video_start();
};
-static VIDEO_START(intrscti)
+void intrscti_state::video_start()
{
}
@@ -175,7 +176,6 @@ static MACHINE_CONFIG_START( intrscti, intrscti_state )
MCFG_GFXDECODE(intrscti)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(intrscti)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c
index 4410d8cb152..ae33679ad05 100644
--- a/src/mame/drivers/inufuku.c
+++ b/src/mame/drivers/inufuku.c
@@ -311,38 +311,36 @@ static const ym2610_interface ym2610_config =
******************************************************************************/
-static MACHINE_START( inufuku )
+void inufuku_state::machine_start()
{
- inufuku_state *state = machine.driver_data<inufuku_state>();
- UINT8 *ROM = state->memregion("audiocpu")->base();
-
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x8000);
- state->membank("bank1")->set_entry(0);
-
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
-
- state->save_item(NAME(state->m_pending_command));
- state->save_item(NAME(state->m_bg_scrollx));
- state->save_item(NAME(state->m_bg_scrolly));
- state->save_item(NAME(state->m_tx_scrollx));
- state->save_item(NAME(state->m_tx_scrolly));
- state->save_item(NAME(state->m_bg_raster));
- state->save_item(NAME(state->m_bg_palettebank));
- state->save_item(NAME(state->m_tx_palettebank));
+ UINT8 *ROM = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x8000);
+ membank("bank1")->set_entry(0);
+
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+
+ save_item(NAME(m_pending_command));
+ save_item(NAME(m_bg_scrollx));
+ save_item(NAME(m_bg_scrolly));
+ save_item(NAME(m_tx_scrollx));
+ save_item(NAME(m_tx_scrolly));
+ save_item(NAME(m_bg_raster));
+ save_item(NAME(m_bg_palettebank));
+ save_item(NAME(m_tx_palettebank));
}
-static MACHINE_RESET( inufuku )
+void inufuku_state::machine_reset()
{
- inufuku_state *state = machine.driver_data<inufuku_state>();
-
- state->m_pending_command = 1;
- state->m_bg_scrollx = 0;
- state->m_bg_scrolly = 0;
- state->m_tx_scrollx = 0;
- state->m_tx_scrolly = 0;
- state->m_bg_raster = 0;
- state->m_bg_palettebank = 0;
- state->m_tx_palettebank = 0;
+
+ m_pending_command = 1;
+ m_bg_scrollx = 0;
+ m_bg_scrolly = 0;
+ m_tx_scrollx = 0;
+ m_tx_scrolly = 0;
+ m_bg_raster = 0;
+ m_bg_palettebank = 0;
+ m_tx_palettebank = 0;
}
static MACHINE_CONFIG_START( inufuku, inufuku_state )
@@ -357,8 +355,6 @@ static MACHINE_CONFIG_START( inufuku, inufuku_state )
MCFG_CPU_IO_MAP(inufuku_sound_io_map)
/* IRQs are triggered by the YM2610 */
- MCFG_MACHINE_START(inufuku)
- MCFG_MACHINE_RESET(inufuku)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -373,7 +369,6 @@ static MACHINE_CONFIG_START( inufuku, inufuku_state )
MCFG_GFXDECODE(inufuku)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(inufuku)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/iqblock.c b/src/mame/drivers/iqblock.c
index 87ce518e8e7..2cfda9d809e 100644
--- a/src/mame/drivers/iqblock.c
+++ b/src/mame/drivers/iqblock.c
@@ -290,7 +290,6 @@ static MACHINE_CONFIG_START( iqblock, iqblock_state )
MCFG_GFXDECODE(iqblock)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(iqblock)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/irobot.c b/src/mame/drivers/irobot.c
index d706e0a2372..278ef1fd71f 100644
--- a/src/mame/drivers/irobot.c
+++ b/src/mame/drivers/irobot.c
@@ -294,7 +294,6 @@ static MACHINE_CONFIG_START( irobot, irobot_state )
MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK/8)
MCFG_CPU_PROGRAM_MAP(irobot_map)
- MCFG_MACHINE_RESET(irobot)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -308,8 +307,6 @@ static MACHINE_CONFIG_START( irobot, irobot_state )
MCFG_GFXDECODE(irobot)
MCFG_PALETTE_LENGTH(64 + 32) /* 64 for polygons, 32 for text */
- MCFG_PALETTE_INIT(irobot)
- MCFG_VIDEO_START(irobot)
MCFG_TIMER_ADD("irvg_timer", irobot_irvg_done_callback)
MCFG_TIMER_ADD("irmb_timer", irobot_irmb_done_callback)
diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c
index 1e39792f068..87ce05ff80b 100644
--- a/src/mame/drivers/ironhors.c
+++ b/src/mame/drivers/ironhors.c
@@ -356,25 +356,23 @@ static const ym2203_interface ym2203_config =
};
-static MACHINE_START( ironhors )
+void ironhors_state::machine_start()
{
- ironhors_state *state = machine.driver_data<ironhors_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_soundcpu = machine.device<cpu_device>("soundcpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_soundcpu = machine().device<cpu_device>("soundcpu");
- state->save_item(NAME(state->m_palettebank));
- state->save_item(NAME(state->m_charbank));
- state->save_item(NAME(state->m_spriterambank));
+ save_item(NAME(m_palettebank));
+ save_item(NAME(m_charbank));
+ save_item(NAME(m_spriterambank));
}
-static MACHINE_RESET( ironhors )
+void ironhors_state::machine_reset()
{
- ironhors_state *state = machine.driver_data<ironhors_state>();
- state->m_palettebank = 0;
- state->m_charbank = 0;
- state->m_spriterambank = 0;
+ m_palettebank = 0;
+ m_charbank = 0;
+ m_spriterambank = 0;
}
static MACHINE_CONFIG_START( ironhors, ironhors_state )
@@ -388,8 +386,6 @@ static MACHINE_CONFIG_START( ironhors, ironhors_state )
MCFG_CPU_PROGRAM_MAP(slave_map)
MCFG_CPU_IO_MAP(slave_io_map)
- MCFG_MACHINE_START(ironhors)
- MCFG_MACHINE_RESET(ironhors)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -402,8 +398,6 @@ static MACHINE_CONFIG_START( ironhors, ironhors_state )
MCFG_GFXDECODE(ironhors)
MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
- MCFG_PALETTE_INIT(ironhors)
- MCFG_VIDEO_START(ironhors)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -472,7 +466,7 @@ static MACHINE_CONFIG_DERIVED( farwest, ironhors )
MCFG_CPU_IO_MAP(0)
MCFG_GFXDECODE(farwest)
- MCFG_VIDEO_START(farwest)
+ MCFG_VIDEO_START_OVERRIDE(ironhors_state,farwest)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(farwest)
diff --git a/src/mame/drivers/istellar.c b/src/mame/drivers/istellar.c
index 1215d7c1ec2..46e54890fdb 100644
--- a/src/mame/drivers/istellar.c
+++ b/src/mame/drivers/istellar.c
@@ -51,6 +51,8 @@ public:
DECLARE_WRITE8_MEMBER(z80_2_latch1_write);
DECLARE_WRITE8_MEMBER(z80_2_ldp_write);
DECLARE_DRIVER_INIT(istellar);
+ virtual void machine_start();
+ virtual void palette_init();
};
@@ -86,7 +88,7 @@ static SCREEN_UPDATE_RGB32( istellar )
}
-static MACHINE_START( istellar )
+void istellar_state::machine_start()
{
}
@@ -262,12 +264,12 @@ static INPUT_PORTS_START( istellar )
/* SERVICE might be hanging out back here */
INPUT_PORTS_END
-static PALETTE_INIT( istellar )
+void istellar_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
- for (i = 0; i < machine.total_colors(); i++)
+ for (i = 0; i < machine().total_colors(); i++)
{
int r,g,b;
int bit0,bit1,bit2,bit3;
@@ -295,7 +297,7 @@ static PALETTE_INIT( istellar )
bit3 = (color_prom[i+0x200] >> 3) & 0x01;
b = (0x8f * bit3) + (0x43 * bit2) + (0x1f * bit1) + (0x0e * bit0);
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
}
}
@@ -342,7 +344,6 @@ static MACHINE_CONFIG_START( istellar, istellar_state )
MCFG_CPU_PROGRAM_MAP(z80_2_mem)
MCFG_CPU_IO_MAP(z80_2_io)
- MCFG_MACHINE_START(istellar)
MCFG_LASERDISC_LDV1000_ADD("laserdisc")
MCFG_LASERDISC_OVERLAY_STATIC(256, 256, istellar)
@@ -351,7 +352,6 @@ static MACHINE_CONFIG_START( istellar, istellar_state )
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(istellar)
MCFG_GFXDECODE(istellar)
diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c
index d0d192d08ab..acac460ef62 100644
--- a/src/mame/drivers/itech32.c
+++ b/src/mame/drivers/itech32.c
@@ -435,24 +435,23 @@ WRITE16_MEMBER(itech32_state::int1_ack_w)
*
*************************************/
-static MACHINE_RESET( itech32 )
+void itech32_state::machine_reset()
{
- itech32_state *state = machine.driver_data<itech32_state>();
- state->m_vint_state = state->m_xint_state = state->m_qint_state = 0;
- state->m_sound_data = 0;
- state->m_sound_return = 0;
- state->m_sound_int_state = 0;
+ m_vint_state = m_xint_state = m_qint_state = 0;
+ m_sound_data = 0;
+ m_sound_return = 0;
+ m_sound_int_state = 0;
}
-static MACHINE_RESET( drivedge )
+MACHINE_RESET_MEMBER(itech32_state,drivedge)
{
- MACHINE_RESET_CALL(itech32);
+ itech32_state::machine_reset();
- machine.device("dsp1")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- machine.device("dsp2")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- STOP_TMS_SPINNING(machine, 0);
- STOP_TMS_SPINNING(machine, 1);
+ machine().device("dsp1")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("dsp2")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ STOP_TMS_SPINNING(machine(), 0);
+ STOP_TMS_SPINNING(machine(), 1);
}
@@ -1677,7 +1676,6 @@ static MACHINE_CONFIG_START( timekill, itech32_state )
MCFG_CPU_ADD("soundcpu", M6809, SOUND_CLOCK/8)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_RESET(itech32)
MCFG_NVRAM_ADD_CUSTOM_DRIVER("nvram", itech32_state, nvram_init)
MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH)
@@ -1690,7 +1688,6 @@ static MACHINE_CONFIG_START( timekill, itech32_state )
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 508, 0, 384, 262, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(itech32)
- MCFG_VIDEO_START(itech32)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1731,7 +1728,7 @@ static MACHINE_CONFIG_DERIVED( drivedge, bloodstm )
// MCFG_CPU_ADD("comm", M6803, 8000000/4) -- network CPU
- MCFG_MACHINE_RESET(drivedge)
+ MCFG_MACHINE_RESET_OVERRIDE(itech32_state,drivedge)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c
index d19d3eef4b7..b378b31e429 100644
--- a/src/mame/drivers/itech8.c
+++ b/src/mame/drivers/itech8.c
@@ -643,29 +643,28 @@ static void generate_sound_irq(device_t *device, int state)
static TIMER_CALLBACK( behind_the_beam_update );
-static MACHINE_START( sstrike )
+MACHINE_START_MEMBER(itech8_state,sstrike)
{
/* we need to update behind the beam as well */
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(0), FUNC(behind_the_beam_update), 32);
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), FUNC(behind_the_beam_update), 32);
}
-static MACHINE_RESET( itech8 )
+void itech8_state::machine_reset()
{
- itech8_state *state = machine.driver_data<itech8_state>();
- device_type main_cpu_type = machine.device("maincpu")->type();
+ device_type main_cpu_type = machine().device("maincpu")->type();
/* make sure bank 0 is selected */
if (main_cpu_type == M6809 || main_cpu_type == HD6309)
{
- state->membank("bank1")->set_base(&state->memregion("maincpu")->base()[0x4000]);
- machine.device("maincpu")->reset();
+ membank("bank1")->set_base(&memregion("maincpu")->base()[0x4000]);
+ machine().device("maincpu")->reset();
}
/* set the visible area */
- if (state->m_visarea.width() > 1)
+ if (m_visarea.width() > 1)
{
- machine.primary_screen->set_visible_area(state->m_visarea.min_x, state->m_visarea.max_x, state->m_visarea.min_y, state->m_visarea.max_y);
- state->m_visarea.set(0, 0, 0, 0);
+ machine().primary_screen->set_visible_area(m_visarea.min_x, m_visarea.max_x, m_visarea.min_y, m_visarea.max_y);
+ m_visarea.set(0, 0, 0, 0);
}
}
@@ -1688,7 +1687,6 @@ static MACHINE_CONFIG_START( itech8_core_lo, itech8_state )
MCFG_CPU_PROGRAM_MAP(tmslo_map)
MCFG_CPU_VBLANK_INT("screen", generate_nmi)
- MCFG_MACHINE_RESET(itech8)
MCFG_NVRAM_ADD_RANDOM_FILL("nvram")
MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
@@ -1697,7 +1695,6 @@ static MACHINE_CONFIG_START( itech8_core_lo, itech8_state )
MCFG_TLC34076_ADD("tlc34076", tlc34076_6_bit_intf)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_VIDEO_START(itech8)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -1851,7 +1848,7 @@ static MACHINE_CONFIG_DERIVED( slikshot_hi, itech8_core_hi )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
MCFG_SCREEN_UPDATE_STATIC(slikshot)
- MCFG_VIDEO_START(slikshot)
+ MCFG_VIDEO_START_OVERRIDE(itech8_state,slikshot)
MACHINE_CONFIG_END
@@ -1868,7 +1865,7 @@ static MACHINE_CONFIG_DERIVED( slikshot_lo, itech8_core_lo )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
MCFG_SCREEN_UPDATE_STATIC(slikshot)
- MCFG_VIDEO_START(slikshot)
+ MCFG_VIDEO_START_OVERRIDE(itech8_state,slikshot)
MACHINE_CONFIG_END
@@ -1887,7 +1884,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( sstrike, slikshot_lo )
/* basic machine hardware */
- MCFG_MACHINE_START(sstrike)
+ MCFG_MACHINE_START_OVERRIDE(itech8_state,sstrike)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/itgambl2.c b/src/mame/drivers/itgambl2.c
index 3906296ea6e..543484df33b 100644
--- a/src/mame/drivers/itgambl2.c
+++ b/src/mame/drivers/itgambl2.c
@@ -66,6 +66,9 @@ public:
int m_test_x;
int m_test_y;
int m_start_offs;
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -73,12 +76,11 @@ public:
* Video Hardware *
*************************/
-static VIDEO_START( itgambl2 )
+void itgambl2_state::video_start()
{
- itgambl2_state *state = machine.driver_data<itgambl2_state>();
- state->m_test_x = 256;
- state->m_test_y = 256;
- state->m_start_offs = 0;
+ m_test_x = 256;
+ m_test_y = 256;
+ m_start_offs = 0;
}
/* (dirty) debug code for looking 8bpps blitter-based gfxs */
@@ -235,14 +237,14 @@ GFXDECODE_END
* Machine Reset *
**************************/
-static MACHINE_RESET( itgambl2 )
+void itgambl2_state::machine_reset()
{
/* stop the CPU, we have no code for it anyway */
- machine.device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+ machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
}
/* default 444 palette for debug purpose*/
-static PALETTE_INIT( itgambl2 )
+void itgambl2_state::palette_init()
{
int x,r,g,b;
@@ -251,7 +253,7 @@ static PALETTE_INIT( itgambl2 )
r = (x & 0xf)*0x10;
g = ((x & 0x3c)>>2)*0x10;
b = ((x & 0xf0)>>4)*0x10;
- palette_set_color(machine,x,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),x,MAKE_RGB(r,g,b));
}
}
@@ -273,12 +275,9 @@ static MACHINE_CONFIG_START( itgambl2, itgambl2_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_UPDATE_STATIC( itgambl2 )
- MCFG_MACHINE_RESET( itgambl2 )
- MCFG_PALETTE_INIT( itgambl2 )
MCFG_GFXDECODE(itgambl2)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_VIDEO_START( itgambl2 )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/itgambl3.c b/src/mame/drivers/itgambl3.c
index 6609e61f85f..9236a18b068 100644
--- a/src/mame/drivers/itgambl3.c
+++ b/src/mame/drivers/itgambl3.c
@@ -54,6 +54,9 @@ public:
int m_test_x;
int m_test_y;
int m_start_offs;
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -61,12 +64,11 @@ public:
* Video Hardware *
*************************/
-static VIDEO_START( itgambl3 )
+void itgambl3_state::video_start()
{
- itgambl3_state *state = machine.driver_data<itgambl3_state>();
- state->m_test_x = 256;
- state->m_test_y = 256;
- state->m_start_offs = 0;
+ m_test_x = 256;
+ m_test_y = 256;
+ m_start_offs = 0;
}
/* (dirty) debug code for looking 8bpps blitter-based gfxs */
@@ -223,14 +225,14 @@ GFXDECODE_END
* Machine Reset *
**************************/
-static MACHINE_RESET( itgambl3 )
+void itgambl3_state::machine_reset()
{
/* stop the CPU, we have no code for it anyway */
- machine.device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+ machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
}
/* default 444 palette for debug purpose*/
-static PALETTE_INIT( itgambl3 )
+void itgambl3_state::palette_init()
{
int x,r,g,b;
@@ -239,7 +241,7 @@ static PALETTE_INIT( itgambl3 )
r = (x & 0xf)*0x11;
g = ((x & 0x3c)>>2)*0x11;
b = ((x & 0xf0)>>4)*0x11;
- palette_set_color(machine,x,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),x,MAKE_RGB(r,g,b));
}
}
@@ -262,12 +264,9 @@ static MACHINE_CONFIG_START( itgambl3, itgambl3_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_UPDATE_STATIC( itgambl3 )
- MCFG_MACHINE_RESET( itgambl3 )
- MCFG_PALETTE_INIT( itgambl3 )
MCFG_GFXDECODE(itgambl3)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_VIDEO_START( itgambl3 )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c
index f9edc0f3f55..cb8f12a2fa0 100644
--- a/src/mame/drivers/jack.c
+++ b/src/mame/drivers/jack.c
@@ -785,29 +785,27 @@ static const ay8910_interface ay8910_config =
*
*************************************/
-static MACHINE_START( jack )
+void jack_state::machine_start()
{
- jack_state *state = machine.driver_data<jack_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_joinem_snd_bit));
- state->save_item(NAME(state->m_question_address));
- state->save_item(NAME(state->m_question_rom));
- state->save_item(NAME(state->m_remap_address));
+ save_item(NAME(m_joinem_snd_bit));
+ save_item(NAME(m_question_address));
+ save_item(NAME(m_question_rom));
+ save_item(NAME(m_remap_address));
}
-static MACHINE_RESET( jack )
+void jack_state::machine_reset()
{
- jack_state *state = machine.driver_data<jack_state>();
int i;
- state->m_joinem_snd_bit = 0;
- state->m_question_address = 0;
- state->m_question_rom = 0;
+ m_joinem_snd_bit = 0;
+ m_question_address = 0;
+ m_question_rom = 0;
for (i = 0; i < 16; i++)
- state->m_remap_address[i] = 0;
+ m_remap_address[i] = 0;
}
static MACHINE_CONFIG_START( jack, jack_state )
@@ -821,8 +819,6 @@ static MACHINE_CONFIG_START( jack, jack_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(sound_io_map)
- MCFG_MACHINE_START(jack)
- MCFG_MACHINE_RESET(jack)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -835,7 +831,6 @@ static MACHINE_CONFIG_START( jack, jack_state )
MCFG_GFXDECODE(jack)
MCFG_PALETTE_LENGTH(32)
- MCFG_VIDEO_START(jack)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -874,8 +869,8 @@ static MACHINE_CONFIG_DERIVED( joinem, jack )
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(joinem)
- MCFG_PALETTE_INIT(joinem)
- MCFG_VIDEO_START(joinem)
+ MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem)
+ MCFG_VIDEO_START_OVERRIDE(jack_state,joinem)
MACHINE_CONFIG_END
@@ -893,8 +888,8 @@ static MACHINE_CONFIG_DERIVED( loverboy, jack )
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(joinem)
- MCFG_PALETTE_INIT(joinem)
- MCFG_VIDEO_START(joinem)
+ MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem)
+ MCFG_VIDEO_START_OVERRIDE(jack_state,joinem)
MACHINE_CONFIG_END
/*************************************
diff --git a/src/mame/drivers/jackal.c b/src/mame/drivers/jackal.c
index 1f163de4fa3..d176ff9891a 100644
--- a/src/mame/drivers/jackal.c
+++ b/src/mame/drivers/jackal.c
@@ -325,34 +325,32 @@ static INTERRUPT_GEN( jackal_interrupt )
*
*************************************/
-static MACHINE_START( jackal )
+void jackal_state::machine_start()
{
- jackal_state *state = machine.driver_data<jackal_state>();
- UINT8 *ROM = state->memregion("master")->base();
+ UINT8 *ROM = memregion("master")->base();
- state->membank("bank1")->configure_entry(0, &ROM[0x04000]);
- state->membank("bank1")->configure_entry(1, &ROM[0x14000]);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entry(0, &ROM[0x04000]);
+ membank("bank1")->configure_entry(1, &ROM[0x14000]);
+ membank("bank1")->set_entry(0);
- state->m_mastercpu = machine.device<cpu_device>("master");
- state->m_slavecpu = machine.device<cpu_device>("slave");
+ m_mastercpu = machine().device<cpu_device>("master");
+ m_slavecpu = machine().device<cpu_device>("slave");
- state->save_item(NAME(state->m_irq_enable));
+ save_item(NAME(m_irq_enable));
}
-static MACHINE_RESET( jackal )
+void jackal_state::machine_reset()
{
- jackal_state *state = machine.driver_data<jackal_state>();
- UINT8 *rgn = state->memregion("master")->base();
+ UINT8 *rgn = memregion("master")->base();
// HACK: running at the nominal clock rate, music stops working
// at the beginning of the game. This fixes it.
- machine.device("slave")->set_clock_scale(1.2f);
+ machine().device("slave")->set_clock_scale(1.2f);
- state->m_rambank = rgn;
- state->m_spritebank = rgn;
+ m_rambank = rgn;
+ m_spritebank = rgn;
- state->m_irq_enable = 0;
+ m_irq_enable = 0;
}
static MACHINE_CONFIG_START( jackal, jackal_state )
@@ -367,8 +365,6 @@ static MACHINE_CONFIG_START( jackal, jackal_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(jackal)
- MCFG_MACHINE_RESET(jackal)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -381,8 +377,6 @@ static MACHINE_CONFIG_START( jackal, jackal_state )
MCFG_GFXDECODE(jackal)
MCFG_PALETTE_LENGTH(0x300)
- MCFG_PALETTE_INIT(jackal)
- MCFG_VIDEO_START(jackal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/jackie.c b/src/mame/drivers/jackie.c
index 8dfac0e2c45..53f61b67080 100644
--- a/src/mame/drivers/jackie.c
+++ b/src/mame/drivers/jackie.c
@@ -108,6 +108,8 @@ public:
TILE_GET_INFO_MEMBER(get_jackie_reel1_tile_info);
TILE_GET_INFO_MEMBER(get_jackie_reel2_tile_info);
TILE_GET_INFO_MEMBER(get_jackie_reel3_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -180,19 +182,18 @@ TILE_GET_INFO_MEMBER(jackie_state::get_jackie_reel3_tile_info)
SET_TILE_INFO_MEMBER(1, code, 0, 0);
}
-static VIDEO_START(jackie)
+void jackie_state::video_start()
{
- jackie_state *state = machine.driver_data<jackie_state>();
- state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_jackie_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_jackie_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_jackie_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_jackie_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_jackie_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_jackie_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- state->m_reel1_tilemap->set_scroll_cols(64);
- state->m_reel2_tilemap->set_scroll_cols(64);
- state->m_reel3_tilemap->set_scroll_cols(64);
+ m_reel1_tilemap->set_scroll_cols(64);
+ m_reel2_tilemap->set_scroll_cols(64);
+ m_reel3_tilemap->set_scroll_cols(64);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap->set_transparent_pen(0);
}
@@ -246,13 +247,12 @@ static SCREEN_UPDATE_IND16(jackie)
-static MACHINE_RESET( jackie )
+void jackie_state::machine_reset()
{
- jackie_state *state = machine.driver_data<jackie_state>();
- state->m_irq_enable = 1;
- state->m_nmi_enable = 0;
- state->m_hopper = 0;
- state->m_bg_enable = 1;
+ m_irq_enable = 1;
+ m_nmi_enable = 0;
+ m_hopper = 0;
+ m_bg_enable = 1;
}
@@ -579,7 +579,6 @@ static MACHINE_CONFIG_START( jackie, jackie_state )
MCFG_CPU_IO_MAP(jackie_io_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", jackie_irq, "screen", 0, 1)
- MCFG_MACHINE_RESET(jackie)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -592,7 +591,6 @@ static MACHINE_CONFIG_START( jackie, jackie_state )
MCFG_GFXDECODE(jackie)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(jackie)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jackpool.c b/src/mame/drivers/jackpool.c
index e29ffbd5f4d..dbc21efdedc 100644
--- a/src/mame/drivers/jackpool.c
+++ b/src/mame/drivers/jackpool.c
@@ -36,10 +36,11 @@ public:
DECLARE_READ16_MEMBER(jackpool_io_r);
DECLARE_WRITE16_MEMBER(jackpool_io_w);
DECLARE_DRIVER_INIT(jackpool);
+ virtual void video_start();
};
-static VIDEO_START(jackpool)
+void jackpool_state::video_start()
{
}
@@ -271,7 +272,6 @@ static MACHINE_CONFIG_START( jackpool, jackpool_state )
MCFG_PALETTE_LENGTH(0x200)
- MCFG_VIDEO_START(jackpool)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jailbrek.c b/src/mame/drivers/jailbrek.c
index 16840050ff0..3f19cc32b17 100644
--- a/src/mame/drivers/jailbrek.c
+++ b/src/mame/drivers/jailbrek.c
@@ -254,18 +254,16 @@ static const sn76496_config psg_intf =
};
-static MACHINE_START( jailbrek )
+void jailbrek_state::machine_start()
{
- jailbrek_state *state = machine.driver_data<jailbrek_state>();
- state->save_item(NAME(state->m_irq_enable));
- state->save_item(NAME(state->m_nmi_enable));
+ save_item(NAME(m_irq_enable));
+ save_item(NAME(m_nmi_enable));
}
-static MACHINE_RESET( jailbrek )
+void jailbrek_state::machine_reset()
{
- jailbrek_state *state = machine.driver_data<jailbrek_state>();
- state->m_irq_enable = 0;
- state->m_nmi_enable = 0;
+ m_irq_enable = 0;
+ m_nmi_enable = 0;
}
static MACHINE_CONFIG_START( jailbrek, jailbrek_state )
@@ -276,8 +274,6 @@ static MACHINE_CONFIG_START( jailbrek, jailbrek_state )
MCFG_CPU_VBLANK_INT("screen", jb_interrupt)
MCFG_CPU_PERIODIC_INT(jb_interrupt_nmi, 500) /* ? */
- MCFG_MACHINE_START(jailbrek)
- MCFG_MACHINE_RESET(jailbrek)
/* video hardware */
MCFG_GFXDECODE(jailbrek)
@@ -287,8 +283,6 @@ static MACHINE_CONFIG_START( jailbrek, jailbrek_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 396, 8, 248, 256, 16, 240)
MCFG_SCREEN_UPDATE_STATIC(jailbrek)
- MCFG_PALETTE_INIT(jailbrek)
- MCFG_VIDEO_START(jailbrek)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jalmah.c b/src/mame/drivers/jalmah.c
index e57ccdfe132..da4aca56c76 100644
--- a/src/mame/drivers/jalmah.c
+++ b/src/mame/drivers/jalmah.c
@@ -201,6 +201,9 @@ public:
TILE_GET_INFO_MEMBER(get_sc1_tile_info);
TILE_GET_INFO_MEMBER(get_sc2_tile_info);
TILE_GET_INFO_MEMBER(get_sc3_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
+ DECLARE_VIDEO_START(urashima);
};
@@ -292,64 +295,62 @@ TILE_GET_INFO_MEMBER(jalmah_state::get_sc3_tile_info)
0);
}
-static VIDEO_START( jalmah )
+void jalmah_state::video_start()
{
- jalmah_state *state = machine.driver_data<jalmah_state>();
- state->m_sc0_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32);
- state->m_sc0_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),state),16,16,128,64);
- state->m_sc0_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),state),16,16,64,128);
- state->m_sc0_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),state),16,16,32,256);
-
- state->m_sc1_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32);
- state->m_sc1_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),state),16,16,128,64);
- state->m_sc1_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),state),16,16,64,128);
- state->m_sc1_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),state),16,16,32,256);
-
- state->m_sc2_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32);
- state->m_sc2_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),state),16,16,128,64);
- state->m_sc2_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),state),16,16,64,128);
- state->m_sc2_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),state),16,16,32,256);
-
- state->m_sc3_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),TILEMAP_SCAN_COLS,8,8,256,32);
- //state->m_sc3_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),TILEMAP_SCAN_COLS,8,8,256,32);
- state->m_sc3_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_8x8),state),8,8,128,64);
- state->m_sc3_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_8x8),state),8,8,64,128);
-
- state->m_jm_scrollram = auto_alloc_array(machine, UINT16, 0x80/2);
- state->m_jm_vregs = auto_alloc_array(machine, UINT16, 0x40/2);
-
- state->m_sc0_tilemap_0->set_transparent_pen(15);
- state->m_sc0_tilemap_1->set_transparent_pen(15);
- state->m_sc0_tilemap_2->set_transparent_pen(15);
- state->m_sc0_tilemap_3->set_transparent_pen(15);
-
- state->m_sc1_tilemap_0->set_transparent_pen(15);
- state->m_sc1_tilemap_1->set_transparent_pen(15);
- state->m_sc1_tilemap_2->set_transparent_pen(15);
- state->m_sc1_tilemap_3->set_transparent_pen(15);
-
- state->m_sc2_tilemap_0->set_transparent_pen(15);
- state->m_sc2_tilemap_1->set_transparent_pen(15);
- state->m_sc2_tilemap_2->set_transparent_pen(15);
- state->m_sc2_tilemap_3->set_transparent_pen(15);
-
- state->m_sc3_tilemap_0->set_transparent_pen(15);
- //state->m_sc3_tilemap_1->set_transparent_pen(15);
- state->m_sc3_tilemap_2->set_transparent_pen(15);
- state->m_sc3_tilemap_3->set_transparent_pen(15);
+ m_sc0_tilemap_0 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),this),16,16,256,32);
+ m_sc0_tilemap_1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),this),16,16,128,64);
+ m_sc0_tilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),this),16,16,64,128);
+ m_sc0_tilemap_3 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),this),16,16,32,256);
+
+ m_sc1_tilemap_0 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),this),16,16,256,32);
+ m_sc1_tilemap_1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),this),16,16,128,64);
+ m_sc1_tilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),this),16,16,64,128);
+ m_sc1_tilemap_3 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),this),16,16,32,256);
+
+ m_sc2_tilemap_0 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),this),16,16,256,32);
+ m_sc2_tilemap_1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),this),16,16,128,64);
+ m_sc2_tilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),this),16,16,64,128);
+ m_sc2_tilemap_3 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),this),16,16,32,256);
+
+ m_sc3_tilemap_0 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),this),TILEMAP_SCAN_COLS,8,8,256,32);
+ //m_sc3_tilemap_1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),this),TILEMAP_SCAN_COLS,8,8,256,32);
+ m_sc3_tilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range2_8x8),this),8,8,128,64);
+ m_sc3_tilemap_3 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range3_8x8),this),8,8,64,128);
+
+ m_jm_scrollram = auto_alloc_array(machine(), UINT16, 0x80/2);
+ m_jm_vregs = auto_alloc_array(machine(), UINT16, 0x40/2);
+
+ m_sc0_tilemap_0->set_transparent_pen(15);
+ m_sc0_tilemap_1->set_transparent_pen(15);
+ m_sc0_tilemap_2->set_transparent_pen(15);
+ m_sc0_tilemap_3->set_transparent_pen(15);
+
+ m_sc1_tilemap_0->set_transparent_pen(15);
+ m_sc1_tilemap_1->set_transparent_pen(15);
+ m_sc1_tilemap_2->set_transparent_pen(15);
+ m_sc1_tilemap_3->set_transparent_pen(15);
+
+ m_sc2_tilemap_0->set_transparent_pen(15);
+ m_sc2_tilemap_1->set_transparent_pen(15);
+ m_sc2_tilemap_2->set_transparent_pen(15);
+ m_sc2_tilemap_3->set_transparent_pen(15);
+
+ m_sc3_tilemap_0->set_transparent_pen(15);
+ //m_sc3_tilemap_1->set_transparent_pen(15);
+ m_sc3_tilemap_2->set_transparent_pen(15);
+ m_sc3_tilemap_3->set_transparent_pen(15);
}
-static VIDEO_START( urashima )
+VIDEO_START_MEMBER(jalmah_state,urashima)
{
- jalmah_state *state = machine.driver_data<jalmah_state>();
- state->m_sc0_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32);
- state->m_sc3_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_8x8),state),8,8,128,64);
+ m_sc0_tilemap_0 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),this),16,16,256,32);
+ m_sc3_tilemap_0 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range2_8x8),this),8,8,128,64);
- state->m_jm_scrollram = auto_alloc_array(machine, UINT16, 0x80/2);
- state->m_jm_vregs = auto_alloc_array(machine, UINT16, 0x40/2);
+ m_jm_scrollram = auto_alloc_array(machine(), UINT16, 0x80/2);
+ m_jm_vregs = auto_alloc_array(machine(), UINT16, 0x40/2);
- state->m_sc0_tilemap_0->set_transparent_pen(15);
- state->m_sc3_tilemap_0->set_transparent_pen(15);
+ m_sc0_tilemap_0->set_transparent_pen(15);
+ m_sc3_tilemap_0->set_transparent_pen(15);
}
@@ -1381,24 +1382,23 @@ static GFXDECODE_START( urashima )
GFXDECODE_ENTRY( "gfx4", 0, tilelayout, 0x100, 16 )
GFXDECODE_END
-static MACHINE_RESET ( jalmah )
+void jalmah_state::machine_reset()
{
- jalmah_state *state = machine.driver_data<jalmah_state>();
- state->m_respcount = 0;
+ m_respcount = 0;
/*check if we are into service or normal mode*/
- switch(state->m_mcu_prg)
+ switch(m_mcu_prg)
{
case MJZOOMIN_MCU:
case DAIREIKA_MCU:
- state->m_test_mode = (~(state->ioport("SYSTEM")->read()) & 0x0008) ? (1) : (0);
+ m_test_mode = (~(ioport("SYSTEM")->read()) & 0x0008) ? (1) : (0);
break;
case URASHIMA_MCU:
- state->m_test_mode = ((~(state->ioport("SYSTEM")->read()) & 0x0008) || (~(state->ioport("DSW")->read()) & 0x8000)) ? (1) : (0);
+ m_test_mode = ((~(ioport("SYSTEM")->read()) & 0x0008) || (~(ioport("DSW")->read()) & 0x8000)) ? (1) : (0);
break;
case KAKUMEI_MCU:
case KAKUMEI2_MCU:
case SUCHIPI_MCU:
- state->m_test_mode = (~(state->ioport("DSW")->read()) & 0x0004) ? (1) : (0);
+ m_test_mode = (~(ioport("DSW")->read()) & 0x0004) ? (1) : (0);
break;
}
}
@@ -1420,9 +1420,7 @@ static MACHINE_CONFIG_START( jalmah, jalmah_state )
MCFG_SCREEN_UPDATE_STATIC(jalmah)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_MACHINE_RESET(jalmah)
- MCFG_VIDEO_START(jalmah)
MCFG_TIMER_ADD_PERIODIC("mcusim", jalmah_mcu_sim, attotime::from_hz(10000)) // not real, but for simulating the MCU
@@ -1438,7 +1436,7 @@ static MACHINE_CONFIG_DERIVED( urashima, jalmah )
MCFG_GFXDECODE(urashima)
- MCFG_VIDEO_START(urashima)
+ MCFG_VIDEO_START_OVERRIDE(jalmah_state,urashima)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(urashima)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/jangou.c b/src/mame/drivers/jangou.c
index c73f4bf4161..b43f84508ce 100644
--- a/src/mame/drivers/jangou.c
+++ b/src/mame/drivers/jangou.c
@@ -81,6 +81,14 @@ public:
DECLARE_READ8_MEMBER(input_system_r);
DECLARE_DRIVER_INIT(jngolady);
DECLARE_DRIVER_INIT(luckygrl);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
+ DECLARE_MACHINE_START(jngolady);
+ DECLARE_MACHINE_RESET(jngolady);
+ DECLARE_MACHINE_START(common);
+ DECLARE_MACHINE_RESET(common);
};
@@ -91,9 +99,9 @@ public:
*************************************/
/* guess: use the same resistor values as Crazy Climber (needs checking on the real HW) */
-static PALETTE_INIT( jangou )
+void jangou_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
static const int resistances_rg[3] = { 1000, 470, 220 };
static const int resistances_b [2] = { 470, 220 };
double weights_rg[3], weights_b[2];
@@ -105,7 +113,7 @@ static PALETTE_INIT( jangou )
2, resistances_b, weights_b, 0, 0,
0, 0, 0, 0, 0);
- for (i = 0;i < machine.total_colors(); i++)
+ for (i = 0;i < machine().total_colors(); i++)
{
int bit0, bit1, bit2;
int r, g, b;
@@ -127,15 +135,14 @@ static PALETTE_INIT( jangou )
bit1 = (color_prom[i] >> 7) & 0x01;
b = combine_2_weights(weights_b, bit0, bit1);
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
-static VIDEO_START( jangou )
+void jangou_state::video_start()
{
- jangou_state *state = machine.driver_data<jangou_state>();
- state->save_item(NAME(state->m_blit_buffer));
+ save_item(NAME(m_blit_buffer));
}
static SCREEN_UPDATE_IND16( jangou )
@@ -911,76 +918,70 @@ static SOUND_START( jangou )
*
*************************************/
-static MACHINE_START( common )
+MACHINE_START_MEMBER(jangou_state,common)
{
- jangou_state *state = machine.driver_data<jangou_state>();
- state->m_cpu_0 = machine.device("cpu0");
- state->m_cpu_1 = machine.device("cpu1");
- state->m_cvsd = machine.device("cvsd");
- state->m_nsc = machine.device("nsc");
+ m_cpu_0 = machine().device("cpu0");
+ m_cpu_1 = machine().device("cpu1");
+ m_cvsd = machine().device("cvsd");
+ m_nsc = machine().device("nsc");
- state->save_item(NAME(state->m_pen_data));
- state->save_item(NAME(state->m_blit_data));
- state->save_item(NAME(state->m_mux_data));
+ save_item(NAME(m_pen_data));
+ save_item(NAME(m_blit_data));
+ save_item(NAME(m_mux_data));
}
-static MACHINE_START( jangou )
+void jangou_state::machine_start()
{
- jangou_state *state = machine.driver_data<jangou_state>();
- MACHINE_START_CALL(common);
+ MACHINE_START_CALL_MEMBER(common);
- state->save_item(NAME(state->m_cvsd_shiftreg));
- state->save_item(NAME(state->m_cvsd_shift_cnt));
+ save_item(NAME(m_cvsd_shiftreg));
+ save_item(NAME(m_cvsd_shift_cnt));
}
-static MACHINE_START( jngolady )
+MACHINE_START_MEMBER(jangou_state,jngolady)
{
- jangou_state *state = machine.driver_data<jangou_state>();
- MACHINE_START_CALL(common);
+ MACHINE_START_CALL_MEMBER(common);
- state->save_item(NAME(state->m_adpcm_byte));
- state->save_item(NAME(state->m_msm5205_vclk_toggle));
- state->save_item(NAME(state->m_nsc_latch));
- state->save_item(NAME(state->m_z80_latch));
+ save_item(NAME(m_adpcm_byte));
+ save_item(NAME(m_msm5205_vclk_toggle));
+ save_item(NAME(m_nsc_latch));
+ save_item(NAME(m_z80_latch));
}
-static MACHINE_RESET( common )
+MACHINE_RESET_MEMBER(jangou_state,common)
{
- jangou_state *state = machine.driver_data<jangou_state>();
int i;
- state->m_mux_data = 0;
+ m_mux_data = 0;
for (i = 0; i < 6; i++)
- state->m_blit_data[i] = 0;
+ m_blit_data[i] = 0;
for (i = 0; i < 16; i++)
- state->m_pen_data[i] = 0;
+ m_pen_data[i] = 0;
}
-static MACHINE_RESET( jangou )
+void jangou_state::machine_reset()
{
- jangou_state *state = machine.driver_data<jangou_state>();
- MACHINE_RESET_CALL(common);
+ MACHINE_RESET_CALL_MEMBER(common);
- state->m_cvsd_shiftreg = 0;
- state->m_cvsd_shift_cnt = 0;
+ m_cvsd_shiftreg = 0;
+ m_cvsd_shift_cnt = 0;
}
-static MACHINE_RESET( jngolady )
+MACHINE_RESET_MEMBER(jangou_state,jngolady)
{
- jangou_state *state = machine.driver_data<jangou_state>();
- MACHINE_RESET_CALL(common);
+ MACHINE_RESET_CALL_MEMBER(common);
- state->m_adpcm_byte = 0;
- state->m_msm5205_vclk_toggle = 0;
- state->m_nsc_latch = 0;
- state->m_z80_latch = 0;
+ m_adpcm_byte = 0;
+ m_msm5205_vclk_toggle = 0;
+ m_nsc_latch = 0;
+ m_z80_latch = 0;
}
/* Note: All frequencies and dividers are unverified */
@@ -996,11 +997,8 @@ static MACHINE_CONFIG_START( jangou, jangou_state )
MCFG_CPU_PROGRAM_MAP(cpu1_map)
MCFG_CPU_IO_MAP(cpu1_io)
- MCFG_MACHINE_START(jangou)
- MCFG_MACHINE_RESET(jangou)
/* video hardware */
- MCFG_PALETTE_INIT(jangou)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -1011,7 +1009,6 @@ static MACHINE_CONFIG_START( jangou, jangou_state )
MCFG_PALETTE_LENGTH(32)
- MCFG_VIDEO_START(jangou)
/* sound hardware */
MCFG_SOUND_START(jangou)
@@ -1040,8 +1037,8 @@ static MACHINE_CONFIG_DERIVED( jngolady, jangou )
MCFG_CPU_ADD("nsc", NSC8105, MASTER_CLOCK / 8)
MCFG_CPU_PROGRAM_MAP(nsc_map)
- MCFG_MACHINE_START(jngolady)
- MCFG_MACHINE_RESET(jngolady)
+ MCFG_MACHINE_START_OVERRIDE(jangou_state,jngolady)
+ MCFG_MACHINE_RESET_OVERRIDE(jangou_state,jngolady)
/* sound hardware */
MCFG_SOUND_START(0)
@@ -1062,8 +1059,8 @@ static MACHINE_CONFIG_DERIVED( cntrygrl, jangou )
MCFG_DEVICE_REMOVE("cpu1")
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(jangou_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(jangou_state,common)
/* sound hardware */
MCFG_SOUND_START(0)
@@ -1082,8 +1079,8 @@ static MACHINE_CONFIG_DERIVED( roylcrdn, jangou )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(jangou_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(jangou_state,common)
/* sound hardware */
MCFG_SOUND_START(0)
diff --git a/src/mame/drivers/jantotsu.c b/src/mame/drivers/jantotsu.c
index 45cfe59573c..242831d192b 100644
--- a/src/mame/drivers/jantotsu.c
+++ b/src/mame/drivers/jantotsu.c
@@ -126,6 +126,10 @@ public:
DECLARE_WRITE8_MEMBER(jantotsu_mux_w);
DECLARE_READ8_MEMBER(jantotsu_dsw2_r);
DECLARE_WRITE8_MEMBER(jan_adpcm_w);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -135,11 +139,10 @@ public:
*
*************************************/
-static VIDEO_START(jantotsu)
+void jantotsu_state::video_start()
{
- jantotsu_state *state = machine.driver_data<jantotsu_state>();
- state->save_item(NAME(state->m_bitmap));
+ save_item(NAME(m_bitmap));
}
static SCREEN_UPDATE_RGB32(jantotsu)
@@ -199,9 +202,9 @@ WRITE8_MEMBER(jantotsu_state::bankaddr_w)
logerror("I/O port $07 write trips %02x\n",data);
}
-static PALETTE_INIT( jantotsu )
+void jantotsu_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int bit0, bit1, bit2, r, g, b;
int i;
@@ -220,7 +223,7 @@ static PALETTE_INIT( jantotsu )
bit2 = (color_prom[0] >> 7) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
color_prom++;
}
}
@@ -485,31 +488,29 @@ static const sn76496_config psg_intf =
*
*************************************/
-static MACHINE_START( jantotsu )
+void jantotsu_state::machine_start()
{
- jantotsu_state *state = machine.driver_data<jantotsu_state>();
-
- state->save_item(NAME(state->m_vram_bank));
- state->save_item(NAME(state->m_mux_data));
- state->save_item(NAME(state->m_adpcm_pos));
- state->save_item(NAME(state->m_adpcm_idle));
- state->save_item(NAME(state->m_adpcm_data));
- state->save_item(NAME(state->m_adpcm_trigger));
+
+ save_item(NAME(m_vram_bank));
+ save_item(NAME(m_mux_data));
+ save_item(NAME(m_adpcm_pos));
+ save_item(NAME(m_adpcm_idle));
+ save_item(NAME(m_adpcm_data));
+ save_item(NAME(m_adpcm_trigger));
}
-static MACHINE_RESET( jantotsu )
+void jantotsu_state::machine_reset()
{
- jantotsu_state *state = machine.driver_data<jantotsu_state>();
/*Load hard-wired background color.*/
- state->m_col_bank = (state->ioport("DSW2")->read() & 0xc0) >> 3;
-
- state->m_vram_bank = 0;
- state->m_mux_data = 0;
- state->m_adpcm_pos = 0;
- state->m_adpcm_idle = 1;
- state->m_adpcm_data = 0;
- state->m_adpcm_trigger = 0;
+ m_col_bank = (ioport("DSW2")->read() & 0xc0) >> 3;
+
+ m_vram_bank = 0;
+ m_mux_data = 0;
+ m_adpcm_pos = 0;
+ m_adpcm_idle = 1;
+ m_adpcm_data = 0;
+ m_adpcm_trigger = 0;
}
static MACHINE_CONFIG_START( jantotsu, jantotsu_state )
@@ -520,8 +521,6 @@ static MACHINE_CONFIG_START( jantotsu, jantotsu_state )
MCFG_CPU_IO_MAP(jantotsu_io)
MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse)
- MCFG_MACHINE_START(jantotsu)
- MCFG_MACHINE_RESET(jantotsu)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -531,10 +530,8 @@ static MACHINE_CONFIG_START( jantotsu, jantotsu_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
MCFG_SCREEN_UPDATE_STATIC(jantotsu)
- MCFG_PALETTE_INIT(jantotsu)
MCFG_PALETTE_LENGTH(0x20)
- MCFG_VIDEO_START(jantotsu)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jchan.c b/src/mame/drivers/jchan.c
index fe19372ebfe..327405acd8d 100644
--- a/src/mame/drivers/jchan.c
+++ b/src/mame/drivers/jchan.c
@@ -223,6 +223,7 @@ public:
DECLARE_WRITE16_MEMBER(jchan_suprnova_sprite32regs_2_w);
DECLARE_DRIVER_INIT(jchan);
+ virtual void video_start();
};
@@ -268,25 +269,24 @@ static TIMER_DEVICE_CALLBACK( jchan_vblank )
-static VIDEO_START(jchan)
+void jchan_state::video_start()
{
- jchan_state *state = machine.driver_data<jchan_state>();
/* so we can use suprnova.c */
- state->m_sprite_ram32_1 = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_sprite_ram32_2 = auto_alloc_array(machine, UINT32, 0x4000/4);
+ m_sprite_ram32_1 = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_sprite_ram32_2 = auto_alloc_array(machine(), UINT32, 0x4000/4);
- state->m_sprite_regs32_1 = auto_alloc_array(machine, UINT32, 0x40/4);
- state->m_sprite_regs32_2 = auto_alloc_array(machine, UINT32, 0x40/4);
+ m_sprite_regs32_1 = auto_alloc_array(machine(), UINT32, 0x40/4);
+ m_sprite_regs32_2 = auto_alloc_array(machine(), UINT32, 0x40/4);
- state->m_sprite_bitmap_1 = auto_bitmap_ind16_alloc(machine,1024,1024);
- state->m_sprite_bitmap_2 = auto_bitmap_ind16_alloc(machine,1024,1024);
+ m_sprite_bitmap_1 = auto_bitmap_ind16_alloc(machine(),1024,1024);
+ m_sprite_bitmap_2 = auto_bitmap_ind16_alloc(machine(),1024,1024);
- state->m_spritegen1 = machine.device<sknsspr_device>("spritegen1");
- state->m_spritegen2 = machine.device<sknsspr_device>("spritegen2");
+ m_spritegen1 = machine().device<sknsspr_device>("spritegen1");
+ m_spritegen2 = machine().device<sknsspr_device>("spritegen2");
- state->m_spritegen1->skns_sprite_kludge(0,0);
- state->m_spritegen2->skns_sprite_kludge(0,0);
+ m_spritegen1->skns_sprite_kludge(0,0);
+ m_spritegen2->skns_sprite_kludge(0,0);
}
@@ -621,7 +621,6 @@ static MACHINE_CONFIG_START( jchan, jchan_state )
kaneko_view2_tilemap_device::set_offset(*device, 25, 11, 320, 240);
- MCFG_VIDEO_START(jchan)
MCFG_DEVICE_ADD("spritegen1", SKNS_SPRITE, 0)
MCFG_DEVICE_ADD("spritegen2", SKNS_SPRITE, 0)
diff --git a/src/mame/drivers/jclub2.c b/src/mame/drivers/jclub2.c
index b4a150054d6..5029616c5f4 100644
--- a/src/mame/drivers/jclub2.c
+++ b/src/mame/drivers/jclub2.c
@@ -140,6 +140,9 @@ public:
DECLARE_DRIVER_INIT(darkhors);
TILE_GET_INFO_MEMBER(get_tile_info_0);
TILE_GET_INFO_MEMBER(get_tile_info_1);
+ DECLARE_VIDEO_START(darkhors);
+ DECLARE_VIDEO_START(jclub2);
+ DECLARE_VIDEO_START(jclub2o);
};
@@ -153,7 +156,7 @@ public:
***************************************************************************/
-static VIDEO_START( darkhors );
+
static SCREEN_UPDATE_IND16( darkhors );
@@ -217,15 +220,14 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-static VIDEO_START( darkhors )
+VIDEO_START_MEMBER(darkhors_state,darkhors)
{
- darkhors_state *state = machine.driver_data<darkhors_state>();
- state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darkhors_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS,16,16, 0x40,0x40);
- state->m_tmap2= &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darkhors_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS,16,16, 0x40,0x40);
- state->m_tmap->set_transparent_pen(0);
- state->m_tmap2->set_transparent_pen(0);
+ m_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(darkhors_state::get_tile_info_0),this), TILEMAP_SCAN_ROWS,16,16, 0x40,0x40);
+ m_tmap2= &machine().tilemap().create(tilemap_get_info_delegate(FUNC(darkhors_state::get_tile_info_1),this), TILEMAP_SCAN_ROWS,16,16, 0x40,0x40);
+ m_tmap->set_transparent_pen(0);
+ m_tmap2->set_transparent_pen(0);
- machine.gfx[0]->set_granularity(64); /* 256 colour sprites with palette selectable on 64 colour boundaries */
+ machine().gfx[0]->set_granularity(64); /* 256 colour sprites with palette selectable on 64 colour boundaries */
}
static SCREEN_UPDATE_IND16( darkhors )
@@ -701,7 +703,7 @@ static MACHINE_CONFIG_START( darkhors, darkhors_state )
MCFG_GFXDECODE(darkhors)
MCFG_PALETTE_LENGTH(0x10000)
- MCFG_VIDEO_START(darkhors)
+ MCFG_VIDEO_START_OVERRIDE(darkhors_state,darkhors)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -712,7 +714,7 @@ MACHINE_CONFIG_END
-static VIDEO_START(jclub2)
+VIDEO_START_MEMBER(darkhors_state,jclub2)
{
}
@@ -749,7 +751,7 @@ static MACHINE_CONFIG_START( jclub2, darkhors_state )
MCFG_PALETTE_LENGTH(0x10000)
- MCFG_VIDEO_START(jclub2)
+ MCFG_VIDEO_START_OVERRIDE(darkhors_state,jclub2)
MACHINE_CONFIG_END
@@ -778,7 +780,7 @@ static const st0016_interface st0016_config =
&st0016_charram
};
-static VIDEO_START(jclub2o)
+VIDEO_START_MEMBER(darkhors_state,jclub2o)
{
}
@@ -814,7 +816,7 @@ static MACHINE_CONFIG_START( jclub2o, darkhors_state )
MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0)
st0020_device::set_is_jclub2o(*device, 1);
- MCFG_VIDEO_START(jclub2o)
+ MCFG_VIDEO_START_OVERRIDE(darkhors_state,jclub2o)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/jedi.c b/src/mame/drivers/jedi.c
index 727334324f2..3ab8e506a12 100644
--- a/src/mame/drivers/jedi.c
+++ b/src/mame/drivers/jedi.c
@@ -153,19 +153,18 @@ WRITE8_MEMBER(jedi_state::main_irq_ack_w)
*
*************************************/
-static MACHINE_START( jedi )
+void jedi_state::machine_start()
{
- jedi_state *state = machine.driver_data<jedi_state>();
/* set a timer to run the interrupts */
- state->m_interrupt_timer = machine.scheduler().timer_alloc(FUNC(generate_interrupt));
- state->m_interrupt_timer->adjust(machine.primary_screen->time_until_pos(32), 32);
+ m_interrupt_timer = machine().scheduler().timer_alloc(FUNC(generate_interrupt));
+ m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(32), 32);
/* configure the banks */
- state->membank("bank1")->configure_entries(0, 3, state->memregion("maincpu")->base() + 0x10000, 0x4000);
+ membank("bank1")->configure_entries(0, 3, memregion("maincpu")->base() + 0x10000, 0x4000);
/* set up save state */
- state->save_item(NAME(state->m_nvram_enabled));
+ save_item(NAME(m_nvram_enabled));
}
@@ -176,13 +175,12 @@ static MACHINE_START( jedi )
*
*************************************/
-static MACHINE_RESET( jedi )
+void jedi_state::machine_reset()
{
- jedi_state *state = machine.driver_data<jedi_state>();
/* init globals */
- state->m_a2d_select = 0;
- state->m_nvram_enabled = 0;
+ m_a2d_select = 0;
+ m_nvram_enabled = 0;
}
@@ -346,8 +344,6 @@ static MACHINE_CONFIG_START( jedi, jedi_state )
MCFG_QUANTUM_TIME(attotime::from_hz(240))
- MCFG_MACHINE_START(jedi)
- MCFG_MACHINE_RESET(jedi)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
diff --git a/src/mame/drivers/jokrwild.c b/src/mame/drivers/jokrwild.c
index 5f8d052a48b..20d8329c0f8 100644
--- a/src/mame/drivers/jokrwild.c
+++ b/src/mame/drivers/jokrwild.c
@@ -115,6 +115,8 @@ public:
DECLARE_WRITE8_MEMBER(testb_w);
DECLARE_DRIVER_INIT(jokrwild);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -152,10 +154,9 @@ TILE_GET_INFO_MEMBER(jokrwild_state::get_bg_tile_info)
}
-static VIDEO_START( jokrwild )
+void jokrwild_state::video_start()
{
- jokrwild_state *state = machine.driver_data<jokrwild_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jokrwild_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 24, 26);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jokrwild_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 24, 26);
}
@@ -167,7 +168,7 @@ static SCREEN_UPDATE_IND16( jokrwild )
}
-static PALETTE_INIT( jokrwild )
+void jokrwild_state::palette_init()
{
//missing proms
}
@@ -495,9 +496,7 @@ static MACHINE_CONFIG_START( jokrwild, jokrwild_state )
MCFG_SCREEN_UPDATE_STATIC(jokrwild)
MCFG_GFXDECODE(jokrwild)
- MCFG_PALETTE_INIT(jokrwild)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(jokrwild)
MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/16, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/jollyjgr.c b/src/mame/drivers/jollyjgr.c
index c6342ce4a79..1856db7ae6e 100644
--- a/src/mame/drivers/jollyjgr.c
+++ b/src/mame/drivers/jollyjgr.c
@@ -135,6 +135,10 @@ public:
DECLARE_WRITE8_MEMBER(jollyjgr_misc_w);
DECLARE_WRITE8_MEMBER(jollyjgr_coin_lookout_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -401,9 +405,9 @@ INPUT_PORTS_END
*
*************************************/
-static PALETTE_INIT( jollyjgr )
+void jollyjgr_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
/* tilemap / sprites palette */
@@ -426,13 +430,13 @@ static PALETTE_INIT( jollyjgr )
bit1 = BIT(*color_prom, 7);
b = 0x4f * bit0 + 0xa8 * bit1;
- palette_set_color(machine, i, MAKE_RGB(r,g,b));
+ palette_set_color(machine(), i, MAKE_RGB(r,g,b));
color_prom++;
}
/* bitmap palette */
for (i = 0;i < 8;i++)
- palette_set_color_rgb(machine, 32 + i, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
+ palette_set_color_rgb(machine(), 32 + i, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
}
/* Tilemap is the same as in Galaxian */
@@ -443,13 +447,12 @@ TILE_GET_INFO_MEMBER(jollyjgr_state::get_bg_tile_info)
SET_TILE_INFO_MEMBER(region, m_videoram[tile_index], color, 0);
}
-static VIDEO_START( jollyjgr )
+void jollyjgr_state::video_start()
{
- jollyjgr_state *state = machine.driver_data<jollyjgr_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jollyjgr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jollyjgr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_bg_tilemap->set_transparent_pen(0);
- state->m_bg_tilemap->set_scroll_cols(32);
+ m_bg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap->set_scroll_cols(32);
}
static void draw_bitmap( running_machine &machine, bitmap_ind16 &bitmap )
@@ -626,26 +629,24 @@ static INTERRUPT_GEN( jollyjgr_interrupt )
}
-static MACHINE_START( jollyjgr )
+void jollyjgr_state::machine_start()
{
- jollyjgr_state *state = machine.driver_data<jollyjgr_state>();
- state->save_item(NAME(state->m_nmi_enable));
- state->save_item(NAME(state->m_flip_x));
- state->save_item(NAME(state->m_flip_y));
- state->save_item(NAME(state->m_bitmap_disable));
- state->save_item(NAME(state->m_tilemap_bank));
+ save_item(NAME(m_nmi_enable));
+ save_item(NAME(m_flip_x));
+ save_item(NAME(m_flip_y));
+ save_item(NAME(m_bitmap_disable));
+ save_item(NAME(m_tilemap_bank));
}
-static MACHINE_RESET( jollyjgr )
+void jollyjgr_state::machine_reset()
{
- jollyjgr_state *state = machine.driver_data<jollyjgr_state>();
- state->m_nmi_enable = 0;
- state->m_flip_x = 0;
- state->m_flip_y = 0;
- state->m_bitmap_disable = 0;
- state->m_tilemap_bank = 0;
+ m_nmi_enable = 0;
+ m_flip_x = 0;
+ m_flip_y = 0;
+ m_bitmap_disable = 0;
+ m_tilemap_bank = 0;
}
static MACHINE_CONFIG_START( jollyjgr, jollyjgr_state )
@@ -655,8 +656,6 @@ static MACHINE_CONFIG_START( jollyjgr, jollyjgr_state )
MCFG_CPU_PROGRAM_MAP(jollyjgr_map)
MCFG_CPU_VBLANK_INT("screen", jollyjgr_interrupt)
- MCFG_MACHINE_START(jollyjgr)
- MCFG_MACHINE_RESET(jollyjgr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -669,8 +668,6 @@ static MACHINE_CONFIG_START( jollyjgr, jollyjgr_state )
MCFG_GFXDECODE(jollyjgr)
MCFG_PALETTE_LENGTH(32+8) /* 32 for tilemap and sprites + 8 for the bitmap */
- MCFG_PALETTE_INIT(jollyjgr)
- MCFG_VIDEO_START(jollyjgr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jongkyo.c b/src/mame/drivers/jongkyo.c
index 751aa4d379e..bc34064580d 100644
--- a/src/mame/drivers/jongkyo.c
+++ b/src/mame/drivers/jongkyo.c
@@ -54,6 +54,10 @@ public:
DECLARE_READ8_MEMBER(input_1p_r);
DECLARE_READ8_MEMBER(input_2p_r);
DECLARE_DRIVER_INIT(jongkyo);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -63,7 +67,7 @@ public:
*
*************************************/
-static VIDEO_START( jongkyo )
+void jongkyo_state::video_start()
{
}
@@ -428,10 +432,10 @@ INPUT_PORTS_END
*
*************************************/
-static PALETTE_INIT(jongkyo)
+void jongkyo_state::palette_init()
{
int i;
- UINT8* proms = machine.root_device().memregion("proms")->base();
+ UINT8* proms = machine().root_device().memregion("proms")->base();
for (i = 0; i < 0x40; i++)
{
int data = proms[i];
@@ -440,7 +444,7 @@ static PALETTE_INIT(jongkyo)
int g = (data >> 3) & 0x07;
int b = (data >> 6) & 0x03;
- palette_set_color_rgb(machine, i, r << 5, g << 5, b << 6 );
+ palette_set_color_rgb(machine(), i, r << 5, g << 5, b << 6 );
}
}
@@ -468,21 +472,19 @@ static const ay8910_interface ay8910_config =
*
*************************************/
-static MACHINE_START( jongkyo )
+void jongkyo_state::machine_start()
{
- jongkyo_state *state = machine.driver_data<jongkyo_state>();
- state->save_item(NAME(state->m_videoram2));
- state->save_item(NAME(state->m_rom_bank));
- state->save_item(NAME(state->m_mux_data));
+ save_item(NAME(m_videoram2));
+ save_item(NAME(m_rom_bank));
+ save_item(NAME(m_mux_data));
}
-static MACHINE_RESET( jongkyo )
+void jongkyo_state::machine_reset()
{
- jongkyo_state *state = machine.driver_data<jongkyo_state>();
- state->m_rom_bank = 0;
- state->m_mux_data = 0;
+ m_rom_bank = 0;
+ m_mux_data = 0;
}
@@ -494,8 +496,6 @@ static MACHINE_CONFIG_START( jongkyo, jongkyo_state )
MCFG_CPU_IO_MAP(jongkyo_portmap)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(jongkyo)
- MCFG_MACHINE_RESET(jongkyo)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -506,9 +506,7 @@ static MACHINE_CONFIG_START( jongkyo, jongkyo_state )
MCFG_SCREEN_UPDATE_STATIC(jongkyo)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT(jongkyo)
- MCFG_VIDEO_START(jongkyo)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, JONGKYO_CLOCK/8)
diff --git a/src/mame/drivers/jpmimpct.c b/src/mame/drivers/jpmimpct.c
index 430026ea670..435de9d12ad 100644
--- a/src/mame/drivers/jpmimpct.c
+++ b/src/mame/drivers/jpmimpct.c
@@ -124,31 +124,29 @@ static void update_irqs(running_machine &machine)
*
*************************************/
-static MACHINE_START( jpmimpct )
+MACHINE_START_MEMBER(jpmimpct_state,jpmimpct)
{
- jpmimpct_state *state = machine.driver_data<jpmimpct_state>();
- state_save_register_global(machine, state->m_tms_irq);
- state_save_register_global(machine, state->m_duart_1_irq);
- state_save_register_global(machine, state->m_touch_cnt);
- state_save_register_global_array(machine, state->m_touch_data);
+ state_save_register_global(machine(), m_tms_irq);
+ state_save_register_global(machine(), m_duart_1_irq);
+ state_save_register_global(machine(), m_touch_cnt);
+ state_save_register_global_array(machine(), m_touch_data);
/* TODO! */
- state_save_register_global(machine, state->m_duart_1.ISR);
- state_save_register_global(machine, state->m_duart_1.IMR);
- state_save_register_global(machine, state->m_duart_1.CT);
+ state_save_register_global(machine(), m_duart_1.ISR);
+ state_save_register_global(machine(), m_duart_1.IMR);
+ state_save_register_global(machine(), m_duart_1.CT);
}
-static MACHINE_RESET( jpmimpct )
+MACHINE_RESET_MEMBER(jpmimpct_state,jpmimpct)
{
- jpmimpct_state *state = machine.driver_data<jpmimpct_state>();
- memset(&state->m_duart_1, 0, sizeof(state->m_duart_1));
+ memset(&m_duart_1, 0, sizeof(m_duart_1));
/* Reset states */
- state->m_duart_1_irq = state->m_tms_irq = 0;
- state->m_touch_cnt = 0;
+ m_duart_1_irq = m_tms_irq = 0;
+ m_touch_cnt = 0;
-// state->m_duart_1.IVR=0x0f;
+// m_duart_1.IVR=0x0f;
}
@@ -824,8 +822,8 @@ static MACHINE_CONFIG_START( jpmimpct, jpmimpct_state )
MCFG_CPU_PROGRAM_MAP(tms_program_map)
MCFG_QUANTUM_TIME(attotime::from_hz(30000))
- MCFG_MACHINE_START(jpmimpct)
- MCFG_MACHINE_RESET(jpmimpct)
+ MCFG_MACHINE_START_OVERRIDE(jpmimpct_state,jpmimpct)
+ MCFG_MACHINE_RESET_OVERRIDE(jpmimpct_state,jpmimpct)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_TIMER_ADD( "duart_1_timer", duart_1_timer_event)
@@ -839,7 +837,7 @@ static MACHINE_CONFIG_START( jpmimpct, jpmimpct_state )
MCFG_SOUND_ADD("upd", UPD7759, UPD7759_STANDARD_CLOCK)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
- MCFG_VIDEO_START(jpmimpct)
+ MCFG_VIDEO_START_OVERRIDE(jpmimpct_state,jpmimpct)
MACHINE_CONFIG_END
@@ -973,35 +971,33 @@ static I8255_INTERFACE (ppi8255_intf)
DEVCB_DRIVER_MEMBER(jpmimpct_state,display_c_w)
};
-static MACHINE_START( impctawp )
+MACHINE_START_MEMBER(jpmimpct_state,impctawp)
{
- jpmimpct_state *state = machine.driver_data<jpmimpct_state>();
- state_save_register_global(machine, state->m_duart_1_irq);
- state_save_register_global(machine, state->m_touch_cnt);
- state_save_register_global_array(machine, state->m_touch_data);
+ state_save_register_global(machine(), m_duart_1_irq);
+ state_save_register_global(machine(), m_touch_cnt);
+ state_save_register_global_array(machine(), m_touch_data);
/* TODO! */
- state_save_register_global(machine, state->m_duart_1.ISR);
- state_save_register_global(machine, state->m_duart_1.IMR);
- state_save_register_global(machine, state->m_duart_1.CT);
-
- stepper_config(machine, 0, &starpoint_interface_48step);
- stepper_config(machine, 1, &starpoint_interface_48step);
- stepper_config(machine, 2, &starpoint_interface_48step);
- stepper_config(machine, 3, &starpoint_interface_48step);
- stepper_config(machine, 4, &starpoint_interface_48step);
- stepper_config(machine, 5, &starpoint_interface_48step);
- stepper_config(machine, 6, &starpoint_interface_48step);
+ state_save_register_global(machine(), m_duart_1.ISR);
+ state_save_register_global(machine(), m_duart_1.IMR);
+ state_save_register_global(machine(), m_duart_1.CT);
+
+ stepper_config(machine(), 0, &starpoint_interface_48step);
+ stepper_config(machine(), 1, &starpoint_interface_48step);
+ stepper_config(machine(), 2, &starpoint_interface_48step);
+ stepper_config(machine(), 3, &starpoint_interface_48step);
+ stepper_config(machine(), 4, &starpoint_interface_48step);
+ stepper_config(machine(), 5, &starpoint_interface_48step);
+ stepper_config(machine(), 6, &starpoint_interface_48step);
}
-static MACHINE_RESET( impctawp )
+MACHINE_RESET_MEMBER(jpmimpct_state,impctawp)
{
- jpmimpct_state *state = machine.driver_data<jpmimpct_state>();
- memset(&state->m_duart_1, 0, sizeof(state->m_duart_1));
+ memset(&m_duart_1, 0, sizeof(m_duart_1));
/* Reset states */
- state->m_duart_1_irq = 0;
- state->m_vfd->reset();
+ m_duart_1_irq = 0;
+ m_vfd->reset();
}
/*************************************
*
@@ -1377,8 +1373,8 @@ static MACHINE_CONFIG_START( impctawp, jpmimpct_state )
MCFG_QUANTUM_TIME(attotime::from_hz(30000))
MCFG_ROC10937_ADD("vfd",0,RIGHT_TO_LEFT)
- MCFG_MACHINE_START(impctawp)
- MCFG_MACHINE_RESET(impctawp)
+ MCFG_MACHINE_START_OVERRIDE(jpmimpct_state,impctawp)
+ MCFG_MACHINE_RESET_OVERRIDE(jpmimpct_state,impctawp)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_I8255_ADD( "ppi8255", ppi8255_intf )
diff --git a/src/mame/drivers/jpmsys5.c b/src/mame/drivers/jpmsys5.c
index 192826a8666..134d3f8ee64 100644
--- a/src/mame/drivers/jpmsys5.c
+++ b/src/mame/drivers/jpmsys5.c
@@ -98,6 +98,11 @@ public:
DECLARE_WRITE_LINE_MEMBER(a2_tx_w);
DECLARE_READ_LINE_MEMBER(a2_dcd_r);
void sys5_draw_lamps();
+ DECLARE_MACHINE_START(jpmsys5v);
+ DECLARE_MACHINE_RESET(jpmsys5v);
+ DECLARE_VIDEO_START(jpmsys5v);
+ DECLARE_MACHINE_START(jpmsys5);
+ DECLARE_MACHINE_RESET(jpmsys5);
};
@@ -213,9 +218,9 @@ WRITE16_MEMBER(jpmsys5_state::ramdac_w)
}
}
-static VIDEO_START( jpmsys5v )
+VIDEO_START_MEMBER(jpmsys5_state,jpmsys5v)
{
- tms34061_start(machine, &tms34061intf);
+ tms34061_start(machine(), &tms34061intf);
}
static SCREEN_UPDATE_RGB32( jpmsys5v )
@@ -678,21 +683,19 @@ static ACIA6850_INTERFACE( acia2_if )
*
*************************************/
-static MACHINE_START( jpmsys5v )
+MACHINE_START_MEMBER(jpmsys5_state,jpmsys5v)
{
- jpmsys5_state *state = machine.driver_data<jpmsys5_state>();
- state->membank("bank1")->set_base(state->memregion("maincpu")->base()+0x20000);
- state->m_touch_timer = machine.scheduler().timer_alloc(FUNC(touch_cb));
+ membank("bank1")->set_base(memregion("maincpu")->base()+0x20000);
+ m_touch_timer = machine().scheduler().timer_alloc(FUNC(touch_cb));
}
-static MACHINE_RESET( jpmsys5v )
+MACHINE_RESET_MEMBER(jpmsys5_state,jpmsys5v)
{
- jpmsys5_state *state = machine.driver_data<jpmsys5_state>();
- state->m_touch_timer->reset();
- state->m_touch_state = IDLE;
- state->m_a2_data_in = 1;
- state->m_a2_acia_dcd = 0;
- state->m_vfd->reset();
+ m_touch_timer->reset();
+ m_touch_state = IDLE;
+ m_a2_data_in = 1;
+ m_a2_acia_dcd = 0;
+ m_vfd->reset();
}
@@ -715,14 +718,14 @@ static MACHINE_CONFIG_START( jpmsys5v, jpmsys5_state )
MCFG_ROC10937_ADD("vfd",0,RIGHT_TO_LEFT)//for debug ports
- MCFG_MACHINE_START(jpmsys5v)
- MCFG_MACHINE_RESET(jpmsys5v)
+ MCFG_MACHINE_START_OVERRIDE(jpmsys5_state,jpmsys5v)
+ MCFG_MACHINE_RESET_OVERRIDE(jpmsys5_state,jpmsys5v)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_40MHz / 4, 676, 20*4, 147*4, 256, 0, 254)
MCFG_SCREEN_UPDATE_STATIC(jpmsys5v)
- MCFG_VIDEO_START(jpmsys5v)
+ MCFG_VIDEO_START_OVERRIDE(jpmsys5_state,jpmsys5v)
MCFG_PALETTE_LENGTH(16)
@@ -834,17 +837,16 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_START( jpmsys5 )
+MACHINE_START_MEMBER(jpmsys5_state,jpmsys5)
{
- machine.root_device().membank("bank1")->set_base(machine.root_device().memregion("maincpu")->base()+0x20000);
+ machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base()+0x20000);
}
-static MACHINE_RESET( jpmsys5 )
+MACHINE_RESET_MEMBER(jpmsys5_state,jpmsys5)
{
- jpmsys5_state *state = machine.driver_data<jpmsys5_state>();
- state->m_a2_data_in = 1;
- state->m_a2_acia_dcd = 0;
- state->m_vfd->reset();
+ m_a2_data_in = 1;
+ m_a2_acia_dcd = 0;
+ m_vfd->reset();
}
/*************************************
@@ -864,8 +866,8 @@ static MACHINE_CONFIG_START( jpmsys5, jpmsys5_state )
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_ROC10937_ADD("vfd",0,RIGHT_TO_LEFT)
- MCFG_MACHINE_START(jpmsys5)
- MCFG_MACHINE_RESET(jpmsys5)
+ MCFG_MACHINE_START_OVERRIDE(jpmsys5_state,jpmsys5)
+ MCFG_MACHINE_RESET_OVERRIDE(jpmsys5_state,jpmsys5)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("upd7759", UPD7759, UPD7759_STANDARD_CLOCK)
diff --git a/src/mame/drivers/jrpacman.c b/src/mame/drivers/jrpacman.c
index d0e412785e8..d99673fb3b9 100644
--- a/src/mame/drivers/jrpacman.c
+++ b/src/mame/drivers/jrpacman.c
@@ -307,8 +307,8 @@ static MACHINE_CONFIG_START( jrpacman, jrpacman_state )
MCFG_GFXDECODE(jrpacman)
MCFG_PALETTE_LENGTH(128*4)
- MCFG_PALETTE_INIT(pacman)
- MCFG_VIDEO_START(jrpacman)
+ MCFG_PALETTE_INIT_OVERRIDE(jrpacman_state,pacman)
+ MCFG_VIDEO_START_OVERRIDE(jrpacman_state,jrpacman)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jubilee.c b/src/mame/drivers/jubilee.c
index cb4694e8ab7..b4937a846b4 100644
--- a/src/mame/drivers/jubilee.c
+++ b/src/mame/drivers/jubilee.c
@@ -102,6 +102,8 @@ public:
DECLARE_WRITE8_MEMBER(jubileep_videoram_w);
DECLARE_READ8_MEMBER(unk_r);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -126,10 +128,9 @@ TILE_GET_INFO_MEMBER(jubilee_state::get_bg_tile_info)
-static VIDEO_START( jubileep )
+void jubilee_state::video_start()
{
- jubilee_state *state = machine.driver_data<jubilee_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jubilee_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jubilee_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -141,7 +142,7 @@ static SCREEN_UPDATE_IND16( jubileep )
}
-static PALETTE_INIT( jubileep )
+void jubilee_state::palette_init()
{
}
@@ -428,10 +429,8 @@ static MACHINE_CONFIG_START( jubileep, jubilee_state )
MCFG_GFXDECODE(jubileep)
- MCFG_PALETTE_INIT(jubileep)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(jubileep)
MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/4, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/junofrst.c b/src/mame/drivers/junofrst.c
index e7e39d791dc..c9186294c1d 100644
--- a/src/mame/drivers/junofrst.c
+++ b/src/mame/drivers/junofrst.c
@@ -116,6 +116,8 @@ public:
DECLARE_READ8_MEMBER(junofrst_portA_r);
DECLARE_WRITE8_MEMBER(junofrst_portB_w);
DECLARE_DRIVER_INIT(junofrst);
+ DECLARE_MACHINE_START(junofrst);
+ DECLARE_MACHINE_RESET(junofrst);
};
@@ -384,38 +386,36 @@ static const ay8910_interface ay8910_config =
};
-static MACHINE_START( junofrst )
+MACHINE_START_MEMBER(junofrst_state,junofrst)
{
- junofrst_state *state = machine.driver_data<junofrst_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_i8039 = machine.device("mcu");
- state->m_soundcpu = machine.device<cpu_device>("audiocpu");
- state->m_filter_0_0 = machine.device("filter.0.0");
- state->m_filter_0_1 = machine.device("filter.0.1");
- state->m_filter_0_2 = machine.device("filter.0.2");
-
- state->save_item(NAME(state->m_i8039_status));
- state->save_item(NAME(state->m_last_irq));
- state->save_item(NAME(state->m_irq_toggle));
- state->save_item(NAME(state->m_irq_enable));
- state->save_item(NAME(state->m_flip_x));
- state->save_item(NAME(state->m_flip_y));
- state->save_item(NAME(state->m_blitterdata));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_i8039 = machine().device("mcu");
+ m_soundcpu = machine().device<cpu_device>("audiocpu");
+ m_filter_0_0 = machine().device("filter.0.0");
+ m_filter_0_1 = machine().device("filter.0.1");
+ m_filter_0_2 = machine().device("filter.0.2");
+
+ save_item(NAME(m_i8039_status));
+ save_item(NAME(m_last_irq));
+ save_item(NAME(m_irq_toggle));
+ save_item(NAME(m_irq_enable));
+ save_item(NAME(m_flip_x));
+ save_item(NAME(m_flip_y));
+ save_item(NAME(m_blitterdata));
}
-static MACHINE_RESET( junofrst )
+MACHINE_RESET_MEMBER(junofrst_state,junofrst)
{
- junofrst_state *state = machine.driver_data<junofrst_state>();
-
- state->m_i8039_status = 0;
- state->m_last_irq = 0;
- state->m_flip_x = 0;
- state->m_flip_y = 0;
- state->m_blitterdata[0] = 0;
- state->m_blitterdata[1] = 0;
- state->m_blitterdata[2] = 0;
- state->m_blitterdata[3] = 0;
+
+ m_i8039_status = 0;
+ m_last_irq = 0;
+ m_flip_x = 0;
+ m_flip_y = 0;
+ m_blitterdata[0] = 0;
+ m_blitterdata[1] = 0;
+ m_blitterdata[2] = 0;
+ m_blitterdata[3] = 0;
}
static INTERRUPT_GEN( junofrst_30hz_irq )
@@ -442,8 +442,8 @@ static MACHINE_CONFIG_START( junofrst, junofrst_state )
MCFG_CPU_PROGRAM_MAP(mcu_map)
MCFG_CPU_IO_MAP(mcu_io_map)
- MCFG_MACHINE_START(junofrst)
- MCFG_MACHINE_RESET(junofrst)
+ MCFG_MACHINE_START_OVERRIDE(junofrst_state,junofrst)
+ MCFG_MACHINE_RESET_OVERRIDE(junofrst_state,junofrst)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c
index e4d597ff00a..e8c6cef24a2 100644
--- a/src/mame/drivers/kaneko16.c
+++ b/src/mame/drivers/kaneko16.c
@@ -105,16 +105,14 @@ Dip locations verified from manual for:
-static MACHINE_RESET( gtmr )
+MACHINE_RESET_MEMBER(kaneko16_state,gtmr)
{
- kaneko16_state *state = machine.driver_data<kaneko16_state>();
- state->VIEW2_2_pri = 1;
+ VIEW2_2_pri = 1;
}
-static MACHINE_RESET( mgcrystl )
+MACHINE_RESET_MEMBER(kaneko16_state,mgcrystl)
{
- kaneko16_state *state = machine.driver_data<kaneko16_state>();
- state->VIEW2_2_pri = 0;
+ VIEW2_2_pri = 0;
}
@@ -1669,8 +1667,8 @@ static MACHINE_CONFIG_START( berlwall, kaneko16_berlwall_state )
kaneko16_sprite_device::set_altspacing(*device, 1);
- MCFG_PALETTE_INIT(berlwall)
- MCFG_VIDEO_START(berlwall)
+ MCFG_PALETTE_INIT_OVERRIDE(kaneko16_berlwall_state,berlwall)
+ MCFG_VIDEO_START_OVERRIDE(kaneko16_berlwall_state,berlwall)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1699,7 +1697,7 @@ static MACHINE_CONFIG_START( bakubrkr, kaneko16_state )
MCFG_CPU_PROGRAM_MAP(bakubrkr)
MCFG_TIMER_ADD_SCANLINE("scantimer", kaneko16_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(gtmr)
+ MCFG_MACHINE_RESET_OVERRIDE(kaneko16_berlwall_state,gtmr)
MCFG_EEPROM_93C46_ADD("eeprom")
/* video hardware */
@@ -1729,7 +1727,7 @@ static MACHINE_CONFIG_START( bakubrkr, kaneko16_state )
- MCFG_VIDEO_START(kaneko16)
+ MCFG_VIDEO_START_OVERRIDE(kaneko16_berlwall_state,kaneko16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1794,7 +1792,7 @@ static MACHINE_CONFIG_START( blazeon, kaneko16_state )
// there is actually a 2nd sprite chip! looks like our device emulation handles both at once
- MCFG_VIDEO_START(kaneko16)
+ MCFG_VIDEO_START_OVERRIDE(kaneko16_berlwall_state,kaneko16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1827,7 +1825,7 @@ static MACHINE_CONFIG_START( gtmr, kaneko16_gtmr_state )
MCFG_CPU_PROGRAM_MAP(gtmr_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", kaneko16_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(gtmr)
+ MCFG_MACHINE_RESET_OVERRIDE(kaneko16_berlwall_state,gtmr)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -1862,7 +1860,7 @@ static MACHINE_CONFIG_START( gtmr, kaneko16_gtmr_state )
kaneko_hit_device::set_type(*device, 1);
- MCFG_VIDEO_START(kaneko16)
+ MCFG_VIDEO_START_OVERRIDE(kaneko16_berlwall_state,kaneko16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1900,7 +1898,7 @@ static MACHINE_CONFIG_DERIVED( bloodwar, gtmr )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(bloodwar)
- MCFG_MACHINE_RESET( gtmr )
+ MCFG_MACHINE_RESET_OVERRIDE(kaneko16_berlwall_state, gtmr )
MCFG_DEVICE_MODIFY("kan_spr")
kaneko16_sprite_device::set_priorities(*device, 2 /* never used? */ ,3 /* character selection / vs. portraits */ ,5 /* winning portrait*/ ,7 /* ? */);
@@ -1921,7 +1919,7 @@ static MACHINE_CONFIG_DERIVED( bonkadv, gtmr )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(bonkadv)
- MCFG_MACHINE_RESET( gtmr )
+ MCFG_MACHINE_RESET_OVERRIDE(kaneko16_berlwall_state, gtmr )
MCFG_DEVICE_MODIFY("kan_spr")
kaneko16_sprite_device::set_priorities(*device, 2 /* never used? */ ,3 /* volcano lava on level 2 */ ,5 /* in-game player */ ,7 /* demostration text */);
@@ -1946,7 +1944,7 @@ static MACHINE_CONFIG_START( mgcrystl, kaneko16_state )
MCFG_CPU_PROGRAM_MAP(mgcrystl)
MCFG_TIMER_ADD_SCANLINE("scantimer", kaneko16_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(mgcrystl)
+ MCFG_MACHINE_RESET_OVERRIDE(kaneko16_berlwall_state,mgcrystl)
MCFG_EEPROM_93C46_ADD("eeprom")
/* video hardware */
@@ -1976,7 +1974,7 @@ static MACHINE_CONFIG_START( mgcrystl, kaneko16_state )
- MCFG_VIDEO_START(kaneko16)
+ MCFG_VIDEO_START_OVERRIDE(kaneko16_berlwall_state,kaneko16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2070,7 +2068,7 @@ static MACHINE_CONFIG_START( shogwarr, kaneko16_shogwarr_state )
MCFG_CPU_PROGRAM_MAP(shogwarr)
MCFG_TIMER_ADD_SCANLINE("scantimer", shogwarr_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(mgcrystl)
+ MCFG_MACHINE_RESET_OVERRIDE(kaneko16_berlwall_state,mgcrystl)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_EEPROM_DATA(shogwarr_default_eeprom, 128)
@@ -2092,7 +2090,7 @@ static MACHINE_CONFIG_START( shogwarr, kaneko16_shogwarr_state )
kaneko_view2_tilemap_device::set_gfx_region(*device, 1);
kaneko_view2_tilemap_device::set_offset(*device, 0x33, -0x8, 320, 240);
- MCFG_VIDEO_START(kaneko16)
+ MCFG_VIDEO_START_OVERRIDE(kaneko16_berlwall_state,kaneko16)
MCFG_DEVICE_ADD_VU002_SPRITES
kaneko16_sprite_device::set_priorities(*device, 1 /* below all */ ,3 /* above tile[0], below the others */ ,5 /* above all */ ,7 /* above all */);
diff --git a/src/mame/drivers/kangaroo.c b/src/mame/drivers/kangaroo.c
index 4ed2dddf626..54c7116fc15 100644
--- a/src/mame/drivers/kangaroo.c
+++ b/src/mame/drivers/kangaroo.c
@@ -172,25 +172,22 @@
*
*************************************/
-static MACHINE_START( kangaroo )
+void kangaroo_state::machine_start()
{
- machine.root_device().membank("bank1")->configure_entries(0, 2, machine.root_device().memregion("gfx1")->base(), 0x2000);
+ machine().root_device().membank("bank1")->configure_entries(0, 2, machine().root_device().memregion("gfx1")->base(), 0x2000);
}
-static MACHINE_START( kangaroo_mcu )
+MACHINE_START_MEMBER(kangaroo_state,kangaroo_mcu)
{
- kangaroo_state *state = machine.driver_data<kangaroo_state>();
-
- MACHINE_START_CALL(kangaroo);
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0xef00, 0xefff, read8_delegate(FUNC(kangaroo_state::mcu_sim_r),state), write8_delegate(FUNC(kangaroo_state::mcu_sim_w),state));
- state->save_item(NAME(state->m_clock));
+ kangaroo_state::machine_start();
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0xef00, 0xefff, read8_delegate(FUNC(kangaroo_state::mcu_sim_r),this), write8_delegate(FUNC(kangaroo_state::mcu_sim_w),this));
+ save_item(NAME(m_clock));
}
-static MACHINE_RESET( kangaroo )
+void kangaroo_state::machine_reset()
{
- kangaroo_state *state = machine.driver_data<kangaroo_state>();
/* I think there is a bug in the startup checks of the game. At the very */
/* beginning, during the RAM check, it goes one byte too far, and ends up */
@@ -203,9 +200,9 @@ static MACHINE_RESET( kangaroo )
/* the copy protection. */
/* Anyway, what I do here is just immediately generate the NMI, so the game */
/* properly starts. */
- machine.device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
+ machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
- state->m_clock = 0;
+ m_clock = 0;
}
@@ -438,8 +435,6 @@ static MACHINE_CONFIG_START( nomcu, kangaroo_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(kangaroo)
- MCFG_MACHINE_RESET(kangaroo)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
@@ -448,7 +443,6 @@ static MACHINE_CONFIG_START( nomcu, kangaroo_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK, 320*2, 0*2, 256*2, 260, 8, 248)
MCFG_SCREEN_UPDATE_STATIC(kangaroo)
- MCFG_VIDEO_START(kangaroo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -459,7 +453,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mcu, nomcu )
- MCFG_MACHINE_START(kangaroo_mcu)
+ MCFG_MACHINE_START_OVERRIDE(kangaroo_state,kangaroo_mcu)
MCFG_CPU_ADD("mcu", MB8841, MASTER_CLOCK/4/2)
MCFG_DEVICE_DISABLE()
diff --git a/src/mame/drivers/karnov.c b/src/mame/drivers/karnov.c
index 4c2ddc99f39..f8940b50377 100644
--- a/src/mame/drivers/karnov.c
+++ b/src/mame/drivers/karnov.c
@@ -765,41 +765,39 @@ static const ym3526_interface ym3526_config =
*
*************************************/
-static MACHINE_START( karnov )
+void karnov_state::machine_start()
{
- karnov_state *state = machine.driver_data<karnov_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_scroll));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_scroll));
- state->save_item(NAME(state->m_i8751_return));
- state->save_item(NAME(state->m_i8751_needs_ack));
- state->save_item(NAME(state->m_i8751_coin_pending));
- state->save_item(NAME(state->m_i8751_command_queue));
- state->save_item(NAME(state->m_i8751_level));
- state->save_item(NAME(state->m_latch));
+ save_item(NAME(m_i8751_return));
+ save_item(NAME(m_i8751_needs_ack));
+ save_item(NAME(m_i8751_coin_pending));
+ save_item(NAME(m_i8751_command_queue));
+ save_item(NAME(m_i8751_level));
+ save_item(NAME(m_latch));
}
-static MACHINE_RESET( karnov )
+void karnov_state::machine_reset()
{
- karnov_state *state = machine.driver_data<karnov_state>();
- memset(state->m_ram, 0, 0x4000 / 2); /* Chelnov likes ram clear on reset.. */
+ memset(m_ram, 0, 0x4000 / 2); /* Chelnov likes ram clear on reset.. */
- state->m_i8751_return = 0;
- state->m_i8751_needs_ack = 0;
- state->m_i8751_coin_pending = 0;
- state->m_i8751_command_queue = 0;
- state->m_i8751_level = 0;
-// state->m_latch = 0;
-
- state->m_flipscreen = 0;
- state->m_scroll[0] = 0;
- state->m_scroll[1] = 0;
+ m_i8751_return = 0;
+ m_i8751_needs_ack = 0;
+ m_i8751_coin_pending = 0;
+ m_i8751_command_queue = 0;
+ m_i8751_level = 0;
+// m_latch = 0;
+
+ m_flipscreen = 0;
+ m_scroll[0] = 0;
+ m_scroll[1] = 0;
}
@@ -813,8 +811,6 @@ static MACHINE_CONFIG_START( karnov, karnov_state )
MCFG_CPU_ADD("audiocpu", M6502, 1500000) /* Accurate */
MCFG_CPU_PROGRAM_MAP(karnov_sound_map)
- MCFG_MACHINE_START(karnov)
- MCFG_MACHINE_RESET(karnov)
/* video hardware */
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -832,8 +828,7 @@ static MACHINE_CONFIG_START( karnov, karnov_state )
MCFG_DEVICE_ADD("spritegen", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 2);
- MCFG_PALETTE_INIT(karnov)
- MCFG_VIDEO_START(karnov)
+ MCFG_VIDEO_START_OVERRIDE(karnov_state,karnov)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -857,8 +852,6 @@ static MACHINE_CONFIG_START( wndrplnt, karnov_state )
MCFG_CPU_ADD("audiocpu", M6502, 1500000) /* Accurate */
MCFG_CPU_PROGRAM_MAP(karnov_sound_map)
- MCFG_MACHINE_START(karnov)
- MCFG_MACHINE_RESET(karnov)
/* video hardware */
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -876,8 +869,7 @@ static MACHINE_CONFIG_START( wndrplnt, karnov_state )
MCFG_DEVICE_ADD("spritegen", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 2);
- MCFG_PALETTE_INIT(karnov)
- MCFG_VIDEO_START(wndrplnt)
+ MCFG_VIDEO_START_OVERRIDE(karnov_state,wndrplnt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/kas89.c b/src/mame/drivers/kas89.c
index 8d931fcc655..41c81156f2a 100644
--- a/src/mame/drivers/kas89.c
+++ b/src/mame/drivers/kas89.c
@@ -226,6 +226,8 @@ public:
DECLARE_WRITE8_MEMBER(led_mux_data_w);
DECLARE_WRITE8_MEMBER(led_mux_select_w);
DECLARE_DRIVER_INIT(kas89);
+ virtual void machine_start();
+ virtual void machine_reset();
};
#define VDP_MEM 0x40000
@@ -254,20 +256,18 @@ static TIMER_DEVICE_CALLBACK( kas89_interrupt )
* Machine Start & Reset *
*************************************/
-static MACHINE_START( kas89 )
+void kas89_state::machine_start()
{
- kas89_state *state = machine.driver_data<kas89_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
output_set_lamp_value(37, 0); /* turning off the operator led */
}
-static MACHINE_RESET(kas89)
+void kas89_state::machine_reset()
{
- kas89_state *state = machine.driver_data<kas89_state>();
- state->m_main_nmi_enable = 0;
+ m_main_nmi_enable = 0;
}
@@ -787,8 +787,6 @@ static MACHINE_CONFIG_START( kas89, kas89_state )
MCFG_CPU_IO_MAP(audio_io)
MCFG_TIMER_ADD_PERIODIC("kas89_snmi", kas89_sound_nmi_cb, attotime::from_hz(138)) /* Connected to a 138Hz osc.*/
- MCFG_MACHINE_START(kas89)
- MCFG_MACHINE_RESET(kas89)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/kchamp.c b/src/mame/drivers/kchamp.c
index ea018b2093f..347db748c3d 100644
--- a/src/mame/drivers/kchamp.c
+++ b/src/mame/drivers/kchamp.c
@@ -383,33 +383,30 @@ static INTERRUPT_GEN( sound_int )
}
-static MACHINE_START( kchamp )
+MACHINE_START_MEMBER(kchamp_state,kchamp)
{
- kchamp_state *state = machine.driver_data<kchamp_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_nmi_enable));
- state->save_item(NAME(state->m_sound_nmi_enable));
+ save_item(NAME(m_nmi_enable));
+ save_item(NAME(m_sound_nmi_enable));
}
-static MACHINE_START( kchampvs )
+MACHINE_START_MEMBER(kchamp_state,kchampvs)
{
- kchamp_state *state = machine.driver_data<kchamp_state>();
- MACHINE_START_CALL(kchamp);
+ MACHINE_START_CALL_MEMBER(kchamp);
- state->save_item(NAME(state->m_msm_data));
- state->save_item(NAME(state->m_msm_play_lo_nibble));
- state->save_item(NAME(state->m_counter));
+ save_item(NAME(m_msm_data));
+ save_item(NAME(m_msm_play_lo_nibble));
+ save_item(NAME(m_counter));
}
-static MACHINE_RESET( kchamp )
+void kchamp_state::machine_reset()
{
- kchamp_state *state = machine.driver_data<kchamp_state>();
- state->m_nmi_enable = 0;
- state->m_sound_nmi_enable = 0;
+ m_nmi_enable = 0;
+ m_sound_nmi_enable = 0;
}
static MACHINE_CONFIG_START( kchampvs, kchamp_state )
@@ -425,8 +422,7 @@ static MACHINE_CONFIG_START( kchampvs, kchamp_state )
MCFG_CPU_IO_MAP(kchampvs_sound_io_map) /* irq's triggered from main cpu */
/* nmi's from msm5205 */
- MCFG_MACHINE_START(kchampvs)
- MCFG_MACHINE_RESET(kchamp)
+ MCFG_MACHINE_START_OVERRIDE(kchamp_state,kchampvs)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -439,8 +435,6 @@ static MACHINE_CONFIG_START( kchampvs, kchamp_state )
MCFG_GFXDECODE(kchamp)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(kchamp)
- MCFG_VIDEO_START(kchamp)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -475,8 +469,7 @@ static MACHINE_CONFIG_START( kchamp, kchamp_state )
/* irq's triggered from main cpu */
/* nmi's from 125 Hz clock */
- MCFG_MACHINE_START(kchamp)
- MCFG_MACHINE_RESET(kchamp)
+ MCFG_MACHINE_START_OVERRIDE(kchamp_state,kchamp)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -489,8 +482,6 @@ static MACHINE_CONFIG_START( kchamp, kchamp_state )
MCFG_GFXDECODE(kchamp)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(kchamp)
- MCFG_VIDEO_START(kchamp)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/kickgoal.c b/src/mame/drivers/kickgoal.c
index 18c340282ef..b3c335e2450 100644
--- a/src/mame/drivers/kickgoal.c
+++ b/src/mame/drivers/kickgoal.c
@@ -618,31 +618,29 @@ GFXDECODE_END
/* MACHINE drivers ***********************************************************/
-static MACHINE_START( kickgoal )
+void kickgoal_state::machine_start()
{
- kickgoal_state *state = machine.driver_data<kickgoal_state>();
-
- state->save_item(NAME(state->m_snd_sam));
- state->save_item(NAME(state->m_melody_loop));
- state->save_item(NAME(state->m_snd_new));
- state->save_item(NAME(state->m_m6295_comm));
- state->save_item(NAME(state->m_m6295_bank));
- state->save_item(NAME(state->m_m6295_key_delay));
+
+ save_item(NAME(m_snd_sam));
+ save_item(NAME(m_melody_loop));
+ save_item(NAME(m_snd_new));
+ save_item(NAME(m_m6295_comm));
+ save_item(NAME(m_m6295_bank));
+ save_item(NAME(m_m6295_key_delay));
}
-static MACHINE_RESET( kickgoal )
+void kickgoal_state::machine_reset()
{
- kickgoal_state *state = machine.driver_data<kickgoal_state>();
-
- state->m_melody_loop = 0;
- state->m_snd_new = 0;
- state->m_snd_sam[0] = 0;
- state->m_snd_sam[1] = 0;
- state->m_snd_sam[2] = 0;
- state->m_snd_sam[3] = 0;
- state->m_m6295_comm = 0;
- state->m_m6295_bank = 0;
- state->m_m6295_key_delay = 0;
+
+ m_melody_loop = 0;
+ m_snd_new = 0;
+ m_snd_sam[0] = 0;
+ m_snd_sam[1] = 0;
+ m_snd_sam[2] = 0;
+ m_snd_sam[3] = 0;
+ m_m6295_comm = 0;
+ m_m6295_bank = 0;
+ m_m6295_key_delay = 0;
}
static MACHINE_CONFIG_START( kickgoal, kickgoal_state )
@@ -658,8 +656,6 @@ static MACHINE_CONFIG_START( kickgoal, kickgoal_state )
/* Program and Data Maps are internal to the MCU */
MCFG_CPU_IO_MAP(kickgoal_sound_io_map)
- MCFG_MACHINE_START(kickgoal)
- MCFG_MACHINE_RESET(kickgoal)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_EEPROM_DATA(kickgoal_default_eeprom_type1, 128)
@@ -675,7 +671,7 @@ static MACHINE_CONFIG_START( kickgoal, kickgoal_state )
MCFG_GFXDECODE(kickgoal)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(kickgoal)
+ MCFG_VIDEO_START_OVERRIDE(kickgoal_state,kickgoal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -695,8 +691,6 @@ static MACHINE_CONFIG_START( actionhw, kickgoal_state )
/* Program and Data Maps are internal to the MCU */
MCFG_CPU_IO_MAP(actionhw_io_map)
- MCFG_MACHINE_START(kickgoal)
- MCFG_MACHINE_RESET(kickgoal)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_EEPROM_DATA(kickgoal_default_eeprom_type1, 128)
@@ -712,7 +706,7 @@ static MACHINE_CONFIG_START( actionhw, kickgoal_state )
MCFG_GFXDECODE(actionhw)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(actionhw)
+ MCFG_VIDEO_START_OVERRIDE(kickgoal_state,actionhw)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c
index c12db8b3a4c..89f371c5a3e 100644
--- a/src/mame/drivers/kingdrby.c
+++ b/src/mame/drivers/kingdrby.c
@@ -107,6 +107,9 @@ public:
DECLARE_WRITE8_MEMBER(outportb_w);
TILE_GET_INFO_MEMBER(get_sc0_tile_info);
TILE_GET_INFO_MEMBER(get_sc1_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
+ DECLARE_PALETTE_INIT(kingdrbb);
};
@@ -164,14 +167,13 @@ TILE_GET_INFO_MEMBER(kingdrby_state::get_sc1_tile_info)
tileinfo.category = (m_attr[tile_index] & 0x08)>>3;
}
-static VIDEO_START(kingdrby)
+void kingdrby_state::video_start()
{
- kingdrby_state *state = machine.driver_data<kingdrby_state>();
- state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,24);
- state->m_sc1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,24);
- state->m_sc0w_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_sc0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,24);
+ m_sc1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,24);
+ m_sc0w_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
- state->m_sc1_tilemap->set_transparent_pen(0);
+ m_sc1_tilemap->set_transparent_pen(0);
}
static const UINT8 hw_sprite[16] =
@@ -953,9 +955,9 @@ static const ym2203_interface cowrace_ym2203_interface =
DEVCB_NULL
};
-static PALETTE_INIT(kingdrby)
+void kingdrby_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int bit0, bit1, bit2 , r, g, b;
int i;
@@ -974,15 +976,15 @@ static PALETTE_INIT(kingdrby)
bit2 = (color_prom[0] >> 5) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
color_prom++;
}
}
-static PALETTE_INIT(kingdrbb)
+PALETTE_INIT_MEMBER(kingdrby_state,kingdrbb)
{
- UINT8 *raw_prom = machine.root_device().memregion("raw_prom")->base();
- UINT8 *prom = machine.root_device().memregion("proms")->base();
+ UINT8 *raw_prom = machine().root_device().memregion("raw_prom")->base();
+ UINT8 *prom = machine().root_device().memregion("proms")->base();
int bit0, bit1, bit2 , r, g, b;
int i;
@@ -1007,7 +1009,7 @@ static PALETTE_INIT(kingdrbb)
bit2 = (prom[i] >> 5) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -1036,7 +1038,6 @@ static MACHINE_CONFIG_START( kingdrby, kingdrby_state )
MCFG_GFXDECODE(kingdrby)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT(kingdrby)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -1045,7 +1046,6 @@ static MACHINE_CONFIG_START( kingdrby, kingdrby_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1) /* controlled by CRTC */
MCFG_SCREEN_UPDATE_STATIC(kingdrby)
- MCFG_VIDEO_START(kingdrby)
MCFG_MC6845_ADD("crtc", MC6845, CLK_1/32, mc6845_intf) /* 53.333 Hz. guess */
@@ -1061,7 +1061,7 @@ static MACHINE_CONFIG_DERIVED( kingdrbb, kingdrby )
MCFG_CPU_MODIFY("slave")
MCFG_CPU_PROGRAM_MAP(slave_1986_map)
- MCFG_PALETTE_INIT(kingdrbb)
+ MCFG_PALETTE_INIT_OVERRIDE(kingdrby_state,kingdrbb)
MCFG_DEVICE_REMOVE("ppi8255_0")
MCFG_DEVICE_REMOVE("ppi8255_1")
@@ -1076,7 +1076,6 @@ static MACHINE_CONFIG_DERIVED( cowrace, kingdrbb )
MCFG_CPU_IO_MAP(cowrace_sound_io)
MCFG_GFXDECODE(cowrace)
- MCFG_PALETTE_INIT(kingdrby)
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
diff --git a/src/mame/drivers/kingobox.c b/src/mame/drivers/kingobox.c
index 654d04f6fe8..f9d2b8c499a 100644
--- a/src/mame/drivers/kingobox.c
+++ b/src/mame/drivers/kingobox.c
@@ -450,24 +450,22 @@ static INTERRUPT_GEN( kingofb_interrupt )
device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
-static MACHINE_START( kingofb )
+void kingofb_state::machine_start()
{
- kingofb_state *state = machine.driver_data<kingofb_state>();
- state->m_video_cpu = machine.device("video");
- state->m_sprite_cpu = machine.device("sprite");
- state->m_audio_cpu = machine.device("audiocpu");
+ m_video_cpu = machine().device("video");
+ m_sprite_cpu = machine().device("sprite");
+ m_audio_cpu = machine().device("audiocpu");
- state->save_item(NAME(state->m_nmi_enable));
- state->save_item(NAME(state->m_palette_bank));
+ save_item(NAME(m_nmi_enable));
+ save_item(NAME(m_palette_bank));
}
-static MACHINE_RESET( kingofb )
+void kingofb_state::machine_reset()
{
- kingofb_state *state = machine.driver_data<kingofb_state>();
- state->m_nmi_enable = 0;
- state->m_palette_bank = 0;
+ m_nmi_enable = 0;
+ m_palette_bank = 0;
}
static MACHINE_CONFIG_START( kingofb, kingofb_state )
@@ -492,8 +490,6 @@ static MACHINE_CONFIG_START( kingofb, kingofb_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* We really need heavy synching among the processors */
- MCFG_MACHINE_START(kingofb)
- MCFG_MACHINE_RESET(kingofb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -506,8 +502,8 @@ static MACHINE_CONFIG_START( kingofb, kingofb_state )
MCFG_GFXDECODE(kingobox)
MCFG_PALETTE_LENGTH(256+8*2)
- MCFG_PALETTE_INIT(kingofb)
- MCFG_VIDEO_START(kingofb)
+ MCFG_PALETTE_INIT_OVERRIDE(kingofb_state,kingofb)
+ MCFG_VIDEO_START_OVERRIDE(kingofb_state,kingofb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -544,8 +540,6 @@ static MACHINE_CONFIG_START( ringking, kingofb_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* We really need heavy synching among the processors */
- MCFG_MACHINE_START(kingofb)
- MCFG_MACHINE_RESET(kingofb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -558,8 +552,8 @@ static MACHINE_CONFIG_START( ringking, kingofb_state )
MCFG_GFXDECODE(rk)
MCFG_PALETTE_LENGTH(256+8*2)
- MCFG_PALETTE_INIT(ringking)
- MCFG_VIDEO_START(ringking)
+ MCFG_PALETTE_INIT_OVERRIDE(kingofb_state,ringking)
+ MCFG_VIDEO_START_OVERRIDE(kingofb_state,ringking)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c
index 63cf9a5e18d..f177af51c55 100644
--- a/src/mame/drivers/kinst.c
+++ b/src/mame/drivers/kinst.c
@@ -160,6 +160,8 @@ public:
DECLARE_WRITE32_MEMBER(kinst_ide_extra_w);
DECLARE_DRIVER_INIT(kinst);
DECLARE_DRIVER_INIT(kinst2);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -175,16 +177,15 @@ public:
*
*************************************/
-static MACHINE_START( kinst )
+void kinst_state::machine_start()
{
- kinst_state *state = machine.driver_data<kinst_state>();
/* set the fastest DRC options */
- mips3drc_set_options(machine.device("maincpu"), MIPS3DRC_FASTEST_OPTIONS);
+ mips3drc_set_options(machine().device("maincpu"), MIPS3DRC_FASTEST_OPTIONS);
/* configure fast RAM regions for DRC */
- mips3drc_add_fastram(machine.device("maincpu"), 0x08000000, 0x087fffff, FALSE, state->m_rambase2);
- mips3drc_add_fastram(machine.device("maincpu"), 0x00000000, 0x0007ffff, FALSE, state->m_rambase);
- mips3drc_add_fastram(machine.device("maincpu"), 0x1fc00000, 0x1fc7ffff, TRUE, state->m_rombase);
+ mips3drc_add_fastram(machine().device("maincpu"), 0x08000000, 0x087fffff, FALSE, m_rambase2);
+ mips3drc_add_fastram(machine().device("maincpu"), 0x00000000, 0x0007ffff, FALSE, m_rambase);
+ mips3drc_add_fastram(machine().device("maincpu"), 0x1fc00000, 0x1fc7ffff, TRUE, m_rombase);
}
@@ -195,13 +196,12 @@ static MACHINE_START( kinst )
*
*************************************/
-static MACHINE_RESET( kinst )
+void kinst_state::machine_reset()
{
- kinst_state *state = machine.driver_data<kinst_state>();
- device_t *ide = machine.device("ide");
+ device_t *ide = machine().device("ide");
UINT8 *features = ide_get_features(ide,0);
- if (strncmp(machine.system().name, "kinst2", 6) != 0)
+ if (strncmp(machine().system().name, "kinst2", 6) != 0)
{
/* kinst: tweak the model number so we pass the check */
features[27*2+0] = 0x54;
@@ -231,7 +231,7 @@ static MACHINE_RESET( kinst )
}
/* set a safe base location for video */
- state->m_video_base = &state->m_rambase[0x30000/4];
+ m_video_base = &m_rambase[0x30000/4];
}
@@ -677,8 +677,6 @@ static MACHINE_CONFIG_START( kinst, kinst_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", irq0_start)
- MCFG_MACHINE_START(kinst)
- MCFG_MACHINE_RESET(kinst)
MCFG_IDE_CONTROLLER_ADD("ide", ide_intf, ide_devices, "hdd", NULL, true)
diff --git a/src/mame/drivers/klax.c b/src/mame/drivers/klax.c
index 6621033f42b..ee48315c5a5 100644
--- a/src/mame/drivers/klax.c
+++ b/src/mame/drivers/klax.c
@@ -60,19 +60,18 @@ WRITE16_MEMBER(klax_state::interrupt_ack_w)
*
*************************************/
-static MACHINE_START( klax )
+MACHINE_START_MEMBER(klax_state,klax)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( klax )
+MACHINE_RESET_MEMBER(klax_state,klax)
{
- klax_state *state = machine.driver_data<klax_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, scanline_update, 32);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, scanline_update, 32);
}
@@ -172,8 +171,8 @@ static MACHINE_CONFIG_START( klax, klax_state )
MCFG_CPU_PROGRAM_MAP(klax_map)
MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
- MCFG_MACHINE_START(klax)
- MCFG_MACHINE_RESET(klax)
+ MCFG_MACHINE_START_OVERRIDE(klax_state,klax)
+ MCFG_MACHINE_RESET_OVERRIDE(klax_state,klax)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -187,7 +186,7 @@ static MACHINE_CONFIG_START( klax, klax_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(klax)
- MCFG_VIDEO_START(klax)
+ MCFG_VIDEO_START_OVERRIDE(klax_state,klax)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c
index 464b2f3a3b1..f1daa576106 100644
--- a/src/mame/drivers/kncljoe.c
+++ b/src/mame/drivers/kncljoe.c
@@ -262,28 +262,26 @@ static INTERRUPT_GEN (sound_nmi)
device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
-static MACHINE_START( kncljoe )
+void kncljoe_state::machine_start()
{
- kncljoe_state *state = machine.driver_data<kncljoe_state>();
- state->m_soundcpu = machine.device<cpu_device>("soundcpu");
+ m_soundcpu = machine().device<cpu_device>("soundcpu");
- state->save_item(NAME(state->m_port1));
- state->save_item(NAME(state->m_port2));
- state->save_item(NAME(state->m_tile_bank));
- state->save_item(NAME(state->m_sprite_bank));
- state->save_item(NAME(state->m_flipscreen));
+ save_item(NAME(m_port1));
+ save_item(NAME(m_port2));
+ save_item(NAME(m_tile_bank));
+ save_item(NAME(m_sprite_bank));
+ save_item(NAME(m_flipscreen));
}
-static MACHINE_RESET( kncljoe )
+void kncljoe_state::machine_reset()
{
- kncljoe_state *state = machine.driver_data<kncljoe_state>();
- state->m_port1 = 0;
- state->m_port2 = 0;
- state->m_tile_bank = 0;
- state->m_sprite_bank = 0;
- state->m_flipscreen = 0;
+ m_port1 = 0;
+ m_port2 = 0;
+ m_tile_bank = 0;
+ m_sprite_bank = 0;
+ m_flipscreen = 0;
}
static MACHINE_CONFIG_START( kncljoe, kncljoe_state )
@@ -298,8 +296,6 @@ static MACHINE_CONFIG_START( kncljoe, kncljoe_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_PERIODIC_INT(sound_nmi, (double)3970) //measured 3.970 kHz
- MCFG_MACHINE_START(kncljoe)
- MCFG_MACHINE_RESET(kncljoe)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
@@ -314,8 +310,6 @@ static MACHINE_CONFIG_START( kncljoe, kncljoe_state )
MCFG_GFXDECODE(kncljoe)
MCFG_PALETTE_LENGTH(16*8+16*8)
- MCFG_PALETTE_INIT(kncljoe)
- MCFG_VIDEO_START(kncljoe)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/koftball.c b/src/mame/drivers/koftball.c
index 0e0bcf753e0..854c753defa 100644
--- a/src/mame/drivers/koftball.c
+++ b/src/mame/drivers/koftball.c
@@ -64,6 +64,7 @@ public:
DECLARE_DRIVER_INIT(koftball);
TILE_GET_INFO_MEMBER(get_t1_tile_info);
TILE_GET_INFO_MEMBER(get_t2_tile_info);
+ virtual void video_start();
};
@@ -87,13 +88,12 @@ TILE_GET_INFO_MEMBER(koftball_state::get_t2_tile_info)
0);
}
-static VIDEO_START( koftball )
+void koftball_state::video_start()
{
- koftball_state *state = machine.driver_data<koftball_state>();
- state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(koftball_state::get_t1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32);
- state->m_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(koftball_state::get_t2_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap_1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(koftball_state::get_t1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(koftball_state::get_t2_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- state->m_tilemap_1->set_transparent_pen(0);
+ m_tilemap_1->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16( koftball )
@@ -256,7 +256,6 @@ static MACHINE_CONFIG_START( koftball, koftball_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 30*8-1)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(koftball)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/koikoi.c b/src/mame/drivers/koikoi.c
index 5cea99adcf3..e372735ed5c 100644
--- a/src/mame/drivers/koikoi.c
+++ b/src/mame/drivers/koikoi.c
@@ -69,6 +69,10 @@ public:
DECLARE_READ8_MEMBER(input_r);
DECLARE_WRITE8_MEMBER(unknown_w);
TILE_GET_INFO_MEMBER(get_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -87,13 +91,13 @@ TILE_GET_INFO_MEMBER(koikoi_state::get_tile_info)
SET_TILE_INFO_MEMBER( 0, code, color, flip);
}
-static PALETTE_INIT( koikoi )
+void koikoi_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
/* allocate the colortable */
- machine.colortable = colortable_alloc(machine, 0x10);
+ machine().colortable = colortable_alloc(machine(), 0x10);
/* create a lookup table for the palette */
for (i = 0; i < 0x10; i++)
@@ -119,7 +123,7 @@ static PALETTE_INIT( koikoi )
bit2 = (color_prom[i] >> 7) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- colortable_palette_set_color(machine.colortable, i, MAKE_RGB(r, g, b));
+ colortable_palette_set_color(machine().colortable, i, MAKE_RGB(r, g, b));
}
/* color_prom now points to the beginning of the lookup table */
@@ -129,14 +133,13 @@ static PALETTE_INIT( koikoi )
for (i = 0; i < 0x100; i++)
{
UINT8 ctabentry = color_prom[i] & 0x0f;
- colortable_entry_set_value(machine.colortable, i, ctabentry);
+ colortable_entry_set_value(machine().colortable, i, ctabentry);
}
}
-static VIDEO_START(koikoi)
+void koikoi_state::video_start()
{
- koikoi_state *state = machine.driver_data<koikoi_state>();
- state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(koikoi_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(koikoi_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
static SCREEN_UPDATE_IND16(koikoi)
@@ -335,27 +338,25 @@ static const ay8910_interface ay8910_config =
*
*************************************/
-static MACHINE_START( koikoi )
+void koikoi_state::machine_start()
{
- koikoi_state *state = machine.driver_data<koikoi_state>();
- state->save_item(NAME(state->m_inputcnt));
- state->save_item(NAME(state->m_inputval));
- state->save_item(NAME(state->m_inputlen));
- state->save_item(NAME(state->m_ioram));
+ save_item(NAME(m_inputcnt));
+ save_item(NAME(m_inputval));
+ save_item(NAME(m_inputlen));
+ save_item(NAME(m_ioram));
}
-static MACHINE_RESET( koikoi )
+void koikoi_state::machine_reset()
{
- koikoi_state *state = machine.driver_data<koikoi_state>();
int i;
- state->m_inputcnt = -1;
- state->m_inputval = 0;
- state->m_inputlen = 0;
+ m_inputcnt = -1;
+ m_inputval = 0;
+ m_inputlen = 0;
for (i = 0; i < 8; i++)
- state->m_ioram[i] = 0;
+ m_ioram[i] = 0;
}
static MACHINE_CONFIG_START( koikoi, koikoi_state )
@@ -366,8 +367,6 @@ static MACHINE_CONFIG_START( koikoi, koikoi_state )
MCFG_CPU_IO_MAP(koikoi_io_map)
MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse)
- MCFG_MACHINE_START(koikoi)
- MCFG_MACHINE_RESET(koikoi)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -379,9 +378,7 @@ static MACHINE_CONFIG_START( koikoi, koikoi_state )
MCFG_GFXDECODE(koikoi)
MCFG_PALETTE_LENGTH(8*32)
- MCFG_PALETTE_INIT(koikoi)
- MCFG_VIDEO_START(koikoi)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/konamigq.c b/src/mame/drivers/konamigq.c
index 9e65a6c0c8f..f42f1eab096 100644
--- a/src/mame/drivers/konamigq.c
+++ b/src/mame/drivers/konamigq.c
@@ -84,6 +84,8 @@ public:
DECLARE_READ16_MEMBER(tms57002_status_word_r);
DECLARE_WRITE16_MEMBER(tms57002_control_word_w);
DECLARE_DRIVER_INIT(konamigq);
+ DECLARE_MACHINE_START(konamigq);
+ DECLARE_MACHINE_RESET(konamigq);
};
/* Sound */
@@ -319,17 +321,16 @@ DRIVER_INIT_MEMBER(konamigq_state,konamigq)
m_p_n_pcmram = memregion( "shared" )->base() + 0x80000;
}
-static MACHINE_START( konamigq )
+MACHINE_START_MEMBER(konamigq_state,konamigq)
{
- konamigq_state *state = machine.driver_data<konamigq_state>();
- state->save_pointer(NAME(state->m_p_n_pcmram), 0x380000);
- state->save_item(NAME(state->m_sndto000));
- state->save_item(NAME(state->m_sndtor3k));
- state->save_item(NAME(state->m_sector_buffer));
+ save_pointer(NAME(m_p_n_pcmram), 0x380000);
+ save_item(NAME(m_sndto000));
+ save_item(NAME(m_sndtor3k));
+ save_item(NAME(m_sector_buffer));
}
-static MACHINE_RESET( konamigq )
+MACHINE_RESET_MEMBER(konamigq_state,konamigq)
{
}
@@ -345,8 +346,8 @@ static MACHINE_CONFIG_START( konamigq, konamigq_state )
MCFG_CPU_PROGRAM_MAP( konamigq_sound_map)
MCFG_CPU_PERIODIC_INT( irq2_line_hold, 480 )
- MCFG_MACHINE_START( konamigq )
- MCFG_MACHINE_RESET( konamigq )
+ MCFG_MACHINE_START_OVERRIDE(konamigq_state, konamigq )
+ MCFG_MACHINE_RESET_OVERRIDE(konamigq_state, konamigq )
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_EEPROM_DATA(konamigq_def_eeprom, 128)
diff --git a/src/mame/drivers/konamigv.c b/src/mame/drivers/konamigv.c
index 986ddab8ac2..8c9a383f029 100644
--- a/src/mame/drivers/konamigv.c
+++ b/src/mame/drivers/konamigv.c
@@ -170,6 +170,8 @@ public:
DECLARE_DRIVER_INIT(kdeadeye);
DECLARE_DRIVER_INIT(konamigv);
DECLARE_DRIVER_INIT(btchamp);
+ DECLARE_MACHINE_START(konamigv);
+ DECLARE_MACHINE_RESET(konamigv);
};
/* EEPROM handlers */
@@ -306,25 +308,24 @@ DRIVER_INIT_MEMBER(konamigv_state,konamigv)
psx_driver_init(machine());
}
-static MACHINE_START( konamigv )
+MACHINE_START_MEMBER(konamigv_state,konamigv)
{
- konamigv_state *state = machine.driver_data<konamigv_state>();
-
- state->save_item(NAME(state->m_sector_buffer));
- state->save_item(NAME(state->m_flash_address));
- state->save_item(NAME(state->m_trackball_prev));
- state->save_item(NAME(state->m_trackball_data));
- state->save_item(NAME(state->m_btc_trackball_prev));
- state->save_item(NAME(state->m_btc_trackball_data));
+
+ save_item(NAME(m_sector_buffer));
+ save_item(NAME(m_flash_address));
+ save_item(NAME(m_trackball_prev));
+ save_item(NAME(m_trackball_data));
+ save_item(NAME(m_btc_trackball_prev));
+ save_item(NAME(m_btc_trackball_data));
}
-static MACHINE_RESET( konamigv )
+MACHINE_RESET_MEMBER(konamigv_state,konamigv)
{
/* also hook up CDDA audio to the CD-ROM drive */
void *cdrom;
- scsidev_device *scsidev = machine.device<scsidev_device>("scsi:cdrom");
+ scsidev_device *scsidev = machine().device<scsidev_device>("scsi:cdrom");
scsidev->GetDevice( &cdrom );
- cdda_set_cdrom(machine.device("cdda"), cdrom);
+ cdda_set_cdrom(machine().device("cdda"), cdrom);
}
static void spu_irq(device_t *device, UINT32 data)
@@ -343,8 +344,8 @@ static MACHINE_CONFIG_START( konamigv, konamigv_state )
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psx_dma_read_delegate( FUNC( scsi_dma_read ), (konamigv_state *) owner ) )
MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psx_dma_write_delegate( FUNC( scsi_dma_write ), (konamigv_state *) owner ) )
- MCFG_MACHINE_START( konamigv )
- MCFG_MACHINE_RESET( konamigv )
+ MCFG_MACHINE_START_OVERRIDE(konamigv_state, konamigv )
+ MCFG_MACHINE_RESET_OVERRIDE(konamigv_state, konamigv )
MCFG_EEPROM_93C46_ADD("eeprom")
diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c
index 040943510c4..bbab9fc1e80 100644
--- a/src/mame/drivers/konamigx.c
+++ b/src/mame/drivers/konamigx.c
@@ -107,8 +107,8 @@
#define GX_DEBUG 0
-static MACHINE_START(konamigx);
-static MACHINE_RESET(konamigx);
+
+
static int konamigx_cfgport;
@@ -1773,8 +1773,8 @@ static MACHINE_CONFIG_START( konamigx, konamigx_state )
MCFG_QUANTUM_TIME(attotime::from_hz(1920))
- MCFG_MACHINE_START(konamigx)
- MCFG_MACHINE_RESET(konamigx)
+ MCFG_MACHINE_START_OVERRIDE(konamigx_state,konamigx)
+ MCFG_MACHINE_RESET_OVERRIDE(konamigx_state,konamigx)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -1793,7 +1793,7 @@ static MACHINE_CONFIG_START( konamigx, konamigx_state )
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(konamigx_5bpp)
+ MCFG_VIDEO_START_OVERRIDE(konamigx_state,konamigx_5bpp)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1812,19 +1812,19 @@ static MACHINE_CONFIG_DERIVED( dragoonj, konamigx )
MCFG_CPU_CLOCK(26400000) // needs higher clock to stop sprite flickerings
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
- MCFG_VIDEO_START(dragoonj)
+ MCFG_VIDEO_START_OVERRIDE(konamigx_state,dragoonj)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( le2, konamigx )
- MCFG_VIDEO_START(le2)
+ MCFG_VIDEO_START_OVERRIDE(konamigx_state,le2)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( konamigx_6bpp, konamigx )
- MCFG_VIDEO_START(konamigx_6bpp)
+ MCFG_VIDEO_START_OVERRIDE(konamigx_state,konamigx_6bpp)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( konamigx_6bpp_2, konamigx )
- MCFG_VIDEO_START(konamigx_6bpp_2)
+ MCFG_VIDEO_START_OVERRIDE(konamigx_state,konamigx_6bpp_2)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( opengolf, konamigx )
@@ -1832,7 +1832,7 @@ static MACHINE_CONFIG_DERIVED( opengolf, konamigx )
MCFG_SCREEN_RAW_PARAMS(8000000, 384+24+64+40, 0, 383, 224+16+8+16, 0, 223)
MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
MCFG_GFXDECODE(opengolf)
- MCFG_VIDEO_START(opengolf)
+ MCFG_VIDEO_START_OVERRIDE(konamigx_state,opengolf)
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(gx_type1_map)
@@ -1845,7 +1845,7 @@ static MACHINE_CONFIG_DERIVED( racinfrc, konamigx )
MCFG_SCREEN_RAW_PARAMS(8000000, 384+24+64+40, 0, 383, 224+16+8+16, 0, 223)
MCFG_SCREEN_VISIBLE_AREA(32, 32+384-1, 16, 16+224-1)
MCFG_GFXDECODE(racinfrc)
- MCFG_VIDEO_START(racinfrc)
+ MCFG_VIDEO_START_OVERRIDE(konamigx_state,racinfrc)
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(gx_type1_map)
@@ -1864,7 +1864,7 @@ static MACHINE_CONFIG_DERIVED( gxtype3, konamigx )
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE)
- MCFG_VIDEO_START(konamigx_type3)
+ MCFG_VIDEO_START_OVERRIDE(konamigx_state,konamigx_type3)
MCFG_PALETTE_LENGTH(16384)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(576, 264)
@@ -1904,7 +1904,7 @@ static MACHINE_CONFIG_DERIVED( gxtype4, konamigx )
MCFG_PALETTE_LENGTH(8192)
MCFG_GFXDECODE(type4)
- MCFG_VIDEO_START(konamigx_type4)
+ MCFG_VIDEO_START_OVERRIDE(konamigx_state,konamigx_type4)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( gxtype4_vsn, gxtype4 )
@@ -1919,12 +1919,12 @@ static MACHINE_CONFIG_DERIVED( gxtype4_vsn, gxtype4 )
MCFG_SCREEN_SIZE(128*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16)
- MCFG_VIDEO_START(konamigx_type4_vsn)
+ MCFG_VIDEO_START_OVERRIDE(konamigx_state,konamigx_type4_vsn)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( gxtype4sd2, gxtype4 )
- MCFG_VIDEO_START(konamigx_type4_sd2)
+ MCFG_VIDEO_START_OVERRIDE(konamigx_state,konamigx_type4_sd2)
MACHINE_CONFIG_END
@@ -1933,7 +1933,7 @@ static MACHINE_CONFIG_DERIVED( winspike, konamigx )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(38, 38+384-1, 16, 16+224-1)
- MCFG_VIDEO_START(winspike)
+ MCFG_VIDEO_START_OVERRIDE(konamigx_state,winspike)
MACHINE_CONFIG_END
@@ -3613,16 +3613,16 @@ ROM_END
/**********************************************************************************/
/* initializers */
-static MACHINE_START( konamigx )
+MACHINE_START_MEMBER(konamigx_state,konamigx)
{
- state_save_register_global(machine, konamigx_wrport1_1);
- state_save_register_global_array(machine, sndto020);
- state_save_register_global_array(machine, sndto000);
+ state_save_register_global(machine(), konamigx_wrport1_1);
+ state_save_register_global_array(machine(), sndto020);
+ state_save_register_global_array(machine(), sndto000);
}
-static MACHINE_RESET(konamigx)
+MACHINE_RESET_MEMBER(konamigx_state,konamigx)
{
- k054539_device *k054539_2 = machine.device<k054539_device>("konami2");
+ k054539_device *k054539_2 = machine().device<k054539_device>("konami2");
int i;
konamigx_wrport1_0 = konamigx_wrport1_1 = 0;
@@ -3641,15 +3641,15 @@ static MACHINE_RESET(konamigx)
memset(sndto020, 0, 16);
// sound CPU initially disabled?
- machine.device("soundcpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
- machine.device("dasp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("soundcpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+ machine().device("dasp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- if (!strcmp(machine.system().name, "tkmmpzdm"))
+ if (!strcmp(machine().system().name, "tkmmpzdm"))
{
// boost voice(chip 1 channel 3-7)
for (i=3; i<=7; i++) k054539_2->set_gain(i, 2.0);
}
- else if ((!strcmp(machine.system().name, "dragoonj")) || (!strcmp(machine.system().name, "dragoona")))
+ else if ((!strcmp(machine().system().name, "dragoonj")) || (!strcmp(machine().system().name, "dragoona")))
{
// soften percussions(chip 1 channel 0-3), boost voice(chip 1 channel 4-7)
for (i=0; i<=3; i++)
diff --git a/src/mame/drivers/konamim2.c b/src/mame/drivers/konamim2.c
index 5ad216d2eb1..b44192efc34 100644
--- a/src/mame/drivers/konamim2.c
+++ b/src/mame/drivers/konamim2.c
@@ -248,10 +248,11 @@ public:
DECLARE_READ64_MEMBER(device2_r);
DECLARE_READ64_MEMBER(cpu_r);
DECLARE_DRIVER_INIT(m2);
+ virtual void video_start();
};
-static VIDEO_START( m2 )
+void konamim2_state::video_start()
{
}
@@ -1188,7 +1189,6 @@ static MACHINE_CONFIG_START( m2, konamim2_state )
MCFG_PALETTE_LENGTH(32768)
MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
- MCFG_VIDEO_START(m2)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/kontest.c b/src/mame/drivers/kontest.c
index 342461e0b51..dee02247e3e 100644
--- a/src/mame/drivers/kontest.c
+++ b/src/mame/drivers/kontest.c
@@ -52,6 +52,7 @@ protected:
virtual void machine_reset();
virtual void video_start();
+ virtual void palette_init();
};
@@ -61,9 +62,9 @@ protected:
***************************************************************************/
-static PALETTE_INIT( kontest )
+void kontest_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int bit0, bit1, bit2 , r, g, b;
int i;
@@ -82,7 +83,7 @@ static PALETTE_INIT( kontest )
bit2 = (color_prom[i] >> 2) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -273,7 +274,6 @@ static MACHINE_CONFIG_START( kontest, kontest_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_PALETTE_INIT(kontest)
MCFG_PALETTE_LENGTH(32)
/* sound hardware */
diff --git a/src/mame/drivers/kopunch.c b/src/mame/drivers/kopunch.c
index 1379d1ab848..80236f41a7e 100644
--- a/src/mame/drivers/kopunch.c
+++ b/src/mame/drivers/kopunch.c
@@ -169,20 +169,18 @@ static GFXDECODE_START( kopunch )
GFXDECODE_END
-static MACHINE_START( kopunch )
+void kopunch_state::machine_start()
{
- kopunch_state *state = machine.driver_data<kopunch_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_gfxbank));
+ save_item(NAME(m_gfxbank));
}
-static MACHINE_RESET( kopunch )
+void kopunch_state::machine_reset()
{
- kopunch_state *state = machine.driver_data<kopunch_state>();
- state->m_gfxbank = 0;
+ m_gfxbank = 0;
}
static MACHINE_CONFIG_START( kopunch, kopunch_state )
@@ -193,8 +191,6 @@ static MACHINE_CONFIG_START( kopunch, kopunch_state )
MCFG_CPU_IO_MAP(kopunch_io_map)
MCFG_CPU_VBLANK_INT("screen",kopunch_interrupt)
- MCFG_MACHINE_START(kopunch)
- MCFG_MACHINE_RESET(kopunch)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -207,8 +203,6 @@ static MACHINE_CONFIG_START( kopunch, kopunch_state )
MCFG_GFXDECODE(kopunch)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(kopunch)
- MCFG_VIDEO_START(kopunch)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ksayakyu.c b/src/mame/drivers/ksayakyu.c
index 2172bc647ca..9cbf278c570 100644
--- a/src/mame/drivers/ksayakyu.c
+++ b/src/mame/drivers/ksayakyu.c
@@ -247,25 +247,23 @@ static GFXDECODE_START( ksayakyu )
GFXDECODE_END
-static MACHINE_START( ksayakyu )
+void ksayakyu_state::machine_start()
{
- ksayakyu_state *state = machine.driver_data<ksayakyu_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000);
- state->save_item(NAME(state->m_sound_status));
- state->save_item(NAME(state->m_video_ctrl));
- state->save_item(NAME(state->m_flipscreen));
+ save_item(NAME(m_sound_status));
+ save_item(NAME(m_video_ctrl));
+ save_item(NAME(m_flipscreen));
}
-static MACHINE_RESET( ksayakyu )
+void ksayakyu_state::machine_reset()
{
- ksayakyu_state *state = machine.driver_data<ksayakyu_state>();
- state->m_sound_status = 0xff;
- state->m_video_ctrl = 0;
- state->m_flipscreen = 0;
+ m_sound_status = 0xff;
+ m_video_ctrl = 0;
+ m_flipscreen = 0;
}
static MACHINE_CONFIG_START( ksayakyu, ksayakyu_state )
@@ -281,8 +279,6 @@ static MACHINE_CONFIG_START( ksayakyu, ksayakyu_state )
MCFG_QUANTUM_TIME(attotime::from_hz(60000))
- MCFG_MACHINE_START(ksayakyu)
- MCFG_MACHINE_RESET(ksayakyu)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -293,10 +289,8 @@ static MACHINE_CONFIG_START( ksayakyu, ksayakyu_state )
MCFG_SCREEN_UPDATE_STATIC(ksayakyu)
MCFG_GFXDECODE(ksayakyu)
- MCFG_PALETTE_INIT(ksayakyu)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(ksayakyu)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ksys573.c b/src/mame/drivers/ksys573.c
index 41012f3fa36..a76409503f1 100644
--- a/src/mame/drivers/ksys573.c
+++ b/src/mame/drivers/ksys573.c
@@ -582,6 +582,7 @@ public:
DECLARE_DRIVER_INIT(ddrsolo);
DECLARE_DRIVER_INIT(ddrdigital);
DECLARE_DRIVER_INIT(konami573);
+ DECLARE_MACHINE_RESET(konami573);
};
INLINE void ATTR_PRINTF(3,4) verboselog( running_machine &machine, int n_level, const char *s_fmt, ... )
@@ -1402,19 +1403,18 @@ DRIVER_INIT_MEMBER(ksys573_state,konami573)
flash_init(machine());
}
-static MACHINE_RESET( konami573 )
+MACHINE_RESET_MEMBER(ksys573_state,konami573)
{
- ksys573_state *state = machine.driver_data<ksys573_state>();
- if( state->machine().device<device_secure_serial_flash>("install_eeprom") )
+ if( machine().device<device_secure_serial_flash>("install_eeprom") )
{
/* security cart */
- psx_sio_input( machine, 1, PSX_SIO_IN_DSR, PSX_SIO_IN_DSR );
+ psx_sio_input( machine(), 1, PSX_SIO_IN_DSR, PSX_SIO_IN_DSR );
}
- state->m_flash_bank = -1;
+ m_flash_bank = -1;
- update_mode(machine);
+ update_mode(machine());
}
static void spu_irq(device_t *device, UINT32 data)
@@ -3049,7 +3049,7 @@ static MACHINE_CONFIG_START( konami573, ksys573_state )
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psx_dma_read_delegate( FUNC( cdrom_dma_read ), (ksys573_state *) owner ) )
MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psx_dma_write_delegate( FUNC( cdrom_dma_write ), (ksys573_state *) owner ) )
- MCFG_MACHINE_RESET( konami573 )
+ MCFG_MACHINE_RESET_OVERRIDE(ksys573_state, konami573 )
// multiple cd's are handled by switching drives instead of discs.
MCFG_DEVICE_ADD("cdrom0", CR589, 0)
diff --git a/src/mame/drivers/kungfur.c b/src/mame/drivers/kungfur.c
index c0293c52d5a..647911a1598 100644
--- a/src/mame/drivers/kungfur.c
+++ b/src/mame/drivers/kungfur.c
@@ -81,6 +81,8 @@ public:
DECLARE_WRITE8_MEMBER(kungfur_control_w);
DECLARE_WRITE8_MEMBER(kungfur_adpcm1_w);
DECLARE_WRITE8_MEMBER(kungfur_adpcm2_w);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -294,22 +296,20 @@ static const msm5205_interface msm5205_config_2 =
MSM5205_S48_4B
};
-static MACHINE_START( kungfur )
+void kungfur_state::machine_start()
{
- kungfur_state *state = machine.driver_data<kungfur_state>();
- state->save_item(NAME(state->m_control));
- state->save_item(NAME(state->m_latch));
+ save_item(NAME(m_control));
+ save_item(NAME(m_latch));
- state->save_item(NAME(state->m_adpcm_pos));
- state->save_item(NAME(state->m_adpcm_data));
- state->save_item(NAME(state->m_adpcm_sel));
+ save_item(NAME(m_adpcm_pos));
+ save_item(NAME(m_adpcm_data));
+ save_item(NAME(m_adpcm_sel));
}
-static MACHINE_RESET( kungfur )
+void kungfur_state::machine_reset()
{
- kungfur_state *state = machine.driver_data<kungfur_state>();
- state->m_control = 0;
+ m_control = 0;
}
static MACHINE_CONFIG_START( kungfur, kungfur_state )
@@ -322,8 +322,6 @@ static MACHINE_CONFIG_START( kungfur, kungfur_state )
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf )
MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf )
- MCFG_MACHINE_START(kungfur)
- MCFG_MACHINE_RESET(kungfur)
/* no video! */
diff --git a/src/mame/drivers/kyugo.c b/src/mame/drivers/kyugo.c
index 09b15102794..406a0c3e7b3 100644
--- a/src/mame/drivers/kyugo.c
+++ b/src/mame/drivers/kyugo.c
@@ -494,35 +494,33 @@ static const ay8910_interface ay8910_config =
*
*************************************/
-static MACHINE_START( kyugo )
+void kyugo_state::machine_start()
{
- kyugo_state *state = machine.driver_data<kyugo_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_subcpu = machine().device<cpu_device>("sub");
- state->save_item(NAME(state->m_scroll_x_lo));
- state->save_item(NAME(state->m_scroll_x_hi));
- state->save_item(NAME(state->m_scroll_y));
- state->save_item(NAME(state->m_bgpalbank));
- state->save_item(NAME(state->m_fgcolor));
- state->save_item(NAME(state->m_flipscreen));
+ save_item(NAME(m_scroll_x_lo));
+ save_item(NAME(m_scroll_x_hi));
+ save_item(NAME(m_scroll_y));
+ save_item(NAME(m_bgpalbank));
+ save_item(NAME(m_fgcolor));
+ save_item(NAME(m_flipscreen));
}
-static MACHINE_RESET( kyugo )
+void kyugo_state::machine_reset()
{
- kyugo_state *state = machine.driver_data<kyugo_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
// must start with interrupts and sub CPU disabled
- state->m_nmi_mask = 0;
- state->kyugo_sub_cpu_control_w(*space, 0, 0);
-
- state->m_scroll_x_lo = 0;
- state->m_scroll_x_hi = 0;
- state->m_scroll_y = 0;
- state->m_bgpalbank = 0;
- state->m_fgcolor = 0;
- state->m_flipscreen = 0;
+ m_nmi_mask = 0;
+ kyugo_sub_cpu_control_w(*space, 0, 0);
+
+ m_scroll_x_lo = 0;
+ m_scroll_x_hi = 0;
+ m_scroll_y = 0;
+ m_bgpalbank = 0;
+ m_fgcolor = 0;
+ m_flipscreen = 0;
}
static INTERRUPT_GEN( vblank_irq )
@@ -549,8 +547,6 @@ static MACHINE_CONFIG_START( gyrodine, kyugo_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(kyugo)
- MCFG_MACHINE_RESET(kyugo)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -564,7 +560,6 @@ static MACHINE_CONFIG_START( gyrodine, kyugo_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(kyugo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/labyrunr.c b/src/mame/drivers/labyrunr.c
index c190d59bfe8..4aaa94c4d1d 100644
--- a/src/mame/drivers/labyrunr.c
+++ b/src/mame/drivers/labyrunr.c
@@ -181,14 +181,13 @@ static const ym2203_interface ym2203_interface_2 =
-static MACHINE_START( labyrunr )
+void labyrunr_state::machine_start()
{
- labyrunr_state *state = machine.driver_data<labyrunr_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000);
- state->m_k007121 = machine.device("k007121");
+ m_k007121 = machine().device("k007121");
}
static MACHINE_CONFIG_START( labyrunr, labyrunr_state )
@@ -199,7 +198,6 @@ static MACHINE_CONFIG_START( labyrunr, labyrunr_state )
MCFG_CPU_VBLANK_INT("screen", labyrunr_vblank_interrupt)
MCFG_CPU_PERIODIC_INT(labyrunr_timer_interrupt, 4*60)
- MCFG_MACHINE_START(labyrunr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -212,8 +210,6 @@ static MACHINE_CONFIG_START( labyrunr, labyrunr_state )
MCFG_GFXDECODE(labyrunr)
MCFG_PALETTE_LENGTH(2*8*16*16)
- MCFG_PALETTE_INIT(labyrunr)
- MCFG_VIDEO_START(labyrunr)
MCFG_K007121_ADD("k007121")
MCFG_K051733_ADD("k051733")
diff --git a/src/mame/drivers/ladybug.c b/src/mame/drivers/ladybug.c
index d09ff30b9d1..7df6b10b018 100644
--- a/src/mame/drivers/ladybug.c
+++ b/src/mame/drivers/ladybug.c
@@ -726,55 +726,52 @@ static const sn76496_config psg_intf =
};
-static MACHINE_START( ladybug )
+MACHINE_START_MEMBER(ladybug_state,ladybug)
{
- ladybug_state *state = machine.driver_data<ladybug_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
}
-static MACHINE_START( sraider )
+MACHINE_START_MEMBER(ladybug_state,sraider)
{
- ladybug_state *state = machine.driver_data<ladybug_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_grid_color));
- state->save_item(NAME(state->m_sound_low));
- state->save_item(NAME(state->m_sound_high));
- state->save_item(NAME(state->m_sraider_0x30));
- state->save_item(NAME(state->m_sraider_0x38));
- state->save_item(NAME(state->m_weird_value));
+ save_item(NAME(m_grid_color));
+ save_item(NAME(m_sound_low));
+ save_item(NAME(m_sound_high));
+ save_item(NAME(m_sraider_0x30));
+ save_item(NAME(m_sraider_0x38));
+ save_item(NAME(m_weird_value));
/* for stars */
- state->save_item(NAME(state->m_star_speed));
- state->save_item(NAME(state->m_stars_enable));
- state->save_item(NAME(state->m_stars_speed));
- state->save_item(NAME(state->m_stars_state));
- state->save_item(NAME(state->m_stars_offset));
- state->save_item(NAME(state->m_stars_count));
+ save_item(NAME(m_star_speed));
+ save_item(NAME(m_stars_enable));
+ save_item(NAME(m_stars_speed));
+ save_item(NAME(m_stars_state));
+ save_item(NAME(m_stars_offset));
+ save_item(NAME(m_stars_count));
}
-static MACHINE_RESET( sraider )
+MACHINE_RESET_MEMBER(ladybug_state,sraider)
{
- ladybug_state *state = machine.driver_data<ladybug_state>();
int i;
- state->m_grid_color = 0;
- state->m_sound_low = 0;
- state->m_sound_high = 0;
- state->m_sraider_0x30 = 0;
- state->m_sraider_0x38 = 0;
+ m_grid_color = 0;
+ m_sound_low = 0;
+ m_sound_high = 0;
+ m_sraider_0x30 = 0;
+ m_sraider_0x38 = 0;
/* for stars */
- state->m_star_speed = 0;
- state->m_stars_enable = 0;
- state->m_stars_speed = 0;
- state->m_stars_state = 0;
- state->m_stars_offset = 0;
- state->m_stars_count = 0;
+ m_star_speed = 0;
+ m_stars_enable = 0;
+ m_stars_speed = 0;
+ m_stars_state = 0;
+ m_stars_offset = 0;
+ m_stars_count = 0;
for (i = 0; i < 8; i++)
- state->m_weird_value[i] = 0;
+ m_weird_value[i] = 0;
}
static MACHINE_CONFIG_START( ladybug, ladybug_state )
@@ -783,7 +780,7 @@ static MACHINE_CONFIG_START( ladybug, ladybug_state )
MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz */
MCFG_CPU_PROGRAM_MAP(ladybug_map)
- MCFG_MACHINE_START(ladybug)
+ MCFG_MACHINE_START_OVERRIDE(ladybug_state,ladybug)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -796,8 +793,8 @@ static MACHINE_CONFIG_START( ladybug, ladybug_state )
MCFG_GFXDECODE(ladybug)
MCFG_PALETTE_LENGTH(4*8+4*16)
- MCFG_PALETTE_INIT(ladybug)
- MCFG_VIDEO_START(ladybug)
+ MCFG_PALETTE_INIT_OVERRIDE(ladybug_state,ladybug)
+ MCFG_VIDEO_START_OVERRIDE(ladybug_state,ladybug)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -824,8 +821,8 @@ static MACHINE_CONFIG_START( sraider, ladybug_state )
MCFG_CPU_IO_MAP(sraider_cpu2_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(sraider)
- MCFG_MACHINE_RESET(sraider)
+ MCFG_MACHINE_START_OVERRIDE(ladybug_state,sraider)
+ MCFG_MACHINE_RESET_OVERRIDE(ladybug_state,sraider)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -839,8 +836,8 @@ static MACHINE_CONFIG_START( sraider, ladybug_state )
MCFG_GFXDECODE(sraider)
MCFG_PALETTE_LENGTH(4*8+4*16+32+2)
- MCFG_PALETTE_INIT(sraider)
- MCFG_VIDEO_START(sraider)
+ MCFG_PALETTE_INIT_OVERRIDE(ladybug_state,sraider)
+ MCFG_VIDEO_START_OVERRIDE(ladybug_state,sraider)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ladyfrog.c b/src/mame/drivers/ladyfrog.c
index 14cbaa701c1..cb0fdfb8b53 100644
--- a/src/mame/drivers/ladyfrog.c
+++ b/src/mame/drivers/ladyfrog.c
@@ -276,30 +276,28 @@ static GFXDECODE_START( ladyfrog )
GFXDECODE_END
-static MACHINE_START( ladyfrog )
+void ladyfrog_state::machine_start()
{
- ladyfrog_state *state = machine.driver_data<ladyfrog_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_tilebank));
- state->save_item(NAME(state->m_palette_bank));
- state->save_item(NAME(state->m_sound_nmi_enable));
- state->save_item(NAME(state->m_pending_nmi));
- state->save_item(NAME(state->m_snd_flag));
- state->save_item(NAME(state->m_snd_data));
+ save_item(NAME(m_tilebank));
+ save_item(NAME(m_palette_bank));
+ save_item(NAME(m_sound_nmi_enable));
+ save_item(NAME(m_pending_nmi));
+ save_item(NAME(m_snd_flag));
+ save_item(NAME(m_snd_data));
}
-static MACHINE_RESET( ladyfrog )
+void ladyfrog_state::machine_reset()
{
- ladyfrog_state *state = machine.driver_data<ladyfrog_state>();
- state->m_tilebank = 0;
- state->m_palette_bank = 0;
- state->m_sound_nmi_enable = 0;
- state->m_pending_nmi = 0;
- state->m_snd_flag = 0;
- state->m_snd_data = 0;
+ m_tilebank = 0;
+ m_palette_bank = 0;
+ m_sound_nmi_enable = 0;
+ m_pending_nmi = 0;
+ m_snd_flag = 0;
+ m_snd_data = 0;
}
static MACHINE_CONFIG_START( ladyfrog, ladyfrog_state )
@@ -313,8 +311,6 @@ static MACHINE_CONFIG_START( ladyfrog, ladyfrog_state )
MCFG_CPU_PROGRAM_MAP(ladyfrog_sound_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,2*60)
- MCFG_MACHINE_START(ladyfrog)
- MCFG_MACHINE_RESET(ladyfrog)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
@@ -329,7 +325,6 @@ static MACHINE_CONFIG_START( ladyfrog, ladyfrog_state )
MCFG_GFXDECODE(ladyfrog)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(ladyfrog)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -354,7 +349,7 @@ static MACHINE_CONFIG_START( ladyfrog, ladyfrog_state )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( toucheme, ladyfrog )
- MCFG_VIDEO_START(toucheme)
+ MCFG_VIDEO_START_OVERRIDE(ladyfrog_state,toucheme)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/laserbas.c b/src/mame/drivers/laserbas.c
index 9c6fc819ec2..8baf285bcb4 100644
--- a/src/mame/drivers/laserbas.c
+++ b/src/mame/drivers/laserbas.c
@@ -56,15 +56,17 @@ public:
DECLARE_WRITE8_MEMBER(vrambank_w);
DECLARE_READ8_MEMBER(protram_r);
DECLARE_WRITE8_MEMBER(protram_w);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
-static VIDEO_START(laserbas)
+void laserbas_state::video_start()
{
- laserbas_state *state = machine.driver_data<laserbas_state>();
- state->save_item(NAME(state->m_vram1));
- state->save_item(NAME(state->m_vram2));
+ save_item(NAME(m_vram1));
+ save_item(NAME(m_vram2));
}
static SCREEN_UPDATE_IND16(laserbas)
@@ -229,20 +231,18 @@ static INPUT_PORTS_START( laserbas )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
-static MACHINE_START( laserbas )
+void laserbas_state::machine_start()
{
- laserbas_state *state = machine.driver_data<laserbas_state>();
- state->save_item(NAME(state->m_vrambank));
- state->save_item(NAME(state->m_count));
+ save_item(NAME(m_vrambank));
+ save_item(NAME(m_count));
}
-static MACHINE_RESET( laserbas )
+void laserbas_state::machine_reset()
{
- laserbas_state *state = machine.driver_data<laserbas_state>();
- state->m_vrambank = 0;
- state->m_count = 0;
+ m_vrambank = 0;
+ m_count = 0;
}
static const mc6845_interface mc6845_intf =
@@ -313,8 +313,6 @@ static MACHINE_CONFIG_START( laserbas, laserbas_state )
MCFG_PIT8253_ADD("pit0", laserbas_pit8253_intf_0)
MCFG_PIT8253_ADD("pit1", laserbas_pit8253_intf_1)
- MCFG_MACHINE_START(laserbas)
- MCFG_MACHINE_RESET(laserbas)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -326,7 +324,6 @@ static MACHINE_CONFIG_START( laserbas, laserbas_state )
MCFG_MC6845_ADD("crtc", H46505, 3000000/4, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */
MCFG_PALETTE_LENGTH(32)
- MCFG_VIDEO_START(laserbas)
MACHINE_CONFIG_END
/*
diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c
index f609b29b637..8fa0333d8cc 100644
--- a/src/mame/drivers/laserbat.c
+++ b/src/mame/drivers/laserbat.c
@@ -485,14 +485,13 @@ TILE_GET_INFO_MEMBER(laserbat_state::get_tile_info)
SET_TILE_INFO_MEMBER(0, m_videoram[tile_index], m_colorram[tile_index] & 0x7f, 0);
}
-static VIDEO_START( laserbat )
+void laserbat_state::video_start()
{
- laserbat_state *state = machine.driver_data<laserbat_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(laserbat_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(laserbat_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->save_item(NAME(state->m_videoram));
- state->save_item(NAME(state->m_colorram));
+ save_item(NAME(m_videoram));
+ save_item(NAME(m_colorram));
}
static SCREEN_UPDATE_IND16( laserbat )
@@ -686,66 +685,64 @@ static const s2636_interface s2636_3_config =
NULL
};
-static MACHINE_START( laserbat )
+void laserbat_state::machine_start()
{
- laserbat_state *state = machine.driver_data<laserbat_state>();
-
- state->m_s2636_1 = machine.device("s2636_1");
- state->m_s2636_2 = machine.device("s2636_2");
- state->m_s2636_3 = machine.device("s2636_3");
- state->m_pia = machine.device<pia6821_device>("pia");
- state->m_sn = machine.device("snsnd");
- state->m_tms1 = machine.device("tms1");
- state->m_tms2 = machine.device("tms2");
- state->m_ay1 = machine.device("ay1");
- state->m_ay2 = machine.device("ay2");
-
- state->save_item(NAME(state->m_video_page));
- state->save_item(NAME(state->m_input_mux));
- state->save_item(NAME(state->m_active_8910));
- state->save_item(NAME(state->m_port0a));
- state->save_item(NAME(state->m_last_port0b));
- state->save_item(NAME(state->m_cb1_toggle));
- state->save_item(NAME(state->m_sprite_x));
- state->save_item(NAME(state->m_sprite_y));
- state->save_item(NAME(state->m_sprite_code));
- state->save_item(NAME(state->m_sprite_color));
- state->save_item(NAME(state->m_sprite_enable));
- state->save_item(NAME(state->m_csound1));
- state->save_item(NAME(state->m_ksound1));
- state->save_item(NAME(state->m_ksound2));
- state->save_item(NAME(state->m_ksound3));
- state->save_item(NAME(state->m_degr));
- state->save_item(NAME(state->m_filt));
- state->save_item(NAME(state->m_a));
- state->save_item(NAME(state->m_us));
- state->save_item(NAME(state->m_bit14));
+
+ m_s2636_1 = machine().device("s2636_1");
+ m_s2636_2 = machine().device("s2636_2");
+ m_s2636_3 = machine().device("s2636_3");
+ m_pia = machine().device<pia6821_device>("pia");
+ m_sn = machine().device("snsnd");
+ m_tms1 = machine().device("tms1");
+ m_tms2 = machine().device("tms2");
+ m_ay1 = machine().device("ay1");
+ m_ay2 = machine().device("ay2");
+
+ save_item(NAME(m_video_page));
+ save_item(NAME(m_input_mux));
+ save_item(NAME(m_active_8910));
+ save_item(NAME(m_port0a));
+ save_item(NAME(m_last_port0b));
+ save_item(NAME(m_cb1_toggle));
+ save_item(NAME(m_sprite_x));
+ save_item(NAME(m_sprite_y));
+ save_item(NAME(m_sprite_code));
+ save_item(NAME(m_sprite_color));
+ save_item(NAME(m_sprite_enable));
+ save_item(NAME(m_csound1));
+ save_item(NAME(m_ksound1));
+ save_item(NAME(m_ksound2));
+ save_item(NAME(m_ksound3));
+ save_item(NAME(m_degr));
+ save_item(NAME(m_filt));
+ save_item(NAME(m_a));
+ save_item(NAME(m_us));
+ save_item(NAME(m_bit14));
}
-static MACHINE_RESET( laserbat )
+void laserbat_state::machine_reset()
{
- laserbat_state *state = machine.driver_data<laserbat_state>();
-
- state->m_video_page = 0;
- state->m_input_mux = 0;
- state->m_active_8910 = 0;
- state->m_port0a = 0;
- state->m_last_port0b = 0;
- state->m_cb1_toggle = 0;
- state->m_sprite_x = 0;
- state->m_sprite_y = 0;
- state->m_sprite_code = 0;
- state->m_sprite_color = 0;
- state->m_sprite_enable = 0;
- state->m_csound1 = 0;
- state->m_ksound1 = 0;
- state->m_ksound2 = 0;
- state->m_ksound3 = 0;
- state->m_degr = 0;
- state->m_filt = 0;
- state->m_a = 0;
- state->m_us = 0;
- state->m_bit14 = 0;
+
+ m_video_page = 0;
+ m_input_mux = 0;
+ m_active_8910 = 0;
+ m_port0a = 0;
+ m_last_port0b = 0;
+ m_cb1_toggle = 0;
+ m_sprite_x = 0;
+ m_sprite_y = 0;
+ m_sprite_code = 0;
+ m_sprite_color = 0;
+ m_sprite_enable = 0;
+ m_csound1 = 0;
+ m_ksound1 = 0;
+ m_ksound2 = 0;
+ m_ksound3 = 0;
+ m_degr = 0;
+ m_filt = 0;
+ m_a = 0;
+ m_us = 0;
+ m_bit14 = 0;
}
static MACHINE_CONFIG_START( laserbat, laserbat_state )
@@ -756,8 +753,6 @@ static MACHINE_CONFIG_START( laserbat, laserbat_state )
MCFG_CPU_IO_MAP(laserbat_io_map)
MCFG_CPU_VBLANK_INT("screen", laserbat_interrupt)
- MCFG_MACHINE_START(laserbat)
- MCFG_MACHINE_RESET(laserbat)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -774,7 +769,6 @@ static MACHINE_CONFIG_START( laserbat, laserbat_state )
MCFG_S2636_ADD("s2636_2", s2636_2_config)
MCFG_S2636_ADD("s2636_3", s2636_3_config)
- MCFG_VIDEO_START(laserbat)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -803,8 +797,6 @@ static MACHINE_CONFIG_START( catnmous, laserbat_state )
MCFG_PIA6821_ADD("pia", pia_intf)
- MCFG_MACHINE_START(laserbat)
- MCFG_MACHINE_RESET(laserbat)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -821,7 +813,6 @@ static MACHINE_CONFIG_START( catnmous, laserbat_state )
MCFG_S2636_ADD("s2636_2", s2636_2_config)
MCFG_S2636_ADD("s2636_3", s2636_3_config)
- MCFG_VIDEO_START(laserbat)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lasso.c b/src/mame/drivers/lasso.c
index 834a7787c98..cec0848b25c 100644
--- a/src/mame/drivers/lasso.c
+++ b/src/mame/drivers/lasso.c
@@ -475,39 +475,35 @@ static const sn76496_config psg_intf =
};
-static MACHINE_START( lasso )
+void lasso_state::machine_start()
{
- lasso_state *state = machine.driver_data<lasso_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_gfxbank));
+ save_item(NAME(m_gfxbank));
}
-static MACHINE_START( wwjgtin )
+MACHINE_START_MEMBER(lasso_state,wwjgtin)
{
- lasso_state *state = machine.driver_data<lasso_state>();
- MACHINE_START_CALL(lasso);
+ lasso_state::machine_start();
- state->save_item(NAME(state->m_track_enable));
+ save_item(NAME(m_track_enable));
}
-static MACHINE_RESET( lasso )
+void lasso_state::machine_reset()
{
- lasso_state *state = machine.driver_data<lasso_state>();
- state->m_gfxbank = 0;
+ m_gfxbank = 0;
}
-static MACHINE_RESET( wwjgtin )
+MACHINE_RESET_MEMBER(lasso_state,wwjgtin)
{
- lasso_state *state = machine.driver_data<lasso_state>();
- MACHINE_RESET_CALL(lasso);
+ lasso_state::machine_reset();
- state->m_track_enable = 0;
+ m_track_enable = 0;
}
static MACHINE_CONFIG_START( base, lasso_state )
@@ -522,8 +518,6 @@ static MACHINE_CONFIG_START( base, lasso_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(lasso)
- MCFG_MACHINE_RESET(lasso)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -536,8 +530,6 @@ static MACHINE_CONFIG_START( base, lasso_state )
MCFG_GFXDECODE(lasso)
MCFG_PALETTE_LENGTH(0x40)
- MCFG_PALETTE_INIT(lasso)
- MCFG_VIDEO_START(lasso)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -582,8 +574,8 @@ static MACHINE_CONFIG_DERIVED( wwjgtin, base )
MCFG_CPU_MODIFY("audiocpu")
MCFG_CPU_PROGRAM_MAP(wwjgtin_audio_map)
- MCFG_MACHINE_START(wwjgtin)
- MCFG_MACHINE_RESET(wwjgtin)
+ MCFG_MACHINE_START_OVERRIDE(lasso_state,wwjgtin)
+ MCFG_MACHINE_RESET_OVERRIDE(lasso_state,wwjgtin)
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
@@ -592,8 +584,8 @@ static MACHINE_CONFIG_DERIVED( wwjgtin, base )
MCFG_GFXDECODE(wwjgtin) // Has 1 additional layer
MCFG_PALETTE_LENGTH(0x40 + 16*16)
- MCFG_PALETTE_INIT(wwjgtin)
- MCFG_VIDEO_START(wwjgtin)
+ MCFG_PALETTE_INIT_OVERRIDE(lasso_state,wwjgtin)
+ MCFG_VIDEO_START_OVERRIDE(lasso_state,wwjgtin)
/* sound hardware */
MCFG_DAC_ADD("dac")
@@ -615,7 +607,7 @@ static MACHINE_CONFIG_DERIVED( pinbo, base )
MCFG_GFXDECODE(pinbo)
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(pinbo)
+ MCFG_VIDEO_START_OVERRIDE(lasso_state,pinbo)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(chameleo)
diff --git a/src/mame/drivers/lastbank.c b/src/mame/drivers/lastbank.c
index c77cd1bc136..7588224d1c7 100644
--- a/src/mame/drivers/lastbank.c
+++ b/src/mame/drivers/lastbank.c
@@ -463,8 +463,8 @@ static MACHINE_CONFIG_START( lastbank, lastbank_state )
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- //MCFG_MACHINE_START(lastbank)
- //MCFG_MACHINE_RESET(lastbank)
+ //MCFG_MACHINE_START_OVERRIDE(lastbank_state,lastbank)
+ //MCFG_MACHINE_RESET_OVERRIDE(lastbank_state,lastbank)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -480,7 +480,7 @@ static MACHINE_CONFIG_START( lastbank, lastbank_state )
MCFG_GFXDECODE( lastbank )
MCFG_PALETTE_LENGTH(0x100)
-// MCFG_VIDEO_START(lastbank)
+// MCFG_VIDEO_START_OVERRIDE(lastbank_state,lastbank)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lastduel.c b/src/mame/drivers/lastduel.c
index 4e3b69e3bed..bd5d35aa1d2 100644
--- a/src/mame/drivers/lastduel.c
+++ b/src/mame/drivers/lastduel.c
@@ -469,32 +469,30 @@ static TIMER_DEVICE_CALLBACK( madgear_timer_cb )
state->m_maincpu->set_input_line(6, HOLD_LINE); /* Controls */
}
-static MACHINE_START( lastduel )
+MACHINE_START_MEMBER(lastduel_state,lastduel)
{
- lastduel_state *state = machine.driver_data<lastduel_state>();
- state->save_item(NAME(state->m_tilemap_priority));
- state->save_item(NAME(state->m_scroll));
+ save_item(NAME(m_tilemap_priority));
+ save_item(NAME(m_scroll));
}
-static MACHINE_START( madgear )
+MACHINE_START_MEMBER(lastduel_state,madgear)
{
- UINT8 *ROM = machine.root_device().memregion("audiocpu")->base();
+ UINT8 *ROM = machine().root_device().memregion("audiocpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000);
+ machine().root_device().membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000);
- MACHINE_START_CALL(lastduel);
+ MACHINE_START_CALL_MEMBER(lastduel);
}
-static MACHINE_RESET( lastduel )
+void lastduel_state::machine_reset()
{
- lastduel_state *state = machine.driver_data<lastduel_state>();
int i;
- state->m_tilemap_priority = 0;
+ m_tilemap_priority = 0;
for (i = 0; i < 8; i++)
- state->m_scroll[i] = 0;
+ m_scroll[i] = 0;
}
static MACHINE_CONFIG_START( lastduel, lastduel_state )
@@ -508,8 +506,7 @@ static MACHINE_CONFIG_START( lastduel, lastduel_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545) /* Accurate */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(lastduel)
- MCFG_MACHINE_RESET(lastduel)
+ MCFG_MACHINE_START_OVERRIDE(lastduel_state,lastduel)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -527,7 +524,7 @@ static MACHINE_CONFIG_START( lastduel, lastduel_state )
MCFG_GFXDECODE(lastduel)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(lastduel)
+ MCFG_VIDEO_START_OVERRIDE(lastduel_state,lastduel)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -552,8 +549,7 @@ static MACHINE_CONFIG_START( madgear, lastduel_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(madgear_sound_map)
- MCFG_MACHINE_START(madgear)
- MCFG_MACHINE_RESET(lastduel)
+ MCFG_MACHINE_START_OVERRIDE(lastduel_state,madgear)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -571,7 +567,7 @@ static MACHINE_CONFIG_START( madgear, lastduel_state )
MCFG_GFXDECODE(madgear)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(madgear)
+ MCFG_VIDEO_START_OVERRIDE(lastduel_state,madgear)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c
index f6796534180..f8551b30612 100644
--- a/src/mame/drivers/lastfght.c
+++ b/src/mame/drivers/lastfght.c
@@ -121,6 +121,9 @@ public:
DECLARE_READ16_MEMBER(lastfght_sound_r);
DECLARE_WRITE16_MEMBER(lastfght_sound_w);
DECLARE_DRIVER_INIT(lastfght);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -128,16 +131,15 @@ public:
Video Hardware
***************************************************************************/
-static VIDEO_START( lastfght )
+void lastfght_state::video_start()
{
- lastfght_state *state = machine.driver_data<lastfght_state>();
int i;
for (i = 0; i < 2; i++)
- machine.primary_screen->register_screen_bitmap(state->m_bitmap[i]);
+ machine().primary_screen->register_screen_bitmap(m_bitmap[i]);
- state->save_item(NAME(state->m_bitmap[0]));
- state->save_item(NAME(state->m_bitmap[1]));
- state->save_item(NAME(state->m_colorram));
+ save_item(NAME(m_bitmap[0]));
+ save_item(NAME(m_bitmap[1]));
+ save_item(NAME(m_colorram));
}
@@ -532,48 +534,46 @@ static INTERRUPT_GEN( unknown_interrupt )
state->m_maincpu->set_input_line(H8_METRO_TIMER_HACK, HOLD_LINE);
}
-static MACHINE_START( lastfght )
+void lastfght_state::machine_start()
{
- lastfght_state *state = machine.driver_data<lastfght_state>();
-
- state->save_item(NAME(state->m_clr_offset));
- state->save_item(NAME(state->m_dest));
- state->save_item(NAME(state->m_hi));
- state->save_item(NAME(state->m_sx));
- state->save_item(NAME(state->m_sx1));
- state->save_item(NAME(state->m_dsx));
- state->save_item(NAME(state->m_sy));
- state->save_item(NAME(state->m_sy1));
- state->save_item(NAME(state->m_dsy));
- state->save_item(NAME(state->m_sp));
- state->save_item(NAME(state->m_sr));
- state->save_item(NAME(state->m_x));
- state->save_item(NAME(state->m_y));
- state->save_item(NAME(state->m_w));
- state->save_item(NAME(state->m_h));
- state->save_item(NAME(state->m_c00006));
+
+ save_item(NAME(m_clr_offset));
+ save_item(NAME(m_dest));
+ save_item(NAME(m_hi));
+ save_item(NAME(m_sx));
+ save_item(NAME(m_sx1));
+ save_item(NAME(m_dsx));
+ save_item(NAME(m_sy));
+ save_item(NAME(m_sy1));
+ save_item(NAME(m_dsy));
+ save_item(NAME(m_sp));
+ save_item(NAME(m_sr));
+ save_item(NAME(m_x));
+ save_item(NAME(m_y));
+ save_item(NAME(m_w));
+ save_item(NAME(m_h));
+ save_item(NAME(m_c00006));
}
-static MACHINE_RESET( lastfght )
+void lastfght_state::machine_reset()
{
- lastfght_state *state = machine.driver_data<lastfght_state>();
-
- state->m_clr_offset = 0;
- state->m_dest = 0;
- state->m_hi = 0;
- state->m_sx = 0;
- state->m_sx1 = 0;
- state->m_dsx = 0;
- state->m_sy = 0;
- state->m_sy1 = 0;
- state->m_dsy = 0;
- state->m_sp = 0;
- state->m_sr = 0;
- state->m_x = 0;
- state->m_y = 0;
- state->m_w = 0;
- state->m_h = 0;
- state->m_c00006 = 0;
+
+ m_clr_offset = 0;
+ m_dest = 0;
+ m_hi = 0;
+ m_sx = 0;
+ m_sx1 = 0;
+ m_dsx = 0;
+ m_sy = 0;
+ m_sy1 = 0;
+ m_dsy = 0;
+ m_sp = 0;
+ m_sr = 0;
+ m_x = 0;
+ m_y = 0;
+ m_w = 0;
+ m_h = 0;
+ m_c00006 = 0;
}
static MACHINE_CONFIG_START( lastfght, lastfght_state )
@@ -586,8 +586,6 @@ static MACHINE_CONFIG_START( lastfght, lastfght_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_MACHINE_START(lastfght)
- MCFG_MACHINE_RESET(lastfght)
/* video hardware */
MCFG_PALETTE_LENGTH( 256 )
@@ -598,7 +596,6 @@ static MACHINE_CONFIG_START( lastfght, lastfght_state )
MCFG_SCREEN_REFRESH_RATE( 60 )
MCFG_SCREEN_UPDATE_STATIC( lastfght )
- MCFG_VIDEO_START( lastfght )
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/lazercmd.c b/src/mame/drivers/lazercmd.c
index 4969c79c19c..7801f863e13 100644
--- a/src/mame/drivers/lazercmd.c
+++ b/src/mame/drivers/lazercmd.c
@@ -590,40 +590,38 @@ static GFXDECODE_START( lazercmd )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 2 )
GFXDECODE_END
-static PALETTE_INIT( lazercmd )
+void lazercmd_state::palette_init()
{
- palette_set_color(machine, 0, MAKE_RGB(0xb0, 0xb0, 0xb0)); /* white */
- palette_set_color(machine, 1, MAKE_RGB(0x00, 0x00, 0x00)); /* black */
+ palette_set_color(machine(), 0, MAKE_RGB(0xb0, 0xb0, 0xb0)); /* white */
+ palette_set_color(machine(), 1, MAKE_RGB(0x00, 0x00, 0x00)); /* black */
- palette_set_color(machine, 2, MAKE_RGB(0x00, 0x00, 0x00)); /* black */
- palette_set_color(machine, 3, MAKE_RGB(0xb0, 0xb0, 0xb0)); /* white */
+ palette_set_color(machine(), 2, MAKE_RGB(0x00, 0x00, 0x00)); /* black */
+ palette_set_color(machine(), 3, MAKE_RGB(0xb0, 0xb0, 0xb0)); /* white */
- palette_set_color(machine, 4, MAKE_RGB(0xff, 0xff, 0xff)); /* bright white */
+ palette_set_color(machine(), 4, MAKE_RGB(0xff, 0xff, 0xff)); /* bright white */
}
-static MACHINE_START( lazercmd )
+void lazercmd_state::machine_start()
{
- lazercmd_state *state = machine.driver_data<lazercmd_state>();
- state->m_dac = machine.device<dac_device>("dac");
+ m_dac = machine().device<dac_device>("dac");
- state->save_item(NAME(state->m_marker_x));
- state->save_item(NAME(state->m_marker_y));
- state->save_item(NAME(state->m_timer_count));
- state->save_item(NAME(state->m_sense_state));
- state->save_item(NAME(state->m_dac_data));
+ save_item(NAME(m_marker_x));
+ save_item(NAME(m_marker_y));
+ save_item(NAME(m_timer_count));
+ save_item(NAME(m_sense_state));
+ save_item(NAME(m_dac_data));
}
-static MACHINE_RESET( lazercmd )
+void lazercmd_state::machine_reset()
{
- lazercmd_state *state = machine.driver_data<lazercmd_state>();
- state->m_marker_x = 0;
- state->m_marker_y = 0;
- state->m_timer_count = 0;
- state->m_sense_state = 0;
- state->m_dac_data = 0;
+ m_marker_x = 0;
+ m_marker_y = 0;
+ m_timer_count = 0;
+ m_sense_state = 0;
+ m_dac_data = 0;
}
@@ -639,8 +637,6 @@ static MACHINE_CONFIG_START( lazercmd, lazercmd_state )
MCFG_CPU_IO_MAP(lazercmd_portmap)
MCFG_TIMER_ADD_SCANLINE("scantimer", lazercmd_timer, "screen", 0, 1) /* 7680 Hz */
- MCFG_MACHINE_START(lazercmd)
- MCFG_MACHINE_RESET(lazercmd)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -654,7 +650,6 @@ static MACHINE_CONFIG_START( lazercmd, lazercmd_state )
MCFG_GFXDECODE(lazercmd)
MCFG_PALETTE_LENGTH(5)
- MCFG_PALETTE_INIT(lazercmd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -676,8 +671,6 @@ static MACHINE_CONFIG_START( medlanes, lazercmd_state )
MCFG_CPU_IO_MAP(lazercmd_portmap)
MCFG_TIMER_ADD_SCANLINE("scantimer", lazercmd_timer, "screen", 0, 1) /* 7680 Hz */
- MCFG_MACHINE_START(lazercmd)
- MCFG_MACHINE_RESET(lazercmd)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -691,7 +684,6 @@ static MACHINE_CONFIG_START( medlanes, lazercmd_state )
MCFG_GFXDECODE(lazercmd)
MCFG_PALETTE_LENGTH(5)
- MCFG_PALETTE_INIT(lazercmd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -713,8 +705,6 @@ static MACHINE_CONFIG_START( bbonk, lazercmd_state )
MCFG_CPU_IO_MAP(lazercmd_portmap)
MCFG_TIMER_ADD_SCANLINE("scantimer", bbonk_timer, "screen", 0, 1) /* 7680 Hz */
- MCFG_MACHINE_START(lazercmd)
- MCFG_MACHINE_RESET(lazercmd)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -728,7 +718,6 @@ static MACHINE_CONFIG_START( bbonk, lazercmd_state )
MCFG_GFXDECODE(lazercmd)
MCFG_PALETTE_LENGTH(5)
- MCFG_PALETTE_INIT(lazercmd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c
index 8813f499076..7da90353694 100644
--- a/src/mame/drivers/legionna.c
+++ b/src/mame/drivers/legionna.c
@@ -1070,7 +1070,7 @@ static MACHINE_CONFIG_START( legionna, legionna_state )
MCFG_PALETTE_LENGTH(128*16)
MCFG_PALETTE_INIT(all_black)
- MCFG_VIDEO_START(legionna)
+ MCFG_VIDEO_START_OVERRIDE(legionna_state,legionna)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4,1320000)
@@ -1100,7 +1100,7 @@ static MACHINE_CONFIG_START( heatbrl, legionna_state )
MCFG_PALETTE_LENGTH(128*16)
MCFG_PALETTE_INIT(all_black)
- MCFG_VIDEO_START(legionna)
+ MCFG_VIDEO_START_OVERRIDE(legionna_state,legionna)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4,1320000)
@@ -1129,7 +1129,7 @@ static MACHINE_CONFIG_START( godzilla, legionna_state )
MCFG_PALETTE_LENGTH(128*16)
MCFG_PALETTE_INIT(all_black)
- MCFG_VIDEO_START(godzilla)
+ MCFG_VIDEO_START_OVERRIDE(legionna_state,godzilla)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM2151_INTERFACE(14318180/4,1320000)
@@ -1158,7 +1158,7 @@ static MACHINE_CONFIG_START( denjinmk, legionna_state )
MCFG_PALETTE_LENGTH(128*16)
MCFG_PALETTE_INIT(all_black)
- MCFG_VIDEO_START(denjinmk)
+ MCFG_VIDEO_START_OVERRIDE(legionna_state,denjinmk)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM2151_INTERFACE(14318180/4,1320000)
@@ -1187,7 +1187,7 @@ static MACHINE_CONFIG_START( grainbow, legionna_state )
MCFG_PALETTE_LENGTH(128*16)
MCFG_PALETTE_INIT(all_black)
- MCFG_VIDEO_START(grainbow)
+ MCFG_VIDEO_START_OVERRIDE(legionna_state,grainbow)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM2151_INTERFACE(14318180/4,1320000)
@@ -1217,7 +1217,7 @@ static MACHINE_CONFIG_START( cupsoc, legionna_state )
MCFG_PALETTE_LENGTH(128*16)
MCFG_PALETTE_INIT(all_black)
- MCFG_VIDEO_START(cupsoc)
+ MCFG_VIDEO_START_OVERRIDE(legionna_state,cupsoc)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4,1320000)
@@ -1255,7 +1255,7 @@ static MACHINE_CONFIG_START( cupsocbl, legionna_state )
MCFG_PALETTE_LENGTH(128*16)
MCFG_PALETTE_INIT(all_black)
- MCFG_VIDEO_START(cupsoc)
+ MCFG_VIDEO_START_OVERRIDE(legionna_state,cupsoc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/leland.c b/src/mame/drivers/leland.c
index bc7d02d5664..d800a2e25ea 100644
--- a/src/mame/drivers/leland.c
+++ b/src/mame/drivers/leland.c
@@ -743,8 +743,8 @@ static MACHINE_CONFIG_START( leland, leland_state )
MCFG_CPU_PROGRAM_MAP(slave_small_map_program)
MCFG_CPU_IO_MAP(slave_map_io)
- MCFG_MACHINE_START(leland)
- MCFG_MACHINE_RESET(leland)
+ MCFG_MACHINE_START_OVERRIDE(leland_state,leland)
+ MCFG_MACHINE_RESET_OVERRIDE(leland_state,leland)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
MCFG_NVRAM_ADD_0FILL("battery")
diff --git a/src/mame/drivers/lemmings.c b/src/mame/drivers/lemmings.c
index 8bc29f5c61b..7e232c81851 100644
--- a/src/mame/drivers/lemmings.c
+++ b/src/mame/drivers/lemmings.c
@@ -252,11 +252,10 @@ static const ym2151_interface ym2151_config =
DEVCB_LINE(sound_irq)
};
-static MACHINE_START( lemmings )
+void lemmings_state::machine_start()
{
- lemmings_state *state = machine.driver_data<lemmings_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
}
static MACHINE_CONFIG_START( lemmings, lemmings_state )
@@ -269,7 +268,6 @@ static MACHINE_CONFIG_START( lemmings, lemmings_state )
MCFG_CPU_ADD("audiocpu", M6809,32220000/8)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(lemmings)
/* video hardware */
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -286,7 +284,6 @@ static MACHINE_CONFIG_START( lemmings, lemmings_state )
MCFG_GFXDECODE(lemmings)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(lemmings)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 1);
diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c
index 9670c1257dc..c14489aa6a9 100644
--- a/src/mame/drivers/lethal.c
+++ b/src/mame/drivers/lethal.c
@@ -576,43 +576,41 @@ static const k054539_interface k054539_config =
sound_nmi
};
-static MACHINE_START( lethalen )
+void lethal_state::machine_start()
{
- lethal_state *state = machine.driver_data<lethal_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 0x20, &ROM[0x10000], 0x2000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 0x20, &ROM[0x10000], 0x2000);
+ membank("bank1")->set_entry(0);
- state->m_generic_paletteram_8.allocate(0x3800 + 0x02);
+ m_generic_paletteram_8.allocate(0x3800 + 0x02);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("soundcpu");
- state->m_k054539 = machine.device("k054539");
- state->m_k053244 = machine.device("k053244");
- state->m_k056832 = machine.device("k056832");
- state->m_k054000 = machine.device("k054000");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("soundcpu");
+ m_k054539 = machine().device("k054539");
+ m_k053244 = machine().device("k053244");
+ m_k056832 = machine().device("k056832");
+ m_k054000 = machine().device("k054000");
- state->save_item(NAME(state->m_cur_control2));
- state->save_item(NAME(state->m_sprite_colorbase));
- state->save_item(NAME(state->m_layer_colorbase));
+ save_item(NAME(m_cur_control2));
+ save_item(NAME(m_sprite_colorbase));
+ save_item(NAME(m_layer_colorbase));
}
-static MACHINE_RESET( lethalen )
+void lethal_state::machine_reset()
{
- lethal_state *state = machine.driver_data<lethal_state>();
- UINT8 *prgrom = (UINT8 *)state->memregion("maincpu")->base();
+ UINT8 *prgrom = (UINT8 *)memregion("maincpu")->base();
int i;
- state->membank("bank2")->set_base(&prgrom[0x48000]);
+ membank("bank2")->set_base(&prgrom[0x48000]);
/* force reset again to read proper reset vector */
- machine.device("maincpu")->reset();
+ machine().device("maincpu")->reset();
for (i = 0; i < 4; i++)
- state->m_layer_colorbase[i] = 0;
+ m_layer_colorbase[i] = 0;
- state->m_sprite_colorbase = 0;
- state->m_cur_control2 = 0;
+ m_sprite_colorbase = 0;
+ m_cur_control2 = 0;
}
static const k056832_interface lethalen_k056832_intf =
@@ -652,8 +650,6 @@ static MACHINE_CONFIG_START( lethalen, lethal_state )
MCFG_CPU_ADD("soundcpu", Z80, MAIN_CLOCK/4) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(le_sound)
- MCFG_MACHINE_START(lethalen)
- MCFG_MACHINE_RESET(lethalen)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -671,7 +667,6 @@ static MACHINE_CONFIG_START( lethalen, lethal_state )
MCFG_PALETTE_LENGTH(7168+1)
- MCFG_VIDEO_START(lethalen)
MCFG_K056832_ADD("k056832", lethalen_k056832_intf)
MCFG_K053244_ADD("k053244", lethalen_k05324x_intf)
diff --git a/src/mame/drivers/lethalj.c b/src/mame/drivers/lethalj.c
index 14d8d07a932..0beca879b38 100644
--- a/src/mame/drivers/lethalj.c
+++ b/src/mame/drivers/lethalj.c
@@ -605,7 +605,6 @@ static MACHINE_CONFIG_START( gameroom, lethalj_state )
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 701, 0, 512, 263, 0, 236)
MCFG_SCREEN_UPDATE_STATIC(tms340x0_ind16)
- MCFG_VIDEO_START(lethalj)
MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
MCFG_PALETTE_LENGTH(32768)
diff --git a/src/mame/drivers/lgp.c b/src/mame/drivers/lgp.c
index fccd49456f7..0038743c816 100644
--- a/src/mame/drivers/lgp.c
+++ b/src/mame/drivers/lgp.c
@@ -85,6 +85,7 @@ public:
DECLARE_READ8_MEMBER(ldp_read);
DECLARE_WRITE8_MEMBER(ldp_write);
DECLARE_DRIVER_INIT(lgp);
+ virtual void machine_start();
};
@@ -347,10 +348,9 @@ static INTERRUPT_GEN( vblank_callback_lgp )
}
-static MACHINE_START( lgp )
+void lgp_state::machine_start()
{
- lgp_state *state = machine.driver_data<lgp_state>();
- state->m_irq_timer = machine.scheduler().timer_alloc(FUNC(irq_stop));
+ m_irq_timer = machine().scheduler().timer_alloc(FUNC(irq_stop));
}
@@ -367,7 +367,6 @@ static MACHINE_CONFIG_START( lgp, lgp_state )
MCFG_CPU_PROGRAM_MAP(sound_program_map)
MCFG_CPU_IO_MAP(sound_io_map)
- MCFG_MACHINE_START(lgp)
MCFG_LASERDISC_LDV1000_ADD("laserdisc")
MCFG_LASERDISC_OVERLAY_STATIC(256, 256, lgp)
@@ -376,7 +375,7 @@ static MACHINE_CONFIG_START( lgp, lgp_state )
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
MCFG_PALETTE_LENGTH(256)
- /* MCFG_PALETTE_INIT(lgp) */
+ /* MCFG_PALETTE_INIT_OVERRIDE(lgp_state,lgp) */
MCFG_GFXDECODE(lgp)
diff --git a/src/mame/drivers/liberate.c b/src/mame/drivers/liberate.c
index 44ac422dde7..07230e1fffe 100644
--- a/src/mame/drivers/liberate.c
+++ b/src/mame/drivers/liberate.c
@@ -790,33 +790,31 @@ static INTERRUPT_GEN( prosport_interrupt )
*
*************************************/
-static MACHINE_START( liberate )
+MACHINE_START_MEMBER(liberate_state,liberate)
{
- liberate_state *state = machine.driver_data<liberate_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_background_disable));
- state->save_item(NAME(state->m_background_color));
- state->save_item(NAME(state->m_gfx_rom_readback));
- state->save_item(NAME(state->m_latch));
- state->save_item(NAME(state->m_bank));
+ save_item(NAME(m_background_disable));
+ save_item(NAME(m_background_color));
+ save_item(NAME(m_gfx_rom_readback));
+ save_item(NAME(m_latch));
+ save_item(NAME(m_bank));
- state->save_item(NAME(state->m_io_ram));
+ save_item(NAME(m_io_ram));
}
-static MACHINE_RESET( liberate )
+MACHINE_RESET_MEMBER(liberate_state,liberate)
{
- liberate_state *state = machine.driver_data<liberate_state>();
- memset(state->m_io_ram, 0, ARRAY_LENGTH(state->m_io_ram));
+ memset(m_io_ram, 0, ARRAY_LENGTH(m_io_ram));
- state->m_background_disable = 0;
- state->m_background_color = 0;
- state->m_gfx_rom_readback = 0;
- state->m_latch = 0;
- state->m_bank = 0;
+ m_background_disable = 0;
+ m_background_color = 0;
+ m_gfx_rom_readback = 0;
+ m_latch = 0;
+ m_bank = 0;
}
static MACHINE_CONFIG_START( liberate, liberate_state )
@@ -833,8 +831,8 @@ static MACHINE_CONFIG_START( liberate, liberate_state )
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
- MCFG_MACHINE_START(liberate)
- MCFG_MACHINE_RESET(liberate)
+ MCFG_MACHINE_START_OVERRIDE(liberate_state,liberate)
+ MCFG_MACHINE_RESET_OVERRIDE(liberate_state,liberate)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -846,9 +844,9 @@ static MACHINE_CONFIG_START( liberate, liberate_state )
MCFG_GFXDECODE(liberate)
MCFG_PALETTE_LENGTH(33)
- MCFG_PALETTE_INIT(liberate)
+ MCFG_PALETTE_INIT_OVERRIDE(liberate_state,liberate)
- MCFG_VIDEO_START(liberate)
+ MCFG_VIDEO_START_OVERRIDE(liberate_state,liberate)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -870,7 +868,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( boomrang, liberate )
- MCFG_VIDEO_START(boomrang)
+ MCFG_VIDEO_START_OVERRIDE(liberate_state,boomrang)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(boomrang)
MACHINE_CONFIG_END
@@ -895,7 +893,7 @@ static MACHINE_CONFIG_DERIVED( prosoccr, liberate )
MCFG_GFXDECODE(prosoccr)
- MCFG_VIDEO_START(prosoccr)
+ MCFG_VIDEO_START_OVERRIDE(liberate_state,prosoccr)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( prosport, liberate_state )
@@ -912,8 +910,8 @@ static MACHINE_CONFIG_START( prosport, liberate_state )
// MCFG_QUANTUM_TIME(attotime::from_hz(12000))
- MCFG_MACHINE_START(liberate)
- MCFG_MACHINE_RESET(liberate)
+ MCFG_MACHINE_START_OVERRIDE(liberate_state,liberate)
+ MCFG_MACHINE_RESET_OVERRIDE(liberate_state,liberate)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -926,7 +924,7 @@ static MACHINE_CONFIG_START( prosport, liberate_state )
MCFG_GFXDECODE(prosport)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(prosport)
+ MCFG_VIDEO_START_OVERRIDE(liberate_state,prosport)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/limenko.c b/src/mame/drivers/limenko.c
index 76dea33da95..b34c6ae5368 100644
--- a/src/mame/drivers/limenko.c
+++ b/src/mame/drivers/limenko.c
@@ -86,6 +86,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_md_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ virtual void video_start();
};
@@ -500,18 +501,17 @@ static void copy_sprites(running_machine &machine, bitmap_ind16 &bitmap, bitmap_
}
}
-static VIDEO_START( limenko )
+void limenko_state::video_start()
{
- limenko_state *state = machine.driver_data<limenko_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(limenko_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64);
- state->m_md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(limenko_state::get_md_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(limenko_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(limenko_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
+ m_md_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(limenko_state::get_md_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(limenko_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
- state->m_md_tilemap->set_transparent_pen(0);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_md_tilemap->set_transparent_pen(0);
+ m_fg_tilemap->set_transparent_pen(0);
- state->m_sprites_bitmap.allocate(384,240);
- state->m_sprites_bitmap_pri.allocate(384,240);
+ m_sprites_bitmap.allocate(384,240);
+ m_sprites_bitmap_pri.allocate(384,240);
}
static SCREEN_UPDATE_IND16( limenko )
@@ -767,7 +767,6 @@ static MACHINE_CONFIG_START( limenko, limenko_state )
MCFG_GFXDECODE(limenko)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(limenko)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -799,7 +798,6 @@ static MACHINE_CONFIG_START( spotty, limenko_state )
MCFG_GFXDECODE(limenko)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(limenko)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/littlerb.c b/src/mame/drivers/littlerb.c
index 2cae88c8da7..dd5c48afbfd 100644
--- a/src/mame/drivers/littlerb.c
+++ b/src/mame/drivers/littlerb.c
@@ -201,6 +201,7 @@ public:
littlerb_printf("littlerb_1800003c_w %04x\n", data);
// edfc / fffc alternating (display double buffering?)
}
+ virtual void video_start();
};
@@ -591,17 +592,16 @@ static TIMER_DEVICE_CALLBACK( littlerb_scanline )
}
}
-VIDEO_START( littlerb )
+void littlerb_state::video_start()
{
- littlerb_state *state = machine.driver_data<littlerb_state>();
-// machine.primary_screen->register_screen_bitmap(state->m_temp_bitmap_sprites_back);
-// machine.primary_screen->register_screen_bitmap(state->m_temp_bitmap_sprites);
+// machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites_back);
+// machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites);
- state->m_temp_bitmap_sprites_back = auto_bitmap_ind16_alloc(machine,512,512);
- state->m_temp_bitmap_sprites = auto_bitmap_ind16_alloc(machine,512,512);
+ m_temp_bitmap_sprites_back = auto_bitmap_ind16_alloc(machine(),512,512);
+ m_temp_bitmap_sprites = auto_bitmap_ind16_alloc(machine(),512,512);
- state->m_spritelist = (UINT16*)auto_alloc_array_clear(machine, UINT16, 0x20000);
+ m_spritelist = (UINT16*)auto_alloc_array_clear(machine(), UINT16, 0x20000);
}
@@ -836,14 +836,13 @@ static MACHINE_CONFIG_START( littlerb, littlerb_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 336-1, 0*8, 288-1)
MCFG_SCREEN_UPDATE_STATIC(littlerb)
- MCFG_VIDEO_START(littlerb)
MCFG_PALETTE_LENGTH(0x100)
MCFG_DEVICE_ADD("littlerbvdp", LITTLERBVDP, 0)
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
-// MCFG_PALETTE_INIT(littlerb)
+// MCFG_PALETTE_INIT_OVERRIDE(littlerb_state,littlerb)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker")
MCFG_DAC_ADD("dacl")
diff --git a/src/mame/drivers/lkage.c b/src/mame/drivers/lkage.c
index 97136ae2dbe..9881ce4e182 100644
--- a/src/mame/drivers/lkage.c
+++ b/src/mame/drivers/lkage.c
@@ -492,64 +492,62 @@ static const ym2203_interface ym2203_config =
DEVCB_LINE(irqhandler)
};
-static MACHINE_START( lkage )
+void lkage_state::machine_start()
{
- lkage_state *state = machine.driver_data<lkage_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_mcu = machine.device("mcu");
-
- state->save_item(NAME(state->m_bg_tile_bank));
- state->save_item(NAME(state->m_fg_tile_bank));
- state->save_item(NAME(state->m_tx_tile_bank));
-
- state->save_item(NAME(state->m_sprite_dx));
-
- state->save_item(NAME(state->m_mcu_ready));
- state->save_item(NAME(state->m_mcu_val));
- state->save_item(NAME(state->m_sound_nmi_enable));
- state->save_item(NAME(state->m_pending_nmi));
-
- state->save_item(NAME(state->m_port_a_in));
- state->save_item(NAME(state->m_port_a_out));
- state->save_item(NAME(state->m_ddr_a));
- state->save_item(NAME(state->m_port_b_in));
- state->save_item(NAME(state->m_port_b_out));
- state->save_item(NAME(state->m_ddr_b));
- state->save_item(NAME(state->m_port_c_in));
- state->save_item(NAME(state->m_port_c_out));
- state->save_item(NAME(state->m_ddr_c));
- state->save_item(NAME(state->m_mcu_sent));
- state->save_item(NAME(state->m_main_sent));
- state->save_item(NAME(state->m_from_main));
- state->save_item(NAME(state->m_from_mcu));
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_mcu = machine().device("mcu");
+
+ save_item(NAME(m_bg_tile_bank));
+ save_item(NAME(m_fg_tile_bank));
+ save_item(NAME(m_tx_tile_bank));
+
+ save_item(NAME(m_sprite_dx));
+
+ save_item(NAME(m_mcu_ready));
+ save_item(NAME(m_mcu_val));
+ save_item(NAME(m_sound_nmi_enable));
+ save_item(NAME(m_pending_nmi));
+
+ save_item(NAME(m_port_a_in));
+ save_item(NAME(m_port_a_out));
+ save_item(NAME(m_ddr_a));
+ save_item(NAME(m_port_b_in));
+ save_item(NAME(m_port_b_out));
+ save_item(NAME(m_ddr_b));
+ save_item(NAME(m_port_c_in));
+ save_item(NAME(m_port_c_out));
+ save_item(NAME(m_ddr_c));
+ save_item(NAME(m_mcu_sent));
+ save_item(NAME(m_main_sent));
+ save_item(NAME(m_from_main));
+ save_item(NAME(m_from_mcu));
}
-static MACHINE_RESET( lkage )
+void lkage_state::machine_reset()
{
- lkage_state *state = machine.driver_data<lkage_state>();
- state->m_bg_tile_bank = state->m_fg_tile_bank = state->m_tx_tile_bank =0;
-
- state->m_mcu_ready = 3;
- state->m_mcu_val = 0;
- state->m_sound_nmi_enable = 0;
- state->m_pending_nmi = 0;
-
- state->m_port_a_in = 0;
- state->m_port_a_out = 0;
- state->m_ddr_a = 0;
- state->m_port_b_in = 0;
- state->m_port_b_out = 0;
- state->m_ddr_b = 0;
- state->m_port_c_in = 0;
- state->m_port_c_out = 0;
- state->m_ddr_c = 0;
- state->m_mcu_sent = 0;
- state->m_main_sent = 0;
- state->m_from_main = 0;
- state->m_from_mcu = 0;
+ m_bg_tile_bank = m_fg_tile_bank = m_tx_tile_bank =0;
+
+ m_mcu_ready = 3;
+ m_mcu_val = 0;
+ m_sound_nmi_enable = 0;
+ m_pending_nmi = 0;
+
+ m_port_a_in = 0;
+ m_port_a_out = 0;
+ m_ddr_a = 0;
+ m_port_b_in = 0;
+ m_port_b_out = 0;
+ m_ddr_b = 0;
+ m_port_c_in = 0;
+ m_port_c_out = 0;
+ m_ddr_c = 0;
+ m_mcu_sent = 0;
+ m_main_sent = 0;
+ m_from_main = 0;
+ m_from_mcu = 0;
}
static MACHINE_CONFIG_START( lkage, lkage_state )
@@ -567,8 +565,6 @@ static MACHINE_CONFIG_START( lkage, lkage_state )
MCFG_CPU_ADD("mcu", M68705,MCU_CLOCK)
MCFG_CPU_PROGRAM_MAP(lkage_m68705_map)
- MCFG_MACHINE_START(lkage)
- MCFG_MACHINE_RESET(lkage)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -581,7 +577,6 @@ static MACHINE_CONFIG_START( lkage, lkage_state )
MCFG_GFXDECODE(lkage)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(lkage)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -613,8 +608,6 @@ static MACHINE_CONFIG_START( lkageb, lkage_state )
MCFG_CPU_PROGRAM_MAP(lkage_sound_map)
/* IRQs are triggered by the YM2203 */
- MCFG_MACHINE_START(lkage)
- MCFG_MACHINE_RESET(lkage)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -627,7 +620,6 @@ static MACHINE_CONFIG_START( lkageb, lkage_state )
MCFG_GFXDECODE(lkage)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(lkage)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lockon.c b/src/mame/drivers/lockon.c
index 3d8e9fb0411..e077e9de258 100644
--- a/src/mame/drivers/lockon.c
+++ b/src/mame/drivers/lockon.c
@@ -451,59 +451,57 @@ static const ym2203_interface ym2203_config =
*
*************************************/
-static MACHINE_START( lockon )
+void lockon_state::machine_start()
{
- lockon_state *state = machine.driver_data<lockon_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_ground = machine.device("ground");
- state->m_object = machine.device("object");
- state->m_f2203_1l = machine.device("f2203.1l");
- state->m_f2203_2l = machine.device("f2203.2l");
- state->m_f2203_3l = machine.device("f2203.3l");
- state->m_f2203_1r = machine.device("f2203.1r");
- state->m_f2203_2r = machine.device("f2203.2r");
- state->m_f2203_3r = machine.device("f2203.3r");
-
- state->save_item(NAME(state->m_ground_ctrl));
- state->save_item(NAME(state->m_scroll_h));
- state->save_item(NAME(state->m_scroll_v));
- state->save_item(NAME(state->m_xsal));
- state->save_item(NAME(state->m_x0ll));
- state->save_item(NAME(state->m_dx0ll));
- state->save_item(NAME(state->m_dxll));
- state->save_item(NAME(state->m_ysal));
- state->save_item(NAME(state->m_y0ll));
- state->save_item(NAME(state->m_dy0ll));
- state->save_item(NAME(state->m_dyll));
- state->save_item(NAME(state->m_iden));
- state->save_item(NAME(state->m_obj_pal_latch));
- state->save_item(NAME(state->m_obj_pal_addr));
- state->save_item(NAME(state->m_ctrl_reg));
- state->save_item(NAME(state->m_main_inten));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_ground = machine().device("ground");
+ m_object = machine().device("object");
+ m_f2203_1l = machine().device("f2203.1l");
+ m_f2203_2l = machine().device("f2203.2l");
+ m_f2203_3l = machine().device("f2203.3l");
+ m_f2203_1r = machine().device("f2203.1r");
+ m_f2203_2r = machine().device("f2203.2r");
+ m_f2203_3r = machine().device("f2203.3r");
+
+ save_item(NAME(m_ground_ctrl));
+ save_item(NAME(m_scroll_h));
+ save_item(NAME(m_scroll_v));
+ save_item(NAME(m_xsal));
+ save_item(NAME(m_x0ll));
+ save_item(NAME(m_dx0ll));
+ save_item(NAME(m_dxll));
+ save_item(NAME(m_ysal));
+ save_item(NAME(m_y0ll));
+ save_item(NAME(m_dy0ll));
+ save_item(NAME(m_dyll));
+ save_item(NAME(m_iden));
+ save_item(NAME(m_obj_pal_latch));
+ save_item(NAME(m_obj_pal_addr));
+ save_item(NAME(m_ctrl_reg));
+ save_item(NAME(m_main_inten));
}
-static MACHINE_RESET( lockon )
+void lockon_state::machine_reset()
{
- lockon_state *state = machine.driver_data<lockon_state>();
-
- state->m_ground_ctrl = 0;
- state->m_scroll_h = 0;
- state->m_scroll_v = 0;
- state->m_xsal = 0;
- state->m_x0ll = 0;
- state->m_dx0ll = 0;
- state->m_dxll = 0;
- state->m_ysal = 0;
- state->m_y0ll = 0;
- state->m_dy0ll = 0;
- state->m_dyll = 0;
- state->m_iden = 0;
- state->m_obj_pal_latch = 0;
- state->m_obj_pal_addr = 0;
- state->m_ctrl_reg = 0;
- state->m_main_inten = 0;
+
+ m_ground_ctrl = 0;
+ m_scroll_h = 0;
+ m_scroll_v = 0;
+ m_xsal = 0;
+ m_x0ll = 0;
+ m_dx0ll = 0;
+ m_dxll = 0;
+ m_ysal = 0;
+ m_y0ll = 0;
+ m_dy0ll = 0;
+ m_dyll = 0;
+ m_iden = 0;
+ m_obj_pal_latch = 0;
+ m_obj_pal_addr = 0;
+ m_ctrl_reg = 0;
+ m_main_inten = 0;
}
static MACHINE_CONFIG_START( lockon, lockon_state )
@@ -524,8 +522,6 @@ static MACHINE_CONFIG_START( lockon, lockon_state )
MCFG_WATCHDOG_TIME_INIT(PERIOD_OF_555_ASTABLE(10000, 4700, 10000e-12) * 4096)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(lockon)
- MCFG_MACHINE_RESET(lockon)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
@@ -535,10 +531,8 @@ static MACHINE_CONFIG_START( lockon, lockon_state )
MCFG_SCREEN_VBLANK_STATIC(lockon)
MCFG_GFXDECODE(lockon)
- MCFG_PALETTE_INIT(lockon)
MCFG_PALETTE_LENGTH(1024 + 2048)
- MCFG_VIDEO_START(lockon)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/looping.c b/src/mame/drivers/looping.c
index 5c6fee46fff..2b8d8a7a0bc 100644
--- a/src/mame/drivers/looping.c
+++ b/src/mame/drivers/looping.c
@@ -139,6 +139,9 @@ public:
DECLARE_WRITE8_MEMBER(speech_enable_w);
DECLARE_DRIVER_INIT(looping);
TILE_GET_INFO_MEMBER(get_tile_info);
+ virtual void machine_start();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -149,9 +152,9 @@ public:
*
*************************************/
-static PALETTE_INIT( looping )
+void looping_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
static const int resistances[3] = { 1000, 470, 220 };
double rweights[3], gweights[3], bweights[2];
int i;
@@ -184,7 +187,7 @@ static PALETTE_INIT( looping )
bit1 = (color_prom[i] >> 7) & 1;
b = combine_2_weights(bweights, bit0, bit1);
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -204,13 +207,12 @@ TILE_GET_INFO_MEMBER(looping_state::get_tile_info)
}
-static VIDEO_START( looping )
+void looping_state::video_start()
{
- looping_state *state = machine.driver_data<looping_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(looping_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(looping_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- state->m_bg_tilemap->set_scroll_cols(0x20);
+ m_bg_tilemap->set_scroll_cols(0x20);
}
@@ -318,10 +320,9 @@ static SCREEN_UPDATE_IND16( looping )
*
*************************************/
-static MACHINE_START( looping )
+void looping_state::machine_start()
{
- looping_state *state = machine.driver_data<looping_state>();
- state->save_item(NAME(state->m_sound));
+ save_item(NAME(m_sound));
}
@@ -653,7 +654,6 @@ static MACHINE_CONFIG_START( looping, looping_state )
MCFG_CPU_IO_MAP(looping_cop_io_map)
MCFG_CPU_CONFIG(looping_cop_intf)
- MCFG_MACHINE_START(looping)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -663,8 +663,6 @@ static MACHINE_CONFIG_START( looping, looping_state )
MCFG_GFXDECODE(looping)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(looping)
- MCFG_VIDEO_START(looping)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c
index f49ab4720f0..3f7be61a8aa 100644
--- a/src/mame/drivers/lordgun.c
+++ b/src/mame/drivers/lordgun.c
@@ -678,7 +678,6 @@ static MACHINE_CONFIG_START( lordgun, lordgun_state )
MCFG_GFXDECODE(lordgun)
MCFG_PALETTE_LENGTH(0x800 * 8) // 0x800 real colors, repeated per priority level
- MCFG_VIDEO_START(lordgun)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -721,7 +720,6 @@ static MACHINE_CONFIG_START( aliencha, lordgun_state )
MCFG_GFXDECODE(lordgun)
MCFG_PALETTE_LENGTH(0x800 * 8) // 0x800 real colors, repeated per priority level
- MCFG_VIDEO_START(lordgun)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lsasquad.c b/src/mame/drivers/lsasquad.c
index 00722f34aa8..22c2fd533cf 100644
--- a/src/mame/drivers/lsasquad.c
+++ b/src/mame/drivers/lsasquad.c
@@ -564,55 +564,53 @@ static const ym2203_interface ym2203_config =
};
-static MACHINE_START( lsasquad )
+MACHINE_START_MEMBER(lsasquad_state,lsasquad)
{
- lsasquad_state *state = machine.driver_data<lsasquad_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
-
- state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x2000);
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_mcu = machine.device("mcu");
-
- state->save_item(NAME(state->m_port_a_in));
- state->save_item(NAME(state->m_port_a_out));
- state->save_item(NAME(state->m_ddr_a));
- state->save_item(NAME(state->m_port_b_in));
- state->save_item(NAME(state->m_port_b_out));
- state->save_item(NAME(state->m_ddr_b));
- state->save_item(NAME(state->m_mcu_sent));
- state->save_item(NAME(state->m_main_sent));
- state->save_item(NAME(state->m_from_main));
- state->save_item(NAME(state->m_from_mcu));
-
- state->save_item(NAME(state->m_sound_pending));
- state->save_item(NAME(state->m_sound_nmi_enable));
- state->save_item(NAME(state->m_pending_nmi));
- state->save_item(NAME(state->m_sound_cmd));
- state->save_item(NAME(state->m_sound_result));
+ UINT8 *ROM = memregion("maincpu")->base();
+
+ membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x2000);
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_mcu = machine().device("mcu");
+
+ save_item(NAME(m_port_a_in));
+ save_item(NAME(m_port_a_out));
+ save_item(NAME(m_ddr_a));
+ save_item(NAME(m_port_b_in));
+ save_item(NAME(m_port_b_out));
+ save_item(NAME(m_ddr_b));
+ save_item(NAME(m_mcu_sent));
+ save_item(NAME(m_main_sent));
+ save_item(NAME(m_from_main));
+ save_item(NAME(m_from_mcu));
+
+ save_item(NAME(m_sound_pending));
+ save_item(NAME(m_sound_nmi_enable));
+ save_item(NAME(m_pending_nmi));
+ save_item(NAME(m_sound_cmd));
+ save_item(NAME(m_sound_result));
}
-static MACHINE_RESET( lsasquad )
+MACHINE_RESET_MEMBER(lsasquad_state,lsasquad)
{
- lsasquad_state *state = machine.driver_data<lsasquad_state>();
-
- state->m_sound_pending = 0;
- state->m_sound_nmi_enable = 0;
- state->m_pending_nmi = 0;
- state->m_sound_cmd = 0;
- state->m_sound_result = 0;
-
- state->m_port_a_in = 0;
- state->m_port_a_out = 0;
- state->m_ddr_a = 0;
- state->m_port_b_in = 0;
- state->m_port_b_out = 0;
- state->m_ddr_b = 0;
- state->m_mcu_sent = 0;
- state->m_main_sent = 0;
- state->m_from_main = 0;
- state->m_from_mcu = 0;
+
+ m_sound_pending = 0;
+ m_sound_nmi_enable = 0;
+ m_pending_nmi = 0;
+ m_sound_cmd = 0;
+ m_sound_result = 0;
+
+ m_port_a_in = 0;
+ m_port_a_out = 0;
+ m_ddr_a = 0;
+ m_port_b_in = 0;
+ m_port_b_out = 0;
+ m_ddr_b = 0;
+ m_mcu_sent = 0;
+ m_main_sent = 0;
+ m_from_main = 0;
+ m_from_mcu = 0;
}
/* Note: lsasquad clock values are not verified */
@@ -633,8 +631,8 @@ static MACHINE_CONFIG_START( lsasquad, lsasquad_state )
/* synchronization of the CPUs */
/* main<->sound synchronization depends on this */
- MCFG_MACHINE_START(lsasquad)
- MCFG_MACHINE_RESET(lsasquad)
+ MCFG_MACHINE_START_OVERRIDE(lsasquad_state,lsasquad)
+ MCFG_MACHINE_RESET_OVERRIDE(lsasquad_state,lsasquad)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -689,8 +687,8 @@ static MACHINE_CONFIG_START( daikaiju, lsasquad_state )
/* synchronization of the CPUs */
/* main<->sound synchronization depends on this */
- MCFG_MACHINE_START(lsasquad)
- MCFG_MACHINE_RESET(lsasquad)
+ MCFG_MACHINE_START_OVERRIDE(lsasquad_state,lsasquad)
+ MCFG_MACHINE_RESET_OVERRIDE(lsasquad_state,lsasquad)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/ltcasino.c b/src/mame/drivers/ltcasino.c
index 974282b57ec..4652fdce808 100644
--- a/src/mame/drivers/ltcasino.c
+++ b/src/mame/drivers/ltcasino.c
@@ -33,6 +33,7 @@ public:
DECLARE_WRITE8_MEMBER(ltcasino_tile_atr_w);
DECLARE_DRIVER_INIT(mv4in1);
TILE_GET_INFO_MEMBER(get_ltcasino_tile_info);
+ virtual void video_start();
};
@@ -50,10 +51,9 @@ TILE_GET_INFO_MEMBER(ltcasino_state::get_ltcasino_tile_info)
SET_TILE_INFO_MEMBER(0,tileno,0,0);
}
-static VIDEO_START(ltcasino)
+void ltcasino_state::video_start()
{
- ltcasino_state *state = machine.driver_data<ltcasino_state>();
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ltcasino_state::get_ltcasino_tile_info),state),TILEMAP_SCAN_ROWS,8, 8,64,32);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ltcasino_state::get_ltcasino_tile_info),this),TILEMAP_SCAN_ROWS,8, 8,64,32);
}
@@ -660,7 +660,6 @@ static MACHINE_CONFIG_START( ltcasino, ltcasino_state )
MCFG_GFXDECODE(ltcasino)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(ltcasino)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/luckgrln.c b/src/mame/drivers/luckgrln.c
index c368c067bb8..b2407a07c38 100644
--- a/src/mame/drivers/luckgrln.c
+++ b/src/mame/drivers/luckgrln.c
@@ -149,6 +149,7 @@ public:
TILE_GET_INFO_MEMBER(get_luckgrln_reel2_tile_info);
TILE_GET_INFO_MEMBER(get_luckgrln_reel3_tile_info);
TILE_GET_INFO_MEMBER(get_luckgrln_reel4_tile_info);
+ virtual void video_start();
};
@@ -268,23 +269,22 @@ TILE_GET_INFO_MEMBER(luckgrln_state::get_luckgrln_reel4_tile_info)
0);
}
-static VIDEO_START(luckgrln)
+void luckgrln_state::video_start()
{
- luckgrln_state *state = machine.driver_data<luckgrln_state>();
- state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel2_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel3_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- state->m_reel4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel4_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
-
- state->m_reel1_tilemap->set_scroll_cols(64);
- state->m_reel2_tilemap->set_scroll_cols(64);
- state->m_reel3_tilemap->set_scroll_cols(64);
- state->m_reel4_tilemap->set_scroll_cols(64);
-
- state->m_reel1_tilemap->set_transparent_pen(0 );
- state->m_reel2_tilemap->set_transparent_pen(0 );
- state->m_reel3_tilemap->set_transparent_pen(0 );
- state->m_reel4_tilemap->set_transparent_pen(0 );
+ m_reel1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel2_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel3_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel4_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel4_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+
+ m_reel1_tilemap->set_scroll_cols(64);
+ m_reel2_tilemap->set_scroll_cols(64);
+ m_reel3_tilemap->set_scroll_cols(64);
+ m_reel4_tilemap->set_scroll_cols(64);
+
+ m_reel1_tilemap->set_transparent_pen(0 );
+ m_reel2_tilemap->set_transparent_pen(0 );
+ m_reel3_tilemap->set_transparent_pen(0 );
+ m_reel4_tilemap->set_transparent_pen(0 );
}
static SCREEN_UPDATE_IND16(luckgrln)
@@ -1011,7 +1011,6 @@ static MACHINE_CONFIG_START( luckgrln, luckgrln_state )
MCFG_GFXDECODE(luckgrln)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_VIDEO_START(luckgrln)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c
index 32d6df3675d..c46f28e294a 100644
--- a/src/mame/drivers/lucky74.c
+++ b/src/mame/drivers/lucky74.c
@@ -1383,10 +1383,8 @@ static MACHINE_CONFIG_START( lucky74, lucky74_state )
MCFG_GFXDECODE(lucky74)
- MCFG_PALETTE_INIT(lucky74)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(lucky74)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lvcards.c b/src/mame/drivers/lvcards.c
index f68792f3fcb..31ca0a4b4a3 100644
--- a/src/mame/drivers/lvcards.c
+++ b/src/mame/drivers/lvcards.c
@@ -80,20 +80,18 @@ TODO:
#include "includes/lvcards.h"
-static MACHINE_START( lvpoker )
+MACHINE_START_MEMBER(lvcards_state,lvpoker)
{
- lvcards_state *state = machine.driver_data<lvcards_state>();
- state_save_register_global(machine, state->m_payout);
- state_save_register_global(machine, state->m_pulse);
- state_save_register_global(machine, state->m_result);
+ state_save_register_global(machine(), m_payout);
+ state_save_register_global(machine(), m_pulse);
+ state_save_register_global(machine(), m_result);
}
-static MACHINE_RESET( lvpoker )
+MACHINE_RESET_MEMBER(lvcards_state,lvpoker)
{
- lvcards_state *state = machine.driver_data<lvcards_state>();
- state->m_payout = 0;
- state->m_pulse = 0;
- state->m_result = 0;
+ m_payout = 0;
+ m_pulse = 0;
+ m_result = 0;
}
WRITE8_MEMBER(lvcards_state::control_port_2_w)
@@ -481,8 +479,6 @@ static MACHINE_CONFIG_START( lvcards, lvcards_state )
MCFG_GFXDECODE(lvcards)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(lvcards)
- MCFG_VIDEO_START(lvcards)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -498,8 +494,8 @@ static MACHINE_CONFIG_DERIVED( lvpoker, lvcards )
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(lvpoker_map)
- MCFG_MACHINE_START(lvpoker)
- MCFG_MACHINE_RESET(lvpoker)
+ MCFG_MACHINE_START_OVERRIDE(lvcards_state,lvpoker)
+ MCFG_MACHINE_RESET_OVERRIDE(lvcards_state,lvpoker)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( ponttehk, lvcards )
@@ -508,10 +504,10 @@ static MACHINE_CONFIG_DERIVED( ponttehk, lvcards )
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(ponttehk_map)
- MCFG_MACHINE_RESET(lvpoker)
+ MCFG_MACHINE_RESET_OVERRIDE(lvcards_state,lvpoker)
// video hardware
- MCFG_PALETTE_INIT(ponttehk)
+ MCFG_PALETTE_INIT_OVERRIDE(lvcards_state,ponttehk)
MACHINE_CONFIG_END
ROM_START( lvpoker )
diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c
index 28b6818f2e1..5517e7d2233 100644
--- a/src/mame/drivers/lwings.c
+++ b/src/mame/drivers/lwings.c
@@ -746,38 +746,36 @@ static const msm5205_interface msm5205_config =
*
*************************************/
-static MACHINE_START( lwings )
+void lwings_state::machine_start()
{
- lwings_state *state = machine.driver_data<lwings_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
- state->save_item(NAME(state->m_bg2_image));
- state->save_item(NAME(state->m_scroll_x));
- state->save_item(NAME(state->m_scroll_y));
- state->save_item(NAME(state->m_param));
- state->save_item(NAME(state->m_palette_pen));
- state->save_item(NAME(state->m_soundstate));
- state->save_item(NAME(state->m_adpcm));
+ save_item(NAME(m_bg2_image));
+ save_item(NAME(m_scroll_x));
+ save_item(NAME(m_scroll_y));
+ save_item(NAME(m_param));
+ save_item(NAME(m_palette_pen));
+ save_item(NAME(m_soundstate));
+ save_item(NAME(m_adpcm));
}
-static MACHINE_RESET( lwings )
+void lwings_state::machine_reset()
{
- lwings_state *state = machine.driver_data<lwings_state>();
- state->m_bg2_image = 0;
- state->m_scroll_x[0] = 0;
- state->m_scroll_x[1] = 0;
- state->m_scroll_y[0] = 0;
- state->m_scroll_y[1] = 0;
- state->m_param[0] = 0;
- state->m_param[1] = 0;
- state->m_param[2] = 0;
- state->m_param[3] = 0;
- state->m_palette_pen = 0;
- state->m_soundstate = 0;
- state->m_adpcm = 0;
+ m_bg2_image = 0;
+ m_scroll_x[0] = 0;
+ m_scroll_x[1] = 0;
+ m_scroll_y[0] = 0;
+ m_scroll_y[1] = 0;
+ m_param[0] = 0;
+ m_param[1] = 0;
+ m_param[2] = 0;
+ m_param[3] = 0;
+ m_palette_pen = 0;
+ m_soundstate = 0;
+ m_adpcm = 0;
}
static MACHINE_CONFIG_START( lwings, lwings_state )
@@ -791,8 +789,6 @@ static MACHINE_CONFIG_START( lwings, lwings_state )
MCFG_CPU_PROGRAM_MAP(lwings_sound_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,4*60) /* ??? */
- MCFG_MACHINE_START(lwings)
- MCFG_MACHINE_RESET(lwings)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -808,7 +804,6 @@ static MACHINE_CONFIG_START( lwings, lwings_state )
MCFG_GFXDECODE(lwings)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(lwings)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -844,7 +839,7 @@ static MACHINE_CONFIG_DERIVED( trojan, lwings )
/* video hardware */
MCFG_GFXDECODE(trojan)
- MCFG_VIDEO_START(trojan)
+ MCFG_VIDEO_START_OVERRIDE(lwings_state,trojan)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(trojan)
@@ -864,7 +859,7 @@ static MACHINE_CONFIG_DERIVED( avengers, trojan )
MCFG_CPU_IO_MAP(avengers_adpcm_io_map)
/* video hardware */
- MCFG_VIDEO_START(avengers)
+ MCFG_VIDEO_START_OVERRIDE(lwings_state,avengers)
MACHINE_CONFIG_END
/*************************************
diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c
index 3a906a79e20..bf5acbf1ad0 100644
--- a/src/mame/drivers/m10.c
+++ b/src/mame/drivers/m10.c
@@ -175,7 +175,7 @@ static const ttl74123_interface ic8j2_intf =
*
*************************************/
-static PALETTE_INIT( m10 )
+PALETTE_INIT_MEMBER(m10_state,m10)
{
int i;
@@ -188,31 +188,29 @@ static PALETTE_INIT( m10 )
else
color = RGB_BLACK;
- palette_set_color(machine, i, color);
+ palette_set_color(machine(), i, color);
}
}
-static MACHINE_START( m10 )
+MACHINE_START_MEMBER(m10_state,m10)
{
- m10_state *state = machine.driver_data<m10_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_ic8j1 = machine.device("ic8j1");
- state->m_ic8j2 = machine.device("ic8j2");
- state->m_samples = machine.device<samples_device>("samples");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_ic8j1 = machine().device("ic8j1");
+ m_ic8j2 = machine().device("ic8j2");
+ m_samples = machine().device<samples_device>("samples");
- state->save_item(NAME(state->m_bottomline));
- state->save_item(NAME(state->m_flip));
- state->save_item(NAME(state->m_last));
+ save_item(NAME(m_bottomline));
+ save_item(NAME(m_flip));
+ save_item(NAME(m_last));
}
-static MACHINE_RESET( m10 )
+MACHINE_RESET_MEMBER(m10_state,m10)
{
- m10_state *state = machine.driver_data<m10_state>();
- state->m_bottomline = 0;
- state->m_flip = 0;
- state->m_last = 0;
+ m_bottomline = 0;
+ m_flip = 0;
+ m_last = 0;
}
/*************************************
@@ -831,8 +829,8 @@ static MACHINE_CONFIG_START( m10, m10_state )
MCFG_CPU_ADD("maincpu", M6502,IREMM10_CPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(m10_main)
- MCFG_MACHINE_START(m10)
- MCFG_MACHINE_RESET(m10)
+ MCFG_MACHINE_START_OVERRIDE(m10_state,m10)
+ MCFG_MACHINE_RESET_OVERRIDE(m10_state,m10)
//MCFG_CPU_VBLANK_INT("screen", m10_interrupt)
@@ -844,8 +842,8 @@ static MACHINE_CONFIG_START( m10, m10_state )
MCFG_GFXDECODE(m10)
MCFG_PALETTE_LENGTH(2*8)
- MCFG_PALETTE_INIT(m10)
- MCFG_VIDEO_START(m10)
+ MCFG_PALETTE_INIT_OVERRIDE(m10_state,m10)
+ MCFG_VIDEO_START_OVERRIDE(m10_state,m10)
/* 74LS123 */
@@ -876,8 +874,8 @@ static MACHINE_CONFIG_START( m15, m10_state )
MCFG_CPU_ADD("maincpu", M6502,IREMM15_CPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(m15_main)
- MCFG_MACHINE_START(m10)
- MCFG_MACHINE_RESET(m10)
+ MCFG_MACHINE_START_OVERRIDE(m10_state,m10)
+ MCFG_MACHINE_RESET_OVERRIDE(m10_state,m10)
MCFG_CPU_VBLANK_INT("screen", m15_interrupt)
@@ -888,8 +886,8 @@ static MACHINE_CONFIG_START( m15, m10_state )
MCFG_PALETTE_LENGTH(2*8)
- MCFG_PALETTE_INIT(m10)
- MCFG_VIDEO_START( m15 )
+ MCFG_PALETTE_INIT_OVERRIDE(m10_state,m10)
+ MCFG_VIDEO_START_OVERRIDE(m10_state, m15 )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c
index 70c26dc4ef4..9ae63afca6c 100644
--- a/src/mame/drivers/m107.c
+++ b/src/mame/drivers/m107.c
@@ -40,7 +40,7 @@ confirmed for m107 games as well.
/*****************************************************************************/
-static MACHINE_START( m107 )
+void m107_state::machine_start()
{
// TODO: state save registrations
}
@@ -779,7 +779,6 @@ static MACHINE_CONFIG_START( firebarr, m107_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_CONFIG(firebarr_config)
- MCFG_MACHINE_START(m107)
MCFG_TIMER_ADD_SCANLINE("scantimer", m107_scanline_interrupt, "screen", 0, 1)
@@ -794,7 +793,6 @@ static MACHINE_CONFIG_START( firebarr, m107_state )
MCFG_GFXDECODE(firebarr)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(m107)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/m14.c b/src/mame/drivers/m14.c
index fdbc96aae99..25e0f08984e 100644
--- a/src/mame/drivers/m14.c
+++ b/src/mame/drivers/m14.c
@@ -81,6 +81,10 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(left_coin_inserted);
DECLARE_INPUT_CHANGED_MEMBER(right_coin_inserted);
TILE_GET_INFO_MEMBER(m14_get_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -91,7 +95,7 @@ public:
*************************************/
/* guess, might not be 100% accurate. */
-static PALETTE_INIT( m14 )
+void m14_state::palette_init()
{
int i;
@@ -104,7 +108,7 @@ static PALETTE_INIT( m14 )
else
color = (i & 0x10) ? RGB_WHITE : RGB_BLACK;
- palette_set_color(machine, i, color);
+ palette_set_color(machine(), i, color);
}
}
@@ -123,11 +127,10 @@ TILE_GET_INFO_MEMBER(m14_state::m14_get_tile_info)
0);
}
-static VIDEO_START( m14 )
+void m14_state::video_start()
{
- m14_state *state = machine.driver_data<m14_state>();
- state->m_m14_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m14_state::m14_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_m14_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(m14_state::m14_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
static SCREEN_UPDATE_IND16( m14 )
@@ -316,20 +319,18 @@ static INTERRUPT_GEN( m14_irq )
device->execute().set_input_line(I8085_RST75_LINE, CLEAR_LINE);
}
-static MACHINE_START( m14 )
+void m14_state::machine_start()
{
- m14_state *state = machine.driver_data<m14_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_hop_mux));
+ save_item(NAME(m_hop_mux));
}
-static MACHINE_RESET( m14 )
+void m14_state::machine_reset()
{
- m14_state *state = machine.driver_data<m14_state>();
- state->m_hop_mux = 0;
+ m_hop_mux = 0;
}
@@ -341,8 +342,6 @@ static MACHINE_CONFIG_START( m14, m14_state )
MCFG_CPU_IO_MAP(m14_io_map)
MCFG_CPU_VBLANK_INT("screen",m14_irq)
- MCFG_MACHINE_START(m14)
- MCFG_MACHINE_RESET(m14)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -353,9 +352,7 @@ static MACHINE_CONFIG_START( m14, m14_state )
MCFG_SCREEN_UPDATE_STATIC(m14)
MCFG_GFXDECODE(m14)
MCFG_PALETTE_LENGTH(0x20)
- MCFG_PALETTE_INIT(m14)
- MCFG_VIDEO_START(m14)
/* sound hardware */
// MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/m52.c b/src/mame/drivers/m52.c
index c1f387449a1..b253121e165 100644
--- a/src/mame/drivers/m52.c
+++ b/src/mame/drivers/m52.c
@@ -380,15 +380,14 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_RESET( m52 )
+void m52_state::machine_reset()
{
- m52_state *state = machine.driver_data<m52_state>();
- state->m_bg1xpos = 0;
- state->m_bg1ypos = 0;
- state->m_bg2xpos = 0;
- state->m_bg2ypos = 0;
- state->m_bgcontrol = 0;
+ m_bg1xpos = 0;
+ m_bg1ypos = 0;
+ m_bg2xpos = 0;
+ m_bg2ypos = 0;
+ m_bgcontrol = 0;
}
static MACHINE_CONFIG_START( m52, m52_state )
@@ -399,7 +398,6 @@ static MACHINE_CONFIG_START( m52, m52_state )
MCFG_CPU_IO_MAP(main_portmap)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_RESET(m52)
/* video hardware */
MCFG_GFXDECODE(m52)
@@ -409,8 +407,6 @@ static MACHINE_CONFIG_START( m52, m52_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 136, 376, 282, 22, 274)
MCFG_SCREEN_UPDATE_STATIC(m52)
- MCFG_PALETTE_INIT(m52)
- MCFG_VIDEO_START(m52)
/* sound hardware */
MCFG_FRAGMENT_ADD(m52_sound_c_audio)
diff --git a/src/mame/drivers/m57.c b/src/mame/drivers/m57.c
index d8919bd9791..76beed3fa96 100644
--- a/src/mame/drivers/m57.c
+++ b/src/mame/drivers/m57.c
@@ -243,8 +243,6 @@ static MACHINE_CONFIG_START( m57, m57_state )
MCFG_GFXDECODE(m57)
MCFG_PALETTE_LENGTH(32*8+32*8)
- MCFG_PALETTE_INIT(m57)
- MCFG_VIDEO_START(m57)
/* sound hardware */
MCFG_FRAGMENT_ADD(m52_sound_c_audio)
diff --git a/src/mame/drivers/m58.c b/src/mame/drivers/m58.c
index 5f7f2618fe1..b10fd50ff7f 100644
--- a/src/mame/drivers/m58.c
+++ b/src/mame/drivers/m58.c
@@ -203,8 +203,6 @@ static MACHINE_CONFIG_START( yard, m58_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 256, 282, 42, 266)
MCFG_SCREEN_UPDATE_STATIC(yard)
- MCFG_PALETTE_INIT(yard)
- MCFG_VIDEO_START(yard)
/* sound hardware */
MCFG_FRAGMENT_ADD(m52_large_audio)
diff --git a/src/mame/drivers/m62.c b/src/mame/drivers/m62.c
index 77448c8a0e0..f6bb9477031 100644
--- a/src/mame/drivers/m62.c
+++ b/src/mame/drivers/m62.c
@@ -928,29 +928,27 @@ static GFXDECODE_START( youjyudn )
GFXDECODE_END
-static MACHINE_START( m62 )
+void m62_state::machine_start()
{
- m62_state *state = machine.driver_data<m62_state>();
- state->save_item(NAME(state->m_ldrun2_bankswap));
- state->save_item(NAME(state->m_bankcontrol));
+ save_item(NAME(m_ldrun2_bankswap));
+ save_item(NAME(m_bankcontrol));
}
-static MACHINE_RESET( m62 )
+void m62_state::machine_reset()
{
- m62_state *state = machine.driver_data<m62_state>();
-
- state->m_flipscreen = 0;
- state->m_m62_background_hscroll = 0;
- state->m_m62_background_vscroll = 0;
- state->m_kidniki_background_bank = 0;
- state->m_kidniki_text_vscroll = 0;
- state->m_ldrun3_topbottom_mask = 0;
- state->m_spelunkr_palbank = 0;
-
- state->m_ldrun2_bankswap = 0;
- state->m_bankcontrol[0] = 0;
- state->m_bankcontrol[1] = 0;
+
+ m_flipscreen = 0;
+ m_m62_background_hscroll = 0;
+ m_m62_background_vscroll = 0;
+ m_kidniki_background_bank = 0;
+ m_kidniki_text_vscroll = 0;
+ m_ldrun3_topbottom_mask = 0;
+ m_spelunkr_palbank = 0;
+
+ m_ldrun2_bankswap = 0;
+ m_bankcontrol[0] = 0;
+ m_bankcontrol[1] = 0;
}
static MACHINE_CONFIG_START( ldrun, m62_state )
@@ -961,8 +959,6 @@ static MACHINE_CONFIG_START( ldrun, m62_state )
MCFG_CPU_IO_MAP(kungfum_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(m62)
- MCFG_MACHINE_RESET(m62)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -975,8 +971,6 @@ static MACHINE_CONFIG_START( ldrun, m62_state )
MCFG_GFXDECODE(ldrun)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(m62)
- MCFG_VIDEO_START(ldrun)
/* sound hardware */
MCFG_FRAGMENT_ADD(m62_audio)
@@ -996,7 +990,7 @@ static MACHINE_CONFIG_DERIVED( kungfum, ldrun )
MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
MCFG_SCREEN_UPDATE_STATIC(kungfum)
- MCFG_VIDEO_START(kungfum)
+ MCFG_VIDEO_START_OVERRIDE(m62_state,kungfum)
MACHINE_CONFIG_END
@@ -1015,8 +1009,8 @@ static MACHINE_CONFIG_DERIVED( battroad, ldrun )
MCFG_GFXDECODE(battroad)
MCFG_PALETTE_LENGTH(544)
- MCFG_PALETTE_INIT(battroad)
- MCFG_VIDEO_START(battroad)
+ MCFG_PALETTE_INIT_OVERRIDE(m62_state,battroad)
+ MCFG_VIDEO_START_OVERRIDE(m62_state,battroad)
MACHINE_CONFIG_END
@@ -1027,7 +1021,7 @@ static MACHINE_CONFIG_DERIVED( ldrun2, ldrun )
MCFG_CPU_PROGRAM_MAP(ldrun2_map)
MCFG_CPU_IO_MAP(ldrun2_io_map)
- MCFG_VIDEO_START(ldrun2)
+ MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun2)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(ldrun)
MACHINE_CONFIG_END
@@ -1042,7 +1036,7 @@ static MACHINE_CONFIG_DERIVED( ldrun3, ldrun )
/* video hardware */
MCFG_GFXDECODE(ldrun3)
- MCFG_VIDEO_START(ldrun2)
+ MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun2)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(ldrun3)
MACHINE_CONFIG_END
@@ -1057,7 +1051,7 @@ static MACHINE_CONFIG_DERIVED( ldrun4, ldrun )
/* video hardware */
MCFG_GFXDECODE(ldrun3)
- MCFG_VIDEO_START(ldrun4)
+ MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun4)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(ldrun4)
MACHINE_CONFIG_END
@@ -1073,8 +1067,8 @@ static MACHINE_CONFIG_DERIVED( lotlot, ldrun )
MCFG_GFXDECODE(lotlot)
MCFG_PALETTE_LENGTH(768)
- MCFG_PALETTE_INIT(lotlot)
- MCFG_VIDEO_START(lotlot)
+ MCFG_PALETTE_INIT_OVERRIDE(m62_state,lotlot)
+ MCFG_VIDEO_START_OVERRIDE(m62_state,lotlot)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(lotlot)
MACHINE_CONFIG_END
@@ -1090,7 +1084,7 @@ static MACHINE_CONFIG_DERIVED( kidniki, ldrun )
/* video hardware */
MCFG_GFXDECODE(kidniki)
- MCFG_VIDEO_START(kidniki)
+ MCFG_VIDEO_START_OVERRIDE(m62_state,kidniki)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(kidniki)
MACHINE_CONFIG_END
@@ -1105,7 +1099,7 @@ static MACHINE_CONFIG_DERIVED( spelunkr, ldrun )
/* video hardware */
MCFG_GFXDECODE(spelunkr)
- MCFG_VIDEO_START(spelunkr)
+ MCFG_VIDEO_START_OVERRIDE(m62_state,spelunkr)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(spelunkr)
MACHINE_CONFIG_END
@@ -1121,8 +1115,8 @@ static MACHINE_CONFIG_DERIVED( spelunk2, ldrun )
MCFG_GFXDECODE(spelunk2)
MCFG_PALETTE_LENGTH(768)
- MCFG_PALETTE_INIT(spelunk2)
- MCFG_VIDEO_START(spelunk2)
+ MCFG_PALETTE_INIT_OVERRIDE(m62_state,spelunk2)
+ MCFG_VIDEO_START_OVERRIDE(m62_state,spelunk2)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(spelunk2)
MACHINE_CONFIG_END
@@ -1142,7 +1136,7 @@ static MACHINE_CONFIG_DERIVED( youjyudn, ldrun )
MCFG_SCREEN_UPDATE_STATIC(youjyudn)
MCFG_GFXDECODE(youjyudn)
- MCFG_VIDEO_START(youjyudn)
+ MCFG_VIDEO_START_OVERRIDE(m62_state,youjyudn)
MACHINE_CONFIG_END
@@ -1157,7 +1151,7 @@ static MACHINE_CONFIG_DERIVED( horizon, ldrun )
MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
MCFG_SCREEN_UPDATE_STATIC(horizon)
- MCFG_VIDEO_START(horizon)
+ MCFG_VIDEO_START_OVERRIDE(m62_state,horizon)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/m63.c b/src/mame/drivers/m63.c
index ddb294d1d7c..809e8f82eae 100644
--- a/src/mame/drivers/m63.c
+++ b/src/mame/drivers/m63.c
@@ -179,12 +179,16 @@ public:
DECLARE_DRIVER_INIT(fghtbskt);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ DECLARE_MACHINE_START(m63);
+ DECLARE_MACHINE_RESET(m63);
+ DECLARE_VIDEO_START(m63);
+ DECLARE_PALETTE_INIT(m63);
};
-static PALETTE_INIT( m63 )
+PALETTE_INIT_MEMBER(m63_state,m63)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
for (i = 0; i < 256; i++)
@@ -210,7 +214,7 @@ static PALETTE_INIT( m63 )
bit3 = (color_prom[i + 2*256] >> 3) & 0x01;
b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
}
color_prom += 3 * 256;
@@ -234,7 +238,7 @@ static PALETTE_INIT( m63 )
bit1 = (color_prom[i] >> 7) & 0x01;
b = 0x4f * bit0 + 0xa8 * bit1;
- palette_set_color(machine,i+256,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i+256,MAKE_RGB(r,g,b));
}
}
@@ -304,15 +308,14 @@ TILE_GET_INFO_MEMBER(m63_state::get_fg_tile_info)
SET_TILE_INFO_MEMBER(0, code, 0, m_fg_flag);
}
-static VIDEO_START( m63 )
+VIDEO_START_MEMBER(m63_state,m63)
{
- m63_state *state = machine.driver_data<m63_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m63_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m63_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(m63_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(m63_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_bg_tilemap->set_scroll_cols(32);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap->set_scroll_cols(32);
+ m_fg_tilemap->set_transparent_pen(0);
}
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
@@ -721,36 +724,34 @@ static INTERRUPT_GEN( snd_irq )
state->m_sound_irq = 1;
}
-static MACHINE_START( m63 )
+MACHINE_START_MEMBER(m63_state,m63)
{
- m63_state *state = machine.driver_data<m63_state>();
- state->m_soundcpu = machine.device<cpu_device>("soundcpu");
- state->m_ay1 = machine.device("ay1");
- state->m_ay2 = machine.device("ay2");
- state->m_samples = machine.device<samples_device>("samples");
+ m_soundcpu = machine().device<cpu_device>("soundcpu");
+ m_ay1 = machine().device("ay1");
+ m_ay2 = machine().device("ay2");
+ m_samples = machine().device<samples_device>("samples");
- state->save_item(NAME(state->m_pal_bank));
- state->save_item(NAME(state->m_fg_flag));
- state->save_item(NAME(state->m_sy_offset));
+ save_item(NAME(m_pal_bank));
+ save_item(NAME(m_fg_flag));
+ save_item(NAME(m_sy_offset));
/* sound-related */
- state->save_item(NAME(state->m_sound_irq));
- state->save_item(NAME(state->m_sound_status));
- state->save_item(NAME(state->m_p1));
- state->save_item(NAME(state->m_p2));
+ save_item(NAME(m_sound_irq));
+ save_item(NAME(m_sound_status));
+ save_item(NAME(m_p1));
+ save_item(NAME(m_p2));
}
-static MACHINE_RESET( m63 )
+MACHINE_RESET_MEMBER(m63_state,m63)
{
- m63_state *state = machine.driver_data<m63_state>();
- state->m_pal_bank = 0;
- state->m_fg_flag = 0;
- state->m_sound_irq = 0;
- state->m_sound_status = 0;
- state->m_p1 = 0;
- state->m_p2 = 0;
+ m_pal_bank = 0;
+ m_fg_flag = 0;
+ m_sound_irq = 0;
+ m_sound_status = 0;
+ m_p1 = 0;
+ m_p2 = 0;
}
@@ -774,8 +775,8 @@ static MACHINE_CONFIG_START( m63, m63_state )
MCFG_CPU_IO_MAP(i8039_port_map)
MCFG_CPU_PERIODIC_INT(snd_irq, 60)
- MCFG_MACHINE_START(m63)
- MCFG_MACHINE_RESET(m63)
+ MCFG_MACHINE_START_OVERRIDE(m63_state,m63)
+ MCFG_MACHINE_RESET_OVERRIDE(m63_state,m63)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -788,8 +789,8 @@ static MACHINE_CONFIG_START( m63, m63_state )
MCFG_GFXDECODE(m63)
MCFG_PALETTE_LENGTH(256+4)
- MCFG_PALETTE_INIT(m63)
- MCFG_VIDEO_START(m63)
+ MCFG_PALETTE_INIT_OVERRIDE(m63_state,m63)
+ MCFG_VIDEO_START_OVERRIDE(m63_state,m63)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono") /* ????? */
@@ -818,8 +819,8 @@ static MACHINE_CONFIG_START( fghtbskt, m63_state )
MCFG_CPU_IO_MAP(i8039_port_map)
MCFG_CPU_PERIODIC_INT(snd_irq, 60/2)
- MCFG_MACHINE_START(m63)
- MCFG_MACHINE_RESET(m63)
+ MCFG_MACHINE_START_OVERRIDE(m63_state,m63)
+ MCFG_MACHINE_RESET_OVERRIDE(m63_state,m63)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -833,7 +834,7 @@ static MACHINE_CONFIG_START( fghtbskt, m63_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(m63)
+ MCFG_VIDEO_START_OVERRIDE(m63_state,m63)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c
index 19ea68df9a7..5e2a410d422 100644
--- a/src/mame/drivers/m72.c
+++ b/src/mame/drivers/m72.c
@@ -102,23 +102,21 @@ static TIMER_CALLBACK( kengo_scanline_interrupt );
/***************************************************************************/
-static MACHINE_START( m72 )
+MACHINE_START_MEMBER(m72_state,m72)
{
- m72_state *state = machine.driver_data<m72_state>();
- state->m_audio = machine.device("m72");
- state->m_scanline_timer = machine.scheduler().timer_alloc(FUNC(m72_scanline_interrupt));
+ m_audio = machine().device("m72");
+ m_scanline_timer = machine().scheduler().timer_alloc(FUNC(m72_scanline_interrupt));
- state->save_item(NAME(state->m_mcu_sample_addr));
- state->save_item(NAME(state->m_mcu_snd_cmd_latch));
+ save_item(NAME(m_mcu_sample_addr));
+ save_item(NAME(m_mcu_snd_cmd_latch));
}
-static MACHINE_START( kengo )
+MACHINE_START_MEMBER(m72_state,kengo)
{
- m72_state *state = machine.driver_data<m72_state>();
- state->m_scanline_timer = machine.scheduler().timer_alloc(FUNC(kengo_scanline_interrupt));
+ m_scanline_timer = machine().scheduler().timer_alloc(FUNC(kengo_scanline_interrupt));
- state->save_item(NAME(state->m_mcu_sample_addr));
- state->save_item(NAME(state->m_mcu_snd_cmd_latch));
+ save_item(NAME(m_mcu_sample_addr));
+ save_item(NAME(m_mcu_snd_cmd_latch));
}
static TIMER_CALLBACK( synch_callback )
@@ -127,28 +125,25 @@ static TIMER_CALLBACK( synch_callback )
machine.scheduler().boost_interleave(attotime::from_hz(MASTER_CLOCK/4/12), attotime::from_seconds(25));
}
-static MACHINE_RESET( m72 )
+MACHINE_RESET_MEMBER(m72_state,m72)
{
- m72_state *state = machine.driver_data<m72_state>();
- state->m_irq_base = 0x20;
- state->m_mcu_sample_addr = 0;
- state->m_mcu_snd_cmd_latch = 0;
+ m_irq_base = 0x20;
+ m_mcu_sample_addr = 0;
+ m_mcu_snd_cmd_latch = 0;
- state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(0));
- machine.scheduler().synchronize(FUNC(synch_callback));
+ m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0));
+ machine().scheduler().synchronize(FUNC(synch_callback));
}
-static MACHINE_RESET( xmultipl )
+MACHINE_RESET_MEMBER(m72_state,xmultipl)
{
- m72_state *state = machine.driver_data<m72_state>();
- state->m_irq_base = 0x08;
- state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(0));
+ m_irq_base = 0x08;
+ m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0));
}
-static MACHINE_RESET( kengo )
+MACHINE_RESET_MEMBER(m72_state,kengo)
{
- m72_state *state = machine.driver_data<m72_state>();
- state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(0));
+ m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0));
}
static TIMER_CALLBACK( m72_scanline_interrupt )
@@ -1817,8 +1812,8 @@ static MACHINE_CONFIG_START( m72_base, m72_state )
MCFG_CPU_PROGRAM_MAP(sound_ram_map)
MCFG_CPU_IO_MAP(sound_portmap)
- MCFG_MACHINE_START(m72)
- MCFG_MACHINE_RESET(m72)
+ MCFG_MACHINE_START_OVERRIDE(m72_state,m72)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,m72)
/* video hardware */
MCFG_GFXDECODE(m72)
@@ -1828,7 +1823,7 @@ static MACHINE_CONFIG_START( m72_base, m72_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(m72)
- MCFG_VIDEO_START(m72)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1872,8 +1867,8 @@ static MACHINE_CONFIG_START( rtype, m72_state )
MCFG_CPU_IO_MAP(rtype_sound_portmap)
/* IRQs are generated by main Z80 and YM2151 */
- MCFG_MACHINE_START(m72)
- MCFG_MACHINE_RESET(m72)
+ MCFG_MACHINE_START_OVERRIDE(m72_state,m72)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,m72)
/* video hardware */
MCFG_GFXDECODE(m72)
@@ -1883,7 +1878,7 @@ static MACHINE_CONFIG_START( rtype, m72_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(m72)
- MCFG_VIDEO_START(m72)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1909,8 +1904,8 @@ static MACHINE_CONFIG_START( xmultipl, m72_state )
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
- MCFG_MACHINE_START(m72)
- MCFG_MACHINE_RESET(xmultipl)
+ MCFG_MACHINE_START_OVERRIDE(m72_state,m72)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
/* video hardware */
MCFG_GFXDECODE(m72)
@@ -1920,7 +1915,7 @@ static MACHINE_CONFIG_START( xmultipl, m72_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(m72)
- MCFG_VIDEO_START(xmultipl)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,xmultipl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1950,8 +1945,8 @@ static MACHINE_CONFIG_START( xmultiplm72, m72_state )
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
- MCFG_MACHINE_START(m72)
- MCFG_MACHINE_RESET(xmultipl)
+ MCFG_MACHINE_START_OVERRIDE(m72_state,m72)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
/* video hardware */
MCFG_GFXDECODE(m72)
@@ -1961,7 +1956,7 @@ static MACHINE_CONFIG_START( xmultiplm72, m72_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(m72)
- MCFG_VIDEO_START(m72)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1991,8 +1986,8 @@ static MACHINE_CONFIG_START( dbreed, m72_state )
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
- MCFG_MACHINE_START(m72)
- MCFG_MACHINE_RESET(xmultipl)
+ MCFG_MACHINE_START_OVERRIDE(m72_state,m72)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
/* video hardware */
MCFG_GFXDECODE(rtype2)
@@ -2002,7 +1997,7 @@ static MACHINE_CONFIG_START( dbreed, m72_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(m72)
- MCFG_VIDEO_START(hharry)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,hharry)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2032,8 +2027,8 @@ static MACHINE_CONFIG_START( dbreedm72, m72_state )
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
- MCFG_MACHINE_START(m72)
- MCFG_MACHINE_RESET(xmultipl)
+ MCFG_MACHINE_START_OVERRIDE(m72_state,m72)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
/* video hardware */
MCFG_GFXDECODE(m72)
@@ -2043,7 +2038,7 @@ static MACHINE_CONFIG_START( dbreedm72, m72_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(m72)
- MCFG_VIDEO_START(m72)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2073,8 +2068,8 @@ static MACHINE_CONFIG_START( rtype2, m72_state )
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
- MCFG_MACHINE_START(m72)
- MCFG_MACHINE_RESET(m72)
+ MCFG_MACHINE_START_OVERRIDE(m72_state,m72)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,m72)
/* video hardware */
MCFG_GFXDECODE(rtype2)
@@ -2084,7 +2079,7 @@ static MACHINE_CONFIG_START( rtype2, m72_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(m72)
- MCFG_VIDEO_START(rtype2)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,rtype2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2114,8 +2109,8 @@ static MACHINE_CONFIG_START( majtitle, m72_state )
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
- MCFG_MACHINE_START(m72)
- MCFG_MACHINE_RESET(m72)
+ MCFG_MACHINE_START_OVERRIDE(m72_state,m72)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,m72)
/* video hardware */
MCFG_GFXDECODE(majtitle)
@@ -2125,7 +2120,7 @@ static MACHINE_CONFIG_START( majtitle, m72_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(majtitle)
- MCFG_VIDEO_START(majtitle)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,majtitle)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2155,8 +2150,8 @@ static MACHINE_CONFIG_START( hharry, m72_state )
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
- MCFG_MACHINE_START(m72)
- MCFG_MACHINE_RESET(xmultipl)
+ MCFG_MACHINE_START_OVERRIDE(m72_state,m72)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
/* video hardware */
MCFG_GFXDECODE(rtype2)
@@ -2166,7 +2161,7 @@ static MACHINE_CONFIG_START( hharry, m72_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(m72)
- MCFG_VIDEO_START(hharry)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,hharry)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2196,8 +2191,8 @@ static MACHINE_CONFIG_START( hharryu, m72_state )
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
- MCFG_MACHINE_START(m72)
- MCFG_MACHINE_RESET(xmultipl)
+ MCFG_MACHINE_START_OVERRIDE(m72_state,m72)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
/* video hardware */
MCFG_GFXDECODE(rtype2)
@@ -2207,7 +2202,7 @@ static MACHINE_CONFIG_START( hharryu, m72_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(m72)
- MCFG_VIDEO_START(hharryu)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2237,8 +2232,8 @@ static MACHINE_CONFIG_START( dkgenm72, m72_state )
MCFG_CPU_PERIODIC_INT(fake_nmi,128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
- MCFG_MACHINE_START(m72)
- MCFG_MACHINE_RESET(xmultipl)
+ MCFG_MACHINE_START_OVERRIDE(m72_state,m72)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
/* video hardware */
MCFG_GFXDECODE(m72)
@@ -2248,7 +2243,7 @@ static MACHINE_CONFIG_START( dkgenm72, m72_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(m72)
- MCFG_VIDEO_START(m72)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2278,8 +2273,8 @@ static MACHINE_CONFIG_START( poundfor, m72_state )
MCFG_CPU_PERIODIC_INT(fake_nmi,128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
- MCFG_MACHINE_START(m72)
- MCFG_MACHINE_RESET(m72)
+ MCFG_MACHINE_START_OVERRIDE(m72_state,m72)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,m72)
/* video hardware */
MCFG_GFXDECODE(rtype2)
@@ -2289,7 +2284,7 @@ static MACHINE_CONFIG_START( poundfor, m72_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(m72)
- MCFG_VIDEO_START(poundfor)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,poundfor)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2319,8 +2314,8 @@ static MACHINE_CONFIG_START( cosmccop, m72_state )
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
- MCFG_MACHINE_START(kengo)
- MCFG_MACHINE_RESET(kengo)
+ MCFG_MACHINE_START_OVERRIDE(m72_state,kengo)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,kengo)
/* video hardware */
MCFG_GFXDECODE(rtype2)
@@ -2330,7 +2325,7 @@ static MACHINE_CONFIG_START( cosmccop, m72_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(m72)
- MCFG_VIDEO_START(poundfor)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,poundfor)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c
index cc72b4fbfa8..6f8c23c7baa 100644
--- a/src/mame/drivers/m90.c
+++ b/src/mame/drivers/m90.c
@@ -29,10 +29,9 @@
/***************************************************************************/
-static MACHINE_START( m90 )
+void m90_state::machine_start()
{
- m90_state *state = machine.driver_data<m90_state>();
- state->m_audio = machine.device("m72");
+ m_audio = machine().device("m72");
}
/***************************************************************************/
@@ -724,7 +723,6 @@ static MACHINE_CONFIG_START( m90, m90_state )
MCFG_CPU_PERIODIC_INT(nmi_line_pulse, 128*60) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
- MCFG_MACHINE_START(m90)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -737,7 +735,6 @@ static MACHINE_CONFIG_START( m90, m90_state )
MCFG_GFXDECODE(m90)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(m90)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -821,7 +818,7 @@ static MACHINE_CONFIG_DERIVED( bomblord, m90 )
MCFG_SCREEN_VISIBLE_AREA(10*8, 50*8-1, 17*8, 47*8-1)
MCFG_SCREEN_UPDATE_STATIC(bomblord)
- MCFG_VIDEO_START(bomblord)
+ MCFG_VIDEO_START_OVERRIDE(m90_state,bomblord)
MACHINE_CONFIG_END
@@ -840,7 +837,7 @@ static MACHINE_CONFIG_DERIVED( dynablsb, m90 )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
MCFG_SCREEN_UPDATE_STATIC(dynablsb)
- MCFG_VIDEO_START(dynablsb)
+ MCFG_VIDEO_START_OVERRIDE(m90_state,dynablsb)
MCFG_DEVICE_REMOVE("m72")
diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c
index ca41e4d9773..9a1b2133c24 100644
--- a/src/mame/drivers/m92.c
+++ b/src/mame/drivers/m92.c
@@ -212,17 +212,15 @@ psoldier dip locations still need verification.
/*****************************************************************************/
-static MACHINE_START( m92 )
+MACHINE_START_MEMBER(m92_state,m92)
{
- m92_state *state = machine.driver_data<m92_state>();
- state->save_item(NAME(state->m_sound_status));
+ save_item(NAME(m_sound_status));
}
-static MACHINE_RESET( m92 )
+MACHINE_RESET_MEMBER(m92_state,m92)
{
- m92_state *state = machine.driver_data<m92_state>();
- state->m_sprite_buffer_busy = 1;
+ m_sprite_buffer_busy = 1;
}
/*****************************************************************************/
@@ -943,8 +941,8 @@ static MACHINE_CONFIG_START( m92, m92_state )
MCFG_CPU_ADD("soundcpu" ,V35, XTAL_14_31818MHz)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(m92)
- MCFG_MACHINE_RESET(m92)
+ MCFG_MACHINE_START_OVERRIDE(m92_state,m92)
+ MCFG_MACHINE_RESET_OVERRIDE(m92_state,m92)
MCFG_TIMER_ADD_SCANLINE("scantimer", m92_scanline_interrupt, "screen", 0, 1)
@@ -961,7 +959,7 @@ static MACHINE_CONFIG_START( m92, m92_state )
MCFG_GFXDECODE(m92)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(m92)
+ MCFG_VIDEO_START_OVERRIDE(m92_state,m92)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1029,8 +1027,8 @@ static MACHINE_CONFIG_START( ppan, m92_state )
/* no Sound CPU */
- MCFG_MACHINE_START(m92)
- MCFG_MACHINE_RESET(m92)
+ MCFG_MACHINE_START_OVERRIDE(m92_state,m92)
+ MCFG_MACHINE_RESET_OVERRIDE(m92_state,m92)
MCFG_TIMER_ADD_SCANLINE("scantimer", m92_scanline_interrupt, "screen", 0, 1)
@@ -1047,7 +1045,7 @@ static MACHINE_CONFIG_START( ppan, m92_state )
MCFG_GFXDECODE(m92)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(ppan)
+ MCFG_VIDEO_START_OVERRIDE(m92_state,ppan)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/macrossp.c b/src/mame/drivers/macrossp.c
index 09ec2e33ddf..6ce64ee5696 100644
--- a/src/mame/drivers/macrossp.c
+++ b/src/mame/drivers/macrossp.c
@@ -597,27 +597,25 @@ static const es5506_interface es5506_config =
};
-static MACHINE_START( macrossp )
+void macrossp_state::machine_start()
{
- macrossp_state *state = machine.driver_data<macrossp_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_sndpending));
- state->save_item(NAME(state->m_snd_toggle));
- state->save_item(NAME(state->m_fade_effect));
- state->save_item(NAME(state->m_old_fade));
+ save_item(NAME(m_sndpending));
+ save_item(NAME(m_snd_toggle));
+ save_item(NAME(m_fade_effect));
+ save_item(NAME(m_old_fade));
}
-static MACHINE_RESET( macrossp )
+void macrossp_state::machine_reset()
{
- macrossp_state *state = machine.driver_data<macrossp_state>();
- state->m_sndpending = 0;
- state->m_snd_toggle = 0;
- state->m_fade_effect = 0;
- state->m_old_fade = 0;
+ m_sndpending = 0;
+ m_snd_toggle = 0;
+ m_fade_effect = 0;
+ m_old_fade = 0;
}
static MACHINE_CONFIG_START( macrossp, macrossp_state )
@@ -630,8 +628,6 @@ static MACHINE_CONFIG_START( macrossp, macrossp_state )
MCFG_CPU_ADD("audiocpu", M68000, 32000000/2) /* 16 MHz */
MCFG_CPU_PROGRAM_MAP(macrossp_sound_map)
- MCFG_MACHINE_START(macrossp)
- MCFG_MACHINE_RESET(macrossp)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -645,7 +641,6 @@ static MACHINE_CONFIG_START( macrossp, macrossp_state )
MCFG_GFXDECODE(macrossp)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(macrossp)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/macs.c b/src/mame/drivers/macs.c
index 7fd8b8d7a4d..f88c384c9a8 100644
--- a/src/mame/drivers/macs.c
+++ b/src/mame/drivers/macs.c
@@ -80,10 +80,11 @@ public:
DECLARE_DRIVER_INIT(kisekaeh);
DECLARE_DRIVER_INIT(kisekaem);
DECLARE_DRIVER_INIT(macs2);
+ DECLARE_MACHINE_RESET(macs);
};
-static MACHINE_RESET(macs);
+
static ADDRESS_MAP_START( macs_mem, AS_PROGRAM, 8, macs_state )
@@ -482,7 +483,7 @@ static MACHINE_CONFIG_START( macs, macs_state )
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_RESET(macs)
+ MCFG_MACHINE_RESET_OVERRIDE(macs_state,macs)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -495,7 +496,7 @@ static MACHINE_CONFIG_START( macs, macs_state )
MCFG_GFXDECODE(macs)
MCFG_PALETTE_LENGTH(16*16*4+1)
- MCFG_VIDEO_START(st0016)
+ MCFG_VIDEO_START_OVERRIDE(st0016_state,st0016)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -638,12 +639,11 @@ static const UINT8 ramdata[160]=
0xF0, 0xED, 0xB0, 0x3A, 0x0A, 0xE8, 0xE6, 0xF3, 0x32, 0x0A, 0xE8, 0xD3, 0xC0, 0xC9, 0x00, 0xF3
};
-static MACHINE_RESET(macs)
+MACHINE_RESET_MEMBER(macs_state,macs)
{
- macs_state *state = machine.driver_data<macs_state>();
- UINT8 *macs_ram1 = state->m_ram1;
+ UINT8 *macs_ram1 = m_ram1;
#if 0
- UINT8 *macs_ram2 = state->m_ram2;
+ UINT8 *macs_ram2 = m_ram2;
/*
BIOS ram init:
@@ -672,11 +672,11 @@ static MACHINE_RESET(macs)
730E: ED B0 ldir
...
*/
- memcpy(macs_ram1 + 0x0e9f, state->memregion("user1")->base()+0x7327, 0xc7);
- memcpy(macs_ram1 + 0x1e9f, state->memregion("user1")->base()+0x7327, 0xc7);
+ memcpy(macs_ram1 + 0x0e9f, memregion("user1")->base()+0x7327, 0xc7);
+ memcpy(macs_ram1 + 0x1e9f, memregion("user1")->base()+0x7327, 0xc7);
- memcpy(macs_ram1 + 0x0800, state->memregion("user1")->base()+0x73fa, 0x507);
- memcpy(macs_ram1 + 0x1800, state->memregion("user1")->base()+0x73fa, 0x507);
+ memcpy(macs_ram1 + 0x0800, memregion("user1")->base()+0x73fa, 0x507);
+ memcpy(macs_ram1 + 0x1800, memregion("user1")->base()+0x73fa, 0x507);
#define MAKEJMP(n,m) macs_ram2[(n) - 0xe800 + 0]=0xc3;\
macs_ram2[(n) - 0xe800 + 1]=(m)&0xff;\
@@ -712,10 +712,10 @@ static MACHINE_RESET(macs)
macs_ram1[0x1ff9]=0x07;
#endif
- state->membank("bank1")->set_base(machine.root_device().memregion("maincpu")->base() );
- state->membank("bank2")->set_base(macs_ram1+0x800);
- state->membank("bank3")->set_base(macs_ram1+0x10000);
- state->membank("bank4")->set_base(machine.root_device().memregion("maincpu")->base() );
+ membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base() );
+ membank("bank2")->set_base(macs_ram1+0x800);
+ membank("bank3")->set_base(macs_ram1+0x10000);
+ membank("bank4")->set_base(machine().root_device().memregion("maincpu")->base() );
}
DRIVER_INIT_MEMBER(macs_state,macs)
diff --git a/src/mame/drivers/madmotor.c b/src/mame/drivers/madmotor.c
index a84ed68080d..6e19f512cd9 100644
--- a/src/mame/drivers/madmotor.c
+++ b/src/mame/drivers/madmotor.c
@@ -230,21 +230,19 @@ static const ym2151_interface ym2151_config =
DEVCB_LINE(sound_irq)
};
-static MACHINE_START( madmotor )
+void madmotor_state::machine_start()
{
- madmotor_state *state = machine.driver_data<madmotor_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_flipscreen));
+ save_item(NAME(m_flipscreen));
}
-static MACHINE_RESET( madmotor )
+void madmotor_state::machine_reset()
{
- madmotor_state *state = machine.driver_data<madmotor_state>();
- state->m_flipscreen = 0;
+ m_flipscreen = 0;
}
static MACHINE_CONFIG_START( madmotor, madmotor_state )
@@ -257,8 +255,6 @@ static MACHINE_CONFIG_START( madmotor, madmotor_state )
MCFG_CPU_ADD("audiocpu", H6280, 8053000/2) /* Custom chip 45, Crystal near CPU is 8.053 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(madmotor)
- MCFG_MACHINE_RESET(madmotor)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -284,7 +280,6 @@ static MACHINE_CONFIG_START( madmotor, madmotor_state )
deco_mxc06_device::set_gfx_region(*device, 3);
- MCFG_VIDEO_START(madmotor)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/magic10.c b/src/mame/drivers/magic10.c
index f7b677a2cd4..f011df571a5 100644
--- a/src/mame/drivers/magic10.c
+++ b/src/mame/drivers/magic10.c
@@ -120,6 +120,7 @@ public:
TILE_GET_INFO_MEMBER(get_layer0_tile_info);
TILE_GET_INFO_MEMBER(get_layer1_tile_info);
TILE_GET_INFO_MEMBER(get_layer2_tile_info);
+ virtual void video_start();
};
@@ -186,15 +187,14 @@ TILE_GET_INFO_MEMBER(magic10_state::get_layer2_tile_info)
}
-static VIDEO_START( magic10 )
+void magic10_state::video_start()
{
- magic10_state *state = machine.driver_data<magic10_state>();
- state->m_layer0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magic10_state::get_layer0_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- state->m_layer1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magic10_state::get_layer1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- state->m_layer2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magic10_state::get_layer2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(magic10_state::get_layer0_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_layer1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(magic10_state::get_layer1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_layer2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(magic10_state::get_layer2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- state->m_layer1_tilemap->set_transparent_pen(0);
- state->m_layer2_tilemap->set_transparent_pen(0);
+ m_layer1_tilemap->set_transparent_pen(0);
+ m_layer2_tilemap->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16( magic10 )
@@ -744,7 +744,6 @@ static MACHINE_CONFIG_START( magic10, magic10_state )
MCFG_PALETTE_LENGTH(0x100)
MCFG_GFXDECODE(magic10)
- MCFG_VIDEO_START(magic10)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/magicard.c b/src/mame/drivers/magicard.c
index c8cada60fb0..7917b853dc6 100644
--- a/src/mame/drivers/magicard.c
+++ b/src/mame/drivers/magicard.c
@@ -215,6 +215,8 @@ public:
DECLARE_READ16_MEMBER(scc68070_mmu_r);
DECLARE_WRITE16_MEMBER(scc68070_mmu_w);
DECLARE_DRIVER_INIT(magicard);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -405,7 +407,7 @@ TODO: check this register,doesn't seem to be 100% correct.
*/
-static VIDEO_START(magicard)
+void magicard_state::video_start()
{
}
@@ -691,13 +693,12 @@ static INPUT_PORTS_START( magicard )
INPUT_PORTS_END
-static MACHINE_RESET( magicard )
+void magicard_state::machine_reset()
{
- magicard_state *state = machine.driver_data<magicard_state>();
- UINT16 *src = (UINT16*)state->memregion("maincpu" )->base();
- UINT16 *dst = state->m_magicram;
+ UINT16 *src = (UINT16*)memregion("maincpu" )->base();
+ UINT16 *dst = m_magicram;
memcpy (dst, src, 0x80000);
- machine.device("maincpu")->reset();
+ machine().device("maincpu")->reset();
}
@@ -728,9 +729,7 @@ static MACHINE_CONFIG_START( magicard, magicard_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(magicard)
- MCFG_MACHINE_RESET(magicard)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, CLOCK_A/12)
diff --git a/src/mame/drivers/magicfly.c b/src/mame/drivers/magicfly.c
index 57590576cec..e00b34d9da3 100644
--- a/src/mame/drivers/magicfly.c
+++ b/src/mame/drivers/magicfly.c
@@ -435,6 +435,9 @@ public:
DECLARE_WRITE8_MEMBER(mux_port_w);
TILE_GET_INFO_MEMBER(get_magicfly_tile_info);
TILE_GET_INFO_MEMBER(get_7mezzo_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
+ DECLARE_VIDEO_START(7mezzo);
};
@@ -480,10 +483,9 @@ TILE_GET_INFO_MEMBER(magicfly_state::get_magicfly_tile_info)
SET_TILE_INFO_MEMBER(bank, code, color, 0);
}
-static VIDEO_START(magicfly)
+void magicfly_state::video_start()
{
- magicfly_state *state = machine.driver_data<magicfly_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magicfly_state::get_magicfly_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(magicfly_state::get_magicfly_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
}
TILE_GET_INFO_MEMBER(magicfly_state::get_7mezzo_tile_info)
@@ -511,10 +513,9 @@ TILE_GET_INFO_MEMBER(magicfly_state::get_7mezzo_tile_info)
SET_TILE_INFO_MEMBER(bank, code, color, 0);
}
-static VIDEO_START( 7mezzo )
+VIDEO_START_MEMBER(magicfly_state,7mezzo)
{
- magicfly_state *state = machine.driver_data<magicfly_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magicfly_state::get_7mezzo_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(magicfly_state::get_7mezzo_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
}
static SCREEN_UPDATE_IND16( magicfly )
@@ -524,30 +525,30 @@ static SCREEN_UPDATE_IND16( magicfly )
return 0;
}
-static PALETTE_INIT( magicfly )
+void magicfly_state::palette_init()
{
int i;
for (i = 0x00; i < 0x10; i += 0x10)
{
/* 1st gfx bank */
- palette_set_color(machine, i + 0, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, i + 2, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, i + 4, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, i + 6, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, i + 8, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, i + 10, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, i + 12, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, i + 14, MAKE_RGB(0x00, 0x00, 0x00));
-
- palette_set_color(machine, i + 1, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, i + 3, MAKE_RGB(0xff, 0x00, 0x00));
- palette_set_color(machine, i + 5, MAKE_RGB(0x00, 0xff, 0x00));
- palette_set_color(machine, i + 7, MAKE_RGB(0xff, 0xff, 0x00));
- palette_set_color(machine, i + 9, MAKE_RGB(0x00, 0x00, 0xff));
- palette_set_color(machine, i + 11, MAKE_RGB(0xff, 0x00, 0xff));
- palette_set_color(machine, i + 13, MAKE_RGB(0x00, 0xff, 0xff));
- palette_set_color(machine, i + 15, MAKE_RGB(0xff, 0xff, 0xff));
+ palette_set_color(machine(), i + 0, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), i + 2, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), i + 4, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), i + 6, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), i + 8, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), i + 10, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), i + 12, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), i + 14, MAKE_RGB(0x00, 0x00, 0x00));
+
+ palette_set_color(machine(), i + 1, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), i + 3, MAKE_RGB(0xff, 0x00, 0x00));
+ palette_set_color(machine(), i + 5, MAKE_RGB(0x00, 0xff, 0x00));
+ palette_set_color(machine(), i + 7, MAKE_RGB(0xff, 0xff, 0x00));
+ palette_set_color(machine(), i + 9, MAKE_RGB(0x00, 0x00, 0xff));
+ palette_set_color(machine(), i + 11, MAKE_RGB(0xff, 0x00, 0xff));
+ palette_set_color(machine(), i + 13, MAKE_RGB(0x00, 0xff, 0xff));
+ palette_set_color(machine(), i + 15, MAKE_RGB(0xff, 0xff, 0xff));
}
}
@@ -817,9 +818,7 @@ static MACHINE_CONFIG_START( magicfly, magicfly_state )
MCFG_GFXDECODE(magicfly)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(magicfly)
- MCFG_VIDEO_START(magicfly)
MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/16, mc6845_intf) /* guess */
@@ -834,7 +833,7 @@ static MACHINE_CONFIG_DERIVED( 7mezzo, magicfly )
/* basic machine hardware */
/* video hardware */
- MCFG_VIDEO_START(7mezzo)
+ MCFG_VIDEO_START_OVERRIDE(magicfly_state,7mezzo)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/magictg.c b/src/mame/drivers/magictg.c
index e5f13dc7cdd..0decfd571a2 100644
--- a/src/mame/drivers/magictg.c
+++ b/src/mame/drivers/magictg.c
@@ -211,6 +211,7 @@ public:
protected:
virtual void machine_start();
virtual void machine_reset();
+ virtual void video_start();
};
@@ -253,7 +254,7 @@ void magictg_state::machine_reset()
*
*************************************/
-static VIDEO_START( magictg )
+void magictg_state::video_start()
{
}
@@ -963,7 +964,6 @@ static MACHINE_CONFIG_START( magictg, magictg_state )
MCFG_SCREEN_SIZE(1024, 1024)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 16, 447)
- MCFG_VIDEO_START(magictg)
MCFG_SCREEN_UPDATE_STATIC(magictg)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c
index 61bee5f2512..9c46677311b 100644
--- a/src/mame/drivers/magmax.c
+++ b/src/mame/drivers/magmax.c
@@ -74,23 +74,21 @@ static TIMER_CALLBACK( scanline_callback )
state->m_interrupt_timer->adjust(machine.primary_screen->time_until_pos(scanline), scanline);
}
-static MACHINE_START( magmax )
+void magmax_state::machine_start()
{
- magmax_state *state = machine.driver_data<magmax_state>();
/* Create interrupt timer */
- state->m_interrupt_timer = machine.scheduler().timer_alloc(FUNC(scanline_callback));
+ m_interrupt_timer = machine().scheduler().timer_alloc(FUNC(scanline_callback));
/* Set up save state */
- state_save_register_global(machine, state->m_sound_latch);
- state_save_register_global(machine, state->m_LS74_clr);
- state_save_register_global(machine, state->m_LS74_q);
- state_save_register_global(machine, state->m_gain_control);
+ state_save_register_global(machine(), m_sound_latch);
+ state_save_register_global(machine(), m_LS74_clr);
+ state_save_register_global(machine(), m_LS74_q);
+ state_save_register_global(machine(), m_gain_control);
}
-static MACHINE_RESET( magmax )
+void magmax_state::machine_reset()
{
- magmax_state *state = machine.driver_data<magmax_state>();
- state->m_interrupt_timer->adjust(machine.primary_screen->time_until_pos(64), 64);
+ m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(64), 64);
#if 0
{
@@ -357,8 +355,6 @@ static MACHINE_CONFIG_START( magmax, magmax_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(magmax)
- MCFG_MACHINE_RESET(magmax)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -370,8 +366,6 @@ static MACHINE_CONFIG_START( magmax, magmax_state )
MCFG_GFXDECODE(magmax)
MCFG_PALETTE_LENGTH(1*16 + 16*16 + 256)
- MCFG_PALETTE_INIT(magmax)
- MCFG_VIDEO_START(magmax)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/magtouch.c b/src/mame/drivers/magtouch.c
index f0ff4cb335e..cab9e4c5e6b 100644
--- a/src/mame/drivers/magtouch.c
+++ b/src/mame/drivers/magtouch.c
@@ -99,6 +99,7 @@ public:
DECLARE_WRITE8_MEMBER(magtouch_io_w);
DECLARE_WRITE_LINE_MEMBER(at_com_interrupt_1);
DECLARE_DRIVER_INIT(magtouch);
+ virtual void machine_start();
};
@@ -197,16 +198,16 @@ static void magtouch_set_keyb_int(running_machine &machine, int state)
static READ8_HANDLER( vga_setting ) { return 0xff; } // hard-code to color
-static MACHINE_START( magtouch )
+void magtouch_state::machine_start()
{
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(pcat_irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(pcat_irq_callback);
- init_pc_common(machine, PCCOMMON_KEYBOARD_AT, magtouch_set_keyb_int);
+ init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, magtouch_set_keyb_int);
- machine.root_device().membank("rombank")->configure_entries(0, 0x80, machine.root_device().memregion("game_prg")->base(), 0x8000 );
- machine.root_device().membank("rombank")->set_entry(0);
+ machine().root_device().membank("rombank")->configure_entries(0, 0x80, machine().root_device().memregion("game_prg")->base(), 0x8000 );
+ machine().root_device().membank("rombank")->set_entry(0);
-// microtouch_init(machine, magtouch_microtouch_tx_callback, NULL);
+// microtouch_init(machine(), magtouch_microtouch_tx_callback, NULL);
}
static MACHINE_CONFIG_START( magtouch, magtouch_state )
@@ -222,7 +223,6 @@ static MACHINE_CONFIG_START( magtouch, magtouch_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_MACHINE_START(magtouch)
MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
// MCFG_FRAGMENT_ADD( at_kbdc8042 )
diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c
index 04d12ccf7d5..8f03ea6d871 100644
--- a/src/mame/drivers/mainevt.c
+++ b/src/mame/drivers/mainevt.c
@@ -411,28 +411,26 @@ static const k051960_interface mainevt_k051960_intf =
mainevt_sprite_callback
};
-static MACHINE_START( mainevt )
+void mainevt_state::machine_start()
{
- mainevt_state *state = machine.driver_data<mainevt_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_upd = machine.device("upd");
- state->m_k007232 = machine.device("k007232");
- state->m_k052109 = machine.device("k052109");
- state->m_k051960 = machine.device("k051960");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_upd = machine().device("upd");
+ m_k007232 = machine().device("k007232");
+ m_k052109 = machine().device("k052109");
+ m_k051960 = machine().device("k051960");
- state->save_item(NAME(state->m_nmi_enable));
+ save_item(NAME(m_nmi_enable));
}
-static MACHINE_RESET( mainevt )
+void mainevt_state::machine_reset()
{
- mainevt_state *state = machine.driver_data<mainevt_state>();
- state->m_nmi_enable = 0;
+ m_nmi_enable = 0;
}
static INTERRUPT_GEN( mainevt_sound_timer_irq )
@@ -462,8 +460,6 @@ static MACHINE_CONFIG_START( mainevt, mainevt_state )
MCFG_CPU_PROGRAM_MAP(mainevt_sound_map)
MCFG_CPU_PERIODIC_INT(mainevt_sound_timer_irq,8*60) /* ??? */
- MCFG_MACHINE_START(mainevt)
- MCFG_MACHINE_RESET(mainevt)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -477,7 +473,7 @@ static MACHINE_CONFIG_START( mainevt, mainevt_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(mainevt)
+ MCFG_VIDEO_START_OVERRIDE(mainevt_state,mainevt)
MCFG_K052109_ADD("k052109", mainevt_k052109_intf)
MCFG_K051960_ADD("k051960", mainevt_k051960_intf)
@@ -522,8 +518,6 @@ static MACHINE_CONFIG_START( devstors, mainevt_state )
MCFG_CPU_PROGRAM_MAP(devstors_sound_map)
MCFG_CPU_PERIODIC_INT(devstors_sound_timer_irq,4*60) /* ??? */
- MCFG_MACHINE_START(mainevt)
- MCFG_MACHINE_RESET(mainevt)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -537,7 +531,7 @@ static MACHINE_CONFIG_START( devstors, mainevt_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(dv)
+ MCFG_VIDEO_START_OVERRIDE(mainevt_state,dv)
MCFG_K052109_ADD("k052109", dv_k052109_intf)
MCFG_K051960_ADD("k051960", dv_k051960_intf)
diff --git a/src/mame/drivers/mainsnk.c b/src/mame/drivers/mainsnk.c
index a44954685d3..cff349a7238 100644
--- a/src/mame/drivers/mainsnk.c
+++ b/src/mame/drivers/mainsnk.c
@@ -409,8 +409,6 @@ static MACHINE_CONFIG_START( mainsnk, mainsnk_state )
MCFG_GFXDECODE(mainsnk)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_PALETTE_INIT(mainsnk)
- MCFG_VIDEO_START(mainsnk)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/majorpkr.c b/src/mame/drivers/majorpkr.c
index 450c1203f98..26b88b2a993 100644
--- a/src/mame/drivers/majorpkr.c
+++ b/src/mame/drivers/majorpkr.c
@@ -492,6 +492,7 @@ public:
DECLARE_DRIVER_INIT(majorpkr);
TILE_GET_INFO_MEMBER(bg_get_tile_info);
TILE_GET_INFO_MEMBER(fg_get_tile_info);
+ virtual void video_start();
};
@@ -524,15 +525,14 @@ TILE_GET_INFO_MEMBER(majorpkr_state::fg_get_tile_info)
}
-static VIDEO_START(majorpkr)
+void majorpkr_state::video_start()
{
- majorpkr_state *state = machine.driver_data<majorpkr_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(majorpkr_state::bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(majorpkr_state::fg_get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(majorpkr_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(majorpkr_state::fg_get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
+ m_fg_tilemap->set_transparent_pen(0);
- state->m_generic_paletteram_8.allocate(4 * 0x800);
+ m_generic_paletteram_8.allocate(4 * 0x800);
}
@@ -1046,7 +1046,6 @@ static MACHINE_CONFIG_START( majorpkr, majorpkr_state )
MCFG_GFXDECODE(majorpkr)
MCFG_PALETTE_LENGTH(0x100 * 16)
- MCFG_VIDEO_START(majorpkr)
MCFG_SCREEN_UPDATE_STATIC(majorpkr)
MCFG_MC6845_ADD("crtc", MC6845, CRTC_CLOCK, mc6845_intf) /* verified */
diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c
index 531cdf792a8..1f3e8eda747 100644
--- a/src/mame/drivers/malzak.c
+++ b/src/mame/drivers/malzak.c
@@ -301,14 +301,14 @@ static GFXDECODE_START( malzak )
GFXDECODE_END
-static PALETTE_INIT( malzak )
+void malzak_state::palette_init()
{
int i;
for (i = 0; i < 8 * 8; i++)
{
- palette_set_color_rgb(machine, i * 2 + 0, pal1bit(i >> 3), pal1bit(i >> 4), pal1bit(i >> 5));
- palette_set_color_rgb(machine, i * 2 + 1, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
+ palette_set_color_rgb(machine(), i * 2 + 0, pal1bit(i >> 3), pal1bit(i >> 4), pal1bit(i >> 5));
+ palette_set_color_rgb(machine(), i * 2 + 1, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
}
}
@@ -366,29 +366,27 @@ static const saa5050_interface malzac_saa5050_intf =
};
-static MACHINE_START( malzak )
+void malzak_state::machine_start()
{
- malzak_state *state = machine.driver_data<malzak_state>();
- state->membank("bank1")->configure_entries(0, 2, state->memregion("user2")->base(), 0x400);
+ membank("bank1")->configure_entries(0, 2, memregion("user2")->base(), 0x400);
- state->m_s2636_0 = machine.device("s2636_0");
- state->m_s2636_1 = machine.device("s2636_1");
- state->m_saa5050 = machine.device("saa5050");
+ m_s2636_0 = machine().device("s2636_0");
+ m_s2636_1 = machine().device("s2636_1");
+ m_saa5050 = machine().device("saa5050");
- state->save_item(NAME(state->m_playfield_code));
- state->save_item(NAME(state->m_malzak_x));
- state->save_item(NAME(state->m_malzak_y));
+ save_item(NAME(m_playfield_code));
+ save_item(NAME(m_malzak_x));
+ save_item(NAME(m_malzak_y));
}
-static MACHINE_RESET( malzak )
+void malzak_state::machine_reset()
{
- malzak_state *state = machine.driver_data<malzak_state>();
- memset(state->m_playfield_code, 0, 256 * sizeof(int));
+ memset(m_playfield_code, 0, 256 * sizeof(int));
- state->m_malzak_x = 0;
- state->m_malzak_y = 0;
+ m_malzak_x = 0;
+ m_malzak_y = 0;
}
static MACHINE_CONFIG_START( malzak, malzak_state )
@@ -398,8 +396,6 @@ static MACHINE_CONFIG_START( malzak, malzak_state )
MCFG_CPU_PROGRAM_MAP(malzak_map)
MCFG_CPU_IO_MAP(malzak_io_map)
- MCFG_MACHINE_START(malzak)
- MCFG_MACHINE_RESET(malzak)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -411,7 +407,6 @@ static MACHINE_CONFIG_START( malzak, malzak_state )
MCFG_GFXDECODE(malzak)
MCFG_PALETTE_LENGTH(128)
- MCFG_PALETTE_INIT(malzak)
MCFG_S2636_ADD("s2636_0", malzac_s2636_0_config)
MCFG_S2636_ADD("s2636_1", malzac_s2636_1_config)
diff --git a/src/mame/drivers/mappy.c b/src/mame/drivers/mappy.c
index d0b35c40a75..56eb7802754 100644
--- a/src/mame/drivers/mappy.c
+++ b/src/mame/drivers/mappy.c
@@ -715,37 +715,34 @@ WRITE8_MEMBER(mappy_state::mappy_latch_w)
}
-static MACHINE_RESET( superpac )
+MACHINE_RESET_MEMBER(mappy_state,superpac)
{
- mappy_state *state = machine.driver_data<mappy_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
int i;
/* Reset all latches */
for (i = 0; i < 0x10; i += 2)
- state->superpac_latch_w(*space,i,0);
+ superpac_latch_w(*space,i,0);
}
-static MACHINE_RESET( phozon )
+MACHINE_RESET_MEMBER(mappy_state,phozon)
{
- mappy_state *state = machine.driver_data<mappy_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
int i;
/* Reset all latches */
for (i = 0; i < 0x10; i += 2)
- state->phozon_latch_w(*space, i, 0);
+ phozon_latch_w(*space, i, 0);
}
-static MACHINE_RESET( mappy )
+MACHINE_RESET_MEMBER(mappy_state,mappy)
{
- mappy_state *state = machine.driver_data<mappy_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
int i;
/* Reset all latches */
for (i = 0; i < 0x10; i += 2)
- state->mappy_latch_w(*space, i, 0);
+ mappy_latch_w(*space, i, 0);
}
/* different games need different interrupt generators & timers because they use different Namco I/O devices */
@@ -1620,13 +1617,12 @@ static const namcoio_interface intf1_interleave =
NULL
};
-static MACHINE_START( mappy )
+MACHINE_START_MEMBER(mappy_state,mappy)
{
- mappy_state *state = machine.driver_data<mappy_state>();
- state->save_item(NAME(state->m_main_irq_mask));
- state->save_item(NAME(state->m_sub_irq_mask));
- state->save_item(NAME(state->m_sub2_irq_mask));
+ save_item(NAME(m_main_irq_mask));
+ save_item(NAME(m_sub_irq_mask));
+ save_item(NAME(m_sub2_irq_mask));
}
@@ -1644,8 +1640,8 @@ static MACHINE_CONFIG_START( superpac, mappy_state )
MCFG_WATCHDOG_VBLANK_INIT(8)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_START(mappy)
- MCFG_MACHINE_RESET(superpac)
+ MCFG_MACHINE_START_OVERRIDE(mappy_state,mappy)
+ MCFG_MACHINE_RESET_OVERRIDE(mappy_state,superpac)
MCFG_NAMCO56XX_ADD("namcoio_1", intf0)
MCFG_NAMCO56XX_ADD("namcoio_2", intf1)
@@ -1658,8 +1654,8 @@ static MACHINE_CONFIG_START( superpac, mappy_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(superpac)
- MCFG_PALETTE_INIT(superpac)
- MCFG_VIDEO_START(superpac)
+ MCFG_PALETTE_INIT_OVERRIDE(mappy_state,superpac)
+ MCFG_VIDEO_START_OVERRIDE(mappy_state,superpac)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1717,8 +1713,8 @@ static MACHINE_CONFIG_START( phozon, mappy_state )
MCFG_WATCHDOG_VBLANK_INIT(8)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_START(mappy)
- MCFG_MACHINE_RESET(phozon)
+ MCFG_MACHINE_START_OVERRIDE(mappy_state,mappy)
+ MCFG_MACHINE_RESET_OVERRIDE(mappy_state,phozon)
MCFG_NAMCO58XX_ADD("namcoio_1", intf0)
MCFG_NAMCO56XX_ADD("namcoio_2", intf1_interleave)
@@ -1731,8 +1727,8 @@ static MACHINE_CONFIG_START( phozon, mappy_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(phozon)
- MCFG_PALETTE_INIT(phozon)
- MCFG_VIDEO_START(phozon)
+ MCFG_PALETTE_INIT_OVERRIDE(mappy_state,phozon)
+ MCFG_VIDEO_START_OVERRIDE(mappy_state,phozon)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1757,8 +1753,8 @@ static MACHINE_CONFIG_START( mappy, mappy_state )
MCFG_WATCHDOG_VBLANK_INIT(8)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_START(mappy)
- MCFG_MACHINE_RESET(mappy)
+ MCFG_MACHINE_START_OVERRIDE(mappy_state,mappy)
+ MCFG_MACHINE_RESET_OVERRIDE(mappy_state,mappy)
MCFG_NAMCO58XX_ADD("namcoio_1", intf0)
MCFG_NAMCO58XX_ADD("namcoio_2", intf1)
@@ -1771,8 +1767,8 @@ static MACHINE_CONFIG_START( mappy, mappy_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(mappy)
- MCFG_PALETTE_INIT(mappy)
- MCFG_VIDEO_START(mappy)
+ MCFG_PALETTE_INIT_OVERRIDE(mappy_state,mappy)
+ MCFG_VIDEO_START_OVERRIDE(mappy_state,mappy)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/marineb.c b/src/mame/drivers/marineb.c
index 8ef260eb693..c58315ce21b 100644
--- a/src/mame/drivers/marineb.c
+++ b/src/mame/drivers/marineb.c
@@ -41,34 +41,31 @@ write
#include "includes/marineb.h"
-static MACHINE_RESET( marineb )
+void marineb_state::machine_reset()
{
- marineb_state *state = machine.driver_data<marineb_state>();
- state->m_palette_bank = 0;
- state->m_column_scroll = 0;
- state->m_flipscreen_x = 0;
- state->m_flipscreen_y = 0;
- state->m_marineb_active_low_flipscreen = 0;
+ m_palette_bank = 0;
+ m_column_scroll = 0;
+ m_flipscreen_x = 0;
+ m_flipscreen_y = 0;
+ m_marineb_active_low_flipscreen = 0;
}
-static MACHINE_RESET( springer )
+MACHINE_RESET_MEMBER(marineb_state,springer)
{
- marineb_state *state = machine.driver_data<marineb_state>();
- MACHINE_RESET_CALL( marineb );
+ marineb_state::machine_reset();
- state->m_marineb_active_low_flipscreen = 1;
+ m_marineb_active_low_flipscreen = 1;
}
-static MACHINE_START( marineb )
+void marineb_state::machine_start()
{
- marineb_state *state = machine.driver_data<marineb_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = NULL;
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = NULL;
- state->save_item(NAME(state->m_marineb_active_low_flipscreen));
+ save_item(NAME(m_marineb_active_low_flipscreen));
}
WRITE8_MEMBER(marineb_state::irq_mask_w)
@@ -551,8 +548,6 @@ static MACHINE_CONFIG_START( marineb, marineb_state )
MCFG_CPU_IO_MAP(marineb_io_map)
MCFG_CPU_VBLANK_INT("screen", marineb_vblank_irq)
- MCFG_MACHINE_START(marineb)
- MCFG_MACHINE_RESET(marineb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -565,8 +560,6 @@ static MACHINE_CONFIG_START( marineb, marineb_state )
MCFG_GFXDECODE(marineb)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(marineb)
- MCFG_VIDEO_START(marineb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -589,7 +582,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( springer, marineb )
/* basic machine hardware */
- MCFG_MACHINE_RESET(springer)
+ MCFG_MACHINE_RESET_OVERRIDE(marineb_state,springer)
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
@@ -643,7 +636,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( bcruzm12, wanted )
/* basic machine hardware */
- MCFG_MACHINE_RESET(springer)
+ MCFG_MACHINE_RESET_OVERRIDE(marineb_state,springer)
MACHINE_CONFIG_END
/***************************************************************************
diff --git a/src/mame/drivers/marinedt.c b/src/mame/drivers/marinedt.c
index 71d9c92c6eb..b36298e1072 100644
--- a/src/mame/drivers/marinedt.c
+++ b/src/mame/drivers/marinedt.c
@@ -148,6 +148,10 @@ public:
DECLARE_WRITE8_MEMBER(marinedt_pd_w);
DECLARE_WRITE8_MEMBER(marinedt_pf_w);
TILE_GET_INFO_MEMBER(get_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -444,12 +448,12 @@ static GFXDECODE_START( marinedt )
GFXDECODE_ENTRY( "gfx3", 0, marinedt_objlayout, 32, 4 )
GFXDECODE_END
-static PALETTE_INIT( marinedt )
+void marinedt_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i,r,b,g;
- for (i = 0; i < machine.total_colors(); i++)
+ for (i = 0; i < machine().total_colors(); i++)
{
int bit0, bit1, bit2;
@@ -473,7 +477,7 @@ bit0 = 0;
// *(palette++) = 0x92 * bit0 + 0x46 * bit1 + 0x27 * bit2;
b = 0x27 * bit0 + 0x46 * bit1 + 0x92 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -487,18 +491,17 @@ TILE_GET_INFO_MEMBER(marinedt_state::get_tile_info)
SET_TILE_INFO_MEMBER(0, code, color, flags);
}
-static VIDEO_START( marinedt )
+void marinedt_state::video_start()
{
- marinedt_state *state = machine.driver_data<marinedt_state>();
- state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(marinedt_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(marinedt_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_tx_tilemap->set_transparent_pen(0);
- state->m_tx_tilemap->set_scrolldx(0, 4*8);
- state->m_tx_tilemap->set_scrolldy(0, -4*8);
+ m_tx_tilemap->set_transparent_pen(0);
+ m_tx_tilemap->set_scrolldx(0, 4*8);
+ m_tx_tilemap->set_scrolldy(0, -4*8);
- state->m_tile = auto_bitmap_ind16_alloc(machine, 32 * 8, 32 * 8);
- state->m_obj1 = auto_bitmap_ind16_alloc(machine, 32, 32);
- state->m_obj2 = auto_bitmap_ind16_alloc(machine, 32, 32);
+ m_tile = auto_bitmap_ind16_alloc(machine(), 32 * 8, 32 * 8);
+ m_obj1 = auto_bitmap_ind16_alloc(machine(), 32, 32);
+ m_obj2 = auto_bitmap_ind16_alloc(machine(), 32, 32);
}
@@ -618,52 +621,50 @@ static SCREEN_UPDATE_IND16( marinedt )
return 0;
}
-static MACHINE_START( marinedt )
+void marinedt_state::machine_start()
{
- marinedt_state *state = machine.driver_data<marinedt_state>();
-
- state->save_item(NAME(state->m_obj1_a));
- state->save_item(NAME(state->m_obj1_x));
- state->save_item(NAME(state->m_obj1_y));
- state->save_item(NAME(state->m_obj2_a));
- state->save_item(NAME(state->m_obj2_x));
- state->save_item(NAME(state->m_obj2_y));
- state->save_item(NAME(state->m_pd));
- state->save_item(NAME(state->m_pf));
- state->save_item(NAME(state->m_music));
- state->save_item(NAME(state->m_sound));
- state->save_item(NAME(state->m_coll));
- state->save_item(NAME(state->m_cx));
- state->save_item(NAME(state->m_cyr));
- state->save_item(NAME(state->m_cyq));
- state->save_item(NAME(state->m_collh));
- state->save_item(NAME(state->m_cxh));
- state->save_item(NAME(state->m_cyrh));
- state->save_item(NAME(state->m_cyqh));
+
+ save_item(NAME(m_obj1_a));
+ save_item(NAME(m_obj1_x));
+ save_item(NAME(m_obj1_y));
+ save_item(NAME(m_obj2_a));
+ save_item(NAME(m_obj2_x));
+ save_item(NAME(m_obj2_y));
+ save_item(NAME(m_pd));
+ save_item(NAME(m_pf));
+ save_item(NAME(m_music));
+ save_item(NAME(m_sound));
+ save_item(NAME(m_coll));
+ save_item(NAME(m_cx));
+ save_item(NAME(m_cyr));
+ save_item(NAME(m_cyq));
+ save_item(NAME(m_collh));
+ save_item(NAME(m_cxh));
+ save_item(NAME(m_cyrh));
+ save_item(NAME(m_cyqh));
}
-static MACHINE_RESET( marinedt )
+void marinedt_state::machine_reset()
{
- marinedt_state *state = machine.driver_data<marinedt_state>();
-
- state->m_obj1_a = 0;
- state->m_obj1_x = 0;
- state->m_obj1_y = 0;
- state->m_obj2_a = 0;
- state->m_obj2_x = 0;
- state->m_obj2_y = 0;
- state->m_pd = 0;
- state->m_pf = 0;
- state->m_music = 0;
- state->m_sound = 0;
- state->m_coll = 0;
- state->m_cx = 0;
- state->m_cyr = 0;
- state->m_cyq = 0;
- state->m_collh = 0;
- state->m_cxh = 0;
- state->m_cyrh = 0;
- state->m_cyqh = 0;
+
+ m_obj1_a = 0;
+ m_obj1_x = 0;
+ m_obj1_y = 0;
+ m_obj2_a = 0;
+ m_obj2_x = 0;
+ m_obj2_y = 0;
+ m_pd = 0;
+ m_pf = 0;
+ m_music = 0;
+ m_sound = 0;
+ m_coll = 0;
+ m_cx = 0;
+ m_cyr = 0;
+ m_cyq = 0;
+ m_collh = 0;
+ m_cxh = 0;
+ m_cyrh = 0;
+ m_cyqh = 0;
}
static MACHINE_CONFIG_START( marinedt, marinedt_state )
@@ -674,8 +675,6 @@ static MACHINE_CONFIG_START( marinedt, marinedt_state )
MCFG_CPU_IO_MAP(marinedt_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(marinedt)
- MCFG_MACHINE_RESET(marinedt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -688,8 +687,6 @@ static MACHINE_CONFIG_START( marinedt, marinedt_state )
MCFG_GFXDECODE(marinedt)
MCFG_PALETTE_LENGTH(64)
- MCFG_PALETTE_INIT(marinedt)
- MCFG_VIDEO_START(marinedt)
/* sound hardware */
//discrete sound
diff --git a/src/mame/drivers/mario.c b/src/mame/drivers/mario.c
index 1b6d8d1ab15..89dc87c4228 100644
--- a/src/mame/drivers/mario.c
+++ b/src/mame/drivers/mario.c
@@ -349,8 +349,6 @@ static MACHINE_CONFIG_START( mario_base, mario_state )
MCFG_GFXDECODE(mario)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(mario)
- MCFG_VIDEO_START(mario)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/markham.c b/src/mame/drivers/markham.c
index 1465c358b90..2882272b6a7 100644
--- a/src/mame/drivers/markham.c
+++ b/src/mame/drivers/markham.c
@@ -213,8 +213,6 @@ static MACHINE_CONFIG_START( markham, markham_state )
MCFG_GFXDECODE(markham)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(markham)
- MCFG_VIDEO_START(markham)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mastboy.c b/src/mame/drivers/mastboy.c
index c4a0e390e6c..747b4c0dcd7 100644
--- a/src/mame/drivers/mastboy.c
+++ b/src/mame/drivers/mastboy.c
@@ -476,15 +476,16 @@ public:
DECLARE_READ8_MEMBER(mastboy_nmi_read);
DECLARE_WRITE8_MEMBER(mastboy_msm5205_reset_w);
DECLARE_DRIVER_INIT(mastboy);
+ virtual void machine_reset();
+ virtual void video_start();
};
/* VIDEO EMULATION */
-static VIDEO_START(mastboy)
+void mastboy_state::video_start()
{
- mastboy_state *state = machine.driver_data<mastboy_state>();
- machine.gfx[0]->set_source(state->m_vram);
+ machine().gfx[0]->set_source(m_vram);
}
static SCREEN_UPDATE_IND16(mastboy)
@@ -868,18 +869,17 @@ GFXDECODE_END
/* Machine Functions / Driver */
-static MACHINE_RESET( mastboy )
+void mastboy_state::machine_reset()
{
- mastboy_state *state = machine.driver_data<mastboy_state>();
/* clear some ram */
- memset( state->m_workram, 0x00, 0x01000);
- memset( state->m_tileram, 0x00, 0x01000);
- memset( state->m_colram, 0x00, 0x00200);
- memset( state->m_vram, 0x00, 0x10000);
-
- state->m_m5205_part = 0;
- msm5205_reset_w(machine.device("msm"),1);
- state->m_irq0_ack = 0;
+ memset( m_workram, 0x00, 0x01000);
+ memset( m_tileram, 0x00, 0x01000);
+ memset( m_colram, 0x00, 0x00200);
+ memset( m_vram, 0x00, 0x10000);
+
+ m_m5205_part = 0;
+ msm5205_reset_w(machine().device("msm"),1);
+ m_irq0_ack = 0;
}
@@ -892,7 +892,6 @@ static MACHINE_CONFIG_START( mastboy, mastboy_state )
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_MACHINE_RESET( mastboy )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -905,7 +904,6 @@ static MACHINE_CONFIG_START( mastboy, mastboy_state )
MCFG_GFXDECODE(mastboy)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(mastboy)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/matmania.c b/src/mame/drivers/matmania.c
index 54f437b6467..179929e32ad 100644
--- a/src/mame/drivers/matmania.c
+++ b/src/mame/drivers/matmania.c
@@ -296,13 +296,12 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( matmania )
+MACHINE_START_MEMBER(matmania_state,matmania)
{
- matmania_state *state = machine.driver_data<matmania_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_mcu = machine.device("mcu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_mcu = machine().device("mcu");
}
static MACHINE_CONFIG_START( matmania, matmania_state )
@@ -318,7 +317,7 @@ static MACHINE_CONFIG_START( matmania, matmania_state )
/* IRQs are caused by the main CPU */
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(matmania)
+ MCFG_MACHINE_START_OVERRIDE(matmania_state,matmania)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -331,8 +330,6 @@ static MACHINE_CONFIG_START( matmania, matmania_state )
MCFG_GFXDECODE(matmania)
MCFG_PALETTE_LENGTH(64+16)
- MCFG_PALETTE_INIT(matmania)
- MCFG_VIDEO_START(matmania)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -354,44 +351,42 @@ static const ym3526_interface ym3526_config =
};
-static MACHINE_START( maniach )
+MACHINE_START_MEMBER(matmania_state,maniach)
{
- matmania_state *state = machine.driver_data<matmania_state>();
-
- MACHINE_START_CALL(matmania);
-
- state->save_item(NAME(state->m_port_a_in));
- state->save_item(NAME(state->m_port_a_out));
- state->save_item(NAME(state->m_ddr_a));
- state->save_item(NAME(state->m_port_b_in));
- state->save_item(NAME(state->m_port_b_out));
- state->save_item(NAME(state->m_ddr_b));
- state->save_item(NAME(state->m_port_c_in));
- state->save_item(NAME(state->m_port_c_out));
- state->save_item(NAME(state->m_ddr_c));
- state->save_item(NAME(state->m_mcu_sent));
- state->save_item(NAME(state->m_main_sent));
- state->save_item(NAME(state->m_from_main));
- state->save_item(NAME(state->m_from_mcu));
+
+ MACHINE_START_CALL_MEMBER(matmania);
+
+ save_item(NAME(m_port_a_in));
+ save_item(NAME(m_port_a_out));
+ save_item(NAME(m_ddr_a));
+ save_item(NAME(m_port_b_in));
+ save_item(NAME(m_port_b_out));
+ save_item(NAME(m_ddr_b));
+ save_item(NAME(m_port_c_in));
+ save_item(NAME(m_port_c_out));
+ save_item(NAME(m_ddr_c));
+ save_item(NAME(m_mcu_sent));
+ save_item(NAME(m_main_sent));
+ save_item(NAME(m_from_main));
+ save_item(NAME(m_from_mcu));
}
-static MACHINE_RESET( maniach )
+MACHINE_RESET_MEMBER(matmania_state,maniach)
{
- matmania_state *state = machine.driver_data<matmania_state>();
-
- state->m_port_a_in = 0;
- state->m_port_a_out = 0;
- state->m_ddr_a = 0;
- state->m_port_b_in = 0;
- state->m_port_b_out = 0;
- state->m_ddr_b = 0;
- state->m_port_c_in = 0;
- state->m_port_c_out = 0;
- state->m_ddr_c = 0;
- state->m_mcu_sent = 0;
- state->m_main_sent = 0;
- state->m_from_main = 0;
- state->m_from_mcu = 0;
+
+ m_port_a_in = 0;
+ m_port_a_out = 0;
+ m_ddr_a = 0;
+ m_port_b_in = 0;
+ m_port_b_out = 0;
+ m_ddr_b = 0;
+ m_port_c_in = 0;
+ m_port_c_out = 0;
+ m_ddr_c = 0;
+ m_mcu_sent = 0;
+ m_main_sent = 0;
+ m_from_main = 0;
+ m_from_mcu = 0;
}
static MACHINE_CONFIG_START( maniach, matmania_state )
@@ -410,8 +405,8 @@ static MACHINE_CONFIG_START( maniach, matmania_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slice per frame - high interleaving to sync main and mcu */
- MCFG_MACHINE_START(maniach)
- MCFG_MACHINE_RESET(maniach)
+ MCFG_MACHINE_START_OVERRIDE(matmania_state,maniach)
+ MCFG_MACHINE_RESET_OVERRIDE(matmania_state,maniach)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -424,8 +419,6 @@ static MACHINE_CONFIG_START( maniach, matmania_state )
MCFG_GFXDECODE(maniach)
MCFG_PALETTE_LENGTH(64+16)
- MCFG_PALETTE_INIT(matmania)
- MCFG_VIDEO_START(matmania)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/maxaflex.c b/src/mame/drivers/maxaflex.c
index ef63da3d1b0..e5ed9ee9735 100644
--- a/src/mame/drivers/maxaflex.c
+++ b/src/mame/drivers/maxaflex.c
@@ -58,6 +58,7 @@ public:
DECLARE_READ8_MEMBER(maxaflex_atari_pia_pa_r);
DECLARE_READ8_MEMBER(maxaflex_atari_pia_pb_r);
DECLARE_DRIVER_INIT(a600xl);
+ DECLARE_MACHINE_RESET(supervisor_board);
};
@@ -239,14 +240,13 @@ WRITE8_MEMBER(maxaflex_state::mcu_tcr_w)
}
}
-static MACHINE_RESET(supervisor_board)
+MACHINE_RESET_MEMBER(maxaflex_state,supervisor_board)
{
- maxaflex_state *state = machine.driver_data<maxaflex_state>();
- state->m_portA_in = state->m_portA_out = state->m_ddrA = 0;
- state->m_portB_in = state->m_portB_out = state->m_ddrB = 0;
- state->m_portC_in = state->m_portC_out = state->m_ddrC = 0;
- state->m_tdr = state->m_tcr = 0;
- state->m_mcu_timer = machine.device<timer_device>("mcu_timer");
+ m_portA_in = m_portA_out = m_ddrA = 0;
+ m_portB_in = m_portB_out = m_ddrB = 0;
+ m_portC_in = m_portC_out = m_ddrC = 0;
+ m_tdr = m_tcr = 0;
+ m_mcu_timer = machine().device<timer_device>("mcu_timer");
output_set_lamp_value(0, 0);
output_set_lamp_value(1, 0);
@@ -443,7 +443,7 @@ static MACHINE_CONFIG_START( a600xl, maxaflex_state )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( maxaflex, a600xl )
- MCFG_MACHINE_RESET( supervisor_board )
+ MCFG_MACHINE_RESET_OVERRIDE(maxaflex_state, supervisor_board )
MACHINE_CONFIG_END
ROM_START(maxaflex)
diff --git a/src/mame/drivers/maygay1b.c b/src/mame/drivers/maygay1b.c
index c2a4917074c..80d674cd7f5 100644
--- a/src/mame/drivers/maygay1b.c
+++ b/src/mame/drivers/maygay1b.c
@@ -145,6 +145,8 @@ public:
DECLARE_WRITE8_MEMBER(m1_pia_portb_w);
DECLARE_WRITE8_MEMBER(m1_meter_w);
DECLARE_DRIVER_INIT(m1);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -538,12 +540,11 @@ static void m1_stepper_reset(running_machine &machine)
state->m_optic_pattern = pattern;
}
-static MACHINE_RESET( m1 )
+void maygay1b_state::machine_reset()
{
- maygay1b_state *state = machine.driver_data<maygay1b_state>();
- state->m_vfd->reset(); // reset display1
- state->m_duart68681 = machine.device( "duart68681" );
- m1_stepper_reset(machine);
+ m_vfd->reset(); // reset display1
+ m_duart68681 = machine().device( "duart68681" );
+ m1_stepper_reset(machine());
}
///////////////////////////////////////////////////////////////////////////
@@ -731,17 +732,17 @@ static INPUT_PORTS_START( m1 )
INPUT_PORTS_END
-static MACHINE_START( m1 )
+void maygay1b_state::machine_start()
{
int i;
// setup 8 mechanical meters ////////////////////////////////////////////
- MechMtr_config(machine,8);
+ MechMtr_config(machine(),8);
// setup 6 default 96 half step reels ///////////////////////////////////
for ( i = 0; i < 6; i++ )
{
- stepper_config(machine, i, &starpoint_interface_48step);
+ stepper_config(machine(), i, &starpoint_interface_48step);
}
}
@@ -911,8 +912,6 @@ static const duart68681_config maygaym1_duart68681_config =
static MACHINE_CONFIG_START( m1, maygay1b_state )
- MCFG_MACHINE_START(m1)
- MCFG_MACHINE_RESET(m1)
MCFG_CPU_ADD("maincpu", M6809, M1_MASTER_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(m1_memmap)
diff --git a/src/mame/drivers/maygayv1.c b/src/mame/drivers/maygayv1.c
index e8354ebc6d6..52bec4e4029 100644
--- a/src/mame/drivers/maygayv1.c
+++ b/src/mame/drivers/maygayv1.c
@@ -238,6 +238,9 @@ public:
DECLARE_READ8_MEMBER(b_read);
DECLARE_WRITE8_MEMBER(b_writ);
DECLARE_DRIVER_INIT(screenpl);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -284,7 +287,7 @@ READ16_MEMBER(maygayv1_state::i82716_r)
return 0;
}
-static VIDEO_START( maygayv1 )
+void maygayv1_state::video_start()
{
}
@@ -998,27 +1001,25 @@ static const pia6821_interface pia_intf =
};
-static MACHINE_START( maygayv1 )
+void maygayv1_state::machine_start()
{
- maygayv1_state *state = machine.driver_data<maygayv1_state>();
- i82716_t &i82716 = state->m_i82716;
- i82716.dram = auto_alloc_array(machine, UINT16, 0x80000/2); // ???
- i82716.line_buf = auto_alloc_array(machine, UINT8, 512);
+ i82716_t &i82716 = m_i82716;
+ i82716.dram = auto_alloc_array(machine(), UINT16, 0x80000/2); // ???
+ i82716.line_buf = auto_alloc_array(machine(), UINT8, 512);
- state_save_register_global_pointer(machine, i82716.dram, 0x40000);
+ state_save_register_global_pointer(machine(), i82716.dram, 0x40000);
// duart_68681_init(DUART_CLOCK, duart_irq_handler, duart_tx);
- i8051_set_serial_tx_callback(machine.device("soundcpu"), data_from_i8031);
- i8051_set_serial_rx_callback(machine.device("soundcpu"), data_to_i8031);
+ i8051_set_serial_tx_callback(machine().device("soundcpu"), data_from_i8031);
+ i8051_set_serial_rx_callback(machine().device("soundcpu"), data_to_i8031);
}
-static MACHINE_RESET( maygayv1 )
+void maygayv1_state::machine_reset()
{
- maygayv1_state *state = machine.driver_data<maygayv1_state>();
- i82716_t &i82716 = state->m_i82716;
+ i82716_t &i82716 = m_i82716;
// ?
- state->m_duart68681 = machine.device( "duart68681" );
+ m_duart68681 = machine().device( "duart68681" );
memset(i82716.dram, 0, 0x40000);
i82716.r[RWBA] = 0x0200;
}
@@ -1044,8 +1045,6 @@ static MACHINE_CONFIG_START( maygayv1, maygayv1_state )
MCFG_PIA6821_ADD("pia", pia_intf)
- MCFG_MACHINE_START(maygayv1)
- MCFG_MACHINE_RESET(maygayv1)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -1062,7 +1061,6 @@ static MACHINE_CONFIG_START( maygayv1, maygayv1_state )
MCFG_DUART68681_ADD("duart68681", DUART_CLOCK, maygayv1_duart68681_config)
- MCFG_VIDEO_START(maygayv1)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c
index f936f53daea..ce8c936df02 100644
--- a/src/mame/drivers/mayumi.c
+++ b/src/mame/drivers/mayumi.c
@@ -42,6 +42,9 @@ public:
DECLARE_READ8_MEMBER(key_matrix_1p_r);
DECLARE_READ8_MEMBER(key_matrix_2p_r);
TILE_GET_INFO_MEMBER(get_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -59,10 +62,9 @@ TILE_GET_INFO_MEMBER(mayumi_state::get_tile_info)
SET_TILE_INFO_MEMBER(0, code, col, 0);
}
-static VIDEO_START( mayumi )
+void mayumi_state::video_start()
{
- mayumi_state *state = machine.driver_data<mayumi_state>();
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mayumi_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mayumi_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
WRITE8_MEMBER(mayumi_state::mayumi_videoram_w)
@@ -373,24 +375,22 @@ static const ym2203_interface ym2203_config =
*
*************************************/
-static MACHINE_START( mayumi )
+void mayumi_state::machine_start()
{
- mayumi_state *state = machine.driver_data<mayumi_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x8000], 0x4000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 4, &ROM[0x8000], 0x4000);
+ membank("bank1")->set_entry(0);
- state->save_item(NAME(state->m_int_enable));
- state->save_item(NAME(state->m_input_sel));
+ save_item(NAME(m_int_enable));
+ save_item(NAME(m_input_sel));
}
-static MACHINE_RESET( mayumi )
+void mayumi_state::machine_reset()
{
- mayumi_state *state = machine.driver_data<mayumi_state>();
- state->m_int_enable = 0;
- state->m_input_sel = 0;
+ m_int_enable = 0;
+ m_input_sel = 0;
}
static MACHINE_CONFIG_START( mayumi, mayumi_state )
@@ -401,8 +401,6 @@ static MACHINE_CONFIG_START( mayumi, mayumi_state )
MCFG_CPU_IO_MAP(mayumi_io_map)
MCFG_CPU_VBLANK_INT("screen", mayumi_interrupt)
- MCFG_MACHINE_START( mayumi )
- MCFG_MACHINE_RESET( mayumi )
MCFG_I8255_ADD( "i8255", mayumi_i8255_intf )
@@ -418,7 +416,6 @@ static MACHINE_CONFIG_START( mayumi, mayumi_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(mayumi)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c
index 91ed8d768c7..236940e72c6 100644
--- a/src/mame/drivers/mazerbla.c
+++ b/src/mame/drivers/mazerbla.c
@@ -139,6 +139,10 @@ public:
DECLARE_READ8_MEMBER(soundcommand_r);
DECLARE_DRIVER_INIT(mazerbla);
DECLARE_DRIVER_INIT(greatgun);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -161,42 +165,40 @@ public:
***************************************************************************/
-static PALETTE_INIT( mazerbla )
+void mazerbla_state::palette_init()
{
- mazerbla_state *state = machine.driver_data<mazerbla_state>();
static const int resistances_r[2] = { 4700, 2200 };
static const int resistances_gb[3] = { 10000, 4700, 2200 };
/* just to calculate coefficients for later use */
compute_resistor_weights(0, 255, -1.0,
- 3, resistances_gb, state->m_weights_g, 3600, 0,
- 3, resistances_gb, state->m_weights_b, 3600, 0,
- 2, resistances_r, state->m_weights_r, 3600, 0);
+ 3, resistances_gb, m_weights_g, 3600, 0,
+ 3, resistances_gb, m_weights_b, 3600, 0,
+ 2, resistances_r, m_weights_r, 3600, 0);
}
-static VIDEO_START( mazerbla )
+void mazerbla_state::video_start()
{
- mazerbla_state *state = machine.driver_data<mazerbla_state>();
#if 0
- state->m_planes_enabled[0] = state->m_planes_enabled[1] = state->m_planes_enabled[2] = state->m_planes_enabled[3] = 1;
- state->m_dbg_info = 1;
- state->m_dbg_gfx_e = 1;
- state->m_dbg_clr_e = 0;
- state->m_dbg_vbank = 1;
- state->m_dbg_lookup = 4;
+ m_planes_enabled[0] = m_planes_enabled[1] = m_planes_enabled[2] = m_planes_enabled[3] = 1;
+ m_dbg_info = 1;
+ m_dbg_gfx_e = 1;
+ m_dbg_clr_e = 0;
+ m_dbg_vbank = 1;
+ m_dbg_lookup = 4;
#endif
- machine.primary_screen->register_screen_bitmap(state->m_tmpbitmaps[0]);
- machine.primary_screen->register_screen_bitmap(state->m_tmpbitmaps[1]);
- machine.primary_screen->register_screen_bitmap(state->m_tmpbitmaps[2]);
- machine.primary_screen->register_screen_bitmap(state->m_tmpbitmaps[3]);
+ machine().primary_screen->register_screen_bitmap(m_tmpbitmaps[0]);
+ machine().primary_screen->register_screen_bitmap(m_tmpbitmaps[1]);
+ machine().primary_screen->register_screen_bitmap(m_tmpbitmaps[2]);
+ machine().primary_screen->register_screen_bitmap(m_tmpbitmaps[3]);
- state->save_item(NAME(state->m_tmpbitmaps[0]));
- state->save_item(NAME(state->m_tmpbitmaps[1]));
- state->save_item(NAME(state->m_tmpbitmaps[2]));
- state->save_item(NAME(state->m_tmpbitmaps[3]));
+ save_item(NAME(m_tmpbitmaps[0]));
+ save_item(NAME(m_tmpbitmaps[1]));
+ save_item(NAME(m_tmpbitmaps[2]));
+ save_item(NAME(m_tmpbitmaps[3]));
}
#ifdef UNUSED_DEFINITION
@@ -1431,78 +1433,76 @@ static INTERRUPT_GEN( sound_interrupt )
*
*************************************/
-static MACHINE_START( mazerbla )
+void mazerbla_state::machine_start()
{
- mazerbla_state *state = machine.driver_data<mazerbla_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_subcpu = machine().device<cpu_device>("sub");
- state->save_item(NAME(state->m_vcu_video_reg));
- state->save_item(NAME(state->m_vcu_gfx_addr));
- state->save_item(NAME(state->m_vcu_gfx_param_addr));
+ save_item(NAME(m_vcu_video_reg));
+ save_item(NAME(m_vcu_gfx_addr));
+ save_item(NAME(m_vcu_gfx_param_addr));
- state->save_item(NAME(state->m_bknd_col));
- state->save_item(NAME(state->m_port02_status));
- state->save_item(NAME(state->m_vbank));
- state->save_item(NAME(state->m_xpos));
- state->save_item(NAME(state->m_ypos));
- state->save_item(NAME(state->m_pix_xsize));
- state->save_item(NAME(state->m_pix_ysize));
- state->save_item(NAME(state->m_color1));
- state->save_item(NAME(state->m_color2));
- state->save_item(NAME(state->m_mode));
- state->save_item(NAME(state->m_plane));
- state->save_item(NAME(state->m_lookup_ram));
- state->save_item(NAME(state->m_gfx_rom_bank));
+ save_item(NAME(m_bknd_col));
+ save_item(NAME(m_port02_status));
+ save_item(NAME(m_vbank));
+ save_item(NAME(m_xpos));
+ save_item(NAME(m_ypos));
+ save_item(NAME(m_pix_xsize));
+ save_item(NAME(m_pix_ysize));
+ save_item(NAME(m_color1));
+ save_item(NAME(m_color2));
+ save_item(NAME(m_mode));
+ save_item(NAME(m_plane));
+ save_item(NAME(m_lookup_ram));
+ save_item(NAME(m_gfx_rom_bank));
- state->save_item(NAME(state->m_ls670_0));
- state->save_item(NAME(state->m_ls670_1));
+ save_item(NAME(m_ls670_0));
+ save_item(NAME(m_ls670_1));
- state->save_item(NAME(state->m_zpu_int_vector));
+ save_item(NAME(m_zpu_int_vector));
- state->save_item(NAME(state->m_bcd_7445));
+ save_item(NAME(m_bcd_7445));
- state->save_item(NAME(state->m_vsb_ls273));
- state->save_item(NAME(state->m_soundlatch));
+ save_item(NAME(m_vsb_ls273));
+ save_item(NAME(m_soundlatch));
}
-static MACHINE_RESET( mazerbla )
+void mazerbla_state::machine_reset()
{
- mazerbla_state *state = machine.driver_data<mazerbla_state>();
int i;
- state->m_zpu_int_vector = 0xff;
-
- state->m_bknd_col = 0xaa;
- state->m_gfx_rom_bank = 0xff;
-
- state->m_vcu_gfx_addr = 0;
- state->m_vcu_gfx_param_addr = 0;
- state->m_port02_status = 0;
- state->m_vbank = 0;
- state->m_xpos = 0;
- state->m_ypos = 0;
- state->m_pix_xsize = 0;
- state->m_pix_ysize = 0;
- state->m_color1 = 0;
- state->m_color2 = 0;
- state->m_mode = 0;
- state->m_plane = 0;
- state->m_bcd_7445 = 0;
- state->m_vsb_ls273 = 0;
- state->m_soundlatch = 0;
+ m_zpu_int_vector = 0xff;
+
+ m_bknd_col = 0xaa;
+ m_gfx_rom_bank = 0xff;
+
+ m_vcu_gfx_addr = 0;
+ m_vcu_gfx_param_addr = 0;
+ m_port02_status = 0;
+ m_vbank = 0;
+ m_xpos = 0;
+ m_ypos = 0;
+ m_pix_xsize = 0;
+ m_pix_ysize = 0;
+ m_color1 = 0;
+ m_color2 = 0;
+ m_mode = 0;
+ m_plane = 0;
+ m_bcd_7445 = 0;
+ m_vsb_ls273 = 0;
+ m_soundlatch = 0;
for (i = 0; i < 4; i++)
{
- state->m_vcu_video_reg[i] = 0;
- state->m_ls670_0[i] = 0;
- state->m_ls670_1[i] = 0;
+ m_vcu_video_reg[i] = 0;
+ m_ls670_0[i] = 0;
+ m_ls670_1[i] = 0;
}
- memset(state->m_lookup_ram, 0, ARRAY_LENGTH(state->m_lookup_ram));
+ memset(m_lookup_ram, 0, ARRAY_LENGTH(m_lookup_ram));
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
}
@@ -1528,8 +1528,6 @@ static MACHINE_CONFIG_START( mazerbla, mazerbla_state )
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
/* synchronization forced on the fly */
- MCFG_MACHINE_START(mazerbla)
- MCFG_MACHINE_RESET(mazerbla)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1541,8 +1539,6 @@ static MACHINE_CONFIG_START( mazerbla, mazerbla_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(mazerbla)
- MCFG_VIDEO_START(mazerbla)
/* sound hardware */
MACHINE_CONFIG_END
@@ -1568,8 +1564,6 @@ static MACHINE_CONFIG_START( greatgun, mazerbla_state )
*/
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(mazerbla)
- MCFG_MACHINE_RESET(mazerbla)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1581,8 +1575,6 @@ static MACHINE_CONFIG_START( greatgun, mazerbla_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(mazerbla)
- MCFG_VIDEO_START(mazerbla)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c
index 3075ab2ecc6..379d1201947 100644
--- a/src/mame/drivers/mcatadv.c
+++ b/src/mame/drivers/mcatadv.c
@@ -425,19 +425,18 @@ static const ym2610_interface mcatadv_ym2610_interface =
};
-static MACHINE_START( mcatadv )
+void mcatadv_state::machine_start()
{
- mcatadv_state *state = machine.driver_data<mcatadv_state>();
- UINT8 *ROM = state->memregion("soundcpu")->base();
+ UINT8 *ROM = memregion("soundcpu")->base();
- state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
- state->membank("bank1")->set_entry(1);
+ membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+ membank("bank1")->set_entry(1);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_soundcpu = machine.device<cpu_device>("soundcpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_soundcpu = machine().device<cpu_device>("soundcpu");
- state->save_item(NAME(state->m_palette_bank1));
- state->save_item(NAME(state->m_palette_bank2));
+ save_item(NAME(m_palette_bank1));
+ save_item(NAME(m_palette_bank2));
}
static MACHINE_CONFIG_START( mcatadv, mcatadv_state )
@@ -451,7 +450,6 @@ static MACHINE_CONFIG_START( mcatadv, mcatadv_state )
MCFG_CPU_PROGRAM_MAP(mcatadv_sound_map)
MCFG_CPU_IO_MAP(mcatadv_sound_io_map)
- MCFG_MACHINE_START(mcatadv)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -467,7 +465,6 @@ static MACHINE_CONFIG_START( mcatadv, mcatadv_state )
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */
- MCFG_VIDEO_START(mcatadv)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c
index 099a0563c2d..3d58c837705 100644
--- a/src/mame/drivers/mcr.c
+++ b/src/mame/drivers/mcr.c
@@ -1832,8 +1832,8 @@ static MACHINE_CONFIG_START( mcr_90009, mcr_state )
MCFG_Z80CTC_ADD("ctc", MAIN_OSC_MCR_I/8 /* same as "maincpu" */, mcr_ctc_intf)
MCFG_WATCHDOG_VBLANK_INIT(16)
- MCFG_MACHINE_START(mcr)
- MCFG_MACHINE_RESET(mcr)
+ MCFG_MACHINE_START_OVERRIDE(mcr_state,mcr)
+ MCFG_MACHINE_RESET_OVERRIDE(mcr_state,mcr)
MCFG_NVRAM_ADD_1FILL("nvram")
/* video hardware */
@@ -1849,7 +1849,7 @@ static MACHINE_CONFIG_START( mcr_90009, mcr_state )
MCFG_GFXDECODE(mcr)
MCFG_PALETTE_LENGTH(32)
- MCFG_VIDEO_START(mcr)
+ MCFG_VIDEO_START_OVERRIDE(mcr_state,mcr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1932,7 +1932,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mcr_91490_ipu, mcr_91490_snt )
/* basic machine hardware */
- MCFG_MACHINE_START(nflfoot)
+ MCFG_MACHINE_START_OVERRIDE(mcr_state,nflfoot)
MCFG_CPU_ADD("ipu", Z80, 7372800/2)
MCFG_CPU_CONFIG(mcr_ipu_daisy_chain)
diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c
index 4f3eca5a10c..8b5684d6149 100644
--- a/src/mame/drivers/mcr3.c
+++ b/src/mame/drivers/mcr3.c
@@ -1086,8 +1086,8 @@ static MACHINE_CONFIG_START( mcrmono, mcr3_state )
MCFG_Z80CTC_ADD("ctc", MASTER_CLOCK/4 /* same as "maincpu" */, mcr_ctc_intf)
MCFG_WATCHDOG_VBLANK_INIT(16)
- MCFG_MACHINE_START(mcr)
- MCFG_MACHINE_RESET(mcr)
+ MCFG_MACHINE_START_OVERRIDE(mcr3_state,mcr)
+ MCFG_MACHINE_RESET_OVERRIDE(mcr3_state,mcr)
MCFG_NVRAM_ADD_0FILL("nvram")
// sound hardware
@@ -1106,7 +1106,7 @@ static MACHINE_CONFIG_START( mcrmono, mcr3_state )
MCFG_GFXDECODE(mcr3)
MCFG_PALETTE_LENGTH(64)
- MCFG_VIDEO_START(mcrmono)
+ MCFG_VIDEO_START_OVERRIDE(mcr3_state,mcrmono)
MACHINE_CONFIG_END
@@ -1156,8 +1156,8 @@ static MACHINE_CONFIG_DERIVED( mcrscroll, mcrmono )
MCFG_GFXDECODE(spyhunt)
MCFG_PALETTE_LENGTH(64+4)
- MCFG_PALETTE_INIT(spyhunt)
- MCFG_VIDEO_START(spyhunt)
+ MCFG_PALETTE_INIT_OVERRIDE(mcr3_state,spyhunt)
+ MCFG_VIDEO_START_OVERRIDE(mcr3_state,spyhunt)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c
index b10c447d6c1..ddc341864d5 100644
--- a/src/mame/drivers/mcr68.c
+++ b/src/mame/drivers/mcr68.c
@@ -968,8 +968,8 @@ static MACHINE_CONFIG_START( zwackery, mcr68_state )
MCFG_CPU_VBLANK_INT("screen", mcr68_interrupt)
// MCFG_WATCHDOG_VBLANK_INIT(8)
- MCFG_MACHINE_START(zwackery)
- MCFG_MACHINE_RESET(zwackery)
+ MCFG_MACHINE_START_OVERRIDE(mcr68_state,zwackery)
+ MCFG_MACHINE_RESET_OVERRIDE(mcr68_state,zwackery)
MCFG_PIA6821_ADD("pia0", zwackery_pia0_intf)
MCFG_PIA6821_ADD("pia1", zwackery_pia1_intf)
@@ -986,7 +986,7 @@ static MACHINE_CONFIG_START( zwackery, mcr68_state )
MCFG_GFXDECODE(zwackery)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(zwackery)
+ MCFG_VIDEO_START_OVERRIDE(mcr68_state,zwackery)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1003,8 +1003,8 @@ static MACHINE_CONFIG_START( mcr68, mcr68_state )
MCFG_CPU_VBLANK_INT("screen", mcr68_interrupt)
MCFG_WATCHDOG_VBLANK_INIT(8)
- MCFG_MACHINE_START(mcr68)
- MCFG_MACHINE_RESET(mcr68)
+ MCFG_MACHINE_START_OVERRIDE(mcr68_state,mcr68)
+ MCFG_MACHINE_RESET_OVERRIDE(mcr68_state,mcr68)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1017,7 +1017,7 @@ static MACHINE_CONFIG_START( mcr68, mcr68_state )
MCFG_GFXDECODE(mcr68)
MCFG_PALETTE_LENGTH(64)
- MCFG_VIDEO_START(mcr68)
+ MCFG_VIDEO_START_OVERRIDE(mcr68_state,mcr68)
/* sound hardware -- determined by specific machine */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/meadows.c b/src/mame/drivers/meadows.c
index ba87fe51584..4ef92188612 100644
--- a/src/mame/drivers/meadows.c
+++ b/src/mame/drivers/meadows.c
@@ -323,10 +323,10 @@ static INTERRUPT_GEN( audio_interrupt )
*
*************************************/
-static PALETTE_INIT( meadows )
+void meadows_state::palette_init()
{
- palette_set_color(machine, 0, RGB_BLACK);
- palette_set_color(machine, 1, RGB_WHITE);
+ palette_set_color(machine(), 0, RGB_BLACK);
+ palette_set_color(machine(), 1, RGB_WHITE);
}
@@ -663,8 +663,6 @@ static MACHINE_CONFIG_START( meadows, meadows_state )
MCFG_GFXDECODE(meadows)
MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT(meadows)
- MCFG_VIDEO_START(meadows)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -695,8 +693,6 @@ static MACHINE_CONFIG_START( minferno, meadows_state )
MCFG_GFXDECODE(minferno)
MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT(meadows)
- MCFG_VIDEO_START(meadows)
/* audio hardware */
MACHINE_CONFIG_END
@@ -724,8 +720,6 @@ static MACHINE_CONFIG_START( bowl3d, meadows_state )
MCFG_GFXDECODE(meadows)
MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT(meadows)
- MCFG_VIDEO_START(meadows)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c
index feddb8bcd72..009c6f6b8ab 100644
--- a/src/mame/drivers/mediagx.c
+++ b/src/mame/drivers/mediagx.c
@@ -183,6 +183,9 @@ public:
DECLARE_WRITE_LINE_MEMBER(mediagx_pic8259_1_set_int_line);
DECLARE_READ8_MEMBER(get_slave_ack);
DECLARE_DRIVER_INIT(a51site4);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
// Display controller registers
@@ -227,12 +230,12 @@ static const rgb_t cga_palette[16] =
MAKE_RGB( 0xff, 0x55, 0x55 ), MAKE_RGB( 0xff, 0x55, 0xff ), MAKE_RGB( 0xff, 0xff, 0x55 ), MAKE_RGB( 0xff, 0xff, 0xff ),
};
-static VIDEO_START(mediagx)
+void mediagx_state::video_start()
{
int i;
for (i=0; i < 16; i++)
{
- palette_set_color(machine, i, cga_palette[i]);
+ palette_set_color(machine(), i, cga_palette[i]);
}
}
@@ -1050,37 +1053,35 @@ static IRQ_CALLBACK(irq_callback)
return pic8259_acknowledge( state->m_pic8259_1);
}
-static MACHINE_START(mediagx)
+void mediagx_state::machine_start()
{
- mediagx_state *state = machine.driver_data<mediagx_state>();
- state->m_pit8254 = machine.device<pit8254_device>( "pit8254" );
- state->m_pic8259_1 = machine.device<pic8259_device>( "pic8259_master" );
- state->m_pic8259_2 = machine.device<pic8259_device>( "pic8259_slave" );
- state->m_dma8237_1 = machine.device<i8237_device>( "dma8237_1" );
- state->m_dma8237_2 = machine.device<i8237_device>( "dma8237_2" );
+ m_pit8254 = machine().device<pit8254_device>( "pit8254" );
+ m_pic8259_1 = machine().device<pic8259_device>( "pic8259_master" );
+ m_pic8259_2 = machine().device<pic8259_device>( "pic8259_slave" );
+ m_dma8237_1 = machine().device<i8237_device>( "dma8237_1" );
+ m_dma8237_2 = machine().device<i8237_device>( "dma8237_2" );
- state->m_dacl = auto_alloc_array(machine, INT16, 65536);
- state->m_dacr = auto_alloc_array(machine, INT16, 65536);
+ m_dacl = auto_alloc_array(machine(), INT16, 65536);
+ m_dacr = auto_alloc_array(machine(), INT16, 65536);
}
-static MACHINE_RESET(mediagx)
+void mediagx_state::machine_reset()
{
- mediagx_state *state = machine.driver_data<mediagx_state>();
- UINT8 *rom = state->memregion("bios")->base();
+ UINT8 *rom = memregion("bios")->base();
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
- memcpy(state->m_bios_ram, rom, 0x40000);
- machine.device("maincpu")->reset();
+ memcpy(m_bios_ram, rom, 0x40000);
+ machine().device("maincpu")->reset();
- timer_device *sound_timer = machine.device<timer_device>("sound_timer");
+ timer_device *sound_timer = machine().device<timer_device>("sound_timer");
sound_timer->adjust(attotime::from_msec(10));
- state->m_dmadac[0] = machine.device<dmadac_sound_device>("dac1");
- state->m_dmadac[1] = machine.device<dmadac_sound_device>("dac2");
- dmadac_enable(&state->m_dmadac[0], 2, 1);
- machine.device("ide")->reset();
+ m_dmadac[0] = machine().device<dmadac_sound_device>("dac1");
+ m_dmadac[1] = machine().device<dmadac_sound_device>("dac2");
+ dmadac_enable(&m_dmadac[0], 2, 1);
+ machine().device("ide")->reset();
}
/*************************************************************
@@ -1165,8 +1166,6 @@ static MACHINE_CONFIG_START( mediagx, mediagx_state )
MCFG_CPU_PROGRAM_MAP(mediagx_map)
MCFG_CPU_IO_MAP(mediagx_io)
- MCFG_MACHINE_START(mediagx)
- MCFG_MACHINE_RESET(mediagx)
MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0)
MCFG_PCI_BUS_LEGACY_DEVICE(18, NULL, cx5510_pci_r, cx5510_pci_w)
@@ -1199,7 +1198,6 @@ static MACHINE_CONFIG_START( mediagx, mediagx_state )
MCFG_GFXDECODE(CGA)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(mediagx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c
index 54cfdf927cd..09020779754 100644
--- a/src/mame/drivers/megaplay.c
+++ b/src/mame/drivers/megaplay.c
@@ -610,11 +610,11 @@ ADDRESS_MAP_END
-static VIDEO_START(megplay)
+VIDEO_START_MEMBER(mplay_state,megplay)
{
//printf("megplay vs\n");
- VIDEO_START_CALL(megadriv);
-// VIDEO_START_CALL(megaplay_normal);
+ VIDEO_START_CALL_LEGACY(megadriv);
+// VIDEO_START_CALL_MEMBER(megaplay_normal);
}
static SCREEN_UPDATE_RGB32(megplay)
@@ -628,14 +628,13 @@ static SCREEN_UPDATE_RGB32(megplay)
//extern SCREEN_VBLANK(megadriv);
-static MACHINE_RESET( megaplay )
+MACHINE_RESET_MEMBER(mplay_state,megaplay)
{
- mplay_state *state = machine.driver_data<mplay_state>();
- state->m_bios_mode = MP_ROM;
- state->m_mp_bios_bank_addr = 0;
- state->m_readpos = 1;
- MACHINE_RESET_CALL(megadriv);
- MACHINE_RESET_CALL(megatech_bios);
+ m_bios_mode = MP_ROM;
+ m_mp_bios_bank_addr = 0;
+ m_readpos = 1;
+ MACHINE_RESET_CALL_LEGACY(megadriv);
+ MACHINE_RESET_CALL_LEGACY(megatech_bios);
}
static SCREEN_VBLANK( megaplay )
@@ -654,7 +653,7 @@ static MACHINE_CONFIG_START( megaplay, mplay_state )
MCFG_CPU_PROGRAM_MAP(megaplay_bios_map)
MCFG_CPU_IO_MAP(megaplay_bios_io_map)
- MCFG_MACHINE_RESET( megaplay )
+ MCFG_MACHINE_RESET_OVERRIDE(mplay_state, megaplay )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
@@ -663,7 +662,7 @@ static MACHINE_CONFIG_START( megaplay, mplay_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker",0.25) /* 3.58 MHz */
/* New update functions to handle the extra layer */
- MCFG_VIDEO_START(megplay)
+ MCFG_VIDEO_START_OVERRIDE(mplay_state,megplay)
MCFG_SCREEN_MODIFY("megadriv")
MCFG_SCREEN_UPDATE_STATIC(megplay)
MCFG_SCREEN_VBLANK_STATIC( megaplay )
diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c
index 180127f54b3..17fc6916f2a 100644
--- a/src/mame/drivers/megasys1.c
+++ b/src/mame/drivers/megasys1.c
@@ -129,20 +129,18 @@ RAM RW 0f0000-0f3fff 0e0000-0effff? <
#include "includes/megasys1.h"
-static MACHINE_RESET( megasys1 )
+MACHINE_RESET_MEMBER(megasys1_state,megasys1)
{
- megasys1_state *state = machine.driver_data<megasys1_state>();
- state->m_ignore_oki_status = 1; /* ignore oki status due 'protection' */
- state->m_ip_select = 0; /* reset protection */
- state->m_mcu_hs = 0;
+ m_ignore_oki_status = 1; /* ignore oki status due 'protection' */
+ m_ip_select = 0; /* reset protection */
+ m_mcu_hs = 0;
}
-static MACHINE_RESET( megasys1_hachoo )
+MACHINE_RESET_MEMBER(megasys1_state,megasys1_hachoo)
{
- megasys1_state *state = machine.driver_data<megasys1_state>();
- state->m_ignore_oki_status = 0; /* strangely hachoo need real oki status */
- state->m_ip_select = 0; /* reset protection */
- state->m_mcu_hs = 0;
+ m_ignore_oki_status = 0; /* strangely hachoo need real oki status */
+ m_ip_select = 0; /* reset protection */
+ m_mcu_hs = 0;
}
@@ -1475,7 +1473,7 @@ static MACHINE_CONFIG_START( system_A, megasys1_state )
MCFG_QUANTUM_TIME(attotime::from_hz(120000))
- MCFG_MACHINE_RESET(megasys1)
+ MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1489,8 +1487,8 @@ static MACHINE_CONFIG_START( system_A, megasys1_state )
MCFG_GFXDECODE(ABC)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(megasys1)
- MCFG_VIDEO_START(megasys1)
+ MCFG_PALETTE_INIT_OVERRIDE(megasys1_state,megasys1)
+ MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1510,7 +1508,7 @@ static MACHINE_CONFIG_START( system_A, megasys1_state )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( system_A_hachoo, system_A )
- MCFG_MACHINE_RESET(megasys1_hachoo)
+ MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1_hachoo)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( system_B, system_A )
@@ -1535,7 +1533,7 @@ static MACHINE_CONFIG_START( system_Bbl, megasys1_state )
MCFG_CPU_PROGRAM_MAP(megasys1B_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", megasys1B_scanline, "screen", 0, 1)
- MCFG_MACHINE_RESET(megasys1)
+ MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1549,8 +1547,8 @@ static MACHINE_CONFIG_START( system_Bbl, megasys1_state )
MCFG_GFXDECODE(ABC)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(megasys1)
- MCFG_VIDEO_START(megasys1)
+ MCFG_PALETTE_INIT_OVERRIDE(megasys1_state,megasys1)
+ MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1607,7 +1605,7 @@ static MACHINE_CONFIG_START( system_D, megasys1_state )
MCFG_CPU_PROGRAM_MAP(megasys1D_map)
MCFG_CPU_VBLANK_INT("screen", megasys1D_irq)
- MCFG_MACHINE_RESET(megasys1)
+ MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1621,8 +1619,8 @@ static MACHINE_CONFIG_START( system_D, megasys1_state )
MCFG_GFXDECODE(ABC)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(megasys1)
- MCFG_VIDEO_START(megasys1)
+ MCFG_PALETTE_INIT_OVERRIDE(megasys1_state,megasys1)
+ MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1683,7 +1681,7 @@ static MACHINE_CONFIG_START( system_Z, megasys1_state )
MCFG_GFXDECODE(Z)
MCFG_PALETTE_LENGTH(768)
- MCFG_VIDEO_START(megasys1)
+ MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/megatech.c b/src/mame/drivers/megatech.c
index 3765ca9f59b..35ffcb54b9f 100644
--- a/src/mame/drivers/megatech.c
+++ b/src/mame/drivers/megatech.c
@@ -439,10 +439,10 @@ DRIVER_INIT_MEMBER(mtech_state,mt_crt)
m_cart_is_genesis[0] = !pin[0] ? 1 : 0;;
}
-static VIDEO_START(mtnew)
+VIDEO_START_MEMBER(mtech_state,mtnew)
{
- init_for_megadrive(machine); // create an sms vdp too, for compatibility mode
- VIDEO_START_CALL(megadriv);
+ init_for_megadrive(machine()); // create an sms vdp too, for compatibility mode
+ VIDEO_START_CALL_LEGACY(megadriv);
}
//attotime::never
@@ -467,14 +467,13 @@ static SCREEN_VBLANK(mtnew)
SCREEN_VBLANK_CALL(megatech_md_sms);
}
-static MACHINE_RESET(mtnew)
+MACHINE_RESET_MEMBER(mtech_state,mtnew)
{
- mtech_state *state = machine.driver_data<mtech_state>();
- state->m_mt_bank_addr = 0;
+ m_mt_bank_addr = 0;
- MACHINE_RESET_CALL(megadriv);
- MACHINE_RESET_CALL(megatech_md_sms);
- megatech_select_game(machine, 0);
+ MACHINE_RESET_CALL_LEGACY(megadriv);
+ MACHINE_RESET_CALL_LEGACY(megatech_md_sms);
+ megatech_select_game(machine(), 0);
}
static SCREEN_UPDATE_RGB32( megatech_menu )
@@ -510,9 +509,9 @@ static MACHINE_CONFIG_START( megatech, mtech_state )
MCFG_CPU_PROGRAM_MAP(megatech_bios_map)
MCFG_CPU_IO_MAP(megatech_bios_portmap)
- MCFG_MACHINE_RESET(mtnew)
+ MCFG_MACHINE_RESET_OVERRIDE(mtech_state,mtnew)
- MCFG_VIDEO_START(mtnew)
+ MCFG_VIDEO_START_OVERRIDE(mtech_state,mtnew)
MCFG_DEFAULT_LAYOUT(layout_dualhovu)
diff --git a/src/mame/drivers/megazone.c b/src/mame/drivers/megazone.c
index 634ca999fe3..2496c77830b 100644
--- a/src/mame/drivers/megazone.c
+++ b/src/mame/drivers/megazone.c
@@ -226,24 +226,22 @@ static const ay8910_interface ay8910_config =
-static MACHINE_START( megazone )
+void megazone_state::machine_start()
{
- megazone_state *state = machine.driver_data<megazone_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_daccpu = machine.device<cpu_device>("daccpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_daccpu = machine().device<cpu_device>("daccpu");
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_i8039_status));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_i8039_status));
}
-static MACHINE_RESET( megazone )
+void megazone_state::machine_reset()
{
- megazone_state *state = machine.driver_data<megazone_state>();
- state->m_flipscreen = 0;
- state->m_i8039_status = 0;
+ m_flipscreen = 0;
+ m_i8039_status = 0;
}
static INTERRUPT_GEN( vblank_irq )
@@ -272,8 +270,6 @@ static MACHINE_CONFIG_START( megazone, megazone_state )
MCFG_CPU_IO_MAP(megazone_i8039_io_map)
MCFG_QUANTUM_TIME(attotime::from_hz(900))
- MCFG_MACHINE_START(megazone)
- MCFG_MACHINE_RESET(megazone)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -286,8 +282,6 @@ static MACHINE_CONFIG_START( megazone, megazone_state )
MCFG_GFXDECODE(megazone)
MCFG_PALETTE_LENGTH(16*16+16*16)
- MCFG_PALETTE_INIT(megazone)
- MCFG_VIDEO_START(megazone)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/meijinsn.c b/src/mame/drivers/meijinsn.c
index 85925b122ef..833b460213e 100644
--- a/src/mame/drivers/meijinsn.c
+++ b/src/mame/drivers/meijinsn.c
@@ -92,6 +92,10 @@ public:
DECLARE_WRITE16_MEMBER(sound_w);
DECLARE_READ16_MEMBER(alpha_mcu_r);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -242,13 +246,13 @@ static INPUT_PORTS_START( meijinsn )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
INPUT_PORTS_END
-static VIDEO_START(meijinsn)
+void meijinsn_state::video_start()
{
}
-static PALETTE_INIT( meijinsn )
+void meijinsn_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
static const int resistances_b[2] = { 470, 220 };
static const int resistances_rg[3] = { 1000, 470, 220 };
@@ -260,7 +264,7 @@ static PALETTE_INIT( meijinsn )
3, resistances_rg, weights_g, 0, 1000+1000,
2, resistances_b, weights_b, 0, 1000+1000);
- for (i = 0; i < machine.total_colors(); i++)
+ for (i = 0; i < machine().total_colors(); i++)
{
int bit0, bit1, bit2, r, g, b;
@@ -281,7 +285,7 @@ static PALETTE_INIT( meijinsn )
bit1 = BIT(color_prom[i], 7);
b = combine_2_weights(weights_b, bit0, bit1);
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -331,22 +335,20 @@ static const ay8910_interface ay8910_config =
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r)
};
-static MACHINE_START( meijinsn )
+void meijinsn_state::machine_start()
{
- meijinsn_state *state = machine.driver_data<meijinsn_state>();
- state->save_item(NAME(state->m_deposits1));
- state->save_item(NAME(state->m_deposits2));
- state->save_item(NAME(state->m_credits));
+ save_item(NAME(m_deposits1));
+ save_item(NAME(m_deposits2));
+ save_item(NAME(m_credits));
}
-static MACHINE_RESET( meijinsn )
+void meijinsn_state::machine_reset()
{
- meijinsn_state *state = machine.driver_data<meijinsn_state>();
- state->m_deposits1 = 0;
- state->m_deposits2 = 0;
- state->m_credits = 0;
+ m_deposits1 = 0;
+ m_deposits2 = 0;
+ m_credits = 0;
}
@@ -362,8 +364,6 @@ static MACHINE_CONFIG_START( meijinsn, meijinsn_state )
MCFG_CPU_IO_MAP(meijinsn_sound_io_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 160*60)
- MCFG_MACHINE_START(meijinsn)
- MCFG_MACHINE_RESET(meijinsn)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -374,9 +374,7 @@ static MACHINE_CONFIG_START( meijinsn, meijinsn_state )
MCFG_SCREEN_UPDATE_STATIC(meijinsn)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(meijinsn)
- MCFG_VIDEO_START(meijinsn)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/merit.c b/src/mame/drivers/merit.c
index 8ac8c3a4f05..ccaaf6b6520 100644
--- a/src/mame/drivers/merit.c
+++ b/src/mame/drivers/merit.c
@@ -94,20 +94,21 @@ public:
DECLARE_DRIVER_INIT(key_0);
DECLARE_DRIVER_INIT(key_2);
DECLARE_DRIVER_INIT(dtrvwz5);
+ virtual void machine_start();
+ DECLARE_MACHINE_START(casino5);
};
-static MACHINE_START(merit)
+void merit_state::machine_start()
{
- merit_state *state = machine.driver_data<merit_state>();
- state->m_question_address = 0;
- state->m_ram_palette = auto_alloc_array(machine, UINT8, RAM_PALETTE_SIZE);
-
- state_save_register_global_pointer(machine, state->m_ram_palette, RAM_PALETTE_SIZE);
- state_save_register_global(machine, state->m_lscnblk);
- state_save_register_global(machine, state->m_extra_video_bank_bit);
- state_save_register_global(machine, state->m_question_address);
- state_save_register_global(machine, state->m_decryption_key);
+ m_question_address = 0;
+ m_ram_palette = auto_alloc_array(machine(), UINT8, RAM_PALETTE_SIZE);
+
+ state_save_register_global_pointer(machine(), m_ram_palette, RAM_PALETTE_SIZE);
+ state_save_register_global(machine(), m_lscnblk);
+ state_save_register_global(machine(), m_extra_video_bank_bit);
+ state_save_register_global(machine(), m_question_address);
+ state_save_register_global(machine(), m_decryption_key);
}
@@ -1213,13 +1214,13 @@ void merit_state::dodge_nvram_init(nvram_device &nvram, void *base, size_t size)
reinterpret_cast<UINT8 *>(base)[0x1040] = 0xc9; /* ret */
}
-static MACHINE_START(casino5)
+MACHINE_START_MEMBER(merit_state,casino5)
{
- MACHINE_START_CALL(merit);
- machine.root_device().membank("bank1")->configure_entries(0, 2, machine.root_device().memregion("maincpu")->base() + 0x2000, 0x2000);
- machine.root_device().membank("bank2")->configure_entries(0, 2, machine.root_device().memregion("maincpu")->base() + 0x6000, 0x2000);
- machine.root_device().membank("bank1")->set_entry(0);
- machine.root_device().membank("bank2")->set_entry(0);
+ merit_state::machine_start();
+ machine().root_device().membank("bank1")->configure_entries(0, 2, machine().root_device().memregion("maincpu")->base() + 0x2000, 0x2000);
+ machine().root_device().membank("bank2")->configure_entries(0, 2, machine().root_device().memregion("maincpu")->base() + 0x6000, 0x2000);
+ machine().root_device().membank("bank1")->set_entry(0);
+ machine().root_device().membank("bank2")->set_entry(0);
}
static MACHINE_CONFIG_START( pitboss, merit_state )
@@ -1230,7 +1231,6 @@ static MACHINE_CONFIG_START( pitboss, merit_state )
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf )
MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf )
- MCFG_MACHINE_START(merit)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1255,7 +1255,7 @@ static MACHINE_CONFIG_DERIVED( casino5, pitboss )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_MACHINE_START(casino5)
+ MCFG_MACHINE_START_OVERRIDE(merit_state,casino5)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( bigappg, pitboss )
diff --git a/src/mame/drivers/meritm.c b/src/mame/drivers/meritm.c
index 937e8f51155..0d3fcda4f17 100644
--- a/src/mame/drivers/meritm.c
+++ b/src/mame/drivers/meritm.c
@@ -233,6 +233,12 @@ public:
DECLARE_DRIVER_INIT(megat2);
DECLARE_DRIVER_INIT(pbst30);
DECLARE_DRIVER_INIT(megat3te);
+ virtual void machine_start();
+ virtual void video_start();
+ DECLARE_MACHINE_START(meritm_crt250_questions);
+ DECLARE_MACHINE_START(meritm_crt250_crt252_crt258);
+ DECLARE_MACHINE_START(meritm_crt260);
+ DECLARE_MACHINE_START(merit_common);
};
@@ -445,15 +451,14 @@ static void meritm_vdp1_interrupt(device_t *, v99x8_device &device, int i)
}
-static VIDEO_START( meritm )
+void meritm_state::video_start()
{
- meritm_state *state = machine.driver_data<meritm_state>();
- state->m_layer0_enabled = state->m_layer1_enabled = 1;
+ m_layer0_enabled = m_layer1_enabled = 1;
- state->m_vint = 0x18;
- state_save_register_global(machine, state->m_vint);
- state_save_register_global(machine, state->m_interrupt_vdp0_state);
- state_save_register_global(machine, state->m_interrupt_vdp1_state);
+ m_vint = 0x18;
+ state_save_register_global(machine(), m_vint);
+ state_save_register_global(machine(), m_interrupt_vdp0_state);
+ state_save_register_global(machine(), m_interrupt_vdp1_state);
}
static SCREEN_UPDATE_IND16( meritm )
@@ -1088,57 +1093,53 @@ static const z80_daisy_config meritm_daisy_chain[] =
{ NULL }
};
-static MACHINE_START(merit_common)
+MACHINE_START_MEMBER(meritm_state,merit_common)
{
- meritm_state *state = machine.driver_data<meritm_state>();
- state->m_z80pio_0->strobe_a(1);
- state->m_z80pio_0->strobe_b(1);
- state->m_z80pio_1->strobe_a(1);
- state->m_z80pio_1->strobe_b(1);
+ m_z80pio_0->strobe_a(1);
+ m_z80pio_0->strobe_b(1);
+ m_z80pio_1->strobe_a(1);
+ m_z80pio_1->strobe_b(1);
};
-static MACHINE_START(meritm_crt250)
+void meritm_state::machine_start()
{
- meritm_state *state = machine.driver_data<meritm_state>();
- state->membank("bank1")->configure_entries(0, 8, state->memregion("maincpu")->base(), 0x10000);
- state->m_bank = 0xff;
- meritm_crt250_switch_banks(machine);
- MACHINE_START_CALL(merit_common);
- state_save_register_global(machine, state->m_bank);
+ membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base(), 0x10000);
+ m_bank = 0xff;
+ meritm_crt250_switch_banks(machine());
+ MACHINE_START_CALL_MEMBER(merit_common);
+ state_save_register_global(machine(), m_bank);
};
-static MACHINE_START(meritm_crt250_questions)
+MACHINE_START_MEMBER(meritm_state,meritm_crt250_questions)
{
- meritm_state *state = machine.driver_data<meritm_state>();
- MACHINE_START_CALL(meritm_crt250);
- state_save_register_global(machine, state->m_questions_loword_address);
+ meritm_state::machine_start();
+ state_save_register_global(machine(), m_questions_loword_address);
};
-static MACHINE_START(meritm_crt250_crt252_crt258)
+MACHINE_START_MEMBER(meritm_state,meritm_crt250_crt252_crt258)
{
- MACHINE_START_CALL(meritm_crt250_questions);
- pc16552d_init(machine, 0, UART_CLK, NULL, pc16650d_tx_callback);
+ MACHINE_START_CALL_MEMBER(meritm_crt250_questions);
+ pc16552d_init(machine(), 0, UART_CLK, NULL, pc16650d_tx_callback);
}
-static MACHINE_START(meritm_crt260)
+MACHINE_START_MEMBER(meritm_state,meritm_crt260)
{
- meritm_state *state = machine.driver_data<meritm_state>();
- state->m_ram = auto_alloc_array(machine, UINT8, 0x8000 );
- machine.device<nvram_device>("nvram")->set_base(state->m_ram, 0x8000);
- memset(state->m_ram, 0x00, 0x8000);
- state->membank("bank1")->configure_entries(0, 128, state->memregion("maincpu")->base(), 0x8000);
- state->membank("bank2")->configure_entries(0, 128, state->memregion("maincpu")->base(), 0x8000);
- state->membank("bank3")->configure_entries(0, 4, state->m_ram, 0x2000);
- state->m_bank = 0xff;
- state->m_psd_a15 = 0;
- meritm_switch_banks(machine);
- MACHINE_START_CALL(merit_common);
- pc16552d_init(machine, 0, UART_CLK, NULL, pc16650d_tx_callback);
- state_save_register_global(machine, state->m_bank);
- state_save_register_global(machine, state->m_psd_a15);
- state_save_register_global_pointer(machine, state->m_ram, 0x8000);
+ m_ram = auto_alloc_array(machine(), UINT8, 0x8000 );
+ machine().device<nvram_device>("nvram")->set_base(m_ram, 0x8000);
+ memset(m_ram, 0x00, 0x8000);
+ membank("bank1")->configure_entries(0, 128, memregion("maincpu")->base(), 0x8000);
+ membank("bank2")->configure_entries(0, 128, memregion("maincpu")->base(), 0x8000);
+ membank("bank3")->configure_entries(0, 4, m_ram, 0x2000);
+ m_bank = 0xff;
+ m_psd_a15 = 0;
+ meritm_switch_banks(machine());
+ MACHINE_START_CALL_MEMBER(merit_common);
+ pc16552d_init(machine(), 0, UART_CLK, NULL, pc16650d_tx_callback);
+ state_save_register_global(machine(), m_bank);
+ state_save_register_global(machine(), m_psd_a15);
+ state_save_register_global_pointer(machine(), m_ram, 0x8000);
};
// from MSX2 driver, may be not accurate for merit games
@@ -1172,7 +1173,6 @@ static MACHINE_CONFIG_START( meritm_crt250, meritm_state )
MCFG_CPU_CONFIG(meritm_daisy_chain)
MCFG_TIMER_ADD_SCANLINE("scantimer", meritm_interrupt, "screen", 0, 1)
- MCFG_MACHINE_START(meritm_crt250)
MCFG_I8255A_ADD( "ppi8255", crt250_ppi8255_intf )
@@ -1203,7 +1203,6 @@ static MACHINE_CONFIG_START( meritm_crt250, meritm_state )
MCFG_PALETTE_INIT( v9938 )
- MCFG_VIDEO_START(meritm)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1217,13 +1216,13 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( meritm_crt250_questions, meritm_crt250 )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(meritm_crt250_questions_map)
- MCFG_MACHINE_START(meritm_crt250_questions)
+ MCFG_MACHINE_START_OVERRIDE(meritm_state,meritm_crt250_questions)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( meritm_crt250_crt252_crt258, meritm_crt250_questions )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(meritm_crt250_crt258_io_map)
- MCFG_MACHINE_START(meritm_crt250_crt252_crt258)
+ MCFG_MACHINE_START_OVERRIDE(meritm_state,meritm_crt250_crt252_crt258)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( meritm_crt260, meritm_crt250 )
@@ -1235,7 +1234,7 @@ static MACHINE_CONFIG_DERIVED( meritm_crt260, meritm_crt250 )
MCFG_I8255A_ADD( "ppi8255", crt260_ppi8255_intf )
MCFG_WATCHDOG_TIME_INIT(attotime::from_msec(1200)) // DS1232, TD connected to VCC
- MCFG_MACHINE_START(meritm_crt260)
+ MCFG_MACHINE_START_OVERRIDE(meritm_state,meritm_crt260)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mermaid.c b/src/mame/drivers/mermaid.c
index da08f4b861c..8feb2212118 100644
--- a/src/mame/drivers/mermaid.c
+++ b/src/mame/drivers/mermaid.c
@@ -362,46 +362,44 @@ GFXDECODE_END
/* Machine Driver */
-static MACHINE_START( mermaid )
+void mermaid_state::machine_start()
{
- mermaid_state *state = machine.driver_data<mermaid_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_ay1 = machine.device("ay1");
- state->m_ay2 = machine.device("ay2");
-
- state->save_item(NAME(state->m_coll_bit0));
- state->save_item(NAME(state->m_coll_bit1));
- state->save_item(NAME(state->m_coll_bit2));
- state->save_item(NAME(state->m_coll_bit3));
- state->save_item(NAME(state->m_coll_bit6));
- state->save_item(NAME(state->m_rougien_gfxbank1));
- state->save_item(NAME(state->m_rougien_gfxbank2));
-
- state->save_item(NAME(state->m_adpcm_pos));
- state->save_item(NAME(state->m_adpcm_end));
- state->save_item(NAME(state->m_adpcm_idle));
- state->save_item(NAME(state->m_adpcm_data));
- state->save_item(NAME(state->m_adpcm_trigger));
- state->save_item(NAME(state->m_adpcm_rom_sel));
- state->save_item(NAME(state->m_adpcm_play_reg));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_ay1 = machine().device("ay1");
+ m_ay2 = machine().device("ay2");
+
+ save_item(NAME(m_coll_bit0));
+ save_item(NAME(m_coll_bit1));
+ save_item(NAME(m_coll_bit2));
+ save_item(NAME(m_coll_bit3));
+ save_item(NAME(m_coll_bit6));
+ save_item(NAME(m_rougien_gfxbank1));
+ save_item(NAME(m_rougien_gfxbank2));
+
+ save_item(NAME(m_adpcm_pos));
+ save_item(NAME(m_adpcm_end));
+ save_item(NAME(m_adpcm_idle));
+ save_item(NAME(m_adpcm_data));
+ save_item(NAME(m_adpcm_trigger));
+ save_item(NAME(m_adpcm_rom_sel));
+ save_item(NAME(m_adpcm_play_reg));
}
-static MACHINE_RESET( mermaid )
+void mermaid_state::machine_reset()
{
- mermaid_state *state = machine.driver_data<mermaid_state>();
-
- state->m_coll_bit0 = 0;
- state->m_coll_bit1 = 0;
- state->m_coll_bit2 = 0;
- state->m_coll_bit3 = 0;
- state->m_coll_bit6 = 0;
- state->m_rougien_gfxbank1 = 0;
- state->m_rougien_gfxbank2 = 0;
-
- state->m_adpcm_idle = 1;
- state->m_adpcm_rom_sel = 0;
- state->m_adpcm_play_reg = 0;
+
+ m_coll_bit0 = 0;
+ m_coll_bit1 = 0;
+ m_coll_bit2 = 0;
+ m_coll_bit3 = 0;
+ m_coll_bit6 = 0;
+ m_rougien_gfxbank1 = 0;
+ m_rougien_gfxbank2 = 0;
+
+ m_adpcm_idle = 1;
+ m_adpcm_rom_sel = 0;
+ m_adpcm_play_reg = 0;
}
/* Similar to Jantotsu, apparently the HW has three ports that controls what kind of sample should be played. Every sample size is 0x1000. */
@@ -456,8 +454,6 @@ static MACHINE_CONFIG_START( mermaid, mermaid_state )
MCFG_CPU_PROGRAM_MAP(mermaid_map)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_START(mermaid)
- MCFG_MACHINE_RESET(mermaid)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -471,8 +467,6 @@ static MACHINE_CONFIG_START( mermaid, mermaid_state )
MCFG_GFXDECODE(mermaid)
MCFG_PALETTE_LENGTH(4*16+2*2)
- MCFG_PALETTE_INIT(mermaid)
- MCFG_VIDEO_START(mermaid)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -490,7 +484,7 @@ static MACHINE_CONFIG_DERIVED( rougien, mermaid )
MCFG_DEVICE_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(rougien_map)
- MCFG_PALETTE_INIT(rougien)
+ MCFG_PALETTE_INIT_OVERRIDE(mermaid_state,rougien)
MCFG_SOUND_ADD("adpcm", MSM5205, 384000)
MCFG_SOUND_CONFIG(msm5205_config)
diff --git a/src/mame/drivers/metalmx.c b/src/mame/drivers/metalmx.c
index 3aa90cf3339..37835e6a720 100644
--- a/src/mame/drivers/metalmx.c
+++ b/src/mame/drivers/metalmx.c
@@ -264,7 +264,7 @@ Logic:
*
*************************************/
-static MACHINE_RESET( metalmx );
+
/*************************************
@@ -273,7 +273,7 @@ static MACHINE_RESET( metalmx );
*
*************************************/
-static VIDEO_START( metalmx )
+void metalmx_state::video_start()
{
}
@@ -750,7 +750,6 @@ static MACHINE_CONFIG_START( metalmx, metalmx_state )
MCFG_CPU_CONFIG(dsp32c_config)
MCFG_CPU_PROGRAM_MAP(dsp32c_2_map)
- MCFG_MACHINE_RESET(metalmx)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -762,7 +761,6 @@ static MACHINE_CONFIG_START( metalmx, metalmx_state )
MCFG_PALETTE_LENGTH(65536)
MCFG_PALETTE_INIT(RRRRR_GGGGGG_BBBBB)
- MCFG_VIDEO_START(metalmx)
MCFG_FRAGMENT_ADD(cage)
MACHINE_CONFIG_END
@@ -778,12 +776,11 @@ DRIVER_INIT_MEMBER(metalmx_state,metalmx)
cage_set_irq_handler(cage_irq_callback);
}
-static MACHINE_RESET( metalmx )
+void metalmx_state::machine_reset()
{
- metalmx_state *state = machine.driver_data<metalmx_state>();
- state->m_dsp32c_1->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- state->m_dsp32c_2->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ m_dsp32c_1->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ m_dsp32c_2->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
diff --git a/src/mame/drivers/metlclsh.c b/src/mame/drivers/metlclsh.c
index fcfc60f6b2d..e866e8e7455 100644
--- a/src/mame/drivers/metlclsh.c
+++ b/src/mame/drivers/metlclsh.c
@@ -260,25 +260,23 @@ static const ym3526_interface ym3526_config =
};
-static MACHINE_START( metlclsh )
+void metlclsh_state::machine_start()
{
- metlclsh_state *state = machine.driver_data<metlclsh_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_subcpu = machine().device<cpu_device>("sub");
- state->save_item(NAME(state->m_write_mask));
- state->save_item(NAME(state->m_gfxbank));
+ save_item(NAME(m_write_mask));
+ save_item(NAME(m_gfxbank));
}
-static MACHINE_RESET( metlclsh )
+void metlclsh_state::machine_reset()
{
- metlclsh_state *state = machine.driver_data<metlclsh_state>();
- state->flip_screen_set(0);
+ flip_screen_set(0);
- state->m_write_mask = 0;
- state->m_gfxbank = 0;
+ m_write_mask = 0;
+ m_gfxbank = 0;
}
static MACHINE_CONFIG_START( metlclsh, metlclsh_state )
@@ -292,8 +290,6 @@ static MACHINE_CONFIG_START( metlclsh, metlclsh_state )
MCFG_CPU_PROGRAM_MAP(metlclsh_slave_map)
// IRQ by cpu #1, NMI by coins insertion
- MCFG_MACHINE_START(metlclsh)
- MCFG_MACHINE_RESET(metlclsh)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -306,7 +302,6 @@ static MACHINE_CONFIG_START( metlclsh, metlclsh_state )
MCFG_GFXDECODE(metlclsh)
MCFG_PALETTE_LENGTH(3 * 16)
- MCFG_VIDEO_START(metlclsh)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c
index e56f9d8f4f3..69f3ee0a20a 100644
--- a/src/mame/drivers/metro.c
+++ b/src/mame/drivers/metro.c
@@ -3384,31 +3384,29 @@ GFXDECODE_END
***************************************************************************/
-static MACHINE_START( metro )
+MACHINE_START_MEMBER(metro_state,metro)
{
- metro_state *state = machine.driver_data<metro_state>();
- state->save_item(NAME(state->m_blitter_bit));
- state->save_item(NAME(state->m_irq_line));
- state->save_item(NAME(state->m_requested_int));
- state->save_item(NAME(state->m_soundstatus));
- state->save_item(NAME(state->m_porta));
- state->save_item(NAME(state->m_portb));
- state->save_item(NAME(state->m_busy_sndcpu));
- state->save_item(NAME(state->m_gakusai_oki_bank_lo));
- state->save_item(NAME(state->m_gakusai_oki_bank_hi));
- state->save_item(NAME(state->m_sprite_xoffs));
- state->save_item(NAME(state->m_sprite_yoffs));
- state->save_item(NAME(state->m_bg_tilemap_enable));
- state->save_item(NAME(state->m_bg_tilemap_enable16));
+ save_item(NAME(m_blitter_bit));
+ save_item(NAME(m_irq_line));
+ save_item(NAME(m_requested_int));
+ save_item(NAME(m_soundstatus));
+ save_item(NAME(m_porta));
+ save_item(NAME(m_portb));
+ save_item(NAME(m_busy_sndcpu));
+ save_item(NAME(m_gakusai_oki_bank_lo));
+ save_item(NAME(m_gakusai_oki_bank_hi));
+ save_item(NAME(m_sprite_xoffs));
+ save_item(NAME(m_sprite_yoffs));
+ save_item(NAME(m_bg_tilemap_enable));
+ save_item(NAME(m_bg_tilemap_enable16));
}
-static MACHINE_RESET( metro )
+MACHINE_RESET_MEMBER(metro_state,metro)
{
- metro_state *state = machine.driver_data<metro_state>();
- if (state->m_irq_line == -1)
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(metro_irq_callback);
+ if (m_irq_line == -1)
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(metro_irq_callback);
}
@@ -3426,8 +3424,8 @@ static MACHINE_CONFIG_START( balcube, metro_state )
MCFG_CPU_VBLANK_INT("screen", metro_vblank_interrupt)
MCFG_CPU_PERIODIC_INT(metro_periodic_interrupt, 8*60) // ?
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3440,7 +3438,7 @@ static MACHINE_CONFIG_START( balcube, metro_state )
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4220)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3460,8 +3458,8 @@ static MACHINE_CONFIG_START( daitoa, metro_state )
MCFG_CPU_VBLANK_INT("screen", metro_vblank_interrupt)
MCFG_CPU_PERIODIC_INT(metro_periodic_interrupt, 8*60) // ?
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3474,7 +3472,7 @@ static MACHINE_CONFIG_START( daitoa, metro_state )
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4220)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3494,8 +3492,8 @@ static MACHINE_CONFIG_START( msgogo, metro_state )
MCFG_CPU_VBLANK_INT("screen", metro_vblank_interrupt) // timing is off, shaking sprites in intro
MCFG_CPU_PERIODIC_INT(metro_periodic_interrupt, 60) // ?
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3508,7 +3506,7 @@ static MACHINE_CONFIG_START( msgogo, metro_state )
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4220)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3528,8 +3526,8 @@ static MACHINE_CONFIG_START( bangball, metro_state )
MCFG_CPU_VBLANK_INT("screen", metro_vblank_interrupt)
MCFG_CPU_PERIODIC_INT(metro_periodic_interrupt, 60) // ?
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3542,7 +3540,7 @@ static MACHINE_CONFIG_START( bangball, metro_state )
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4220)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3562,8 +3560,8 @@ static MACHINE_CONFIG_START( batlbubl, metro_state )
MCFG_CPU_VBLANK_INT("screen", metro_vblank_interrupt)
MCFG_CPU_PERIODIC_INT(metro_periodic_interrupt, 60) // ?
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3576,7 +3574,7 @@ static MACHINE_CONFIG_START( batlbubl, metro_state )
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4220)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3600,8 +3598,8 @@ static MACHINE_CONFIG_START( daitorid, metro_state )
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
MCFG_CPU_IO_MAP(daitorid_sound_io_map)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3614,7 +3612,7 @@ static MACHINE_CONFIG_START( daitorid, metro_state )
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4220)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3643,8 +3641,8 @@ static MACHINE_CONFIG_START( dharma, metro_state )
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
MCFG_CPU_IO_MAP(metro_sound_io_map)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3657,7 +3655,7 @@ static MACHINE_CONFIG_START( dharma, metro_state )
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4100)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3685,8 +3683,8 @@ static MACHINE_CONFIG_START( karatour, metro_state )
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
MCFG_CPU_IO_MAP(metro_sound_io_map)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3699,7 +3697,7 @@ static MACHINE_CONFIG_START( karatour, metro_state )
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4100)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3727,8 +3725,8 @@ static MACHINE_CONFIG_START( 3kokushi, metro_state )
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
MCFG_CPU_IO_MAP(metro_sound_io_map)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3741,7 +3739,7 @@ static MACHINE_CONFIG_START( 3kokushi, metro_state )
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4220)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3769,8 +3767,8 @@ static MACHINE_CONFIG_START( lastfort, metro_state )
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
MCFG_CPU_IO_MAP(metro_sound_io_map)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3783,7 +3781,7 @@ static MACHINE_CONFIG_START( lastfort, metro_state )
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4100)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3810,8 +3808,8 @@ static MACHINE_CONFIG_START( lastforg, metro_state )
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
MCFG_CPU_IO_MAP(metro_sound_io_map)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3824,7 +3822,7 @@ static MACHINE_CONFIG_START( lastforg, metro_state )
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4100)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3845,8 +3843,8 @@ static MACHINE_CONFIG_START( dokyusei, metro_state )
MCFG_CPU_PROGRAM_MAP(dokyusei_map)
MCFG_CPU_VBLANK_INT("screen", metro_vblank_interrupt)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3859,7 +3857,7 @@ static MACHINE_CONFIG_START( dokyusei, metro_state )
MCFG_GFXDECODE(i4300)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4300)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3880,8 +3878,8 @@ static MACHINE_CONFIG_START( dokyusp, metro_state )
MCFG_CPU_PROGRAM_MAP(dokyusp_map)
MCFG_CPU_VBLANK_INT("screen", metro_vblank_interrupt)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
MCFG_EEPROM_93C46_ADD("eeprom")
/* video hardware */
@@ -3895,7 +3893,7 @@ static MACHINE_CONFIG_START( dokyusp, metro_state )
MCFG_GFXDECODE(i4300)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4300)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3917,8 +3915,8 @@ static MACHINE_CONFIG_START( gakusai, metro_state )
MCFG_CPU_PROGRAM_MAP(gakusai_map)
MCFG_CPU_VBLANK_INT("screen", metro_vblank_interrupt)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
MCFG_EEPROM_93C46_ADD("eeprom")
/* video hardware */
@@ -3932,7 +3930,7 @@ static MACHINE_CONFIG_START( gakusai, metro_state )
MCFG_GFXDECODE(i4300)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4300)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3954,8 +3952,8 @@ static MACHINE_CONFIG_START( gakusai2, metro_state )
MCFG_CPU_PROGRAM_MAP(gakusai2_map)
MCFG_CPU_VBLANK_INT("screen", metro_vblank_interrupt)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
MCFG_EEPROM_93C46_ADD("eeprom")
/* video hardware */
@@ -3969,7 +3967,7 @@ static MACHINE_CONFIG_START( gakusai2, metro_state )
MCFG_GFXDECODE(i4300)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4300)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3997,8 +3995,8 @@ static MACHINE_CONFIG_START( pangpoms, metro_state )
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
MCFG_CPU_IO_MAP(metro_sound_io_map)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -4011,7 +4009,7 @@ static MACHINE_CONFIG_START( pangpoms, metro_state )
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4100)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4039,8 +4037,8 @@ static MACHINE_CONFIG_START( poitto, metro_state )
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
MCFG_CPU_IO_MAP(metro_sound_io_map)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -4053,7 +4051,7 @@ static MACHINE_CONFIG_START( poitto, metro_state )
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4100)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4081,8 +4079,8 @@ static MACHINE_CONFIG_START( pururun, metro_state )
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
MCFG_CPU_IO_MAP(daitorid_sound_io_map)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -4095,7 +4093,7 @@ static MACHINE_CONFIG_START( pururun, metro_state )
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4100)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4124,8 +4122,8 @@ static MACHINE_CONFIG_START( skyalert, metro_state )
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
MCFG_CPU_IO_MAP(metro_sound_io_map)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -4138,7 +4136,7 @@ static MACHINE_CONFIG_START( skyalert, metro_state )
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4100)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4166,8 +4164,8 @@ static MACHINE_CONFIG_START( toride2g, metro_state )
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
MCFG_CPU_IO_MAP(metro_sound_io_map)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -4180,7 +4178,7 @@ static MACHINE_CONFIG_START( toride2g, metro_state )
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4100)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4202,8 +4200,8 @@ static MACHINE_CONFIG_START( mouja, metro_state )
MCFG_CPU_PROGRAM_MAP(mouja_map)
MCFG_CPU_VBLANK_INT("screen", metro_vblank_interrupt)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -4216,7 +4214,7 @@ static MACHINE_CONFIG_START( mouja, metro_state )
MCFG_GFXDECODE(i4300)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4300)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4247,8 +4245,8 @@ static MACHINE_CONFIG_START( blzntrnd, metro_state )
MCFG_CPU_PROGRAM_MAP(blzntrnd_sound_map)
MCFG_CPU_IO_MAP(blzntrnd_sound_io_map)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -4261,7 +4259,7 @@ static MACHINE_CONFIG_START( blzntrnd, metro_state )
MCFG_GFXDECODE(blzntrnd)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(blzntrnd)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,blzntrnd)
MCFG_K053936_ADD("k053936", blzntrnd_k053936_intf)
@@ -4295,8 +4293,8 @@ static MACHINE_CONFIG_START( gstrik2, metro_state )
MCFG_CPU_PROGRAM_MAP(blzntrnd_sound_map)
MCFG_CPU_IO_MAP(blzntrnd_sound_io_map)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -4309,7 +4307,7 @@ static MACHINE_CONFIG_START( gstrik2, metro_state )
MCFG_GFXDECODE(gstrik2)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(gstrik2)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,gstrik2)
MCFG_K053936_ADD("k053936", gstrik2_k053936_intf)
@@ -4333,8 +4331,8 @@ static MACHINE_CONFIG_START( puzzlet, metro_state )
MCFG_CPU_IO_MAP(puzzlet_io_map)
MCFG_CPU_VBLANK_INT("screen", puzzlet_interrupt)
- MCFG_MACHINE_START(metro)
- MCFG_MACHINE_RESET(metro)
+ MCFG_MACHINE_START_OVERRIDE(metro_state,metro)
+ MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -4347,7 +4345,7 @@ static MACHINE_CONFIG_START( puzzlet, metro_state )
MCFG_GFXDECODE(i4300)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(metro_i4300)
+ MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/mexico86.c b/src/mame/drivers/mexico86.c
index bb3c9d4a0b1..c02d431cdb3 100644
--- a/src/mame/drivers/mexico86.c
+++ b/src/mame/drivers/mexico86.c
@@ -419,56 +419,54 @@ static const ym2203_interface ym2203_config =
*
*************************************/
-static MACHINE_START( mexico86 )
+void mexico86_state::machine_start()
{
- mexico86_state *state = machine.driver_data<mexico86_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
-
- state->membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000);
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
- state->m_mcu = machine.device("mcu");
-
- state->save_item(NAME(state->m_port_a_in));
- state->save_item(NAME(state->m_port_a_out));
- state->save_item(NAME(state->m_ddr_a));
- state->save_item(NAME(state->m_port_b_in));
- state->save_item(NAME(state->m_port_b_out));
- state->save_item(NAME(state->m_ddr_b));
- state->save_item(NAME(state->m_address));
- state->save_item(NAME(state->m_latch));
-
- state->save_item(NAME(state->m_mcu_running));
- state->save_item(NAME(state->m_mcu_initialised));
- state->save_item(NAME(state->m_coin_last));
-
- state->save_item(NAME(state->m_charbank));
+ UINT8 *ROM = memregion("maincpu")->base();
+
+ membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000);
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_subcpu = machine().device<cpu_device>("sub");
+ m_mcu = machine().device("mcu");
+
+ save_item(NAME(m_port_a_in));
+ save_item(NAME(m_port_a_out));
+ save_item(NAME(m_ddr_a));
+ save_item(NAME(m_port_b_in));
+ save_item(NAME(m_port_b_out));
+ save_item(NAME(m_ddr_b));
+ save_item(NAME(m_address));
+ save_item(NAME(m_latch));
+
+ save_item(NAME(m_mcu_running));
+ save_item(NAME(m_mcu_initialised));
+ save_item(NAME(m_coin_last));
+
+ save_item(NAME(m_charbank));
}
-static MACHINE_RESET( mexico86 )
+void mexico86_state::machine_reset()
{
- mexico86_state *state = machine.driver_data<mexico86_state>();
/*TODO: check the PCB and see how the halt / reset lines are connected. */
- if (machine.device("sub") != NULL)
- machine.device("sub")->execute().set_input_line(INPUT_LINE_RESET, (state->ioport("DSW1")->read() & 0x80) ? ASSERT_LINE : CLEAR_LINE);
-
- state->m_port_a_in = 0;
- state->m_port_a_out = 0;
- state->m_ddr_a = 0;
- state->m_port_b_in = 0;
- state->m_port_b_out = 0;
- state->m_ddr_b = 0;
- state->m_address = 0;
- state->m_latch = 0;
-
- state->m_mcu_running = 0;
- state->m_mcu_initialised = 0;
- state->m_coin_last = 0;
-
- state->m_charbank = 0;
+ if (machine().device("sub") != NULL)
+ machine().device("sub")->execute().set_input_line(INPUT_LINE_RESET, (ioport("DSW1")->read() & 0x80) ? ASSERT_LINE : CLEAR_LINE);
+
+ m_port_a_in = 0;
+ m_port_a_out = 0;
+ m_ddr_a = 0;
+ m_port_b_in = 0;
+ m_port_b_out = 0;
+ m_ddr_b = 0;
+ m_address = 0;
+ m_latch = 0;
+
+ m_mcu_running = 0;
+ m_mcu_initialised = 0;
+ m_coin_last = 0;
+
+ m_charbank = 0;
}
static MACHINE_CONFIG_START( mexico86, mexico86_state )
@@ -491,8 +489,6 @@ static MACHINE_CONFIG_START( mexico86, mexico86_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
- MCFG_MACHINE_START(mexico86)
- MCFG_MACHINE_RESET(mexico86)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/meyc8088.c b/src/mame/drivers/meyc8088.c
index a14eaf48b49..12cf8b32cbf 100644
--- a/src/mame/drivers/meyc8088.c
+++ b/src/mame/drivers/meyc8088.c
@@ -62,6 +62,7 @@ public:
DECLARE_WRITE8_MEMBER(meyc8088_common_w);
DECLARE_WRITE_LINE_MEMBER(meyc8088_sound_out);
+ virtual void palette_init();
};
@@ -111,14 +112,14 @@ static const res_net_info meyc8088_net_info =
}
};
-PALETTE_INIT( meyc8088 )
+void meyc8088_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
rgb_t *rgb;
- rgb = compute_res_net_all(machine, color_prom, &meyc8088_decode_info, &meyc8088_net_info);
- palette_set_colors(machine, 0, rgb, 32);
- auto_free(machine, rgb);
+ rgb = compute_res_net_all(machine(), color_prom, &meyc8088_decode_info, &meyc8088_net_info);
+ palette_set_colors(machine(), 0, rgb, 32);
+ auto_free(machine(), rgb);
}
static SCREEN_UPDATE_IND16( meyc8088 )
@@ -389,7 +390,6 @@ static MACHINE_CONFIG_START( meyc8088, meyc8088_state )
MCFG_SCREEN_VBLANK_STATIC(meyc8088)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(meyc8088)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c
index bd54149b05c..1a9796bc45c 100644
--- a/src/mame/drivers/mgolf.c
+++ b/src/mame/drivers/mgolf.c
@@ -34,6 +34,10 @@ public:
DECLARE_READ8_MEMBER(mgolf_misc_r);
DECLARE_WRITE8_MEMBER(mgolf_wram_w);
TILE_GET_INFO_MEMBER(get_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -52,10 +56,9 @@ WRITE8_MEMBER(mgolf_state::mgolf_vram_w)
}
-static VIDEO_START( mgolf )
+void mgolf_state::video_start()
{
- mgolf_state *state = machine.driver_data<mgolf_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mgolf_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mgolf_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -255,12 +258,12 @@ static INPUT_PORTS_START( mgolf )
INPUT_PORTS_END
-static PALETTE_INIT( mgolf )
+void mgolf_state::palette_init()
{
- palette_set_color(machine, 0, MAKE_RGB(0x80, 0x80, 0x80));
- palette_set_color(machine, 1, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, 2, MAKE_RGB(0x80, 0x80, 0x80));
- palette_set_color(machine, 3, MAKE_RGB(0xff, 0xff, 0xff));
+ palette_set_color(machine(), 0, MAKE_RGB(0x80, 0x80, 0x80));
+ palette_set_color(machine(), 1, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), 2, MAKE_RGB(0x80, 0x80, 0x80));
+ palette_set_color(machine(), 3, MAKE_RGB(0xff, 0xff, 0xff));
}
static const gfx_layout tile_layout =
@@ -302,23 +305,21 @@ static GFXDECODE_START( mgolf )
GFXDECODE_END
-static MACHINE_START( mgolf )
+void mgolf_state::machine_start()
{
- mgolf_state *state = machine.driver_data<mgolf_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_prev));
- state->save_item(NAME(state->m_mask));
+ save_item(NAME(m_prev));
+ save_item(NAME(m_mask));
}
-static MACHINE_RESET( mgolf )
+void mgolf_state::machine_reset()
{
- mgolf_state *state = machine.driver_data<mgolf_state>();
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(16), FUNC(interrupt_callback), 16);
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(16), FUNC(interrupt_callback), 16);
- state->m_mask = 0;
- state->m_prev = 0;
+ m_mask = 0;
+ m_prev = 0;
}
@@ -328,8 +329,6 @@ static MACHINE_CONFIG_START( mgolf, mgolf_state )
MCFG_CPU_ADD("maincpu", M6502, 12096000 / 16) /* ? */
MCFG_CPU_PROGRAM_MAP(cpu_map)
- MCFG_MACHINE_START(mgolf)
- MCFG_MACHINE_RESET(mgolf)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -341,8 +340,6 @@ static MACHINE_CONFIG_START( mgolf, mgolf_state )
MCFG_GFXDECODE(mgolf)
MCFG_PALETTE_LENGTH(4)
- MCFG_PALETTE_INIT(mgolf)
- MCFG_VIDEO_START(mgolf)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mhavoc.c b/src/mame/drivers/mhavoc.c
index 79da80b1e2e..d9e009ba798 100644
--- a/src/mame/drivers/mhavoc.c
+++ b/src/mame/drivers/mhavoc.c
@@ -481,8 +481,6 @@ static MACHINE_CONFIG_START( mhavoc, mhavoc_state )
MCFG_CPU_ADD("gamma", M6502, MHAVOC_CLOCK_1_25M) /* 1.25 MHz */
MCFG_CPU_PROGRAM_MAP(gamma_map)
- MCFG_MACHINE_START(mhavoc)
- MCFG_MACHINE_RESET(mhavoc)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_TIMER_ADD_PERIODIC("5k_timer", mhavoc_cpu_irq_clock, attotime::from_hz(MHAVOC_CLOCK_5K))
diff --git a/src/mame/drivers/micro3d.c b/src/mame/drivers/micro3d.c
index c338bd603bb..123f735748c 100644
--- a/src/mame/drivers/micro3d.c
+++ b/src/mame/drivers/micro3d.c
@@ -352,7 +352,6 @@ static MACHINE_CONFIG_START( micro3d, micro3d_state )
MCFG_DUART68681_ADD("duart68681", XTAL_3_6864MHz, micro3d_duart68681_config)
MCFG_MC68901_ADD("mc68901", 4000000, mfp_intf)
- MCFG_MACHINE_RESET(micro3d)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_QUANTUM_TIME(attotime::from_hz(3000))
@@ -362,8 +361,6 @@ static MACHINE_CONFIG_START( micro3d, micro3d_state )
MCFG_SCREEN_RAW_PARAMS(XTAL_40MHz/8*4, 192*4, 0, 144*4, 434, 0, 400)
MCFG_SCREEN_UPDATE_STATIC(tms340x0_ind16)
- MCFG_VIDEO_START(micro3d)
- MCFG_VIDEO_RESET(micro3d)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/midas.c b/src/mame/drivers/midas.c
index dd5c5f8b58c..f92df0c2658 100644
--- a/src/mame/drivers/midas.c
+++ b/src/mame/drivers/midas.c
@@ -77,10 +77,11 @@ public:
DECLARE_WRITE16_MEMBER(midas_eeprom_w);
DECLARE_DRIVER_INIT(livequiz);
TILE_GET_INFO_MEMBER(get_tile_info);
+ virtual void video_start();
};
-static VIDEO_START( midas );
+
static SCREEN_UPDATE_IND16( midas );
@@ -90,14 +91,13 @@ TILE_GET_INFO_MEMBER(midas_state::get_tile_info)
SET_TILE_INFO_MEMBER(1, code & 0xfff, (code >> 12) & 0xf, TILE_FLIPXY( 0 ));
}
-static VIDEO_START( midas )
+void midas_state::video_start()
{
- midas_state *state = machine.driver_data<midas_state>();
- state->m_gfxram = auto_alloc_array(machine, UINT16, 0x20000/2);
+ m_gfxram = auto_alloc_array(machine(), UINT16, 0x20000/2);
- state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(midas_state::get_tile_info),state), TILEMAP_SCAN_COLS,8,8,0x80,0x20);
+ m_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(midas_state::get_tile_info),this), TILEMAP_SCAN_COLS,8,8,0x80,0x20);
- state->m_tmap->set_transparent_pen(0);
+ m_tmap->set_transparent_pen(0);
}
static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -716,7 +716,6 @@ static MACHINE_CONFIG_START( livequiz, midas_state )
MCFG_GFXDECODE(midas)
MCFG_PALETTE_LENGTH(0x10000)
- MCFG_VIDEO_START(midas)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -750,7 +749,6 @@ static MACHINE_CONFIG_START( hammer, midas_state )
MCFG_GFXDECODE(midas)
MCFG_PALETTE_LENGTH(0x10000)
- MCFG_VIDEO_START(midas)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/midqslvr.c b/src/mame/drivers/midqslvr.c
index ad662efd41c..49a59902d34 100644
--- a/src/mame/drivers/midqslvr.c
+++ b/src/mame/drivers/midqslvr.c
@@ -96,6 +96,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(pc_dack2_w);
DECLARE_WRITE_LINE_MEMBER(pc_dack3_w);
DECLARE_WRITE_LINE_MEMBER(midqslvr_pic8259_1_set_int_line);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -652,37 +654,36 @@ static void ide_interrupt(device_t *device, int state)
static READ8_HANDLER( vga_setting ) { return 0xff; } // hard-code to color
-static MACHINE_START( midqslvr )
+void midqslvr_state::machine_start()
{
- midqslvr_state *state = machine.driver_data<midqslvr_state>();
- state->m_bios_ram = auto_alloc_array(machine, UINT32, 0x10000/4);
- state->m_bios_ext1_ram = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_bios_ext2_ram = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_bios_ext3_ram = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_bios_ext4_ram = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_isa_ram1 = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_isa_ram2 = auto_alloc_array(machine, UINT32, 0x4000/4);
+ m_bios_ram = auto_alloc_array(machine(), UINT32, 0x10000/4);
+ m_bios_ext1_ram = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_bios_ext2_ram = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_bios_ext3_ram = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_bios_ext4_ram = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_isa_ram1 = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_isa_ram2 = auto_alloc_array(machine(), UINT32, 0x4000/4);
- init_pc_common(machine, PCCOMMON_KEYBOARD_AT, midqslvr_set_keyb_int);
+ init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, midqslvr_set_keyb_int);
- state->m_maincpu->set_irq_acknowledge_callback(irq_callback);
- intel82439tx_init(machine);
+ m_maincpu->set_irq_acknowledge_callback(irq_callback);
+ intel82439tx_init(machine());
- kbdc8042_init(machine, &at8042);
- pc_vga_init(machine, vga_setting, NULL);
- pc_vga_io_init(machine, machine.device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine.device("maincpu")->memory().space(AS_IO), 0x0000);
+ kbdc8042_init(machine(), &at8042);
+ pc_vga_init(machine(), vga_setting, NULL);
+ pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000);
}
-static MACHINE_RESET( midqslvr )
+void midqslvr_state::machine_reset()
{
- machine.root_device().membank("bios_bank")->set_base(machine.root_device().memregion("bios")->base() + 0x70000);
- machine.root_device().membank("bios_ext1")->set_base(machine.root_device().memregion("bios")->base() + 0x60000);
- machine.root_device().membank("bios_ext2")->set_base(machine.root_device().memregion("bios")->base() + 0x64000);
- machine.root_device().membank("bios_ext3")->set_base(machine.root_device().memregion("bios")->base() + 0x68000);
- machine.root_device().membank("bios_ext4")->set_base(machine.root_device().memregion("bios")->base() + 0x6c000);
- machine.root_device().membank("video_bank1")->set_base(machine.root_device().memregion("video_bios")->base() + 0);
- machine.root_device().membank("video_bank2")->set_base(machine.root_device().memregion("video_bios")->base() + 0x4000);
+ machine().root_device().membank("bios_bank")->set_base(machine().root_device().memregion("bios")->base() + 0x70000);
+ machine().root_device().membank("bios_ext1")->set_base(machine().root_device().memregion("bios")->base() + 0x60000);
+ machine().root_device().membank("bios_ext2")->set_base(machine().root_device().memregion("bios")->base() + 0x64000);
+ machine().root_device().membank("bios_ext3")->set_base(machine().root_device().memregion("bios")->base() + 0x68000);
+ machine().root_device().membank("bios_ext4")->set_base(machine().root_device().memregion("bios")->base() + 0x6c000);
+ machine().root_device().membank("video_bank1")->set_base(machine().root_device().memregion("video_bios")->base() + 0);
+ machine().root_device().membank("video_bank2")->set_base(machine().root_device().memregion("video_bios")->base() + 0x4000);
}
static const ide_config ide_intf =
@@ -697,8 +698,6 @@ static MACHINE_CONFIG_START( midqslvr, midqslvr_state )
MCFG_CPU_PROGRAM_MAP(midqslvr_map)
MCFG_CPU_IO_MAP(midqslvr_io)
- MCFG_MACHINE_START(midqslvr)
- MCFG_MACHINE_RESET(midqslvr)
MCFG_PIT8254_ADD( "pit8254", midqslvr_pit8254_config )
MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
diff --git a/src/mame/drivers/midtunit.c b/src/mame/drivers/midtunit.c
index d861747ff76..3655d19b214 100644
--- a/src/mame/drivers/midtunit.c
+++ b/src/mame/drivers/midtunit.c
@@ -607,7 +607,7 @@ static MACHINE_CONFIG_START( tunit_core, midtunit_state )
MCFG_CPU_CONFIG(tms_config)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_RESET(midtunit)
+ MCFG_MACHINE_RESET_OVERRIDE(midtunit_state,midtunit)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -617,7 +617,7 @@ static MACHINE_CONFIG_START( tunit_core, midtunit_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK * 2, 505, 0, 399, 289, 0, 253)
MCFG_SCREEN_UPDATE_STATIC(tms340x0_ind16)
- MCFG_VIDEO_START(midtunit)
+ MCFG_VIDEO_START_OVERRIDE(midtunit_state,midtunit)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/midvunit.c b/src/mame/drivers/midvunit.c
index 74e095090e8..3d972b1bbaa 100644
--- a/src/mame/drivers/midvunit.c
+++ b/src/mame/drivers/midvunit.c
@@ -44,46 +44,43 @@ Known to exist but not dumped:
*
*************************************/
-static MACHINE_START( midvunit )
+void midvunit_state::machine_start()
{
- midvunit_state *state = machine.driver_data<midvunit_state>();
- state_save_register_global(machine, state->m_cmos_protected);
- state_save_register_global(machine, state->m_control_data);
- state_save_register_global(machine, state->m_adc_data);
- state_save_register_global(machine, state->m_adc_shift);
- state_save_register_global(machine, state->m_last_port0);
- state_save_register_global(machine, state->m_shifter_state);
- state_save_register_global(machine, state->m_timer_rate);
+ state_save_register_global(machine(), m_cmos_protected);
+ state_save_register_global(machine(), m_control_data);
+ state_save_register_global(machine(), m_adc_data);
+ state_save_register_global(machine(), m_adc_shift);
+ state_save_register_global(machine(), m_last_port0);
+ state_save_register_global(machine(), m_shifter_state);
+ state_save_register_global(machine(), m_timer_rate);
}
-static MACHINE_RESET( midvunit )
+void midvunit_state::machine_reset()
{
- midvunit_state *state = machine.driver_data<midvunit_state>();
- dcs_reset_w(machine, 1);
- dcs_reset_w(machine, 0);
+ dcs_reset_w(machine(), 1);
+ dcs_reset_w(machine(), 0);
- memcpy(state->m_ram_base, state->memregion("user1")->base(), 0x20000*4);
- machine.device("maincpu")->reset();
+ memcpy(m_ram_base, memregion("user1")->base(), 0x20000*4);
+ machine().device("maincpu")->reset();
- state->m_timer[0] = machine.device<timer_device>("timer0");
- state->m_timer[1] = machine.device<timer_device>("timer1");
+ m_timer[0] = machine().device<timer_device>("timer0");
+ m_timer[1] = machine().device<timer_device>("timer1");
}
-static MACHINE_RESET( midvplus )
+MACHINE_RESET_MEMBER(midvunit_state,midvplus)
{
- midvunit_state *state = machine.driver_data<midvunit_state>();
- dcs_reset_w(machine, 1);
- dcs_reset_w(machine, 0);
+ dcs_reset_w(machine(), 1);
+ dcs_reset_w(machine(), 0);
- memcpy(state->m_ram_base, state->memregion("user1")->base(), 0x20000*4);
- machine.device("maincpu")->reset();
+ memcpy(m_ram_base, memregion("user1")->base(), 0x20000*4);
+ machine().device("maincpu")->reset();
- state->m_timer[0] = machine.device<timer_device>("timer0");
- state->m_timer[1] = machine.device<timer_device>("timer1");
+ m_timer[0] = machine().device<timer_device>("timer0");
+ m_timer[1] = machine().device<timer_device>("timer1");
- machine.device("ide")->reset();
+ machine().device("ide")->reset();
}
@@ -1019,8 +1016,6 @@ static MACHINE_CONFIG_START( midvcommon, midvunit_state )
MCFG_CPU_ADD("maincpu", TMS32031, CPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(midvunit_map)
- MCFG_MACHINE_START(midvunit)
- MCFG_MACHINE_RESET(midvunit)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_TIMER_ADD("timer0", NULL)
@@ -1033,7 +1028,6 @@ static MACHINE_CONFIG_START( midvcommon, midvunit_state )
MCFG_SCREEN_RAW_PARAMS(MIDVUNIT_VIDEO_CLOCK/2, 666, 0, 512, 432, 0, 400)
MCFG_SCREEN_UPDATE_STATIC(midvunit)
- MCFG_VIDEO_START(midvunit)
MACHINE_CONFIG_END
@@ -1057,7 +1051,7 @@ static MACHINE_CONFIG_DERIVED( midvplus, midvcommon )
MCFG_TMS3203X_CONFIG(midvplus_config)
MCFG_CPU_PROGRAM_MAP(midvplus_map)
- MCFG_MACHINE_RESET(midvplus)
+ MCFG_MACHINE_RESET_OVERRIDE(midvunit_state,midvplus)
MCFG_DEVICE_REMOVE("nvram")
MCFG_NVRAM_HANDLER(midway_serial_pic2)
diff --git a/src/mame/drivers/midwunit.c b/src/mame/drivers/midwunit.c
index 08c8152db52..43c42ceeda8 100644
--- a/src/mame/drivers/midwunit.c
+++ b/src/mame/drivers/midwunit.c
@@ -640,7 +640,7 @@ static MACHINE_CONFIG_START( wunit, midwunit_state )
MCFG_CPU_CONFIG(tms_config)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_RESET(midwunit)
+ MCFG_MACHINE_RESET_OVERRIDE(midwunit_state,midwunit)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -650,7 +650,7 @@ static MACHINE_CONFIG_START( wunit, midwunit_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 505, 0, 399, 289, 0, 253)
MCFG_SCREEN_UPDATE_STATIC(tms340x0_ind16)
- MCFG_VIDEO_START(midwunit)
+ MCFG_VIDEO_START_OVERRIDE(midwunit_state,midwunit)
/* sound hardware */
MCFG_FRAGMENT_ADD(dcs_audio_8k)
diff --git a/src/mame/drivers/midxunit.c b/src/mame/drivers/midxunit.c
index 08c223dc7bb..29541dea52c 100644
--- a/src/mame/drivers/midxunit.c
+++ b/src/mame/drivers/midxunit.c
@@ -265,7 +265,7 @@ static MACHINE_CONFIG_START( midxunit, midxunit_state )
MCFG_CPU_CONFIG(tms_config)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_RESET(midxunit)
+ MCFG_MACHINE_RESET_OVERRIDE(midxunit_state,midxunit)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -274,7 +274,7 @@ static MACHINE_CONFIG_START( midxunit, midxunit_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 505, 0, 399, 289, 0, 253)
MCFG_SCREEN_UPDATE_STATIC(tms340x0_ind16)
- MCFG_VIDEO_START(midxunit)
+ MCFG_VIDEO_START_OVERRIDE(midxunit_state,midxunit)
/* sound hardware */
MCFG_FRAGMENT_ADD(dcs_audio_2k_uart)
diff --git a/src/mame/drivers/midyunit.c b/src/mame/drivers/midyunit.c
index ce28859108f..ab7776ea760 100644
--- a/src/mame/drivers/midyunit.c
+++ b/src/mame/drivers/midyunit.c
@@ -1010,7 +1010,7 @@ static MACHINE_CONFIG_START( zunit, midyunit_state )
MCFG_CPU_CONFIG(zunit_tms_config)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_RESET(midyunit)
+ MCFG_MACHINE_RESET_OVERRIDE(midyunit_state,midyunit)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -1021,7 +1021,7 @@ static MACHINE_CONFIG_START( zunit, midyunit_state )
MCFG_SCREEN_RAW_PARAMS(MEDRES_PIXEL_CLOCK*2, 673, 0, 511, 433, 0, 399)
MCFG_SCREEN_UPDATE_STATIC(tms340x0_ind16)
- MCFG_VIDEO_START(midzunit)
+ MCFG_VIDEO_START_OVERRIDE(midyunit_state,midzunit)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1045,7 +1045,7 @@ static MACHINE_CONFIG_START( yunit_core, midyunit_state )
MCFG_CPU_CONFIG(yunit_tms_config)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_RESET(midyunit)
+ MCFG_MACHINE_RESET_OVERRIDE(midyunit_state,midyunit)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -1069,7 +1069,7 @@ static MACHINE_CONFIG_DERIVED( yunit_cvsd_4bit_slow, yunit_core )
/* video hardware */
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(midyunit_4bit)
+ MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_4bit)
MACHINE_CONFIG_END
@@ -1084,7 +1084,7 @@ static MACHINE_CONFIG_DERIVED( yunit_cvsd_4bit_fast, yunit_core )
/* video hardware */
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(midyunit_4bit)
+ MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_4bit)
MACHINE_CONFIG_END
@@ -1096,7 +1096,7 @@ static MACHINE_CONFIG_DERIVED( yunit_cvsd_6bit_slow, yunit_core )
/* video hardware */
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(midyunit_6bit)
+ MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_6bit)
MACHINE_CONFIG_END
@@ -1111,7 +1111,7 @@ static MACHINE_CONFIG_DERIVED( yunit_adpcm_6bit_fast, yunit_core )
/* video hardware */
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(midyunit_6bit)
+ MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_6bit)
MACHINE_CONFIG_END
@@ -1126,7 +1126,7 @@ static MACHINE_CONFIG_DERIVED( yunit_adpcm_6bit_faster, yunit_core )
/* video hardware */
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(midyunit_6bit)
+ MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_6bit)
MACHINE_CONFIG_END
@@ -1139,7 +1139,7 @@ static MACHINE_CONFIG_DERIVED( mkyawdim, yunit_core )
/* video hardware */
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(mkyawdim)
+ MCFG_VIDEO_START_OVERRIDE(midyunit_state,mkyawdim)
/* sound hardware */
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c
index 7a2367b96d2..b8e313373e3 100644
--- a/src/mame/drivers/midzeus.c
+++ b/src/mame/drivers/midzeus.c
@@ -71,30 +71,29 @@ static TIMER_CALLBACK( invasn_gun_callback );
*
*************************************/
-static MACHINE_START( midzeus )
+MACHINE_START_MEMBER(midzeus_state,midzeus)
{
- timer[0] = machine.scheduler().timer_alloc(FUNC_NULL);
- timer[1] = machine.scheduler().timer_alloc(FUNC_NULL);
-
- gun_timer[0] = machine.scheduler().timer_alloc(FUNC(invasn_gun_callback));
- gun_timer[1] = machine.scheduler().timer_alloc(FUNC(invasn_gun_callback));
-
- state_save_register_global(machine, gun_control);
- state_save_register_global(machine, gun_irq_state);
- state_save_register_global_array(machine, gun_x);
- state_save_register_global_array(machine, gun_y);
- state_save_register_global(machine, crusnexo_leds_select);
- state_save_register_global(machine, keypad_select);
+ timer[0] = machine().scheduler().timer_alloc(FUNC_NULL);
+ timer[1] = machine().scheduler().timer_alloc(FUNC_NULL);
+
+ gun_timer[0] = machine().scheduler().timer_alloc(FUNC(invasn_gun_callback));
+ gun_timer[1] = machine().scheduler().timer_alloc(FUNC(invasn_gun_callback));
+
+ state_save_register_global(machine(), gun_control);
+ state_save_register_global(machine(), gun_irq_state);
+ state_save_register_global_array(machine(), gun_x);
+ state_save_register_global_array(machine(), gun_y);
+ state_save_register_global(machine(), crusnexo_leds_select);
+ state_save_register_global(machine(), keypad_select);
}
-static MACHINE_RESET( midzeus )
+MACHINE_RESET_MEMBER(midzeus_state,midzeus)
{
- midzeus_state *state = machine.driver_data<midzeus_state>();
- memcpy(state->m_ram_base, machine.root_device().memregion("user1")->base(), 0x40000*4);
- *state->m_ram_base <<= 1;
- machine.device("maincpu")->reset();
+ memcpy(m_ram_base, machine().root_device().memregion("user1")->base(), 0x40000*4);
+ *m_ram_base <<= 1;
+ machine().device("maincpu")->reset();
cmos_protected = TRUE;
}
@@ -1094,8 +1093,8 @@ static MACHINE_CONFIG_START( midzeus, midzeus_state )
MCFG_CPU_PROGRAM_MAP(zeus_map)
MCFG_CPU_VBLANK_INT("screen", display_irq)
- MCFG_MACHINE_START(midzeus)
- MCFG_MACHINE_RESET(midzeus)
+ MCFG_MACHINE_START_OVERRIDE(midzeus_state,midzeus)
+ MCFG_MACHINE_RESET_OVERRIDE(midzeus_state,midzeus)
MCFG_NVRAM_ADD_1FILL("nvram")
/* video hardware */
@@ -1105,7 +1104,7 @@ static MACHINE_CONFIG_START( midzeus, midzeus_state )
MCFG_SCREEN_RAW_PARAMS(MIDZEUS_VIDEO_CLOCK/8, 529, 0, 400, 278, 0, 256)
MCFG_SCREEN_UPDATE_STATIC(midzeus)
- MCFG_VIDEO_START(midzeus)
+ MCFG_VIDEO_START_OVERRIDE(midzeus_state,midzeus)
/* sound hardware */
MCFG_FRAGMENT_ADD(dcs2_audio_2104)
@@ -1134,8 +1133,8 @@ static MACHINE_CONFIG_START( midzeus2, midzeus_state )
MCFG_CPU_PROGRAM_MAP(zeus2_map)
MCFG_CPU_VBLANK_INT("screen", display_irq)
- MCFG_MACHINE_START(midzeus)
- MCFG_MACHINE_RESET(midzeus)
+ MCFG_MACHINE_START_OVERRIDE(midzeus_state,midzeus)
+ MCFG_MACHINE_RESET_OVERRIDE(midzeus_state,midzeus)
MCFG_NVRAM_ADD_1FILL("nvram")
/* video hardware */
@@ -1143,7 +1142,7 @@ static MACHINE_CONFIG_START( midzeus2, midzeus_state )
MCFG_SCREEN_RAW_PARAMS(MIDZEUS_VIDEO_CLOCK/4, 666, 0, 512, 438, 0, 400)
MCFG_SCREEN_UPDATE_STATIC(midzeus2)
- MCFG_VIDEO_START(midzeus2)
+ MCFG_VIDEO_START_OVERRIDE(midzeus_state,midzeus2)
/* sound hardware */
MCFG_FRAGMENT_ADD(dcs2_audio_2104)
diff --git a/src/mame/drivers/mikie.c b/src/mame/drivers/mikie.c
index 26fb11916d2..c9edb96eace 100644
--- a/src/mame/drivers/mikie.c
+++ b/src/mame/drivers/mikie.c
@@ -247,23 +247,21 @@ static const sn76496_config psg_intf =
*
*************************************/
-static MACHINE_START( mikie )
+void mikie_state::machine_start()
{
- mikie_state *state = machine.driver_data<mikie_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_palettebank));
- state->save_item(NAME(state->m_last_irq));
+ save_item(NAME(m_palettebank));
+ save_item(NAME(m_last_irq));
}
-static MACHINE_RESET( mikie )
+void mikie_state::machine_reset()
{
- mikie_state *state = machine.driver_data<mikie_state>();
- state->m_palettebank = 0;
- state->m_last_irq = 0;
+ m_palettebank = 0;
+ m_last_irq = 0;
}
static INTERRUPT_GEN( vblank_irq )
@@ -284,8 +282,6 @@ static MACHINE_CONFIG_START( mikie, mikie_state )
MCFG_CPU_ADD("audiocpu", Z80, CLK)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(mikie)
- MCFG_MACHINE_RESET(mikie)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -298,8 +294,6 @@ static MACHINE_CONFIG_START( mikie, mikie_state )
MCFG_GFXDECODE(mikie)
MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
- MCFG_PALETTE_INIT(mikie)
- MCFG_VIDEO_START(mikie)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mil4000.c b/src/mame/drivers/mil4000.c
index 2441c8be4ae..2375b3c663c 100644
--- a/src/mame/drivers/mil4000.c
+++ b/src/mame/drivers/mil4000.c
@@ -121,6 +121,7 @@ public:
TILE_GET_INFO_MEMBER(get_sc1_tile_info);
TILE_GET_INFO_MEMBER(get_sc2_tile_info);
TILE_GET_INFO_MEMBER(get_sc3_tile_info);
+ virtual void video_start();
};
@@ -176,17 +177,16 @@ TILE_GET_INFO_MEMBER(mil4000_state::get_sc3_tile_info)
0);
}
-static VIDEO_START(mil4000)
+void mil4000_state::video_start()
{
- mil4000_state *state = machine.driver_data<mil4000_state>();
- state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64);
- state->m_sc1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64);
- state->m_sc2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc2_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64);
- state->m_sc3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc3_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64);
-
- state->m_sc1_tilemap->set_transparent_pen(0);
- state->m_sc2_tilemap->set_transparent_pen(0);
- state->m_sc3_tilemap->set_transparent_pen(0);
+ m_sc0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_sc1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_sc2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc2_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_sc3_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc3_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+
+ m_sc1_tilemap->set_transparent_pen(0);
+ m_sc2_tilemap->set_transparent_pen(0);
+ m_sc3_tilemap->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16(mil4000)
@@ -387,7 +387,6 @@ static MACHINE_CONFIG_START( mil4000, mil4000_state )
MCFG_PALETTE_INIT(all_black)
MCFG_GFXDECODE(mil4000)
- MCFG_VIDEO_START(mil4000)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // frequency from 1000 kHz resonator. pin 7 high not verified.
diff --git a/src/mame/drivers/miniboy7.c b/src/mame/drivers/miniboy7.c
index b3d3ae76d4c..69baa64b9e8 100644
--- a/src/mame/drivers/miniboy7.c
+++ b/src/mame/drivers/miniboy7.c
@@ -166,6 +166,8 @@ public:
DECLARE_WRITE8_MEMBER(miniboy7_videoram_w);
DECLARE_WRITE8_MEMBER(miniboy7_colorram_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -204,10 +206,9 @@ TILE_GET_INFO_MEMBER(miniboy7_state::get_bg_tile_info)
SET_TILE_INFO_MEMBER(bank, code, color, 0);
}
-static VIDEO_START( miniboy7 )
+void miniboy7_state::video_start()
{
- miniboy7_state *state = machine.driver_data<miniboy7_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(miniboy7_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 37, 37);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(miniboy7_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 37, 37);
}
static SCREEN_UPDATE_IND16( miniboy7 )
@@ -217,9 +218,9 @@ static SCREEN_UPDATE_IND16( miniboy7 )
return 0;
}
-static PALETTE_INIT( miniboy7 )
+void miniboy7_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
/* FIXME... Can't get the correct palette.
sometimes RGB bits are inverted, disregarding the 4th bit.
@@ -236,7 +237,7 @@ static PALETTE_INIT( miniboy7 )
/* 0000IBGR */
if (color_prom == 0) return;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0, bit1, bit2, r, g, b, inten, intenmin, intenmax;
@@ -260,7 +261,7 @@ static PALETTE_INIT( miniboy7 )
b = (bit2 * intenmin) + (inten * (bit2 * (intenmax - intenmin)));
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -465,9 +466,7 @@ static MACHINE_CONFIG_START( miniboy7, miniboy7_state )
MCFG_GFXDECODE(miniboy7)
- MCFG_PALETTE_INIT(miniboy7)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(miniboy7)
MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/12, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/mirage.c b/src/mame/drivers/mirage.c
index aeace91e23d..0b6661765ca 100644
--- a/src/mame/drivers/mirage.c
+++ b/src/mame/drivers/mirage.c
@@ -74,11 +74,14 @@ public:
DECLARE_WRITE16_MEMBER(okim1_rombank_w);
DECLARE_WRITE16_MEMBER(okim0_rombank_w);
DECLARE_DRIVER_INIT(mirage);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
-static VIDEO_START( mirage )
+void miragemi_state::video_start()
{
- machine.device<decospr_device>("spritegen")->alloc_sprite_bitmap();
+ machine().device<decospr_device>("spritegen")->alloc_sprite_bitmap();
}
static SCREEN_UPDATE_RGB32( mirage )
@@ -299,18 +302,16 @@ static const deco16ic_interface mirage_deco16ic_tilegen1_intf =
};
-static MACHINE_START( mirage )
+void miragemi_state::machine_start()
{
- miragemi_state *state = machine.driver_data<miragemi_state>();
- state->save_item(NAME(state->m_mux_data));
+ save_item(NAME(m_mux_data));
}
-static MACHINE_RESET( mirage )
+void miragemi_state::machine_reset()
{
- miragemi_state *state = machine.driver_data<miragemi_state>();
- state->m_mux_data = 0;
+ m_mux_data = 0;
}
static MACHINE_CONFIG_START( mirage, miragemi_state )
@@ -320,8 +321,6 @@ static MACHINE_CONFIG_START( mirage, miragemi_state )
MCFG_CPU_PROGRAM_MAP(mirage_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)
- MCFG_MACHINE_START(mirage)
- MCFG_MACHINE_RESET(mirage)
/* video hardware */
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -334,7 +333,6 @@ static MACHINE_CONFIG_START( mirage, miragemi_state )
MCFG_SCREEN_UPDATE_STATIC(mirage)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
- MCFG_VIDEO_START(mirage)
MCFG_GFXDECODE(mirage)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/mirax.c b/src/mame/drivers/mirax.c
index 1359b2e4d98..561f3136d5e 100644
--- a/src/mame/drivers/mirax.c
+++ b/src/mame/drivers/mirax.c
@@ -128,15 +128,16 @@ public:
DECLARE_WRITE8_MEMBER(ay1_sel);
DECLARE_WRITE8_MEMBER(ay2_sel);
DECLARE_DRIVER_INIT(mirax);
+ virtual void palette_init();
};
-static PALETTE_INIT( mirax )
+void mirax_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0,bit1,bit2,r,g,b;
@@ -155,7 +156,7 @@ static PALETTE_INIT( mirax )
bit1 = (color_prom[i] >> 7) & 0x01;
b = 0x4f * bit0 + 0xa8 * bit1;
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
}
}
@@ -467,7 +468,6 @@ static MACHINE_CONFIG_START( mirax, mirax_state )
MCFG_SCREEN_UPDATE_STATIC(mirax)
MCFG_PALETTE_LENGTH(0x40)
- MCFG_PALETTE_INIT(mirax)
MCFG_GFXDECODE(mirax)
MCFG_SOUND_START(mirax)
diff --git a/src/mame/drivers/missb2.c b/src/mame/drivers/missb2.c
index df1852a9542..be1fb526fc6 100644
--- a/src/mame/drivers/missb2.c
+++ b/src/mame/drivers/missb2.c
@@ -36,6 +36,8 @@ public:
DECLARE_WRITE8_MEMBER(missb2_bg_bank_w);
DECLARE_WRITE_LINE_MEMBER(irqhandler);
DECLARE_DRIVER_INIT(missb2);
+ DECLARE_MACHINE_START(missb2);
+ DECLARE_MACHINE_RESET(missb2);
};
@@ -433,28 +435,26 @@ static INTERRUPT_GEN( missb2_interrupt )
/* Machine Driver */
-static MACHINE_START( missb2 )
+MACHINE_START_MEMBER(missb2_state,missb2)
{
- missb2_state *state = machine.driver_data<missb2_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_slave = machine.device("slave");
- state->m_mcu = NULL;
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_slave = machine().device("slave");
+ m_mcu = NULL;
- state->save_item(NAME(state->m_sound_nmi_enable));
- state->save_item(NAME(state->m_pending_nmi));
- state->save_item(NAME(state->m_sound_status));
- state->save_item(NAME(state->m_video_enable));
+ save_item(NAME(m_sound_nmi_enable));
+ save_item(NAME(m_pending_nmi));
+ save_item(NAME(m_sound_status));
+ save_item(NAME(m_video_enable));
}
-static MACHINE_RESET( missb2 )
+MACHINE_RESET_MEMBER(missb2_state,missb2)
{
- missb2_state *state = machine.driver_data<missb2_state>();
- state->m_sound_nmi_enable = 0;
- state->m_pending_nmi = 0;
- state->m_sound_status = 0;
+ m_sound_nmi_enable = 0;
+ m_pending_nmi = 0;
+ m_sound_status = 0;
}
static MACHINE_CONFIG_START( missb2, missb2_state )
@@ -475,8 +475,8 @@ static MACHINE_CONFIG_START( missb2, missb2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
- MCFG_MACHINE_START(missb2)
- MCFG_MACHINE_RESET(missb2)
+ MCFG_MACHINE_START_OVERRIDE(missb2_state,missb2)
+ MCFG_MACHINE_RESET_OVERRIDE(missb2_state,missb2)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/missile.c b/src/mame/drivers/missile.c
index 3d12001a3d1..f712e5b5850 100644
--- a/src/mame/drivers/missile.c
+++ b/src/mame/drivers/missile.c
@@ -379,6 +379,8 @@ public:
DECLARE_DIRECT_UPDATE_MEMBER(missile_direct_handler);
DECLARE_DRIVER_INIT(missilem);
DECLARE_DRIVER_INIT(suprmatk);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -507,41 +509,39 @@ DIRECT_UPDATE_MEMBER(missile_state::missile_direct_handler)
}
-static MACHINE_START( missile )
+void missile_state::machine_start()
{
- missile_state *state = machine.driver_data<missile_state>();
/* initialize globals */
- state->m_writeprom = state->memregion("proms")->base();
- state->m_flipscreen = 0;
+ m_writeprom = memregion("proms")->base();
+ m_flipscreen = 0;
/* set up an opcode base handler since we use mapped handlers for RAM */
- address_space *space = state->m_maincpu->space(AS_PROGRAM);
- space->set_direct_update_handler(direct_update_delegate(FUNC(missile_state::missile_direct_handler), state));
+ address_space *space = m_maincpu->space(AS_PROGRAM);
+ space->set_direct_update_handler(direct_update_delegate(FUNC(missile_state::missile_direct_handler), this));
/* create a timer to speed/slow the CPU */
- state->m_cpu_timer = machine.scheduler().timer_alloc(FUNC(adjust_cpu_speed));
- state->m_cpu_timer->adjust(machine.primary_screen->time_until_pos(v_to_scanline(state, 0), 0));
+ m_cpu_timer = machine().scheduler().timer_alloc(FUNC(adjust_cpu_speed));
+ m_cpu_timer->adjust(machine().primary_screen->time_until_pos(v_to_scanline(this, 0), 0));
/* create a timer for IRQs and set up the first callback */
- state->m_irq_timer = machine.scheduler().timer_alloc(FUNC(clock_irq));
- state->m_irq_state = 0;
- schedule_next_irq(machine, -32);
+ m_irq_timer = machine().scheduler().timer_alloc(FUNC(clock_irq));
+ m_irq_state = 0;
+ schedule_next_irq(machine(), -32);
/* setup for save states */
- state->save_item(NAME(state->m_irq_state));
- state->save_item(NAME(state->m_ctrld));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_madsel_delay));
- state->save_item(NAME(state->m_madsel_lastpc));
+ save_item(NAME(m_irq_state));
+ save_item(NAME(m_ctrld));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_madsel_delay));
+ save_item(NAME(m_madsel_lastpc));
}
-static MACHINE_RESET( missile )
+void missile_state::machine_reset()
{
- missile_state *state = machine.driver_data<missile_state>();
- state->m_maincpu->set_input_line(0, CLEAR_LINE);
- state->m_irq_state = 0;
+ m_maincpu->set_input_line(0, CLEAR_LINE);
+ m_irq_state = 0;
}
@@ -1037,8 +1037,6 @@ static MACHINE_CONFIG_START( missile, missile_state )
MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/8)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(missile)
- MCFG_MACHINE_RESET(missile)
MCFG_WATCHDOG_VBLANK_INIT(8)
/* video hardware */
diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c
index d9ff986d0b1..01197e078a6 100644
--- a/src/mame/drivers/mitchell.c
+++ b/src/mame/drivers/mitchell.c
@@ -1070,32 +1070,30 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( mitchell )
+MACHINE_START_MEMBER(mitchell_state,mitchell)
{
- mitchell_state *state = machine.driver_data<mitchell_state>();
- state->save_item(NAME(state->m_sample_buffer));
- state->save_item(NAME(state->m_sample_select));
- state->save_item(NAME(state->m_dial_selected));
- state->save_item(NAME(state->m_keymatrix));
- state->save_item(NAME(state->m_dir));
- state->save_item(NAME(state->m_dial));
- state->save_item(NAME(state->m_irq_source));
-// state_save_register_global(machine, init_eeprom_count);
+ save_item(NAME(m_sample_buffer));
+ save_item(NAME(m_sample_select));
+ save_item(NAME(m_dial_selected));
+ save_item(NAME(m_keymatrix));
+ save_item(NAME(m_dir));
+ save_item(NAME(m_dial));
+ save_item(NAME(m_irq_source));
+// state_save_register_global(machine(), init_eeprom_count);
}
-static MACHINE_RESET( mitchell )
+MACHINE_RESET_MEMBER(mitchell_state,mitchell)
{
- mitchell_state *state = machine.driver_data<mitchell_state>();
- state->m_sample_buffer = 0;
- state->m_sample_select = 0;
- state->m_dial_selected = 0;
- state->m_dial[0] = 0;
- state->m_dial[1] = 0;
- state->m_dir[0] = 0;
- state->m_dir[1] = 0;
- state->m_keymatrix = 0;
+ m_sample_buffer = 0;
+ m_sample_select = 0;
+ m_dial_selected = 0;
+ m_dial[0] = 0;
+ m_dial[1] = 0;
+ m_dir[0] = 0;
+ m_dir[1] = 0;
+ m_keymatrix = 0;
}
static TIMER_DEVICE_CALLBACK( mitchell_irq )
@@ -1119,8 +1117,8 @@ static MACHINE_CONFIG_START( mgakuen, mitchell_state )
MCFG_CPU_IO_MAP(mitchell_io_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", mitchell_irq, "screen", 0, 1) /* ??? one extra irq seems to be needed for music (see input5_r) */
- MCFG_MACHINE_START(mitchell)
- MCFG_MACHINE_RESET(mitchell)
+ MCFG_MACHINE_START_OVERRIDE(mitchell_state,mitchell)
+ MCFG_MACHINE_RESET_OVERRIDE(mitchell_state,mitchell)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -1135,7 +1133,7 @@ static MACHINE_CONFIG_START( mgakuen, mitchell_state )
MCFG_GFXDECODE(mgakuen)
MCFG_PALETTE_LENGTH(1024) /* less colors than the others */
- MCFG_VIDEO_START(pang)
+ MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1156,8 +1154,8 @@ static MACHINE_CONFIG_START( pang, mitchell_state )
MCFG_CPU_IO_MAP(mitchell_io_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", mitchell_irq, "screen", 0, 1) /* ??? one extra irq seems to be needed for music (see input5_r) */
- MCFG_MACHINE_START(mitchell)
- MCFG_MACHINE_RESET(mitchell)
+ MCFG_MACHINE_START_OVERRIDE(mitchell_state,mitchell)
+ MCFG_MACHINE_RESET_OVERRIDE(mitchell_state,mitchell)
MCFG_NVRAM_HANDLER(mitchell)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -1172,7 +1170,7 @@ static MACHINE_CONFIG_START( pang, mitchell_state )
MCFG_GFXDECODE(mitchell)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(pang)
+ MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
MCFG_SCREEN_UPDATE_STATIC(pang)
/* sound hardware */
@@ -1259,8 +1257,8 @@ static MACHINE_CONFIG_START( mstworld, mitchell_state )
MCFG_CPU_ADD("audiocpu", Z80,6000000) /* 6 MHz? */
MCFG_CPU_PROGRAM_MAP(mstworld_sound_map)
- MCFG_MACHINE_START(mitchell)
- MCFG_MACHINE_RESET(mitchell)
+ MCFG_MACHINE_START_OVERRIDE(mitchell_state,mitchell)
+ MCFG_MACHINE_RESET_OVERRIDE(mitchell_state,mitchell)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1272,7 +1270,7 @@ static MACHINE_CONFIG_START( mstworld, mitchell_state )
MCFG_GFXDECODE(mstworld)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(pang)
+ MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
MCFG_SCREEN_UPDATE_STATIC(pang)
/* sound hardware */
@@ -1304,7 +1302,7 @@ static MACHINE_CONFIG_START( marukin, mitchell_state )
MCFG_GFXDECODE(marukin)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(pang)
+ MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
MCFG_SCREEN_UPDATE_STATIC(pang)
/* sound hardware */
@@ -1356,7 +1354,7 @@ static MACHINE_CONFIG_START( pkladiesbl, mitchell_state )
MCFG_GFXDECODE(pkladiesbl)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(pang)
+ MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
MCFG_SCREEN_UPDATE_STATIC(pang)
/* sound hardware */
diff --git a/src/mame/drivers/mjkjidai.c b/src/mame/drivers/mjkjidai.c
index 411a67137f9..75b3105d7ac 100644
--- a/src/mame/drivers/mjkjidai.c
+++ b/src/mame/drivers/mjkjidai.c
@@ -463,7 +463,6 @@ static MACHINE_CONFIG_START( mjkjidai, mjkjidai_state )
MCFG_PALETTE_LENGTH(0x100)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(mjkjidai)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mjsister.c b/src/mame/drivers/mjsister.c
index 798cc4aa65f..d5c4a25fe11 100644
--- a/src/mame/drivers/mjsister.c
+++ b/src/mame/drivers/mjsister.c
@@ -57,6 +57,9 @@ public:
DECLARE_WRITE8_MEMBER(mjsister_input_sel1_w);
DECLARE_WRITE8_MEMBER(mjsister_input_sel2_w);
DECLARE_READ8_MEMBER(mjsister_keys_r);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -66,14 +69,13 @@ public:
*
*************************************/
-static VIDEO_START( mjsister )
+void mjsister_state::video_start()
{
- mjsister_state *state = machine.driver_data<mjsister_state>();
- state->m_tmpbitmap0 = auto_bitmap_ind16_alloc(machine, 256, 256);
- state->m_tmpbitmap1 = auto_bitmap_ind16_alloc(machine, 256, 256);
+ m_tmpbitmap0 = auto_bitmap_ind16_alloc(machine(), 256, 256);
+ m_tmpbitmap1 = auto_bitmap_ind16_alloc(machine(), 256, 256);
- state->save_item(NAME(state->m_videoram0));
- state->save_item(NAME(state->m_videoram1));
+ save_item(NAME(m_videoram0));
+ save_item(NAME(m_videoram1));
}
static void mjsister_plot0( running_machine &machine, int offset, UINT8 data )
@@ -446,50 +448,48 @@ static void mjsister_redraw(mjsister_state *state)
state->m_screen_redraw = 1;
}
-static MACHINE_START( mjsister )
+void mjsister_state::machine_start()
{
- mjsister_state *state = machine.driver_data<mjsister_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
-
- state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x8000);
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_dac = machine.device<dac_device>("dac");
-
- state->save_item(NAME(state->m_dac_busy));
- state->save_item(NAME(state->m_flip_screen));
- state->save_item(NAME(state->m_video_enable));
- state->save_item(NAME(state->m_vrambank));
- state->save_item(NAME(state->m_colorbank));
- state->save_item(NAME(state->m_input_sel1));
- state->save_item(NAME(state->m_input_sel2));
- state->save_item(NAME(state->m_rombank0));
- state->save_item(NAME(state->m_rombank1));
- state->save_item(NAME(state->m_dac_adr));
- state->save_item(NAME(state->m_dac_bank));
- state->save_item(NAME(state->m_dac_adr_s));
- state->save_item(NAME(state->m_dac_adr_e));
- machine.save().register_postload(save_prepost_delegate(FUNC(mjsister_redraw), state));
+ UINT8 *ROM = memregion("maincpu")->base();
+
+ membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x8000);
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_dac = machine().device<dac_device>("dac");
+
+ save_item(NAME(m_dac_busy));
+ save_item(NAME(m_flip_screen));
+ save_item(NAME(m_video_enable));
+ save_item(NAME(m_vrambank));
+ save_item(NAME(m_colorbank));
+ save_item(NAME(m_input_sel1));
+ save_item(NAME(m_input_sel2));
+ save_item(NAME(m_rombank0));
+ save_item(NAME(m_rombank1));
+ save_item(NAME(m_dac_adr));
+ save_item(NAME(m_dac_bank));
+ save_item(NAME(m_dac_adr_s));
+ save_item(NAME(m_dac_adr_e));
+ machine().save().register_postload(save_prepost_delegate(FUNC(mjsister_redraw), this));
}
-static MACHINE_RESET( mjsister )
+void mjsister_state::machine_reset()
{
- mjsister_state *state = machine.driver_data<mjsister_state>();
- state->m_dac_busy = 0;
- state->m_flip_screen = 0;
- state->m_video_enable = 0;
- state->m_screen_redraw = 0;
- state->m_vrambank = 0;
- state->m_colorbank = 0;
- state->m_input_sel1 = 0;
- state->m_input_sel2 = 0;
- state->m_rombank0 = 0;
- state->m_rombank1 = 0;
- state->m_dac_adr = 0;
- state->m_dac_bank = 0;
- state->m_dac_adr_s = 0;
- state->m_dac_adr_e = 0;
+ m_dac_busy = 0;
+ m_flip_screen = 0;
+ m_video_enable = 0;
+ m_screen_redraw = 0;
+ m_vrambank = 0;
+ m_colorbank = 0;
+ m_input_sel1 = 0;
+ m_input_sel2 = 0;
+ m_rombank0 = 0;
+ m_rombank1 = 0;
+ m_dac_adr = 0;
+ m_dac_bank = 0;
+ m_dac_adr_s = 0;
+ m_dac_adr_e = 0;
}
@@ -501,8 +501,6 @@ static MACHINE_CONFIG_START( mjsister, mjsister_state )
MCFG_CPU_IO_MAP(mjsister_io_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,2*60)
- MCFG_MACHINE_START(mjsister)
- MCFG_MACHINE_RESET(mjsister)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -515,7 +513,6 @@ static MACHINE_CONFIG_START( mjsister, mjsister_state )
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(mjsister)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mlanding.c b/src/mame/drivers/mlanding.c
index fa0a800a14a..86cdffa53bb 100644
--- a/src/mame/drivers/mlanding.c
+++ b/src/mame/drivers/mlanding.c
@@ -75,11 +75,13 @@ public:
DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
DECLARE_WRITE8_MEMBER(ml_msm_start_lsb_w);
DECLARE_DRIVER_INIT(mlanding);
+ virtual void machine_reset();
+ virtual void video_start();
};
-static VIDEO_START(mlanding)
+void mlanding_state::video_start()
{
}
@@ -750,16 +752,15 @@ static const tc0140syt_interface mlanding_tc0140syt_intf =
"maincpu", "audiocpu"
};
-static MACHINE_RESET( mlanding )
+void mlanding_state::machine_reset()
{
- mlanding_state *state = machine.driver_data<mlanding_state>();
- machine.device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- machine.device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- machine.device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- state->m_adpcm_pos = 0;
- state->m_adpcm_data = -1;
- state->m_adpcm_idle = 1;
- state->m_dsp_HOLD_signal = 0;
+ machine().device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ m_adpcm_pos = 0;
+ m_adpcm_data = -1;
+ m_adpcm_idle = 1;
+ m_dsp_HOLD_signal = 0;
}
static MACHINE_CONFIG_START( mlanding, mlanding_state )
@@ -797,9 +798,7 @@ static MACHINE_CONFIG_START( mlanding, mlanding_state )
MCFG_PALETTE_LENGTH(512*16)
- MCFG_VIDEO_START(mlanding)
- MCFG_MACHINE_RESET(mlanding)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c
index 8533aab6497..a7421e1b2b5 100644
--- a/src/mame/drivers/model1.c
+++ b/src/mame/drivers/model1.c
@@ -746,37 +746,35 @@ static TIMER_DEVICE_CALLBACK( model1_interrupt )
}
}
-static MACHINE_RESET(model1)
+MACHINE_RESET_MEMBER(model1_state,model1)
{
- model1_state *state = machine.driver_data<model1_state>();
- state->membank("bank1")->set_base(state->memregion("maincpu")->base() + 0x1000000);
- irq_init(machine);
- model1_tgp_reset(machine, !strcmp(machine.system().name, "swa") || !strcmp(machine.system().name, "wingwar") || !strcmp(machine.system().name, "wingwaru") || !strcmp(machine.system().name, "wingwarj"));
- if (!strcmp(machine.system().name, "swa"))
+ membank("bank1")->set_base(memregion("maincpu")->base() + 0x1000000);
+ irq_init(machine());
+ model1_tgp_reset(machine(), !strcmp(machine().system().name, "swa") || !strcmp(machine().system().name, "wingwar") || !strcmp(machine().system().name, "wingwaru") || !strcmp(machine().system().name, "wingwarj"));
+ if (!strcmp(machine().system().name, "swa"))
{
- state->m_sound_irq = 0;
+ m_sound_irq = 0;
}
else
{
- state->m_sound_irq = 3;
+ m_sound_irq = 3;
}
// init the sound FIFO
- state->m_fifo_rptr = state->m_fifo_wptr = 0;
- memset(state->m_to_68k, 0, sizeof(state->m_to_68k));
+ m_fifo_rptr = m_fifo_wptr = 0;
+ memset(m_to_68k, 0, sizeof(m_to_68k));
}
-static MACHINE_RESET(model1_vr)
+MACHINE_RESET_MEMBER(model1_state,model1_vr)
{
- model1_state *state = machine.driver_data<model1_state>();
- state->membank("bank1")->set_base(state->memregion("maincpu")->base() + 0x1000000);
- irq_init(machine);
- model1_vr_tgp_reset(machine);
- state->m_sound_irq = 3;
+ membank("bank1")->set_base(memregion("maincpu")->base() + 0x1000000);
+ irq_init(machine());
+ model1_vr_tgp_reset(machine());
+ m_sound_irq = 3;
// init the sound FIFO
- state->m_fifo_rptr = state->m_fifo_wptr = 0;
- memset(state->m_to_68k, 0, sizeof(state->m_to_68k));
+ m_fifo_rptr = m_fifo_wptr = 0;
+ memset(m_to_68k, 0, sizeof(m_to_68k));
}
READ16_MEMBER(model1_state::network_ctl_r)
@@ -1527,8 +1525,8 @@ static MACHINE_CONFIG_START( model1, model1_state )
MCFG_CPU_ADD("audiocpu", M68000, 10000000) // verified on real h/w
MCFG_CPU_PROGRAM_MAP(model1_snd)
- MCFG_MACHINE_START(model1)
- MCFG_MACHINE_RESET(model1)
+ MCFG_MACHINE_START_OVERRIDE(model1_state,model1)
+ MCFG_MACHINE_RESET_OVERRIDE(model1_state,model1)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff)
@@ -1542,7 +1540,7 @@ static MACHINE_CONFIG_START( model1, model1_state )
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(model1)
+ MCFG_VIDEO_START_OVERRIDE(model1_state,model1)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1576,8 +1574,8 @@ static MACHINE_CONFIG_START( model1_vr, model1_state )
MCFG_CPU_CONFIG(model1_vr_tgp_config)
MCFG_CPU_PROGRAM_MAP(model1_vr_tgp_map)
- MCFG_MACHINE_START(model1)
- MCFG_MACHINE_RESET(model1_vr)
+ MCFG_MACHINE_START_OVERRIDE(model1_state,model1)
+ MCFG_MACHINE_RESET_OVERRIDE(model1_state,model1_vr)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff)
@@ -1591,7 +1589,7 @@ static MACHINE_CONFIG_START( model1_vr, model1_state )
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(model1)
+ MCFG_VIDEO_START_OVERRIDE(model1_state,model1)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c
index 4b60cdc2b52..ae7c4403326 100644
--- a/src/mame/drivers/model2.c
+++ b/src/mame/drivers/model2.c
@@ -306,100 +306,93 @@ static TIMER_DEVICE_CALLBACK( model2_timer_cb )
state->m_timerrun[tnum] = 0;
}
-static MACHINE_START(model2)
+MACHINE_START_MEMBER(model2_state,model2)
{
- model2_state *state = machine.driver_data<model2_state>();
- state->m_copro_fifoin_data = auto_alloc_array_clear(machine, UINT32, COPRO_FIFOIN_SIZE);
- state->m_copro_fifoout_data = auto_alloc_array_clear(machine, UINT32, COPRO_FIFOOUT_SIZE);
+ m_copro_fifoin_data = auto_alloc_array_clear(machine(), UINT32, COPRO_FIFOIN_SIZE);
+ m_copro_fifoout_data = auto_alloc_array_clear(machine(), UINT32, COPRO_FIFOOUT_SIZE);
}
-static MACHINE_RESET(model2_common)
+MACHINE_RESET_MEMBER(model2_state,model2_common)
{
- model2_state *state = machine.driver_data<model2_state>();
int i;
- state->m_intreq = 0;
- state->m_intena = 0;
- state->m_coproctl = 0;
- state->m_coprocnt = 0;
- state->m_geoctl = 0;
- state->m_geocnt = 0;
- state->m_ctrlmode = 0;
- state->m_analog_channel = 0;
-
- state->m_timervals[0] = 0xfffff;
- state->m_timervals[1] = 0xfffff;
- state->m_timervals[2] = 0xfffff;
- state->m_timervals[3] = 0xfffff;
-
- state->m_timerrun[0] = state->m_timerrun[1] = state->m_timerrun[2] = state->m_timerrun[3] = 0;
-
- state->m_timers[0] = machine.device<timer_device>("timer0");
- state->m_timers[1] = machine.device<timer_device>("timer1");
- state->m_timers[2] = machine.device<timer_device>("timer2");
- state->m_timers[3] = machine.device<timer_device>("timer3");
+ m_intreq = 0;
+ m_intena = 0;
+ m_coproctl = 0;
+ m_coprocnt = 0;
+ m_geoctl = 0;
+ m_geocnt = 0;
+ m_ctrlmode = 0;
+ m_analog_channel = 0;
+
+ m_timervals[0] = 0xfffff;
+ m_timervals[1] = 0xfffff;
+ m_timervals[2] = 0xfffff;
+ m_timervals[3] = 0xfffff;
+
+ m_timerrun[0] = m_timerrun[1] = m_timerrun[2] = m_timerrun[3] = 0;
+
+ m_timers[0] = machine().device<timer_device>("timer0");
+ m_timers[1] = machine().device<timer_device>("timer1");
+ m_timers[2] = machine().device<timer_device>("timer2");
+ m_timers[3] = machine().device<timer_device>("timer3");
for (i=0; i<4; i++)
- state->m_timers[i]->reset();
+ m_timers[i]->reset();
}
-static MACHINE_RESET(model2o)
+MACHINE_RESET_MEMBER(model2_state,model2o)
{
- model2_state *state = machine.driver_data<model2_state>();
- MACHINE_RESET_CALL(model2_common);
+ MACHINE_RESET_CALL_MEMBER(model2_common);
// hold TGP in halt until we have code
- machine.device("tgp")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+ machine().device("tgp")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
- state->m_dsp_type = DSP_TYPE_TGP;
+ m_dsp_type = DSP_TYPE_TGP;
}
-static MACHINE_RESET(model2_scsp)
+MACHINE_RESET_MEMBER(model2_state,model2_scsp)
{
- model2_state *state = machine.driver_data<model2_state>();
- state->membank("bank4")->set_base(state->memregion("scsp")->base() + 0x200000);
- state->membank("bank5")->set_base(state->memregion("scsp")->base() + 0x600000);
+ membank("bank4")->set_base(memregion("scsp")->base() + 0x200000);
+ membank("bank5")->set_base(memregion("scsp")->base() + 0x600000);
// copy the 68k vector table into RAM
- memcpy(state->m_soundram, state->memregion("audiocpu")->base() + 0x80000, 16);
- machine.device("audiocpu")->reset();
- scsp_set_ram_base(machine.device("scsp"), state->m_soundram);
+ memcpy(m_soundram, memregion("audiocpu")->base() + 0x80000, 16);
+ machine().device("audiocpu")->reset();
+ scsp_set_ram_base(machine().device("scsp"), m_soundram);
}
-static MACHINE_RESET(model2)
+MACHINE_RESET_MEMBER(model2_state,model2)
{
- model2_state *state = machine.driver_data<model2_state>();
- MACHINE_RESET_CALL(model2_common);
- MACHINE_RESET_CALL(model2_scsp);
+ MACHINE_RESET_CALL_MEMBER(model2_common);
+ MACHINE_RESET_CALL_MEMBER(model2_scsp);
// hold TGP in halt until we have code
- machine.device("tgp")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+ machine().device("tgp")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
- state->m_dsp_type = DSP_TYPE_TGP;
+ m_dsp_type = DSP_TYPE_TGP;
}
-static MACHINE_RESET(model2b)
+MACHINE_RESET_MEMBER(model2_state,model2b)
{
- model2_state *state = machine.driver_data<model2_state>();
- MACHINE_RESET_CALL(model2_common);
- MACHINE_RESET_CALL(model2_scsp);
+ MACHINE_RESET_CALL_MEMBER(model2_common);
+ MACHINE_RESET_CALL_MEMBER(model2_scsp);
- machine.device("dsp")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+ machine().device("dsp")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
// set FIFOIN empty flag on SHARC
- machine.device("dsp")->execute().set_input_line(SHARC_INPUT_FLAG0, ASSERT_LINE);
+ machine().device("dsp")->execute().set_input_line(SHARC_INPUT_FLAG0, ASSERT_LINE);
// clear FIFOOUT buffer full flag on SHARC
- machine.device("dsp")->execute().set_input_line(SHARC_INPUT_FLAG1, CLEAR_LINE);
+ machine().device("dsp")->execute().set_input_line(SHARC_INPUT_FLAG1, CLEAR_LINE);
- state->m_dsp_type = DSP_TYPE_SHARC;
+ m_dsp_type = DSP_TYPE_SHARC;
}
-static MACHINE_RESET(model2c)
+MACHINE_RESET_MEMBER(model2_state,model2c)
{
- model2_state *state = machine.driver_data<model2_state>();
- MACHINE_RESET_CALL(model2_common);
- MACHINE_RESET_CALL(model2_scsp);
+ MACHINE_RESET_CALL_MEMBER(model2_common);
+ MACHINE_RESET_CALL_MEMBER(model2_scsp);
- state->m_dsp_type = DSP_TYPE_TGPX4;
+ m_dsp_type = DSP_TYPE_TGPX4;
}
static void chcolor(running_machine &machine, pen_t color, UINT16 data)
@@ -1983,8 +1976,8 @@ static MACHINE_CONFIG_START( model2o, model2_state )
MCFG_CPU_CONFIG(tgp_config)
MCFG_CPU_PROGRAM_MAP(copro_tgp_map)
- MCFG_MACHINE_START(model2)
- MCFG_MACHINE_RESET(model2o)
+ MCFG_MACHINE_START_OVERRIDE(model2_state,model2)
+ MCFG_MACHINE_RESET_OVERRIDE(model2_state,model2o)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_NVRAM_ADD_1FILL("backup1")
@@ -2012,7 +2005,7 @@ static MACHINE_CONFIG_START( model2o, model2_state )
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(model2)
+ MCFG_VIDEO_START_OVERRIDE(model2_state,model2)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2042,8 +2035,8 @@ static MACHINE_CONFIG_START( model2a, model2_state )
MCFG_CPU_CONFIG(tgp_config)
MCFG_CPU_PROGRAM_MAP(copro_tgp_map)
- MCFG_MACHINE_START(model2)
- MCFG_MACHINE_RESET(model2)
+ MCFG_MACHINE_START_OVERRIDE(model2_state,model2)
+ MCFG_MACHINE_RESET_OVERRIDE(model2_state,model2)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_NVRAM_ADD_1FILL("backup1")
@@ -2070,7 +2063,7 @@ static MACHINE_CONFIG_START( model2a, model2_state )
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(model2)
+ MCFG_VIDEO_START_OVERRIDE(model2_state,model2)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2145,8 +2138,8 @@ static MACHINE_CONFIG_START( model2b, model2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(18000))
- MCFG_MACHINE_START(model2)
- MCFG_MACHINE_RESET(model2b)
+ MCFG_MACHINE_START_OVERRIDE(model2_state,model2)
+ MCFG_MACHINE_RESET_OVERRIDE(model2_state,model2b)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_NVRAM_ADD_1FILL("backup1")
@@ -2173,7 +2166,7 @@ static MACHINE_CONFIG_START( model2b, model2_state )
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(model2)
+ MCFG_VIDEO_START_OVERRIDE(model2_state,model2)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2192,8 +2185,8 @@ static MACHINE_CONFIG_START( model2c, model2_state )
MCFG_CPU_ADD("audiocpu", M68000, 12000000)
MCFG_CPU_PROGRAM_MAP(model2_snd)
- MCFG_MACHINE_START(model2)
- MCFG_MACHINE_RESET(model2c)
+ MCFG_MACHINE_START_OVERRIDE(model2_state,model2)
+ MCFG_MACHINE_RESET_OVERRIDE(model2_state,model2c)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_NVRAM_ADD_1FILL("backup1")
@@ -2220,7 +2213,7 @@ static MACHINE_CONFIG_START( model2c, model2_state )
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(model2)
+ MCFG_VIDEO_START_OVERRIDE(model2_state,model2)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c
index 30edbc3e122..e5fd8ef9a61 100644
--- a/src/mame/drivers/model3.c
+++ b/src/mame/drivers/model3.c
@@ -1231,33 +1231,29 @@ static TIMER_CALLBACK(model3_sound_timer_tick)
}
}
-static MACHINE_START(model3_10)
+MACHINE_START_MEMBER(model3_state,model3_10)
{
- configure_fast_ram(machine);
+ configure_fast_ram(machine());
- model3_state *state = machine.driver_data<model3_state>();
- state->m_sound_timer = machine.scheduler().timer_alloc(FUNC(model3_sound_timer_tick));
+ m_sound_timer = machine().scheduler().timer_alloc(FUNC(model3_sound_timer_tick));
}
-static MACHINE_START(model3_15)
+MACHINE_START_MEMBER(model3_state,model3_15)
{
- configure_fast_ram(machine);
+ configure_fast_ram(machine());
- model3_state *state = machine.driver_data<model3_state>();
- state->m_sound_timer = machine.scheduler().timer_alloc(FUNC(model3_sound_timer_tick));
+ m_sound_timer = machine().scheduler().timer_alloc(FUNC(model3_sound_timer_tick));
}
-static MACHINE_START(model3_20)
+MACHINE_START_MEMBER(model3_state,model3_20)
{
- configure_fast_ram(machine);
+ configure_fast_ram(machine());
- model3_state *state = machine.driver_data<model3_state>();
- state->m_sound_timer = machine.scheduler().timer_alloc(FUNC(model3_sound_timer_tick));
+ m_sound_timer = machine().scheduler().timer_alloc(FUNC(model3_sound_timer_tick));
}
-static MACHINE_START(model3_21)
+MACHINE_START_MEMBER(model3_state,model3_21)
{
- configure_fast_ram(machine);
+ configure_fast_ram(machine());
- model3_state *state = machine.driver_data<model3_state>();
- state->m_sound_timer = machine.scheduler().timer_alloc(FUNC(model3_sound_timer_tick));
+ m_sound_timer = machine().scheduler().timer_alloc(FUNC(model3_sound_timer_tick));
}
static void model3_init(running_machine &machine, int step)
@@ -1309,10 +1305,10 @@ static void model3_init(running_machine &machine, int step)
}
}
-static MACHINE_RESET(model3_10) { model3_init(machine, 0x10); }
-static MACHINE_RESET(model3_15) { model3_init(machine, 0x15); }
-static MACHINE_RESET(model3_20) { model3_init(machine, 0x20); }
-static MACHINE_RESET(model3_21) { model3_init(machine, 0x21); }
+MACHINE_RESET_MEMBER(model3_state,model3_10){ model3_init(machine(), 0x10); }
+MACHINE_RESET_MEMBER(model3_state,model3_15){ model3_init(machine(), 0x15); }
+MACHINE_RESET_MEMBER(model3_state,model3_20){ model3_init(machine(), 0x20); }
+MACHINE_RESET_MEMBER(model3_state,model3_21){ model3_init(machine(), 0x21); }
READ64_MEMBER(model3_state::model3_ctrl_r)
@@ -5302,8 +5298,8 @@ static MACHINE_CONFIG_START( model3_10, model3_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(model3_10)
- MCFG_MACHINE_RESET(model3_10)
+ MCFG_MACHINE_START_OVERRIDE(model3_state,model3_10)
+ MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_10)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
MCFG_NVRAM_ADD_1FILL("backup")
@@ -5316,9 +5312,7 @@ static MACHINE_CONFIG_START( model3_10, model3_state )
MCFG_SCREEN_UPDATE_STATIC(model3)
MCFG_PALETTE_LENGTH(32768)
- MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
- MCFG_VIDEO_START(model3)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("scsp1", SCSP, 0)
@@ -5344,8 +5338,8 @@ static MACHINE_CONFIG_START( model3_15, model3_state )
MCFG_CPU_ADD("audiocpu", M68000, 12000000)
MCFG_CPU_PROGRAM_MAP(model3_snd)
- MCFG_MACHINE_START(model3_15)
- MCFG_MACHINE_RESET(model3_15)
+ MCFG_MACHINE_START_OVERRIDE(model3_state,model3_15)
+ MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_15)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
MCFG_NVRAM_ADD_1FILL("backup")
@@ -5358,9 +5352,7 @@ static MACHINE_CONFIG_START( model3_15, model3_state )
MCFG_SCREEN_UPDATE_STATIC(model3)
MCFG_PALETTE_LENGTH(32768)
- MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
- MCFG_VIDEO_START(model3)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("scsp1", SCSP, 0)
@@ -5386,8 +5378,8 @@ static MACHINE_CONFIG_START( model3_20, model3_state )
MCFG_CPU_ADD("audiocpu", M68000, 12000000)
MCFG_CPU_PROGRAM_MAP(model3_snd)
- MCFG_MACHINE_START(model3_20)
- MCFG_MACHINE_RESET(model3_20)
+ MCFG_MACHINE_START_OVERRIDE(model3_state,model3_20)
+ MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_20)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
MCFG_NVRAM_ADD_1FILL("backup")
@@ -5402,7 +5394,6 @@ static MACHINE_CONFIG_START( model3_20, model3_state )
MCFG_PALETTE_LENGTH(32768)
MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
- MCFG_VIDEO_START(model3)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("scsp1", SCSP, 0)
@@ -5425,8 +5416,8 @@ static MACHINE_CONFIG_START( model3_21, model3_state )
MCFG_CPU_ADD("audiocpu", M68000, 12000000)
MCFG_CPU_PROGRAM_MAP(model3_snd)
- MCFG_MACHINE_START(model3_21)
- MCFG_MACHINE_RESET(model3_21)
+ MCFG_MACHINE_START_OVERRIDE(model3_state,model3_21)
+ MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_21)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
MCFG_NVRAM_ADD_1FILL("backup")
@@ -5442,7 +5433,6 @@ static MACHINE_CONFIG_START( model3_21, model3_state )
MCFG_PALETTE_LENGTH(32768)
MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
- MCFG_VIDEO_START(model3)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("scsp1", SCSP, 0)
diff --git a/src/mame/drivers/mogura.c b/src/mame/drivers/mogura.c
index b14fb6ac449..2e3bb842aef 100644
--- a/src/mame/drivers/mogura.c
+++ b/src/mame/drivers/mogura.c
@@ -28,12 +28,15 @@ public:
DECLARE_WRITE8_MEMBER(mogura_dac_w);
DECLARE_WRITE8_MEMBER(mogura_gfxram_w);
TILE_GET_INFO_MEMBER(get_mogura_tile_info);
+ virtual void machine_start();
+ virtual void video_start();
+ virtual void palette_init();
};
-static PALETTE_INIT( mogura )
+void mogura_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i, j;
j = 0;
@@ -57,7 +60,7 @@ static PALETTE_INIT( mogura )
bit2 = BIT(color_prom[i], 7);
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, j, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), j, MAKE_RGB(r, g, b));
j += 4;
if (j > 31) j -= 31;
}
@@ -77,11 +80,10 @@ TILE_GET_INFO_MEMBER(mogura_state::get_mogura_tile_info)
}
-static VIDEO_START( mogura )
+void mogura_state::video_start()
{
- mogura_state *state = machine.driver_data<mogura_state>();
- machine.gfx[0]->set_source(state->m_gfxram);
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mogura_state::get_mogura_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ machine().gfx[0]->set_source(m_gfxram);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mogura_state::get_mogura_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
static SCREEN_UPDATE_IND16( mogura )
@@ -188,13 +190,12 @@ static GFXDECODE_START( mogura )
GFXDECODE_ENTRY( NULL, 0, tiles8x8_layout, 0, 8 )
GFXDECODE_END
-static MACHINE_START( mogura )
+void mogura_state::machine_start()
{
- mogura_state *state = machine.driver_data<mogura_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_dac1 = machine.device<dac_device>("dac1");
- state->m_dac2 = machine.device<dac_device>("dac2");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_dac1 = machine().device<dac_device>("dac1");
+ m_dac2 = machine().device<dac_device>("dac2");
}
static MACHINE_CONFIG_START( mogura, mogura_state )
@@ -205,7 +206,6 @@ static MACHINE_CONFIG_START( mogura, mogura_state )
MCFG_CPU_IO_MAP(mogura_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(mogura)
MCFG_GFXDECODE(mogura)
@@ -219,8 +219,6 @@ static MACHINE_CONFIG_START( mogura, mogura_state )
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(mogura)
- MCFG_VIDEO_START(mogura)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/mole.c b/src/mame/drivers/mole.c
index d244da1bd21..ce29c1d753e 100644
--- a/src/mame/drivers/mole.c
+++ b/src/mame/drivers/mole.c
@@ -70,6 +70,10 @@ public:
DECLARE_WRITE8_MEMBER(mole_flipscreen_w);
DECLARE_READ8_MEMBER(mole_protection_r);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -79,12 +83,12 @@ public:
*
*************************************/
-static PALETTE_INIT( mole )
+void mole_state::palette_init()
{
int i;
for (i = 0; i < 8; i++)
- palette_set_color_rgb(machine, i, pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1));
+ palette_set_color_rgb(machine(), i, pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1));
}
TILE_GET_INFO_MEMBER(mole_state::get_bg_tile_info)
@@ -94,13 +98,12 @@ TILE_GET_INFO_MEMBER(mole_state::get_bg_tile_info)
SET_TILE_INFO_MEMBER((code & 0x200) ? 1 : 0, code & 0x1ff, 0, 0);
}
-static VIDEO_START( mole )
+void mole_state::video_start()
{
- mole_state *state = machine.driver_data<mole_state>();
- memset(state->m_tileram, 0, sizeof(state->m_tileram));
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mole_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
+ memset(m_tileram, 0, sizeof(m_tileram));
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mole_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
- state->save_item(NAME(state->m_tileram));
+ save_item(NAME(m_tileram));
}
WRITE8_MEMBER(mole_state::mole_videoram_w)
@@ -301,18 +304,16 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( mole )
+void mole_state::machine_start()
{
- mole_state *state = machine.driver_data<mole_state>();
- state->save_item(NAME(state->m_tile_bank));
+ save_item(NAME(m_tile_bank));
}
-static MACHINE_RESET( mole )
+void mole_state::machine_reset()
{
- mole_state *state = machine.driver_data<mole_state>();
- state->m_tile_bank = 0;
+ m_tile_bank = 0;
}
static MACHINE_CONFIG_START( mole, mole_state )
@@ -322,8 +323,6 @@ static MACHINE_CONFIG_START( mole, mole_state )
MCFG_CPU_PROGRAM_MAP(mole_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(mole)
- MCFG_MACHINE_RESET(mole)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -336,8 +335,6 @@ static MACHINE_CONFIG_START( mole, mole_state )
MCFG_GFXDECODE(mole)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(mole)
- MCFG_VIDEO_START(mole)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/momoko.c b/src/mame/drivers/momoko.c
index b551407dea9..59802748c2a 100644
--- a/src/mame/drivers/momoko.c
+++ b/src/mame/drivers/momoko.c
@@ -225,39 +225,37 @@ static const ym2203_interface ym2203_config =
DEVCB_NULL
};
-static MACHINE_START( momoko )
+void momoko_state::machine_start()
{
- momoko_state *state = machine.driver_data<momoko_state>();
- UINT8 *BG_MAP = state->memregion("user1")->base();
-
- state->membank("bank1")->configure_entries(0, 32, &BG_MAP[0x0000], 0x1000);
-
- state->save_item(NAME(state->m_fg_scrollx));
- state->save_item(NAME(state->m_fg_scrolly));
- state->save_item(NAME(state->m_fg_select));
- state->save_item(NAME(state->m_text_scrolly));
- state->save_item(NAME(state->m_text_mode));
- state->save_item(NAME(state->m_bg_select));
- state->save_item(NAME(state->m_bg_priority));
- state->save_item(NAME(state->m_bg_mask));
- state->save_item(NAME(state->m_fg_mask));
- state->save_item(NAME(state->m_flipscreen));
+ UINT8 *BG_MAP = memregion("user1")->base();
+
+ membank("bank1")->configure_entries(0, 32, &BG_MAP[0x0000], 0x1000);
+
+ save_item(NAME(m_fg_scrollx));
+ save_item(NAME(m_fg_scrolly));
+ save_item(NAME(m_fg_select));
+ save_item(NAME(m_text_scrolly));
+ save_item(NAME(m_text_mode));
+ save_item(NAME(m_bg_select));
+ save_item(NAME(m_bg_priority));
+ save_item(NAME(m_bg_mask));
+ save_item(NAME(m_fg_mask));
+ save_item(NAME(m_flipscreen));
}
-static MACHINE_RESET( momoko )
+void momoko_state::machine_reset()
{
- momoko_state *state = machine.driver_data<momoko_state>();
-
- state->m_fg_scrollx = 0;
- state->m_fg_scrolly = 0;
- state->m_fg_select = 0;
- state->m_text_scrolly = 0;
- state->m_text_mode = 0;
- state->m_bg_select = 0;
- state->m_bg_priority = 0;
- state->m_bg_mask = 0;
- state->m_fg_mask = 0;
- state->m_flipscreen = 0;
+
+ m_fg_scrollx = 0;
+ m_fg_scrolly = 0;
+ m_fg_select = 0;
+ m_text_scrolly = 0;
+ m_text_mode = 0;
+ m_bg_select = 0;
+ m_bg_priority = 0;
+ m_bg_mask = 0;
+ m_fg_mask = 0;
+ m_flipscreen = 0;
}
static MACHINE_CONFIG_START( momoko, momoko_state )
@@ -270,8 +268,6 @@ static MACHINE_CONFIG_START( momoko, momoko_state )
MCFG_CPU_ADD("audiocpu", Z80, 2500000) /* 2.5MHz */
MCFG_CPU_PROGRAM_MAP(momoko_sound_map)
- MCFG_MACHINE_START(momoko)
- MCFG_MACHINE_RESET(momoko)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/monzagp.c b/src/mame/drivers/monzagp.c
index 98ed2c7bf81..5c8588964e3 100644
--- a/src/mame/drivers/monzagp.c
+++ b/src/mame/drivers/monzagp.c
@@ -53,19 +53,20 @@ public:
DECLARE_WRITE8_MEMBER(port1_w);
DECLARE_WRITE8_MEMBER(port2_w);
DECLARE_WRITE8_MEMBER(port3_w);
+ virtual void video_start();
+ virtual void palette_init();
};
-static PALETTE_INIT(monzagp)
+void monzagp_state::palette_init()
{
}
-static VIDEO_START(monzagp)
+void monzagp_state::video_start()
{
- monzagp_state *state = machine.driver_data<monzagp_state>();
- state->m_screenw = 80;
- state->m_vram = auto_alloc_array(machine, UINT8, 0x10000);
+ m_screenw = 80;
+ m_vram = auto_alloc_array(machine(), UINT8, 0x10000);
}
static SCREEN_UPDATE_IND16(monzagp)
@@ -269,10 +270,8 @@ static MACHINE_CONFIG_START( monzagp, monzagp_state )
MCFG_SCREEN_UPDATE_STATIC(monzagp)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT(monzagp)
MCFG_GFXDECODE(monzagp)
- MCFG_VIDEO_START(monzagp)
MACHINE_CONFIG_END
ROM_START( monzagp )
diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c
index 5108ba28e71..8fbca97b189 100644
--- a/src/mame/drivers/moo.c
+++ b/src/mame/drivers/moo.c
@@ -423,45 +423,43 @@ static INPUT_PORTS_START( bucky )
INPUT_PORTS_END
-static MACHINE_START( moo )
+MACHINE_START_MEMBER(moo_state,moo)
{
- moo_state *state = machine.driver_data<moo_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("soundcpu");
- state->m_k054539 = machine.device("k054539");
- state->m_k053246 = machine.device("k053246");
- state->m_k053251 = machine.device("k053251");
- state->m_k056832 = machine.device("k056832");
- state->m_k054338 = machine.device("k054338");
-
- state->save_item(NAME(state->m_cur_control2));
- state->save_item(NAME(state->m_alpha_enabled));
- state->save_item(NAME(state->m_sprite_colorbase));
- state->save_item(NAME(state->m_layer_colorbase));
- state->save_item(NAME(state->m_layerpri));
- state->save_item(NAME(state->m_protram));
-
- state->m_dmaend_timer = machine.scheduler().timer_alloc(FUNC(dmaend_callback));
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("soundcpu");
+ m_k054539 = machine().device("k054539");
+ m_k053246 = machine().device("k053246");
+ m_k053251 = machine().device("k053251");
+ m_k056832 = machine().device("k056832");
+ m_k054338 = machine().device("k054338");
+
+ save_item(NAME(m_cur_control2));
+ save_item(NAME(m_alpha_enabled));
+ save_item(NAME(m_sprite_colorbase));
+ save_item(NAME(m_layer_colorbase));
+ save_item(NAME(m_layerpri));
+ save_item(NAME(m_protram));
+
+ m_dmaend_timer = machine().scheduler().timer_alloc(FUNC(dmaend_callback));
}
-static MACHINE_RESET( moo )
+MACHINE_RESET_MEMBER(moo_state,moo)
{
- moo_state *state = machine.driver_data<moo_state>();
int i;
for (i = 0; i < 16; i++)
- state->m_protram[i] = 0;
+ m_protram[i] = 0;
for (i = 0; i < 4; i++)
- state->m_layer_colorbase[i] = 0;
+ m_layer_colorbase[i] = 0;
for (i = 0; i < 3; i++)
- state->m_layerpri[i] = 0;
+ m_layerpri[i] = 0;
- state->m_cur_control2 = 0;
- state->m_alpha_enabled = 0;
- state->m_sprite_colorbase = 0;
+ m_cur_control2 = 0;
+ m_alpha_enabled = 0;
+ m_sprite_colorbase = 0;
}
static const k056832_interface moo_k056832_intf =
@@ -522,8 +520,8 @@ static MACHINE_CONFIG_START( moo, moo_state )
MCFG_CPU_ADD("soundcpu", Z80, 8000000)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(moo)
- MCFG_MACHINE_RESET(moo)
+ MCFG_MACHINE_START_OVERRIDE(moo_state,moo)
+ MCFG_MACHINE_RESET_OVERRIDE(moo_state,moo)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -541,7 +539,7 @@ static MACHINE_CONFIG_START( moo, moo_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(moo)
+ MCFG_VIDEO_START_OVERRIDE(moo_state,moo)
MCFG_K053247_ADD("k053246", moo_k053247_intf)
MCFG_K056832_ADD("k056832", moo_k056832_intf)
@@ -567,8 +565,8 @@ static MACHINE_CONFIG_START( moobl, moo_state )
MCFG_CPU_PROGRAM_MAP(moobl_map)
MCFG_CPU_VBLANK_INT("screen", moobl_interrupt)
- MCFG_MACHINE_START(moo)
- MCFG_MACHINE_RESET(moo)
+ MCFG_MACHINE_START_OVERRIDE(moo_state,moo)
+ MCFG_MACHINE_RESET_OVERRIDE(moo_state,moo)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -584,7 +582,7 @@ static MACHINE_CONFIG_START( moobl, moo_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(moo)
+ MCFG_VIDEO_START_OVERRIDE(moo_state,moo)
MCFG_K053247_ADD("k053246", moo_k053247_intf)
MCFG_K056832_ADD("k056832", moo_k056832_intf)
diff --git a/src/mame/drivers/mosaic.c b/src/mame/drivers/mosaic.c
index dea7d832020..048f42228bf 100644
--- a/src/mame/drivers/mosaic.c
+++ b/src/mame/drivers/mosaic.c
@@ -249,18 +249,16 @@ static const ym2203_interface ym2203_config =
-static MACHINE_START( mosaic )
+void mosaic_state::machine_start()
{
- mosaic_state *state = machine.driver_data<mosaic_state>();
- state->save_item(NAME(state->m_prot_val));
+ save_item(NAME(m_prot_val));
}
-static MACHINE_RESET( mosaic )
+void mosaic_state::machine_reset()
{
- mosaic_state *state = machine.driver_data<mosaic_state>();
- state->m_prot_val = 0;
+ m_prot_val = 0;
}
static MACHINE_CONFIG_START( mosaic, mosaic_state )
@@ -271,8 +269,6 @@ static MACHINE_CONFIG_START( mosaic, mosaic_state )
MCFG_CPU_IO_MAP(mosaic_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(mosaic)
- MCFG_MACHINE_RESET(mosaic)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -285,7 +281,6 @@ static MACHINE_CONFIG_START( mosaic, mosaic_state )
MCFG_GFXDECODE(mosaic)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(mosaic)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mouser.c b/src/mame/drivers/mouser.c
index e136850cb29..a879a137508 100644
--- a/src/mame/drivers/mouser.c
+++ b/src/mame/drivers/mouser.c
@@ -183,23 +183,21 @@ static GFXDECODE_START( mouser )
GFXDECODE_END
-static MACHINE_START( mouser )
+void mouser_state::machine_start()
{
- mouser_state *state = machine.driver_data<mouser_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_sound_byte));
- state->save_item(NAME(state->m_nmi_enable));
+ save_item(NAME(m_sound_byte));
+ save_item(NAME(m_nmi_enable));
}
-static MACHINE_RESET( mouser )
+void mouser_state::machine_reset()
{
- mouser_state *state = machine.driver_data<mouser_state>();
- state->m_sound_byte = 0;
- state->m_nmi_enable = 0;
+ m_sound_byte = 0;
+ m_nmi_enable = 0;
}
static MACHINE_CONFIG_START( mouser, mouser_state )
@@ -214,8 +212,6 @@ static MACHINE_CONFIG_START( mouser, mouser_state )
MCFG_CPU_IO_MAP(mouser_sound_io_map)
MCFG_CPU_PERIODIC_INT(mouser_sound_nmi_assert, 4*60) /* ??? This controls the sound tempo */
- MCFG_MACHINE_START(mouser)
- MCFG_MACHINE_RESET(mouser)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -228,7 +224,6 @@ static MACHINE_CONFIG_START( mouser, mouser_state )
MCFG_GFXDECODE(mouser)
MCFG_PALETTE_LENGTH(64)
- MCFG_PALETTE_INIT(mouser)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mpoker.c b/src/mame/drivers/mpoker.c
index 02db4086b96..08237846a5e 100644
--- a/src/mame/drivers/mpoker.c
+++ b/src/mame/drivers/mpoker.c
@@ -195,10 +195,12 @@ public:
DECLARE_WRITE8_MEMBER(outport6_w);
DECLARE_WRITE8_MEMBER(outport7_w);
DECLARE_WRITE8_MEMBER(sound_w);
+ virtual void video_start();
+ virtual void palette_init();
};
-static VIDEO_START(mpoker)
+void mpoker_state::video_start()
{
}
@@ -225,7 +227,7 @@ static SCREEN_UPDATE_IND16(mpoker)
return 0;
}
-static PALETTE_INIT(mpoker)
+void mpoker_state::palette_init()
{
int i;
@@ -238,7 +240,7 @@ static PALETTE_INIT(mpoker)
else
color = RGB_BLACK;
- palette_set_color(machine, i, color);
+ palette_set_color(machine(), i, color);
}
}
@@ -599,8 +601,6 @@ static MACHINE_CONFIG_START( mpoker, mpoker_state )
MCFG_GFXDECODE(mpoker)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT(mpoker)
- MCFG_VIDEO_START(mpoker)
/* sound hardware */
// MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mpu3.c b/src/mame/drivers/mpu3.c
index a44be3bd988..32d7958c19a 100644
--- a/src/mame/drivers/mpu3.c
+++ b/src/mame/drivers/mpu3.c
@@ -181,6 +181,8 @@ emu_timer *m_ic21_timer;
DECLARE_WRITE8_MEMBER(pia_ic6_porta_w);
DECLARE_WRITE8_MEMBER(pia_ic6_portb_w);
DECLARE_DRIVER_INIT(m3hprvpr);
+ virtual void machine_start();
+ virtual void machine_reset();
};
#define DISPLAY_PORT 0
@@ -214,22 +216,21 @@ static void mpu3_stepper_reset(running_machine &machine)
state->m_optic_pattern = pattern;
}
-static MACHINE_RESET( mpu3 )
+void mpu3_state::machine_reset()
{
- mpu3_state *state = machine.driver_data<mpu3_state>();
- state->m_vfd->reset();
+ m_vfd->reset();
- mpu3_stepper_reset(machine);
+ mpu3_stepper_reset(machine());
- state->m_lamp_strobe = 0;
- state->m_led_strobe = 0;
+ m_lamp_strobe = 0;
+ m_led_strobe = 0;
- state->m_IC11GC = 0;
- state->m_IC11GB = 0;
- state->m_IC11GA = 0;
- state->m_IC11G1 = 1;
- state->m_IC11G2A = 0;
- state->m_IC11G2B = 0;
+ m_IC11GC = 0;
+ m_IC11GB = 0;
+ m_IC11GA = 0;
+ m_IC11G1 = 1;
+ m_IC11G2A = 0;
+ m_IC11G2B = 0;
}
/* 6808 IRQ handler */
@@ -785,18 +786,18 @@ static void mpu3_config_common(running_machine &machine)
state->m_ic21_timer = machine.scheduler().timer_alloc(FUNC(ic21_timeout));
}
-static MACHINE_START( mpu3 )
+void mpu3_state::machine_start()
{
- mpu3_config_common(machine);
+ mpu3_config_common(machine());
/* setup 8 mechanical meters */
- MechMtr_config(machine,8);
+ MechMtr_config(machine(),8);
/* setup 4 reels */
- stepper_config(machine, 0, &mpu3_reel_interface);
- stepper_config(machine, 1, &mpu3_reel_interface);
- stepper_config(machine, 2, &mpu3_reel_interface);
- stepper_config(machine, 3, &mpu3_reel_interface);
+ stepper_config(machine(), 0, &mpu3_reel_interface);
+ stepper_config(machine(), 1, &mpu3_reel_interface);
+ stepper_config(machine(), 2, &mpu3_reel_interface);
+ stepper_config(machine(), 3, &mpu3_reel_interface);
}
/*
@@ -897,8 +898,6 @@ static ADDRESS_MAP_START( mpu3_basemap, AS_PROGRAM, 8, mpu3_state )
ADDRESS_MAP_END
static MACHINE_CONFIG_START( mpu3base, mpu3_state )
- MCFG_MACHINE_START(mpu3)
- MCFG_MACHINE_RESET(mpu3)
MCFG_CPU_ADD("maincpu", M6808, MPU3_MASTER_CLOCK)///4)
MCFG_CPU_PROGRAM_MAP(mpu3_basemap)
diff --git a/src/mame/drivers/mpu4dealem.c b/src/mame/drivers/mpu4dealem.c
index deab67317e5..0f33228f2a7 100644
--- a/src/mame/drivers/mpu4dealem.c
+++ b/src/mame/drivers/mpu4dealem.c
@@ -28,6 +28,8 @@ public:
}
optional_shared_ptr<UINT8> m_dealem_videoram;
+ DECLARE_MACHINE_RESET(dealem_vid);
+ DECLARE_PALETTE_INIT(dealem);
};
@@ -71,9 +73,9 @@ GFXDECODE_END
***************************************************************************/
-static PALETTE_INIT( dealem )
+PALETTE_INIT_MEMBER(mpu4dealem_state,dealem)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i, len;
static const int resistances_rg[3] = { 1000, 470, 220 };
static const int resistances_b [2] = { 470, 220 };
@@ -84,7 +86,7 @@ static PALETTE_INIT( dealem )
3, resistances_rg, weights_g, 1000, 0,
2, resistances_b, weights_b, 1000, 0);
- len = machine.root_device().memregion("proms")->bytes();
+ len = machine().root_device().memregion("proms")->bytes();
for (i = 0; i < len; i++)
{
int bit0,bit1,bit2,r,g,b;
@@ -104,7 +106,7 @@ static PALETTE_INIT( dealem )
bit1 = BIT(*color_prom,7);
b = combine_2_weights(weights_b, bit0, bit1);
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
color_prom++;
}
}
@@ -178,34 +180,33 @@ static ADDRESS_MAP_START( dealem_memmap, AS_PROGRAM, 8, mpu4dealem_state )
AM_RANGE(0x8000, 0xffff) AM_ROM AM_WRITENOP/* 64k paged ROM (4 pages) */
ADDRESS_MAP_END
-static MACHINE_RESET( dealem_vid )
+MACHINE_RESET_MEMBER(mpu4dealem_state,dealem_vid)
{
- mpu4_state *state = machine.driver_data<mpu4_state>();
- state->m_vfd->reset(); //for debug ports only
+ m_vfd->reset(); //for debug ports only
- mpu4_stepper_reset(state);
+ mpu4_stepper_reset(this);
- state->m_lamp_strobe = 0;
- state->m_lamp_strobe2 = 0;
- state->m_led_strobe = 0;
+ m_lamp_strobe = 0;
+ m_lamp_strobe2 = 0;
+ m_led_strobe = 0;
- state->m_IC23GC = 0;
- state->m_IC23GB = 0;
- state->m_IC23GA = 0;
- state->m_IC23G1 = 1;
- state->m_IC23G2A = 0;
- state->m_IC23G2B = 0;
+ m_IC23GC = 0;
+ m_IC23GB = 0;
+ m_IC23GA = 0;
+ m_IC23G1 = 1;
+ m_IC23G2A = 0;
+ m_IC23G2B = 0;
- state->m_prot_col = 0;
- state->m_chr_counter = 0;
- state->m_chr_value = 0;
+ m_prot_col = 0;
+ m_chr_counter = 0;
+ m_chr_value = 0;
}
/* machine driver for Zenitone Deal 'Em board */
static MACHINE_CONFIG_START( dealem, mpu4dealem_state )
- MCFG_MACHINE_START(mod2) /* main mpu4 board initialisation */
- MCFG_MACHINE_RESET(dealem_vid)
+ MCFG_MACHINE_START_OVERRIDE(mpu4dealem_state,mod2) /* main mpu4 board initialisation */
+ MCFG_MACHINE_RESET_OVERRIDE(mpu4dealem_state,dealem_vid)
MCFG_CPU_ADD("maincpu", M6809, MPU4_MASTER_CLOCK/4)
MCFG_CPU_PROGRAM_MAP(dealem_memmap)
@@ -229,7 +230,7 @@ static MACHINE_CONFIG_START( dealem, mpu4dealem_state )
MCFG_GFXDECODE(dealem)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(dealem)
+ MCFG_PALETTE_INIT_OVERRIDE(mpu4dealem_state,dealem)
MCFG_MC6845_ADD("crtc", HD6845, MPU4_MASTER_CLOCK / 4 / 8, hd6845_intf) /* HD68B45 */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mpu4hw.c b/src/mame/drivers/mpu4hw.c
index 70233e46294..2ce95e8706a 100644
--- a/src/mame/drivers/mpu4hw.c
+++ b/src/mame/drivers/mpu4hw.c
@@ -429,49 +429,48 @@ void mpu4_stepper_reset(mpu4_state *state)
}
-static MACHINE_RESET( mpu4 )
+MACHINE_RESET_MEMBER(mpu4_state,mpu4)
{
- mpu4_state *state = machine.driver_data<mpu4_state>();
- state->m_vfd->reset();
+ m_vfd->reset();
- mpu4_stepper_reset(state);
+ mpu4_stepper_reset(this);
- state->m_lamp_strobe = 0;
- state->m_lamp_strobe2 = 0;
- state->m_led_strobe = 0;
- state->m_mmtr_data = 0;
- state->m_remote_meter = 0;
+ m_lamp_strobe = 0;
+ m_lamp_strobe2 = 0;
+ m_led_strobe = 0;
+ m_mmtr_data = 0;
+ m_remote_meter = 0;
- state->m_IC23GC = 0;
- state->m_IC23GB = 0;
- state->m_IC23GA = 0;
- state->m_IC23G1 = 1;
- state->m_IC23G2A = 0;
- state->m_IC23G2B = 0;
+ m_IC23GC = 0;
+ m_IC23GB = 0;
+ m_IC23GA = 0;
+ m_IC23G1 = 1;
+ m_IC23G2A = 0;
+ m_IC23G2B = 0;
- state->m_prot_col = 0;
- state->m_chr_counter = 0;
- state->m_chr_value = 0;
+ m_prot_col = 0;
+ m_chr_counter = 0;
+ m_chr_value = 0;
{
- UINT8 *rom = state->memregion("maincpu")->base();
- size_t romsize = state->memregion("maincpu")->bytes();
+ UINT8 *rom = memregion("maincpu")->base();
+ size_t romsize = memregion("maincpu")->bytes();
if (romsize < 0x10000)
fatalerror("maincpu ROM region is < 0x10000 bytes, check ROM\n");
int numbanks = romsize / 0x10000;
- state->membank("bank1")->configure_entries(0, 8, &rom[0x01000], 0x10000);
+ membank("bank1")->configure_entries(0, 8, &rom[0x01000], 0x10000);
// some Bwb games must default to the last bank, does anything not like this
// behavior?
// some Bwb games don't work anyway tho, they seem to dislike something else
// about the way the regular banking behaves, not related to the CB2 stuff
- state->membank("bank1")->set_entry(numbanks-1);
+ membank("bank1")->set_entry(numbanks-1);
- machine.device("maincpu")->reset();
+ machine().device("maincpu")->reset();
}
}
@@ -2350,55 +2349,50 @@ static void mpu4_config_common_reels(running_machine &machine,int reels)
}
}
-MACHINE_START( mod2 )
+MACHINE_START_MEMBER(mpu4_state,mod2)
{
- mpu4_state *state = machine.driver_data<mpu4_state>();
- mpu4_config_common(machine);
+ mpu4_config_common(machine());
- state->m_link7a_connected=0;
- state->m_mod_number=2;
+ m_link7a_connected=0;
+ m_mod_number=2;
}
-static MACHINE_START( mpu4yam )
+MACHINE_START_MEMBER(mpu4_state,mpu4yam)
{
- mpu4_state *state = machine.driver_data<mpu4_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- mpu4_config_common(machine);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ mpu4_config_common(machine());
- state->m_link7a_connected=0;
- state->m_mod_number=4;
+ m_link7a_connected=0;
+ m_mod_number=4;
mpu4_install_mod4yam_space(space);
}
-static MACHINE_START( mpu4oki )
+MACHINE_START_MEMBER(mpu4_state,mpu4oki)
{
- mpu4_state *state = machine.driver_data<mpu4_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- mpu4_config_common(machine);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ mpu4_config_common(machine());
- state->m_link7a_connected=0;
- state->m_mod_number=4;
+ m_link7a_connected=0;
+ m_mod_number=4;
mpu4_install_mod4oki_space(space);
}
-static MACHINE_START( mpu4bwb )
+MACHINE_START_MEMBER(mpu4_state,mpu4bwb)
{
- mpu4_state *state = machine.driver_data<mpu4_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- mpu4_config_common(machine);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ mpu4_config_common(machine());
- state->m_link7a_connected=0;
- state->m_mod_number=4;
+ m_link7a_connected=0;
+ m_mod_number=4;
mpu4_install_mod4bwb_space(space);
}
-static MACHINE_START( mpu4cry )
+MACHINE_START_MEMBER(mpu4_state,mpu4cry)
{
- mpu4_state *state = machine.driver_data<mpu4_state>();
- mpu4_config_common(machine);
+ mpu4_config_common(machine());
- state->m_link7a_connected=0;
- state->m_mod_number=4;
+ m_link7a_connected=0;
+ m_mod_number=4;
}
/* CHR Tables */
@@ -2727,8 +2721,8 @@ MACHINE_CONFIG_END
/* machine driver for MOD 2 board */
MACHINE_CONFIG_START( mpu4base, mpu4_state )
- MCFG_MACHINE_START(mod2 )
- MCFG_MACHINE_RESET(mpu4)
+ MCFG_MACHINE_START_OVERRIDE(mpu4_state,mod2 )
+ MCFG_MACHINE_RESET_OVERRIDE(mpu4_state,mpu4)
MCFG_CPU_ADD("maincpu", M6809, MPU4_MASTER_CLOCK/4)
MCFG_CPU_PROGRAM_MAP(mpu4_memmap)
@@ -2756,7 +2750,7 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED( mod4yam, mpu4base )
- MCFG_MACHINE_START(mpu4yam)
+ MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4yam)
MCFG_SOUND_ADD("ym2413", YM2413, MPU4_MASTER_CLOCK/4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
@@ -2764,7 +2758,7 @@ MACHINE_CONFIG_DERIVED( mod4yam, mpu4base )
MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED( mod4oki, mpu4base )
- MCFG_MACHINE_START(mpu4oki)
+ MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki)
MCFG_FRAGMENT_ADD(mpu4_common2)
@@ -2774,11 +2768,11 @@ MACHINE_CONFIG_DERIVED( mod4oki, mpu4base )
MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED( bwboki, mod4oki )
- MCFG_MACHINE_START(mpu4bwb)
+ MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4bwb)
MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED(mpu4crys, mod2 )
- MCFG_MACHINE_START(mpu4cry)
+ MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4cry)
MCFG_SOUND_ADD("upd", UPD7759, UPD7759_STANDARD_CLOCK)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
diff --git a/src/mame/drivers/mpu4vid.c b/src/mame/drivers/mpu4vid.c
index 73caf29903f..bb317d7595b 100644
--- a/src/mame/drivers/mpu4vid.c
+++ b/src/mame/drivers/mpu4vid.c
@@ -265,6 +265,9 @@ public:
DECLARE_DRIVER_INIT(crmaze3a);
DECLARE_DRIVER_INIT(skiltrek);
DECLARE_DRIVER_INIT(crmaze3);
+ DECLARE_MACHINE_START(mpu4_vid);
+ DECLARE_MACHINE_RESET(mpu4_vid);
+ DECLARE_VIDEO_START(mpu4_vid);
};
@@ -539,30 +542,29 @@ static WRITE16_HANDLER( mpu4_vid_vidram_w )
}
-static VIDEO_START( mpu4_vid )
+VIDEO_START_MEMBER(mpu4vid_state,mpu4_vid)
{
- mpu4vid_state *state = machine.driver_data<mpu4vid_state>();
/* if anything uses tile sizes other than 8x8 we can't really do it this way.. we'll have to draw tiles by hand.
All Barcrest stuff uses 8x8, son unless the BwB is different, we don't need to */
- state->m_vid_vidram.allocate(0x20000/2);
+ m_vid_vidram.allocate(0x20000/2);
- memset(state->m_vid_vidram,0,0x20000);
+ memset(m_vid_vidram,0,0x20000);
/* find first empty slot to decode gfx */
- for (state->m_gfx_index = 0; state->m_gfx_index < MAX_GFX_ELEMENTS; state->m_gfx_index++)
- if (machine.gfx[state->m_gfx_index] == 0)
+ for (m_gfx_index = 0; m_gfx_index < MAX_GFX_ELEMENTS; m_gfx_index++)
+ if (machine().gfx[m_gfx_index] == 0)
break;
- assert(state->m_gfx_index != MAX_GFX_ELEMENTS);
+ assert(m_gfx_index != MAX_GFX_ELEMENTS);
/* create the char set (gfx will then be updated dynamically from RAM) */
- machine.gfx[state->m_gfx_index+0] = auto_alloc(machine, gfx_element(machine, mpu4_vid_char_8x8_layout, reinterpret_cast<UINT8 *>(state->m_vid_vidram.target()), machine.total_colors() / 16, 0));
- machine.gfx[state->m_gfx_index+1] = auto_alloc(machine, gfx_element(machine, mpu4_vid_char_8x16_layout, reinterpret_cast<UINT8 *>(state->m_vid_vidram.target()), machine.total_colors() / 16, 0));
- machine.gfx[state->m_gfx_index+2] = auto_alloc(machine, gfx_element(machine, mpu4_vid_char_16x8_layout, reinterpret_cast<UINT8 *>(state->m_vid_vidram.target()), machine.total_colors() / 16, 0));
- machine.gfx[state->m_gfx_index+3] = auto_alloc(machine, gfx_element(machine, mpu4_vid_char_16x16_layout, reinterpret_cast<UINT8 *>(state->m_vid_vidram.target()), machine.total_colors() / 16, 0));
+ machine().gfx[m_gfx_index+0] = auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_8x8_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), machine().total_colors() / 16, 0));
+ machine().gfx[m_gfx_index+1] = auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_8x16_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), machine().total_colors() / 16, 0));
+ machine().gfx[m_gfx_index+2] = auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_16x8_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), machine().total_colors() / 16, 0));
+ machine().gfx[m_gfx_index+3] = auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_16x16_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), machine().total_colors() / 16, 0));
- state->m_scn2674->init_stuff();
+ m_scn2674->init_stuff();
}
@@ -1353,43 +1355,41 @@ static void video_reset(device_t *device)
}
/* machine start (called only once) */
-static MACHINE_START( mpu4_vid )
+MACHINE_START_MEMBER(mpu4vid_state,mpu4_vid)
{
- mpu4_state *state = machine.driver_data<mpu4_state>();
- mpu4_config_common(machine);
+ mpu4_config_common(machine());
- state->m_mod_number=4; //No AY chip
+ m_mod_number=4; //No AY chip
/* setup communications */
- state->m_link7a_connected = 1;
+ m_link7a_connected = 1;
/* setup 8 mechanical meters */
- MechMtr_config(machine,8);
+ MechMtr_config(machine(),8);
/* Hook the reset line */
- m68k_set_reset_callback(machine.device("video"), video_reset);
+ m68k_set_reset_callback(machine().device("video"), ::video_reset);
}
-static MACHINE_RESET( mpu4_vid )
+MACHINE_RESET_MEMBER(mpu4vid_state,mpu4_vid)
{
- mpu4_state *state = machine.driver_data<mpu4_state>();
- state->m_vfd->reset(); //for debug ports only
+ m_vfd->reset(); //for debug ports only
- mpu4_stepper_reset(state);
+ mpu4_stepper_reset(this);
- state->m_lamp_strobe = 0;
- state->m_lamp_strobe2 = 0;
- state->m_led_strobe = 0;
+ m_lamp_strobe = 0;
+ m_lamp_strobe2 = 0;
+ m_led_strobe = 0;
- state->m_IC23GC = 0;
- state->m_IC23GB = 0;
- state->m_IC23GA = 0;
- state->m_IC23G1 = 1;
- state->m_IC23G2A = 0;
- state->m_IC23G2B = 0;
+ m_IC23GC = 0;
+ m_IC23GB = 0;
+ m_IC23GA = 0;
+ m_IC23G1 = 1;
+ m_IC23G2A = 0;
+ m_IC23G2B = 0;
- state->m_prot_col = 0;
- state->m_chr_counter = 0;
- state->m_chr_value = 0;
+ m_prot_col = 0;
+ m_chr_counter = 0;
+ m_chr_value = 0;
}
static ADDRESS_MAP_START( mpu4_68k_map, AS_PROGRAM, 16, mpu4vid_state )
@@ -1528,9 +1528,9 @@ static MACHINE_CONFIG_START( mpu4_vid, mpu4vid_state )
// MCFG_QUANTUM_TIME(attotime::from_hz(960))
- MCFG_MACHINE_START(mpu4_vid)
- MCFG_MACHINE_RESET(mpu4_vid)
- MCFG_VIDEO_START (mpu4_vid)
+ MCFG_MACHINE_START_OVERRIDE(mpu4vid_state,mpu4_vid)
+ MCFG_MACHINE_RESET_OVERRIDE(mpu4vid_state,mpu4_vid)
+ MCFG_VIDEO_START_OVERRIDE (mpu4vid_state,mpu4_vid)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/mpu5hw.c b/src/mame/drivers/mpu5hw.c
index 0f692b44b57..08ab0133b28 100644
--- a/src/mame/drivers/mpu5hw.c
+++ b/src/mame/drivers/mpu5hw.c
@@ -59,6 +59,7 @@ protected:
// devices
required_device<cpu_device> m_maincpu;
+ virtual void machine_start();
};
@@ -113,11 +114,10 @@ INPUT_PORTS_START( mpu5 )
INPUT_PORTS_END
-static MACHINE_START( mpu5 )
+void mpu5_state::machine_start()
{
- mpu5_state *state = machine.driver_data<mpu5_state>();
- state->m_cpuregion = (UINT32*)state->memregion( "maincpu" )->base();
- state->m_mainram = (UINT32*)auto_alloc_array_clear(machine, UINT32, 0x10000);
+ m_cpuregion = (UINT32*)memregion( "maincpu" )->base();
+ m_mainram = (UINT32*)auto_alloc_array_clear(machine(), UINT32, 0x10000);
}
@@ -126,7 +126,6 @@ MACHINE_CONFIG_START( mpu5, mpu5_state )
MCFG_CPU_ADD("maincpu", M68340, 16000000) // ?
MCFG_CPU_PROGRAM_MAP(mpu5_map)
- MCFG_MACHINE_START( mpu5 )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
/* unknown sound */
diff --git a/src/mame/drivers/mquake.c b/src/mame/drivers/mquake.c
index 05615d68038..ed93f6854eb 100644
--- a/src/mame/drivers/mquake.c
+++ b/src/mame/drivers/mquake.c
@@ -302,9 +302,9 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_RESET(mquake)
+MACHINE_RESET_MEMBER(amiga_state,mquake)
{
- MACHINE_RESET_CALL(amiga);
+ MACHINE_RESET_CALL_MEMBER(amiga);
}
/*************************************
@@ -343,7 +343,7 @@ static MACHINE_CONFIG_START( mquake, amiga_state )
MCFG_CPU_ADD("maincpu", M68000, AMIGA_68000_NTSC_CLOCK)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_RESET(mquake)
+ MCFG_MACHINE_RESET_OVERRIDE(amiga_state,mquake)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -357,9 +357,9 @@ static MACHINE_CONFIG_START( mquake, amiga_state )
MCFG_SCREEN_UPDATE_STATIC(amiga)
MCFG_PALETTE_LENGTH(4096)
- MCFG_PALETTE_INIT(amiga)
+ MCFG_PALETTE_INIT_OVERRIDE(amiga_state,amiga)
- MCFG_VIDEO_START(amiga)
+ MCFG_VIDEO_START_OVERRIDE(amiga_state,amiga)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/mrdo.c b/src/mame/drivers/mrdo.c
index 8921d22c0a3..841c2af5b84 100644
--- a/src/mame/drivers/mrdo.c
+++ b/src/mame/drivers/mrdo.c
@@ -196,8 +196,6 @@ static MACHINE_CONFIG_START( mrdo, mrdo_state )
MCFG_GFXDECODE(mrdo)
MCFG_PALETTE_LENGTH(64*4+16*4)
- MCFG_PALETTE_INIT(mrdo)
- MCFG_VIDEO_START(mrdo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mrflea.c b/src/mame/drivers/mrflea.c
index 13c24f15297..863651885f3 100644
--- a/src/mame/drivers/mrflea.c
+++ b/src/mame/drivers/mrflea.c
@@ -328,29 +328,27 @@ static const ay8910_interface mrflea_ay8910_interface_1 =
*
*************************************/
-static MACHINE_START( mrflea )
+void mrflea_state::machine_start()
{
- mrflea_state *state = machine.driver_data<mrflea_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_subcpu = machine().device<cpu_device>("sub");
- state->save_item(NAME(state->m_gfx_bank));
- state->save_item(NAME(state->m_io));
- state->save_item(NAME(state->m_main));
- state->save_item(NAME(state->m_status));
- state->save_item(NAME(state->m_select1));
+ save_item(NAME(m_gfx_bank));
+ save_item(NAME(m_io));
+ save_item(NAME(m_main));
+ save_item(NAME(m_status));
+ save_item(NAME(m_select1));
}
-static MACHINE_RESET( mrflea )
+void mrflea_state::machine_reset()
{
- mrflea_state *state = machine.driver_data<mrflea_state>();
- state->m_gfx_bank = 0;
- state->m_io = 0;
- state->m_main = 0;
- state->m_status = 0;
- state->m_select1 = 0;
+ m_gfx_bank = 0;
+ m_io = 0;
+ m_main = 0;
+ m_status = 0;
+ m_select1 = 0;
}
static MACHINE_CONFIG_START( mrflea, mrflea_state )
@@ -368,8 +366,6 @@ static MACHINE_CONFIG_START( mrflea, mrflea_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(mrflea)
- MCFG_MACHINE_RESET(mrflea)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/mrjong.c b/src/mame/drivers/mrjong.c
index bc0b8be5921..f2149362172 100644
--- a/src/mame/drivers/mrjong.c
+++ b/src/mame/drivers/mrjong.c
@@ -214,8 +214,6 @@ static MACHINE_CONFIG_START( mrjong, mrjong_state )
MCFG_GFXDECODE(mrjong)
MCFG_PALETTE_LENGTH(4*32)
- MCFG_PALETTE_INIT(mrjong)
- MCFG_VIDEO_START(mrjong)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ms32.c b/src/mame/drivers/ms32.c
index b6eb0cc60e7..a877facba34 100644
--- a/src/mame/drivers/ms32.c
+++ b/src/mame/drivers/ms32.c
@@ -1379,12 +1379,12 @@ ADDRESS_MAP_END
/********** MACHINE INIT **********/
-static MACHINE_RESET( ms32 )
+void ms32_state::machine_reset()
{
- machine.root_device().membank("bank1")->set_base(machine.root_device().memregion("maincpu")->base());
- machine.root_device().membank("bank4")->set_entry(0);
- machine.root_device().membank("bank5")->set_entry(1);
- irq_init(machine);
+ machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base());
+ machine().root_device().membank("bank4")->set_entry(0);
+ machine().root_device().membank("bank5")->set_entry(1);
+ irq_init(machine());
}
/********** MACHINE DRIVER **********/
@@ -1401,7 +1401,6 @@ static MACHINE_CONFIG_START( ms32, ms32_state )
MCFG_QUANTUM_TIME(attotime::from_hz(60000))
- MCFG_MACHINE_RESET(ms32)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1414,7 +1413,6 @@ static MACHINE_CONFIG_START( ms32, ms32_state )
MCFG_GFXDECODE(ms32)
MCFG_PALETTE_LENGTH(0x10000)
- MCFG_VIDEO_START(ms32)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1431,7 +1429,7 @@ static MACHINE_CONFIG_DERIVED( f1superb, ms32 )
MCFG_GFXDECODE(f1superb)
- MCFG_VIDEO_START(f1superb)
+ MCFG_VIDEO_START_OVERRIDE(ms32_state,f1superb)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/msisaac.c b/src/mame/drivers/msisaac.c
index 5ed944af06b..660a83f1245 100644
--- a/src/mame/drivers/msisaac.c
+++ b/src/mame/drivers/msisaac.c
@@ -210,9 +210,8 @@ static ADDRESS_MAP_START( msisaac_map, AS_PROGRAM, 8, msisaac_state )
// AM_RANGE(0xfc03, 0xfc04) AM_WRITE(msisaac_coin_counter_w)
ADDRESS_MAP_END
-static MACHINE_RESET( ta7630 )
+MACHINE_RESET_MEMBER(msisaac_state,ta7630)
{
- msisaac_state *state = machine.driver_data<msisaac_state>();
int i;
double db = 0.0;
@@ -221,8 +220,8 @@ static MACHINE_RESET( ta7630 )
for (i=0; i<16; i++)
{
double max = 100.0 / pow(10.0, db/20.0 );
- state->m_vol_ctrl[15 - i] = max;
- /*logerror("vol_ctrl[%x] = %i (%f dB)\n",15 - i, state->m_vol_ctrl[15 - i], db);*/
+ m_vol_ctrl[15 - i] = max;
+ /*logerror("vol_ctrl[%x] = %i (%f dB)\n",15 - i, m_vol_ctrl[15 - i], db);*/
db += db_step;
db_step += db_step_inc;
}
@@ -431,47 +430,45 @@ static const msm5232_interface msm5232_config =
/*******************************************************************************/
-static MACHINE_START( msisaac )
+void msisaac_state::machine_start()
{
- msisaac_state *state = machine.driver_data<msisaac_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
/* video */
- state->save_item(NAME(state->m_bg2_textbank));
+ save_item(NAME(m_bg2_textbank));
/* sound */
- state->save_item(NAME(state->m_sound_nmi_enable));
- state->save_item(NAME(state->m_pending_nmi));
- state->save_item(NAME(state->m_vol_ctrl));
- state->save_item(NAME(state->m_snd_ctrl0));
- state->save_item(NAME(state->m_snd_ctrl1));
+ save_item(NAME(m_sound_nmi_enable));
+ save_item(NAME(m_pending_nmi));
+ save_item(NAME(m_vol_ctrl));
+ save_item(NAME(m_snd_ctrl0));
+ save_item(NAME(m_snd_ctrl1));
#ifdef USE_MCU
#else
- state->save_item(NAME(state->m_mcu_val));
- state->save_item(NAME(state->m_direction));
+ save_item(NAME(m_mcu_val));
+ save_item(NAME(m_direction));
#endif
}
-static MACHINE_RESET( msisaac )
+void msisaac_state::machine_reset()
{
- msisaac_state *state = machine.driver_data<msisaac_state>();
- MACHINE_RESET_CALL(ta7630);
+ MACHINE_RESET_CALL_MEMBER(ta7630);
/* video */
- state->m_bg2_textbank = 0;
+ m_bg2_textbank = 0;
/* sound */
- state->m_sound_nmi_enable = 0;
- state->m_pending_nmi = 0;
- state->m_snd_ctrl0 = 0;
- state->m_snd_ctrl1 = 0;
+ m_sound_nmi_enable = 0;
+ m_pending_nmi = 0;
+ m_snd_ctrl0 = 0;
+ m_snd_ctrl1 = 0;
#ifdef USE_MCU
- machine.device("mcu")->execute().set_input_line(0, CLEAR_LINE);
+ machine().device("mcu")->execute().set_input_line(0, CLEAR_LINE);
#else
- state->m_mcu_val = 0;
- state->m_direction = 0;
+ m_mcu_val = 0;
+ m_direction = 0;
#endif
}
@@ -492,8 +489,6 @@ static MACHINE_CONFIG_START( msisaac, msisaac_state )
MCFG_DEVICE_ADD("bmcu", BUGGYCHL_MCU, 0)
#endif
- MCFG_MACHINE_START(msisaac)
- MCFG_MACHINE_RESET(msisaac)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -506,7 +501,6 @@ static MACHINE_CONFIG_START( msisaac, msisaac_state )
MCFG_GFXDECODE(msisaac)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(msisaac)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mugsmash.c b/src/mame/drivers/mugsmash.c
index d5b2eb1561e..d48c6265aad 100644
--- a/src/mame/drivers/mugsmash.c
+++ b/src/mame/drivers/mugsmash.c
@@ -399,12 +399,11 @@ static const ym2151_interface ym2151_config =
DEVCB_LINE(irq_handler)
};
-static MACHINE_START( mugsmash )
+void mugsmash_state::machine_start()
{
- mugsmash_state *state = machine.driver_data<mugsmash_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
}
static MACHINE_CONFIG_START( mugsmash, mugsmash_state )
@@ -416,7 +415,6 @@ static MACHINE_CONFIG_START( mugsmash, mugsmash_state )
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* Guess */
MCFG_CPU_PROGRAM_MAP(mugsmash_sound_map)
- MCFG_MACHINE_START(mugsmash)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -428,7 +426,6 @@ static MACHINE_CONFIG_START( mugsmash, mugsmash_state )
MCFG_PALETTE_LENGTH(0x300)
- MCFG_VIDEO_START(mugsmash)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c
index 7fc488b0aee..4193f77fdd4 100644
--- a/src/mame/drivers/multfish.c
+++ b/src/mame/drivers/multfish.c
@@ -235,6 +235,10 @@ public:
DECLARE_DRIVER_INIT(fcockt2ent);
TILE_GET_INFO_MEMBER(get_multfish_tile_info);
TILE_GET_INFO_MEMBER(get_multfish_reel_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ DECLARE_MACHINE_RESET(island2a);
};
TILE_GET_INFO_MEMBER(multfish_state::get_multfish_tile_info)
@@ -262,19 +266,18 @@ TILE_GET_INFO_MEMBER(multfish_state::get_multfish_reel_tile_info)
0);
}
-static VIDEO_START(multfish)
+void multfish_state::video_start()
{
- multfish_state *state = machine.driver_data<multfish_state>();
- memset(state->m_vid,0x00,sizeof(state->m_vid));
- state->save_item(NAME(state->m_vid));
+ memset(m_vid,0x00,sizeof(m_vid));
+ save_item(NAME(m_vid));
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(multfish_state::get_multfish_tile_info),state),TILEMAP_SCAN_ROWS,16,16, 64, 32);
- state->m_tilemap->set_transparent_pen(255);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(multfish_state::get_multfish_tile_info),this),TILEMAP_SCAN_ROWS,16,16, 64, 32);
+ m_tilemap->set_transparent_pen(255);
- state->m_reel_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(multfish_state::get_multfish_reel_tile_info),state),TILEMAP_SCAN_ROWS,16,16, 64, 64);
- state->m_reel_tilemap->set_transparent_pen(255);
- state->m_reel_tilemap->set_scroll_cols(64);
+ m_reel_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(multfish_state::get_multfish_reel_tile_info),this),TILEMAP_SCAN_ROWS,16,16, 64, 64);
+ m_reel_tilemap->set_transparent_pen(255);
+ m_reel_tilemap->set_scroll_cols(64);
}
static SCREEN_UPDATE_IND16(multfish)
@@ -1059,27 +1062,25 @@ static GFXDECODE_START( multfish )
GFXDECODE_ENTRY( "gfx", 0, tiles16x16_layout, 0, 16 )
GFXDECODE_END
-static MACHINE_START( multfish )
+void multfish_state::machine_start()
{
- multfish_state *state = machine.driver_data<multfish_state>();
- state->save_item(NAME(state->m_disp_enable));
- state->save_item(NAME(state->m_rambk));
- state->save_item(NAME(state->m_hopper_motor));
- state->save_item(NAME(state->m_hopper));
+ save_item(NAME(m_disp_enable));
+ save_item(NAME(m_rambk));
+ save_item(NAME(m_hopper_motor));
+ save_item(NAME(m_hopper));
}
-static MACHINE_RESET( multfish )
+void multfish_state::machine_reset()
{
- multfish_state *state = machine.driver_data<multfish_state>();
- state->membank("bank1")->configure_entries(0, 16, state->memregion("maincpu")->base(), 0x4000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base(), 0x4000);
+ membank("bank1")->set_entry(0);
- state->m_disp_enable = 0;
- state->m_rambk = 0;
- state->m_hopper_motor = 0;
- state->m_hopper = 0;
+ m_disp_enable = 0;
+ m_rambk = 0;
+ m_hopper_motor = 0;
+ m_hopper = 0;
}
static const ay8910_interface ay8910_config =
@@ -1100,8 +1101,6 @@ static MACHINE_CONFIG_START( multfish, multfish_state )
MCFG_CPU_IO_MAP(multfish_portmap)
MCFG_CPU_VBLANK_INT("screen",irq0_line_hold)
- MCFG_MACHINE_START( multfish )
- MCFG_MACHINE_RESET( multfish )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1113,7 +1112,6 @@ static MACHINE_CONFIG_START( multfish, multfish_state )
MCFG_GFXDECODE(multfish)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(multfish)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 6000000/4)
@@ -1128,18 +1126,18 @@ static MACHINE_CONFIG_DERIVED( rollfr, multfish )
MCFG_CPU_IO_MAP(rollfr_portmap)
MACHINE_CONFIG_END
-static MACHINE_RESET( island2a )
+MACHINE_RESET_MEMBER(multfish_state,island2a)
{
- MACHINE_RESET_CALL(multfish);
+ multfish_state::machine_reset();
// this set needs preprogrammed data in timekeeper
- timekeeper_w(machine.device("m48t35"), 0x2003 , 0x01);
- timekeeper_w(machine.device("m48t35"), 0x4003 , 0x02);
+ timekeeper_w(machine().device("m48t35"), 0x2003 , 0x01);
+ timekeeper_w(machine().device("m48t35"), 0x4003 , 0x02);
}
static MACHINE_CONFIG_DERIVED( island2a, multfish )
/* basic machine hardware */
- MCFG_MACHINE_RESET( island2a )
+ MCFG_MACHINE_RESET_OVERRIDE(multfish_state, island2a )
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/multigam.c b/src/mame/drivers/multigam.c
index cc59c9c25ba..68c3e376f04 100644
--- a/src/mame/drivers/multigam.c
+++ b/src/mame/drivers/multigam.c
@@ -137,6 +137,13 @@ public:
DECLARE_DRIVER_INIT(multigmt);
DECLARE_DRIVER_INIT(multigam);
DECLARE_DRIVER_INIT(multigm3);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
+ DECLARE_MACHINE_START(multigm3);
+ DECLARE_MACHINE_RESET(multigm3);
+ DECLARE_MACHINE_START(supergm3);
};
@@ -1081,10 +1088,10 @@ static const nes_interface multigam_interface_1 =
"maincpu"
};
-static PALETTE_INIT( multigam )
+void multigam_state::palette_init()
{
- ppu2c0x_device *ppu = machine.device<ppu2c0x_device>("ppu");
- ppu->init_palette(machine, 0);
+ ppu2c0x_device *ppu = machine().device<ppu2c0x_device>("ppu");
+ ppu->init_palette(machine(), 0);
}
static void ppu_irq( device_t *device, int *ppu_regs )
@@ -1103,7 +1110,7 @@ static const ppu2c0x_interface ppu_interface =
ppu_irq /* irq */
};
-static VIDEO_START( multigam )
+void multigam_state::video_start()
{
}
@@ -1125,68 +1132,64 @@ GFXDECODE_END
*******************************************************/
-static MACHINE_RESET( multigam )
+void multigam_state::machine_reset()
{
}
-static MACHINE_RESET( multigm3 )
+MACHINE_RESET_MEMBER(multigam_state,multigm3)
{
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
/* reset the ppu */
- multigam_state *state = machine.driver_data<multigam_state>();
- state->multigm3_switch_prg_rom(*space, 0, 0x01 );
+ multigm3_switch_prg_rom(*space, 0, 0x01 );
};
-static MACHINE_START( multigam )
+void multigam_state::machine_start()
{
- multigam_state *state = machine.driver_data<multigam_state>();
- state->m_nt_ram = auto_alloc_array(machine, UINT8, 0x1000);
- state->m_nt_page[0] = state->m_nt_ram;
- state->m_nt_page[1] = state->m_nt_ram + 0x400;
- state->m_nt_page[2] = state->m_nt_ram + 0x800;
- state->m_nt_page[3] = state->m_nt_ram + 0xc00;
-
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(multigam_state::multigam_nt_r),state), write8_delegate(FUNC(multigam_state::multigam_nt_w),state));
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x1fff, "bank1");
- state->membank("bank1")->set_base(state->memregion("gfx1")->base());
+ m_nt_ram = auto_alloc_array(machine(), UINT8, 0x1000);
+ m_nt_page[0] = m_nt_ram;
+ m_nt_page[1] = m_nt_ram + 0x400;
+ m_nt_page[2] = m_nt_ram + 0x800;
+ m_nt_page[3] = m_nt_ram + 0xc00;
+
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(multigam_state::multigam_nt_r),this), write8_delegate(FUNC(multigam_state::multigam_nt_w),this));
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x1fff, "bank1");
+ membank("bank1")->set_base(memregion("gfx1")->base());
}
-static MACHINE_START( multigm3 )
+MACHINE_START_MEMBER(multigam_state,multigm3)
{
- multigam_state *state = machine.driver_data<multigam_state>();
- state->m_nt_ram = auto_alloc_array(machine, UINT8, 0x1000);
- state->m_nt_page[0] = state->m_nt_ram;
- state->m_nt_page[1] = state->m_nt_ram + 0x400;
- state->m_nt_page[2] = state->m_nt_ram + 0x800;
- state->m_nt_page[3] = state->m_nt_ram + 0xc00;
-
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(multigam_state::multigam_nt_r),state), write8_delegate(FUNC(multigam_state::multigam_nt_w),state));
-
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x03ff, "bank2");
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0400, 0x07ff, "bank3");
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0800, 0x0bff, "bank4");
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0c00, 0x0fff, "bank5");
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x1000, 0x13ff, "bank6");
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x1400, 0x17ff, "bank7");
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x1800, 0x1bff, "bank8");
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x1c00, 0x1fff, "bank9");
-
- set_videorom_bank(machine, 0, 8, 0, 8);
+ m_nt_ram = auto_alloc_array(machine(), UINT8, 0x1000);
+ m_nt_page[0] = m_nt_ram;
+ m_nt_page[1] = m_nt_ram + 0x400;
+ m_nt_page[2] = m_nt_ram + 0x800;
+ m_nt_page[3] = m_nt_ram + 0xc00;
+
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(multigam_state::multigam_nt_r),this), write8_delegate(FUNC(multigam_state::multigam_nt_w),this));
+
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x03ff, "bank2");
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0400, 0x07ff, "bank3");
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0800, 0x0bff, "bank4");
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0c00, 0x0fff, "bank5");
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x1000, 0x13ff, "bank6");
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x1400, 0x17ff, "bank7");
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x1800, 0x1bff, "bank8");
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x1c00, 0x1fff, "bank9");
+
+ set_videorom_bank(machine(), 0, 8, 0, 8);
};
-static MACHINE_START( supergm3 )
+MACHINE_START_MEMBER(multigam_state,supergm3)
{
- multigam_state *state = machine.driver_data<multigam_state>();
- state->m_nt_ram = auto_alloc_array(machine, UINT8, 0x1000);
- state->m_nt_page[0] = state->m_nt_ram;
- state->m_nt_page[1] = state->m_nt_ram + 0x400;
- state->m_nt_page[2] = state->m_nt_ram + 0x800;
- state->m_nt_page[3] = state->m_nt_ram + 0xc00;
+ m_nt_ram = auto_alloc_array(machine(), UINT8, 0x1000);
+ m_nt_page[0] = m_nt_ram;
+ m_nt_page[1] = m_nt_ram + 0x400;
+ m_nt_page[2] = m_nt_ram + 0x800;
+ m_nt_page[3] = m_nt_ram + 0xc00;
- machine.device("ppu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(multigam_state::multigam_nt_r),state), write8_delegate(FUNC(multigam_state::multigam_nt_w),state));
+ machine().device("ppu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(multigam_state::multigam_nt_r),this), write8_delegate(FUNC(multigam_state::multigam_nt_w),this));
- state->m_vram = auto_alloc_array(machine, UINT8, 0x2000);
- state->m_multigmc_mmc3_6000_ram = auto_alloc_array(machine, UINT8, 0x2000);
+ m_vram = auto_alloc_array(machine(), UINT8, 0x2000);
+ m_multigmc_mmc3_6000_ram = auto_alloc_array(machine(), UINT8, 0x2000);
}
static MACHINE_CONFIG_START( multigam, multigam_state )
@@ -1194,8 +1197,6 @@ static MACHINE_CONFIG_START( multigam, multigam_state )
MCFG_CPU_ADD("maincpu", N2A03, N2A03_DEFAULTCLOCK)
MCFG_CPU_PROGRAM_MAP(multigam_map)
- MCFG_MACHINE_START( multigam )
- MCFG_MACHINE_RESET( multigam )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1207,8 +1208,6 @@ static MACHINE_CONFIG_START( multigam, multigam_state )
MCFG_GFXDECODE(multigam)
MCFG_PALETTE_LENGTH(8*4*16)
- MCFG_PALETTE_INIT(multigam)
- MCFG_VIDEO_START(multigam)
MCFG_PPU2C04_ADD("ppu", ppu_interface)
@@ -1227,8 +1226,8 @@ static MACHINE_CONFIG_DERIVED( multigm3, multigam )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(multigm3_map)
- MCFG_MACHINE_START( multigm3 )
- MCFG_MACHINE_RESET( multigm3 )
+ MCFG_MACHINE_START_OVERRIDE(multigam_state, multigm3 )
+ MCFG_MACHINE_RESET_OVERRIDE(multigam_state, multigm3 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( multigmt, multigam )
@@ -1240,7 +1239,7 @@ static MACHINE_CONFIG_DERIVED( supergm3, multigam )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(supergm3_map)
- MCFG_MACHINE_START(supergm3)
+ MCFG_MACHINE_START_OVERRIDE(multigam_state,supergm3)
MACHINE_CONFIG_END
ROM_START( multigam )
diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c
index 9423b9e1c27..fa0f3a6b9ac 100644
--- a/src/mame/drivers/munchmo.c
+++ b/src/mame/drivers/munchmo.c
@@ -306,25 +306,23 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( munchmo )
+void munchmo_state::machine_start()
{
- munchmo_state *state = machine.driver_data<munchmo_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_palette_bank));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_nmi_enable));
+ save_item(NAME(m_palette_bank));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_nmi_enable));
}
-static MACHINE_RESET( munchmo )
+void munchmo_state::machine_reset()
{
- munchmo_state *state = machine.driver_data<munchmo_state>();
- state->m_palette_bank = 0;
- state->m_flipscreen = 0;
- state->m_nmi_enable = 0;
+ m_palette_bank = 0;
+ m_flipscreen = 0;
+ m_nmi_enable = 0;
}
static MACHINE_CONFIG_START( mnchmobl, munchmo_state )
@@ -338,8 +336,6 @@ static MACHINE_CONFIG_START( mnchmobl, munchmo_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_VBLANK_INT("screen", mnchmobl_sound_irq)
- MCFG_MACHINE_START(munchmo)
- MCFG_MACHINE_RESET(munchmo)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -352,8 +348,6 @@ static MACHINE_CONFIG_START( mnchmobl, munchmo_state )
MCFG_GFXDECODE(mnchmobl)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(mnchmobl)
- MCFG_VIDEO_START(mnchmobl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/murogem.c b/src/mame/drivers/murogem.c
index a1725e78c0b..0ee9369bd98 100644
--- a/src/mame/drivers/murogem.c
+++ b/src/mame/drivers/murogem.c
@@ -119,6 +119,7 @@ public:
required_shared_ptr<UINT8> m_videoram;
DECLARE_WRITE8_MEMBER(outport_w);
+ virtual void palette_init();
};
@@ -198,7 +199,7 @@ static GFXDECODE_START( murogem )
GFXDECODE_END
-static PALETTE_INIT(murogem)
+void murogem_state::palette_init()
{}
static SCREEN_UPDATE_IND16(murogem)
@@ -259,7 +260,6 @@ static MACHINE_CONFIG_START( murogem, murogem_state )
MCFG_GFXDECODE(murogem)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT(murogem)
MCFG_MC6845_ADD("crtc", MC6845, 750000, mc6845_intf) /* ? MHz */
diff --git a/src/mame/drivers/murogmbl.c b/src/mame/drivers/murogmbl.c
index 1d62297314b..20bb09d08fb 100644
--- a/src/mame/drivers/murogmbl.c
+++ b/src/mame/drivers/murogmbl.c
@@ -46,12 +46,14 @@ public:
m_video(*this, "video"){ }
required_shared_ptr<UINT8> m_video;
+ virtual void video_start();
+ virtual void palette_init();
};
-static PALETTE_INIT( murogmbl )
+void murogmbl_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int bit0, bit1, bit2 , r, g, b;
int i;
@@ -70,7 +72,7 @@ static PALETTE_INIT( murogmbl )
bit2 = (color_prom[0] >> 7) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
color_prom++;
}
}
@@ -87,7 +89,7 @@ static ADDRESS_MAP_START( murogmbl_map, AS_PROGRAM, 8, murogmbl_state )
AM_RANGE(0x7800, 0x7800) AM_READNOP AM_DEVWRITE("dac1", dac_device, write_unsigned8) /* read is always discarded */
ADDRESS_MAP_END
-static VIDEO_START(murogmbl)
+void murogmbl_state::video_start()
{
}
@@ -185,7 +187,6 @@ static MACHINE_CONFIG_START( murogmbl, murogmbl_state )
MCFG_GFXDECODE(murogmbl)
- MCFG_PALETTE_INIT(murogmbl)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -197,7 +198,6 @@ static MACHINE_CONFIG_START( murogmbl, murogmbl_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(murogmbl)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_DAC_ADD("dac1")
diff --git a/src/mame/drivers/mustache.c b/src/mame/drivers/mustache.c
index 31e61b349a5..23807101f2a 100644
--- a/src/mame/drivers/mustache.c
+++ b/src/mame/drivers/mustache.c
@@ -178,10 +178,9 @@ static INTERRUPT_GEN( assert_irq )
*/
}
-static MACHINE_START( mustache )
+void mustache_state::machine_start()
{
- mustache_state *state = machine.driver_data<mustache_state>();
- state->m_clear_irq_timer = machine.scheduler().timer_alloc(FUNC(clear_irq_cb));
+ m_clear_irq_timer = machine().scheduler().timer_alloc(FUNC(clear_irq_cb));
}
static MACHINE_CONFIG_START( mustache, mustache_state )
@@ -195,7 +194,6 @@ static MACHINE_CONFIG_START( mustache, mustache_state )
MCFG_CPU_PROGRAM_MAP(t5182_map)
MCFG_CPU_IO_MAP(t5182_io)
- MCFG_MACHINE_START(mustache)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -208,8 +206,6 @@ static MACHINE_CONFIG_START( mustache, mustache_state )
MCFG_GFXDECODE(mustache)
MCFG_PALETTE_LENGTH(8*16+16*8)
- MCFG_PALETTE_INIT(mustache)
- MCFG_VIDEO_START(mustache)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mw8080bw.c b/src/mame/drivers/mw8080bw.c
index 7343b8fd116..e4fdd78df28 100644
--- a/src/mame/drivers/mw8080bw.c
+++ b/src/mame/drivers/mw8080bw.c
@@ -225,8 +225,8 @@ MACHINE_CONFIG_START( mw8080bw_root, mw8080bw_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",I8080,MW8080BW_CPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(mw8080bw)
- MCFG_MACHINE_RESET(mw8080bw)
+ MCFG_MACHINE_START_OVERRIDE(mw8080bw_state,mw8080bw)
+ MCFG_MACHINE_RESET_OVERRIDE(mw8080bw_state,mw8080bw)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -881,21 +881,20 @@ static TIMER_CALLBACK( maze_tone_timing_timer_callback )
}
-static MACHINE_START( maze )
+MACHINE_START_MEMBER(mw8080bw_state,maze)
{
- mw8080bw_state *state = machine.driver_data<mw8080bw_state>();
/* create astable timer for IC B1 */
- machine.scheduler().timer_pulse(MAZE_555_B1_PERIOD, FUNC(maze_tone_timing_timer_callback));
+ machine().scheduler().timer_pulse(MAZE_555_B1_PERIOD, FUNC(maze_tone_timing_timer_callback));
/* initialize state of Tone Timing FF, IC C1 */
- state->m_maze_tone_timing_state = 0;
+ m_maze_tone_timing_state = 0;
/* setup for save states */
- state->save_item(NAME(state->m_maze_tone_timing_state));
- machine.save().register_postload(save_prepost_delegate(FUNC(maze_update_discrete), &machine));
+ save_item(NAME(m_maze_tone_timing_state));
+ machine().save().register_postload(save_prepost_delegate(FUNC(maze_update_discrete), &machine()));
- MACHINE_START_CALL(mw8080bw);
+ MACHINE_START_CALL_MEMBER(mw8080bw);
}
@@ -958,7 +957,7 @@ static MACHINE_CONFIG_DERIVED( maze, mw8080bw_root )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(maze_io_map)
- MCFG_MACHINE_START(maze)
+ MCFG_MACHINE_START_OVERRIDE(mw8080bw_state,maze)
MCFG_WATCHDOG_TIME_INIT(PERIOD_OF_555_MONOSTABLE(RES_K(270), CAP_U(10))) /* 2.97s */
/* audio hardware */
@@ -974,14 +973,13 @@ MACHINE_CONFIG_END
*
*************************************/
-static MACHINE_START( boothill )
+MACHINE_START_MEMBER(mw8080bw_state,boothill)
{
- mw8080bw_state *state = machine.driver_data<mw8080bw_state>();
/* setup for save states */
- state->save_item(NAME(state->m_rev_shift_res));
+ save_item(NAME(m_rev_shift_res));
- MACHINE_START_CALL(mw8080bw);
+ MACHINE_START_CALL_MEMBER(mw8080bw);
}
@@ -1050,7 +1048,7 @@ static MACHINE_CONFIG_DERIVED( boothill, mw8080bw_root )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(boothill_io_map)
- MCFG_MACHINE_START(boothill)
+ MCFG_MACHINE_START_OVERRIDE(mw8080bw_state,boothill)
MCFG_WATCHDOG_TIME_INIT(PERIOD_OF_555_MONOSTABLE(RES_K(270), CAP_U(10))) /* 2.97s */
/* add shifter */
@@ -1175,14 +1173,13 @@ MACHINE_CONFIG_END
#define DESERTGU_DIP_SW_0_1_SET_2_TAG ("DIPSW01SET2")
-static MACHINE_START( desertgu )
+MACHINE_START_MEMBER(mw8080bw_state,desertgu)
{
- mw8080bw_state *state = machine.driver_data<mw8080bw_state>();
/* setup for save states */
- state->save_item(NAME(state->m_desertgun_controller_select));
+ save_item(NAME(m_desertgun_controller_select));
- MACHINE_START_CALL(mw8080bw);
+ MACHINE_START_CALL_MEMBER(mw8080bw);
}
@@ -1283,7 +1280,7 @@ static MACHINE_CONFIG_DERIVED( desertgu, mw8080bw_root )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(desertgu_io_map)
- MCFG_MACHINE_START(desertgu)
+ MCFG_MACHINE_START_OVERRIDE(mw8080bw_state,desertgu)
MCFG_WATCHDOG_TIME_INIT(255 * attotime::from_hz(MW8080BW_60HZ))
/* add shifter */
@@ -1501,14 +1498,13 @@ MACHINE_CONFIG_END
*
*************************************/
-static MACHINE_START( gmissile )
+MACHINE_START_MEMBER(mw8080bw_state,gmissile)
{
- mw8080bw_state *state = machine.driver_data<mw8080bw_state>();
/* setup for save states */
- state->save_item(NAME(state->m_rev_shift_res));
+ save_item(NAME(m_rev_shift_res));
- MACHINE_START_CALL(mw8080bw);
+ MACHINE_START_CALL_MEMBER(mw8080bw);
}
@@ -1578,7 +1574,7 @@ static MACHINE_CONFIG_DERIVED( gmissile, mw8080bw_root )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(gmissile_io_map)
- MCFG_MACHINE_START(gmissile)
+ MCFG_MACHINE_START_OVERRIDE(mw8080bw_state,gmissile)
MCFG_WATCHDOG_TIME_INIT(255 * attotime::from_hz(MW8080BW_60HZ))
/* add shifter */
@@ -1597,14 +1593,13 @@ MACHINE_CONFIG_END
*
*************************************/
-static MACHINE_START( m4 )
+MACHINE_START_MEMBER(mw8080bw_state,m4)
{
- mw8080bw_state *state = machine.driver_data<mw8080bw_state>();
/* setup for save states */
- state->save_item(NAME(state->m_rev_shift_res));
+ save_item(NAME(m_rev_shift_res));
- MACHINE_START_CALL(mw8080bw);
+ MACHINE_START_CALL_MEMBER(mw8080bw);
}
@@ -1672,7 +1667,7 @@ static MACHINE_CONFIG_DERIVED( m4, mw8080bw_root )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(m4_io_map)
- MCFG_MACHINE_START(m4)
+ MCFG_MACHINE_START_OVERRIDE(mw8080bw_state,m4)
MCFG_WATCHDOG_TIME_INIT(255 * attotime::from_hz(MW8080BW_60HZ))
/* add shifter */
@@ -1695,14 +1690,13 @@ MACHINE_CONFIG_END
#define CLOWNS_CONTROLLER_P2_TAG ("CONTP2")
-static MACHINE_START( clowns )
+MACHINE_START_MEMBER(mw8080bw_state,clowns)
{
- mw8080bw_state *state = machine.driver_data<mw8080bw_state>();
/* setup for save states */
- state->save_item(NAME(state->m_clowns_controller_select));
+ save_item(NAME(m_clowns_controller_select));
- MACHINE_START_CALL(mw8080bw);
+ MACHINE_START_CALL_MEMBER(mw8080bw);
}
@@ -1841,7 +1835,7 @@ static MACHINE_CONFIG_DERIVED( clowns, mw8080bw_root )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(clowns_io_map)
- MCFG_MACHINE_START(clowns)
+ MCFG_MACHINE_START_OVERRIDE(mw8080bw_state,clowns)
MCFG_WATCHDOG_TIME_INIT(255 * attotime::from_hz(MW8080BW_60HZ))
/* add shifter */
@@ -1935,7 +1929,7 @@ static MACHINE_CONFIG_DERIVED( spacwalk, mw8080bw_root )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(spacwalk_io_map)
- MCFG_MACHINE_START(clowns)
+ MCFG_MACHINE_START_OVERRIDE(mw8080bw_state,clowns)
MCFG_WATCHDOG_TIME_INIT(255 * attotime::from_hz(MW8080BW_60HZ))
/* add shifter */
@@ -2130,17 +2124,16 @@ static TIMER_DEVICE_CALLBACK( spcenctr_strobe_timer_callback )
}
-static MACHINE_START( spcenctr )
+MACHINE_START_MEMBER(mw8080bw_state,spcenctr)
{
- mw8080bw_state *state = machine.driver_data<mw8080bw_state>();
/* setup for save states */
- state->save_item(NAME(state->m_spcenctr_strobe_state));
- state->save_item(NAME(state->m_spcenctr_trench_width));
- state->save_item(NAME(state->m_spcenctr_trench_center));
- state->save_item(NAME(state->m_spcenctr_trench_slope));
+ save_item(NAME(m_spcenctr_strobe_state));
+ save_item(NAME(m_spcenctr_trench_width));
+ save_item(NAME(m_spcenctr_trench_center));
+ save_item(NAME(m_spcenctr_trench_slope));
- MACHINE_START_CALL(mw8080bw);
+ MACHINE_START_CALL_MEMBER(mw8080bw);
}
#if 0
@@ -2263,7 +2256,7 @@ static MACHINE_CONFIG_DERIVED( spcenctr, mw8080bw_root )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(spcenctr_io_map)
- MCFG_MACHINE_START(spcenctr)
+ MCFG_MACHINE_START_OVERRIDE(mw8080bw_state,spcenctr)
MCFG_WATCHDOG_TIME_INIT(255 * attotime::from_hz(MW8080BW_60HZ))
/* timers */
@@ -2292,14 +2285,13 @@ MACHINE_CONFIG_END
*************************************/
-static MACHINE_START( phantom2 )
+MACHINE_START_MEMBER(mw8080bw_state,phantom2)
{
- mw8080bw_state *state = machine.driver_data<mw8080bw_state>();
/* setup for save states */
- state->save_item(NAME(state->m_phantom2_cloud_counter));
+ save_item(NAME(m_phantom2_cloud_counter));
- MACHINE_START_CALL(mw8080bw);
+ MACHINE_START_CALL_MEMBER(mw8080bw);
}
@@ -2359,7 +2351,7 @@ static MACHINE_CONFIG_DERIVED( phantom2, mw8080bw_root )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(phantom2_io_map)
- MCFG_MACHINE_START(phantom2)
+ MCFG_MACHINE_START_OVERRIDE(mw8080bw_state,phantom2)
MCFG_WATCHDOG_TIME_INIT(255 * attotime::from_hz(MW8080BW_60HZ))
/* video hardware */
@@ -2516,14 +2508,13 @@ MACHINE_CONFIG_END
*
*************************************/
-static MACHINE_START( invaders )
+MACHINE_START_MEMBER(mw8080bw_state,invaders)
{
- mw8080bw_state *state = machine.driver_data<mw8080bw_state>();
/* setup for save states */
- state->save_item(NAME(state->m_invaders_flip_screen));
+ save_item(NAME(m_invaders_flip_screen));
- MACHINE_START_CALL(mw8080bw);
+ MACHINE_START_CALL_MEMBER(mw8080bw);
}
@@ -2709,7 +2700,7 @@ MACHINE_CONFIG_DERIVED( invaders, mw8080bw_root )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(invaders_io_map)
- MCFG_MACHINE_START(invaders)
+ MCFG_MACHINE_START_OVERRIDE(mw8080bw_state,invaders)
MCFG_WATCHDOG_TIME_INIT(255 * attotime::from_hz(MW8080BW_60HZ))
/* video hardware */
diff --git a/src/mame/drivers/mwarr.c b/src/mame/drivers/mwarr.c
index b2c5404b69c..fcb04051420 100644
--- a/src/mame/drivers/mwarr.c
+++ b/src/mame/drivers/mwarr.c
@@ -96,6 +96,9 @@ public:
TILE_GET_INFO_MEMBER(get_mlow_tile_info);
TILE_GET_INFO_MEMBER(get_mhigh_tile_info);
TILE_GET_INFO_MEMBER(get_tx_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -387,24 +390,23 @@ TILE_GET_INFO_MEMBER(mwarr_state::get_tx_tile_info)
SET_TILE_INFO_MEMBER(1, tileno, colour, 0);
}
-static VIDEO_START( mwarr )
+void mwarr_state::video_start()
{
- mwarr_state *state = machine.driver_data<mwarr_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
- state->m_mlow_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_mlow_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
- state->m_mhigh_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_mhigh_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
- state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
+ m_mlow_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_mlow_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
+ m_mhigh_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_mhigh_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
+ m_tx_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- state->m_mlow_tilemap->set_transparent_pen(0);
- state->m_mhigh_tilemap->set_transparent_pen(0);
- state->m_tx_tilemap->set_transparent_pen(0);
+ m_mlow_tilemap->set_transparent_pen(0);
+ m_mhigh_tilemap->set_transparent_pen(0);
+ m_tx_tilemap->set_transparent_pen(0);
- state->m_bg_tilemap->set_scroll_rows(256);
- state->m_mlow_tilemap->set_scroll_rows(256);
- state->m_mhigh_tilemap->set_scroll_rows(256);
+ m_bg_tilemap->set_scroll_rows(256);
+ m_mlow_tilemap->set_scroll_rows(256);
+ m_mhigh_tilemap->set_scroll_rows(256);
- state->save_item(NAME(state->m_sprites_buffer));
+ save_item(NAME(m_sprites_buffer));
}
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
@@ -539,18 +541,16 @@ static SCREEN_UPDATE_IND16( mwarr )
*
*************************************/
-static MACHINE_START( mwarr )
+void mwarr_state::machine_start()
{
- mwarr_state *state = machine.driver_data<mwarr_state>();
- state->save_item(NAME(state->m_which));
+ save_item(NAME(m_which));
}
-static MACHINE_RESET( mwarr )
+void mwarr_state::machine_reset()
{
- mwarr_state *state = machine.driver_data<mwarr_state>();
- state->m_which = 0;
+ m_which = 0;
}
static MACHINE_CONFIG_START( mwarr, mwarr_state )
@@ -560,8 +560,6 @@ static MACHINE_CONFIG_START( mwarr, mwarr_state )
MCFG_CPU_PROGRAM_MAP(mwarr_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
- MCFG_MACHINE_START(mwarr)
- MCFG_MACHINE_RESET(mwarr)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -574,7 +572,6 @@ static MACHINE_CONFIG_START( mwarr, mwarr_state )
MCFG_GFXDECODE(mwarr)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(mwarr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c
index 0d7162c695b..3c71760a441 100644
--- a/src/mame/drivers/mystwarr.c
+++ b/src/mame/drivers/mystwarr.c
@@ -837,24 +837,23 @@ static GFXDECODE_START( dadandrn )
GFXDECODE_ENTRY( "gfx3", 0, bglayout_8bpp, 0x0000, 8 )
GFXDECODE_END
-static MACHINE_START( mystwarr )
+MACHINE_START_MEMBER(mystwarr_state,mystwarr)
{
- mystwarr_state *state = machine.driver_data<mystwarr_state>();
/* set default bankswitch */
- state->m_cur_sound_region = 2;
- reset_sound_region(machine);
+ m_cur_sound_region = 2;
+ reset_sound_region(machine());
- state->m_mw_irq_control = 0;
+ m_mw_irq_control = 0;
- state_save_register_global(machine, state->m_mw_irq_control);
- state_save_register_global(machine, state->m_cur_sound_region);
- machine.save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine));
+ state_save_register_global(machine(), m_mw_irq_control);
+ state_save_register_global(machine(), m_cur_sound_region);
+ machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
}
-static MACHINE_RESET(mystwarr)
+MACHINE_RESET_MEMBER(mystwarr_state,mystwarr)
{
- k054539_device *k054539_1 = machine.device<k054539_device>("konami1");
- k054539_device *k054539_2 = machine.device<k054539_device>("konami2");
+ k054539_device *k054539_1 = machine().device<k054539_device>("konami1");
+ k054539_device *k054539_2 = machine().device<k054539_device>("konami2");
int i;
// soften chorus(chip 0 channel 0-3), boost voice(chip 0 channel 4-7)
@@ -868,28 +867,28 @@ static MACHINE_RESET(mystwarr)
for (i=0; i<=7; i++) k054539_2->set_gain(i, 0.5);
}
-static MACHINE_RESET(dadandrn)
+MACHINE_RESET_MEMBER(mystwarr_state,dadandrn)
{
- k054539_device *k054539_1 = machine.device<k054539_device>("konami1");
+ k054539_device *k054539_1 = machine().device<k054539_device>("konami1");
int i;
// boost voice(chip 0 channel 4-7)
for (i=4; i<=7; i++) k054539_1->set_gain(i, 2.0);
}
-static MACHINE_RESET(viostorm)
+MACHINE_RESET_MEMBER(mystwarr_state,viostorm)
{
- k054539_device *k054539_1 = machine.device<k054539_device>("konami1");
+ k054539_device *k054539_1 = machine().device<k054539_device>("konami1");
int i;
// boost voice(chip 0 channel 4-7)
for (i=4; i<=7; i++) k054539_1->set_gain(i, 2.0);
}
-static MACHINE_RESET(metamrph)
+MACHINE_RESET_MEMBER(mystwarr_state,metamrph)
{
- k054539_device *k054539_1 = machine.device<k054539_device>("konami1");
- k054539_device *k054539_2 = machine.device<k054539_device>("konami2");
+ k054539_device *k054539_1 = machine().device<k054539_device>("konami1");
+ k054539_device *k054539_2 = machine().device<k054539_device>("konami2");
int i;
// boost voice(chip 0 channel 4-7) and soften other channels
@@ -902,9 +901,9 @@ static MACHINE_RESET(metamrph)
}
}
-static MACHINE_RESET(martchmp)
+MACHINE_RESET_MEMBER(mystwarr_state,martchmp)
{
- k054539_device *k054539_1 = machine.device<k054539_device>("konami1");
+ k054539_device *k054539_1 = machine().device<k054539_device>("konami1");
int i;
k054539_1->init_flags(k054539_device::REVERSE_STEREO);
@@ -913,9 +912,9 @@ static MACHINE_RESET(martchmp)
for (i=4; i<=7; i++) k054539_1->set_gain(i, 1.4);
}
-static MACHINE_RESET(gaiapols)
+MACHINE_RESET_MEMBER(mystwarr_state,gaiapols)
{
- k054539_device *k054539_1 = machine.device<k054539_device>("konami1");
+ k054539_device *k054539_1 = machine().device<k054539_device>("konami1");
int i;
// boost voice(chip 0 channel 5-7)
@@ -998,8 +997,8 @@ static MACHINE_CONFIG_START( mystwarr, mystwarr_state )
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
MCFG_K053252_ADD("k053252", 6000000, mystwarr_k053252_intf) // 6 MHz?
- MCFG_MACHINE_START(mystwarr)
- MCFG_MACHINE_RESET(mystwarr)
+ MCFG_MACHINE_START_OVERRIDE(mystwarr_state,mystwarr)
+ MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,mystwarr)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
@@ -1014,7 +1013,7 @@ static MACHINE_CONFIG_START( mystwarr, mystwarr_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(mystwarr)
+ MCFG_VIDEO_START_OVERRIDE(mystwarr_state,mystwarr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1030,7 +1029,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( viostorm, mystwarr )
- MCFG_MACHINE_RESET(viostorm)
+ MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,viostorm)
MCFG_DEVICE_REMOVE("k053252")
MCFG_K053252_ADD("k053252", 16000000/2, viostorm_k053252_intf)
@@ -1042,7 +1041,7 @@ static MACHINE_CONFIG_DERIVED( viostorm, mystwarr )
MCFG_TIMER_CALLBACK(metamrph_interrupt)
/* video hardware */
- MCFG_VIDEO_START(viostorm)
+ MCFG_VIDEO_START_OVERRIDE(mystwarr_state,viostorm)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(metamrph)
@@ -1054,7 +1053,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( metamrph, mystwarr )
- MCFG_MACHINE_RESET(metamrph)
+ MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,metamrph)
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
@@ -1067,7 +1066,7 @@ static MACHINE_CONFIG_DERIVED( metamrph, mystwarr )
MCFG_K053250_ADD("k053250_1", "screen", -7, 0)
/* video hardware */
- MCFG_VIDEO_START(metamrph)
+ MCFG_VIDEO_START_OVERRIDE(mystwarr_state,metamrph)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(metamrph)
@@ -1079,7 +1078,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( dadandrn, mystwarr )
- MCFG_MACHINE_RESET(dadandrn)
+ MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,dadandrn)
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
@@ -1093,7 +1092,7 @@ static MACHINE_CONFIG_DERIVED( dadandrn, mystwarr )
MCFG_GFXDECODE(dadandrn)
/* video hardware */
- MCFG_VIDEO_START(dadandrn)
+ MCFG_VIDEO_START_OVERRIDE(mystwarr_state,dadandrn)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(dadandrn)
@@ -1105,7 +1104,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( gaiapols, mystwarr )
- MCFG_MACHINE_RESET(gaiapols)
+ MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,gaiapols)
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
@@ -1122,7 +1121,7 @@ static MACHINE_CONFIG_DERIVED( gaiapols, mystwarr )
MCFG_EEPROM_ADD("eeprom", gaia_eeprom_intf)
/* video hardware */
- MCFG_VIDEO_START(gaiapols)
+ MCFG_VIDEO_START_OVERRIDE(mystwarr_state,gaiapols)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(dadandrn)
@@ -1135,7 +1134,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( martchmp, mystwarr )
- MCFG_MACHINE_RESET(martchmp)
+ MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,martchmp)
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
@@ -1148,7 +1147,7 @@ static MACHINE_CONFIG_DERIVED( martchmp, mystwarr )
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_VIDEO_START(martchmp)
+ MCFG_VIDEO_START_OVERRIDE(mystwarr_state,martchmp)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(martchmp)
diff --git a/src/mame/drivers/n8080.c b/src/mame/drivers/n8080.c
index ee0a76f5546..912dad6c8b1 100644
--- a/src/mame/drivers/n8080.c
+++ b/src/mame/drivers/n8080.c
@@ -469,77 +469,72 @@ static I8085_CONFIG( n8080_cpu_config )
DEVCB_NULL /* SOD changed callback (8085A only) */
};
-static MACHINE_START( n8080 )
+MACHINE_START_MEMBER(n8080_state,n8080)
{
- n8080_state *state = machine.driver_data<n8080_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_shift_data));
- state->save_item(NAME(state->m_shift_bits));
- state->save_item(NAME(state->m_inte));
+ save_item(NAME(m_shift_data));
+ save_item(NAME(m_shift_bits));
+ save_item(NAME(m_inte));
}
-static MACHINE_START( spacefev )
+MACHINE_START_MEMBER(n8080_state,spacefev)
{
- MACHINE_START_CALL(n8080);
- MACHINE_START_CALL(spacefev_sound);
+ MACHINE_START_CALL_MEMBER(n8080);
+ MACHINE_START_CALL_MEMBER(spacefev_sound);
}
-static MACHINE_START( sheriff )
+MACHINE_START_MEMBER(n8080_state,sheriff)
{
- MACHINE_START_CALL(n8080);
- MACHINE_START_CALL(sheriff_sound);
+ MACHINE_START_CALL_MEMBER(n8080);
+ MACHINE_START_CALL_MEMBER(sheriff_sound);
}
-static MACHINE_START( helifire )
+MACHINE_START_MEMBER(n8080_state,helifire)
{
- MACHINE_START_CALL(n8080);
- MACHINE_START_CALL(helifire_sound);
+ MACHINE_START_CALL_MEMBER(n8080);
+ MACHINE_START_CALL_MEMBER(helifire_sound);
}
-static MACHINE_RESET( n8080 )
+MACHINE_RESET_MEMBER(n8080_state,n8080)
{
- n8080_state *state = machine.driver_data<n8080_state>();
- state->m_shift_data = 0;
- state->m_shift_bits = 0;
- state->m_inte = 0;
+ m_shift_data = 0;
+ m_shift_bits = 0;
+ m_inte = 0;
}
-static MACHINE_RESET( spacefev )
+MACHINE_RESET_MEMBER(n8080_state,spacefev)
{
- n8080_state *state = machine.driver_data<n8080_state>();
- MACHINE_RESET_CALL(n8080);
- MACHINE_RESET_CALL(spacefev_sound);
+ MACHINE_RESET_CALL_MEMBER(n8080);
+ MACHINE_RESET_CALL_MEMBER(spacefev_sound);
- state->m_spacefev_red_screen = 0;
- state->m_spacefev_red_cannon = 0;
+ m_spacefev_red_screen = 0;
+ m_spacefev_red_cannon = 0;
}
-static MACHINE_RESET( sheriff )
+MACHINE_RESET_MEMBER(n8080_state,sheriff)
{
- n8080_state *state = machine.driver_data<n8080_state>();
- MACHINE_RESET_CALL(n8080);
- MACHINE_RESET_CALL(sheriff_sound);
+ MACHINE_RESET_CALL_MEMBER(n8080);
+ MACHINE_RESET_CALL_MEMBER(sheriff_sound);
- state->m_sheriff_color_mode = 0;
- state->m_sheriff_color_data = 0;
+ m_sheriff_color_mode = 0;
+ m_sheriff_color_data = 0;
}
-static MACHINE_RESET( helifire )
+MACHINE_RESET_MEMBER(n8080_state,helifire)
{
- n8080_state *state = machine.driver_data<n8080_state>();
- MACHINE_RESET_CALL(n8080);
- MACHINE_RESET_CALL(helifire_sound);
+ MACHINE_RESET_CALL_MEMBER(n8080);
+ MACHINE_RESET_CALL_MEMBER(helifire_sound);
- state->m_helifire_mv = 0;
- state->m_helifire_sc = 0;
- state->m_helifire_flash = 0;
+ m_helifire_mv = 0;
+ m_helifire_sc = 0;
+ m_helifire_flash = 0;
}
@@ -551,8 +546,8 @@ static MACHINE_CONFIG_START( spacefev, n8080_state )
MCFG_CPU_PROGRAM_MAP(main_cpu_map)
MCFG_CPU_IO_MAP(main_io_map)
- MCFG_MACHINE_START(spacefev)
- MCFG_MACHINE_RESET(spacefev)
+ MCFG_MACHINE_START_OVERRIDE(n8080_state,spacefev)
+ MCFG_MACHINE_RESET_OVERRIDE(n8080_state,spacefev)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -562,8 +557,8 @@ static MACHINE_CONFIG_START( spacefev, n8080_state )
MCFG_SCREEN_UPDATE_STATIC(spacefev)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(n8080)
- MCFG_VIDEO_START(spacefev)
+ MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080)
+ MCFG_VIDEO_START_OVERRIDE(n8080_state,spacefev)
MCFG_TIMER_ADD_SCANLINE("rst1", rst1_tick, "screen", 128, 256)
MCFG_TIMER_ADD_SCANLINE("rst2", rst2_tick, "screen", 240, 256)
@@ -581,8 +576,8 @@ static MACHINE_CONFIG_START( sheriff, n8080_state )
MCFG_CPU_PROGRAM_MAP(main_cpu_map)
MCFG_CPU_IO_MAP(main_io_map)
- MCFG_MACHINE_START(sheriff)
- MCFG_MACHINE_RESET(sheriff)
+ MCFG_MACHINE_START_OVERRIDE(n8080_state,sheriff)
+ MCFG_MACHINE_RESET_OVERRIDE(n8080_state,sheriff)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -592,8 +587,8 @@ static MACHINE_CONFIG_START( sheriff, n8080_state )
MCFG_SCREEN_UPDATE_STATIC(sheriff)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(n8080)
- MCFG_VIDEO_START(sheriff)
+ MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080)
+ MCFG_VIDEO_START_OVERRIDE(n8080_state,sheriff)
MCFG_TIMER_ADD_SCANLINE("rst1", rst1_tick, "screen", 128, 256)
MCFG_TIMER_ADD_SCANLINE("rst2", rst2_tick, "screen", 240, 256)
@@ -622,8 +617,8 @@ static MACHINE_CONFIG_START( helifire, n8080_state )
MCFG_CPU_PROGRAM_MAP(helifire_main_cpu_map)
MCFG_CPU_IO_MAP(main_io_map)
- MCFG_MACHINE_START(helifire)
- MCFG_MACHINE_RESET(helifire)
+ MCFG_MACHINE_START_OVERRIDE(n8080_state,helifire)
+ MCFG_MACHINE_RESET_OVERRIDE(n8080_state,helifire)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -634,8 +629,8 @@ static MACHINE_CONFIG_START( helifire, n8080_state )
MCFG_SCREEN_VBLANK_STATIC(helifire)
MCFG_PALETTE_LENGTH(8 + 0x400)
- MCFG_PALETTE_INIT(helifire)
- MCFG_VIDEO_START(helifire)
+ MCFG_PALETTE_INIT_OVERRIDE(n8080_state,helifire)
+ MCFG_VIDEO_START_OVERRIDE(n8080_state,helifire)
MCFG_TIMER_ADD_SCANLINE("rst1", rst1_tick, "screen", 128, 256)
MCFG_TIMER_ADD_SCANLINE("rst2", rst2_tick, "screen", 240, 256)
diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c
index ec4cbf2cb25..1f7ac2f4501 100644
--- a/src/mame/drivers/namcofl.c
+++ b/src/mame/drivers/namcofl.c
@@ -566,23 +566,21 @@ static TIMER_DEVICE_CALLBACK( mcu_adc_cb )
}
-static MACHINE_START( namcofl )
+MACHINE_START_MEMBER(namcofl_state,namcofl)
{
- namcofl_state *state = machine.driver_data<namcofl_state>();
- state->m_raster_interrupt_timer = machine.scheduler().timer_alloc(FUNC(raster_interrupt_callback));
+ m_raster_interrupt_timer = machine().scheduler().timer_alloc(FUNC(raster_interrupt_callback));
}
-static MACHINE_RESET( namcofl )
+MACHINE_RESET_MEMBER(namcofl_state,namcofl)
{
- namcofl_state *state = machine.driver_data<namcofl_state>();
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(machine.primary_screen->visible_area().max_y + 3), FUNC(network_interrupt_callback));
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(machine.primary_screen->visible_area().max_y + 1), FUNC(vblank_interrupt_callback));
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(machine().primary_screen->visible_area().max_y + 3), FUNC(network_interrupt_callback));
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(machine().primary_screen->visible_area().max_y + 1), FUNC(vblank_interrupt_callback));
- state->membank("bank1")->set_base(state->memregion("maincpu")->base() );
- state->membank("bank2")->set_base(state->m_workram );
+ membank("bank1")->set_base(memregion("maincpu")->base() );
+ membank("bank2")->set_base(m_workram );
- memset(state->m_workram, 0x00, 0x100000);
+ memset(m_workram, 0x00, 0x100000);
}
@@ -598,8 +596,8 @@ static MACHINE_CONFIG_START( namcofl, namcofl_state )
MCFG_TIMER_ADD_PERIODIC("mcu_irq2", mcu_irq2_cb, attotime::from_hz(60))
MCFG_TIMER_ADD_PERIODIC("mcu_adc", mcu_adc_cb, attotime::from_hz(60))
- MCFG_MACHINE_START(namcofl)
- MCFG_MACHINE_RESET(namcofl)
+ MCFG_MACHINE_START_OVERRIDE(namcofl_state,namcofl)
+ MCFG_MACHINE_RESET_OVERRIDE(namcofl_state,namcofl)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_SCREEN_ADD("screen", RASTER)
@@ -612,7 +610,7 @@ static MACHINE_CONFIG_START( namcofl, namcofl_state )
MCFG_GFXDECODE(2)
- MCFG_VIDEO_START(namcofl)
+ MCFG_VIDEO_START_OVERRIDE(namcofl_state,namcofl)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_C352_ADD("c352", 48384000/2)
diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c
index 91f22a72e21..f3833e4a1c2 100644
--- a/src/mame/drivers/namcona1.c
+++ b/src/mame/drivers/namcona1.c
@@ -914,19 +914,17 @@ WRITE8_MEMBER(namcona1_state::port8_w)
}
-static MACHINE_START( namcona1 )
+void namcona1_state::machine_start()
{
- namcona1_state *state = machine.driver_data<namcona1_state>();
- c140_set_base(machine.device("c140"), state->m_workram);
+ c140_set_base(machine().device("c140"), m_workram);
}
// for games with the MCU emulated, the MCU boots the 68000. don't allow it before that.
-static MACHINE_RESET( namcona1_mcu )
+void namcona1_state::machine_reset()
{
- namcona1_state *state = machine.driver_data<namcona1_state>();
- machine.device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- state->m_mcu_port5 = 1;
+ m_mcu_port5 = 1;
}
// "encrypt" player 3 inputs
@@ -1018,8 +1016,6 @@ static MACHINE_CONFIG_START( namcona1, namcona1_state )
MCFG_TIMER_ADD_SCANLINE("scan_mcu", mcu_interrupt, "screen", 0, 1)
MCFG_NVRAM_HANDLER(namcosna1)
- MCFG_MACHINE_START(namcona1)
- MCFG_MACHINE_RESET(namcona1_mcu)
MCFG_QUANTUM_TIME(attotime::from_hz(2400))
/* video hardware */
@@ -1034,7 +1030,6 @@ static MACHINE_CONFIG_START( namcona1, namcona1_state )
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(namcona1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/namconb1.c b/src/mame/drivers/namconb1.c
index 892802094aa..fd5206f0b4b 100644
--- a/src/mame/drivers/namconb1.c
+++ b/src/mame/drivers/namconb1.c
@@ -597,12 +597,11 @@ static NVRAM_HANDLER( namconb1 )
}
} /* namconb1 */
-static MACHINE_START(namconb)
+MACHINE_START_MEMBER(namconb1_state,namconb)
{
- namconb1_state *state = machine.driver_data<namconb1_state>();
- state->m_vblank_irq_active = 0;
- state->m_pos_irq_active = 0;
- memset(state->m_namconb_cpureg, 0, sizeof(state->m_namconb_cpureg));
+ m_vblank_irq_active = 0;
+ m_pos_irq_active = 0;
+ memset(m_namconb_cpureg, 0, sizeof(m_namconb_cpureg));
}
DRIVER_INIT_MEMBER(namconb1_state,nebulray)
@@ -1018,7 +1017,7 @@ static MACHINE_CONFIG_START( namconb1, namconb1_state )
MCFG_TIMER_ADD_SCANLINE("mcu_st", mcu_interrupt, "screen", 0, 1)
MCFG_NVRAM_HANDLER(namconb1)
- MCFG_MACHINE_START(namconb)
+ MCFG_MACHINE_START_OVERRIDE(namconb1_state,namconb)
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1029,7 +1028,7 @@ static MACHINE_CONFIG_START( namconb1, namconb1_state )
MCFG_GFXDECODE(namconb1)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(namconb1)
+ MCFG_VIDEO_START_OVERRIDE(namconb1_state,namconb1)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_C352_ADD("c352", MASTER_CLOCK_HZ/2)
@@ -1050,7 +1049,7 @@ static MACHINE_CONFIG_START( namconb2, namconb1_state )
MCFG_TIMER_ADD_SCANLINE("mcu_st", mcu_interrupt, "screen", 0, 1)
MCFG_NVRAM_HANDLER(namconb1)
- MCFG_MACHINE_START(namconb)
+ MCFG_MACHINE_START_OVERRIDE(namconb1_state,namconb)
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1061,7 +1060,7 @@ static MACHINE_CONFIG_START( namconb2, namconb1_state )
MCFG_GFXDECODE(2)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(namconb2)
+ MCFG_VIDEO_START_OVERRIDE(namconb1_state,namconb2)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_C352_ADD("c352", MASTER_CLOCK_HZ/2)
diff --git a/src/mame/drivers/namcond1.c b/src/mame/drivers/namcond1.c
index 359e0d9dfd9..4d43517ffa1 100644
--- a/src/mame/drivers/namcond1.c
+++ b/src/mame/drivers/namcond1.c
@@ -302,8 +302,6 @@ static MACHINE_CONFIG_START( namcond1, namcond1_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(namcond1)
- MCFG_MACHINE_RESET(namcond1)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c
index 3319accb96a..aee010d139c 100644
--- a/src/mame/drivers/namcos1.c
+++ b/src/mame/drivers/namcos1.c
@@ -1101,7 +1101,6 @@ static MACHINE_CONFIG_START( ns1, namcos1_state )
// heavy sync required to prevent CPUs from fighting for video RAM access and going into deadlocks
MCFG_QUANTUM_TIME(attotime::from_hz(38400))
- MCFG_MACHINE_RESET(namcos1)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -1118,7 +1117,6 @@ static MACHINE_CONFIG_START( ns1, namcos1_state )
MCFG_GFXDECODE(namcos1)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(namcos1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/namcos10.c b/src/mame/drivers/namcos10.c
index 9584711b6c5..ec3fbd1977f 100644
--- a/src/mame/drivers/namcos10.c
+++ b/src/mame/drivers/namcos10.c
@@ -314,6 +314,7 @@ public:
DECLARE_DRIVER_INIT(gamshara);
DECLARE_DRIVER_INIT(mrdrilrg);
DECLARE_DRIVER_INIT(chocovdr);
+ DECLARE_MACHINE_RESET(namcos10);
};
@@ -593,7 +594,7 @@ DRIVER_INIT_MEMBER(namcos10_state,nflclsfb)
}
-static MACHINE_RESET( namcos10 )
+MACHINE_RESET_MEMBER(namcos10_state,namcos10)
{
}
@@ -602,7 +603,7 @@ static MACHINE_CONFIG_START( namcos10_memm, namcos10_state )
MCFG_CPU_ADD( "maincpu", CXD8606BQ, XTAL_101_4912MHz )
MCFG_CPU_PROGRAM_MAP( namcos10_memm_map )
- MCFG_MACHINE_RESET( namcos10 )
+ MCFG_MACHINE_RESET_OVERRIDE(namcos10_state, namcos10 )
/* video hardware */
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561CQ, 0x200000, XTAL_53_693175MHz )
@@ -616,7 +617,7 @@ static MACHINE_CONFIG_START( namcos10_memn, namcos10_state )
MCFG_CPU_ADD( "maincpu", CXD8606BQ, XTAL_101_4912MHz )
MCFG_CPU_PROGRAM_MAP( namcos10_memn_map )
- MCFG_MACHINE_RESET( namcos10 )
+ MCFG_MACHINE_RESET_OVERRIDE(namcos10_state, namcos10 )
/* video hardware */
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561CQ, 0x200000, XTAL_53_693175MHz )
diff --git a/src/mame/drivers/namcos11.c b/src/mame/drivers/namcos11.c
index 97d78e7238d..b8a982a7f59 100644
--- a/src/mame/drivers/namcos11.c
+++ b/src/mame/drivers/namcos11.c
@@ -341,6 +341,7 @@ public:
DECLARE_DRIVER_INIT(tekken);
DECLARE_DRIVER_INIT(xevi3dg);
DECLARE_DRIVER_INIT(tekken2);
+ DECLARE_MACHINE_RESET(namcos11);
};
INLINE void ATTR_PRINTF(3,4) verboselog( running_machine &machine, int n_level, const char *s_fmt, ... )
@@ -992,11 +993,10 @@ DRIVER_INIT_MEMBER(namcos11_state,ptblank2ua)
machine().device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler (0x1f780000, 0x1f78000f, read32_delegate(FUNC(namcos11_state::lightgun_r),this));
}
-static MACHINE_RESET( namcos11 )
+MACHINE_RESET_MEMBER(namcos11_state,namcos11)
{
- namcos11_state *state = machine.driver_data<namcos11_state>();
- memset( state->m_keycus, 0, state->m_keycus_size );
+ memset( m_keycus, 0, m_keycus_size );
}
@@ -1034,7 +1034,7 @@ static MACHINE_CONFIG_START( coh100, namcos11_state )
MCFG_TIMER_ADD_PERIODIC("mcu_irq2", mcu_irq2_cb, attotime::from_hz(60))
MCFG_TIMER_ADD_PERIODIC("mcu_adc", mcu_adc_cb, attotime::from_hz(60))
- MCFG_MACHINE_RESET( namcos11 )
+ MCFG_MACHINE_RESET_OVERRIDE(namcos11_state, namcos11 )
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8538Q, 0x200000, XTAL_53_693175MHz )
diff --git a/src/mame/drivers/namcos12.c b/src/mame/drivers/namcos12.c
index 72cf4eaa83d..bc2525fecca 100644
--- a/src/mame/drivers/namcos12.c
+++ b/src/mame/drivers/namcos12.c
@@ -1096,6 +1096,7 @@ public:
DECLARE_DRIVER_INIT(namcos12);
DECLARE_DRIVER_INIT(ghlpanic);
DECLARE_DRIVER_INIT(ptblank2);
+ DECLARE_MACHINE_RESET(namcos12);
};
INLINE void ATTR_PRINTF(3,4) verboselog( running_machine &machine, int n_level, const char *s_fmt, ... )
@@ -1384,55 +1385,54 @@ READ32_MEMBER(namcos12_state::tektagt_protection_3_r)
return 0;
}
-static MACHINE_RESET( namcos12 )
+MACHINE_RESET_MEMBER(namcos12_state,namcos12)
{
- namcos12_state *state = machine.driver_data<namcos12_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- state->bankoffset_w(*space,0,0,0xffffffff);
- state->m_has_tektagt_dma = 0;
-
- if( strcmp( machine.system().name, "tektagt" ) == 0 ||
- strcmp( machine.system().name, "tektagtac" ) == 0 ||
- strcmp( machine.system().name, "tektagtac1" ) == 0 ||
- strcmp( machine.system().name, "tektagtub" ) == 0 ||
- strcmp( machine.system().name, "tektagtjb" ) == 0 ||
- strcmp( machine.system().name, "tektagtja" ) == 0 )
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ bankoffset_w(*space,0,0,0xffffffff);
+ m_has_tektagt_dma = 0;
+
+ if( strcmp( machine().system().name, "tektagt" ) == 0 ||
+ strcmp( machine().system().name, "tektagtac" ) == 0 ||
+ strcmp( machine().system().name, "tektagtac1" ) == 0 ||
+ strcmp( machine().system().name, "tektagtub" ) == 0 ||
+ strcmp( machine().system().name, "tektagtjb" ) == 0 ||
+ strcmp( machine().system().name, "tektagtja" ) == 0 )
{
- state->m_has_tektagt_dma = 1;
- space->install_readwrite_handler(0x1fb00000, 0x1fb00003, read32_delegate(FUNC(namcos12_state::tektagt_protection_1_r),state), write32_delegate(FUNC(namcos12_state::tektagt_protection_1_w),state));
- space->install_readwrite_handler(0x1fb80000, 0x1fb80003, read32_delegate(FUNC(namcos12_state::tektagt_protection_2_r),state), write32_delegate(FUNC(namcos12_state::tektagt_protection_2_w),state));
- space->install_read_handler(0x1f700000, 0x1f700003, read32_delegate(FUNC(namcos12_state::tektagt_protection_3_r),state));
+ m_has_tektagt_dma = 1;
+ space->install_readwrite_handler(0x1fb00000, 0x1fb00003, read32_delegate(FUNC(namcos12_state::tektagt_protection_1_r),this), write32_delegate(FUNC(namcos12_state::tektagt_protection_1_w),this));
+ space->install_readwrite_handler(0x1fb80000, 0x1fb80003, read32_delegate(FUNC(namcos12_state::tektagt_protection_2_r),this), write32_delegate(FUNC(namcos12_state::tektagt_protection_2_w),this));
+ space->install_read_handler(0x1f700000, 0x1f700003, read32_delegate(FUNC(namcos12_state::tektagt_protection_3_r),this));
}
- if( strcmp( machine.system().name, "tektagt" ) == 0 ||
- strcmp( machine.system().name, "tektagtac" ) == 0 ||
- strcmp( machine.system().name, "tektagtac1" ) == 0 ||
- strcmp( machine.system().name, "tektagtub" ) == 0 ||
- strcmp( machine.system().name, "tektagtjb" ) == 0 ||
- strcmp( machine.system().name, "tektagtja" ) == 0 ||
- strcmp( machine.system().name, "fgtlayer" ) == 0 ||
- strcmp( machine.system().name, "golgo13" ) == 0 ||
- strcmp( machine.system().name, "g13knd" ) == 0 ||
- strcmp( machine.system().name, "mrdrillr" ) == 0 ||
- strcmp( machine.system().name, "pacapp" ) == 0 ||
- strcmp( machine.system().name, "pacappsp" ) == 0 ||
- strcmp( machine.system().name, "pacapp2" ) == 0 ||
- strcmp( machine.system().name, "tenkomor" ) == 0 ||
- strcmp( machine.system().name, "tenkomorja" ) == 0 ||
- strcmp( machine.system().name, "ptblank2" ) == 0 ||
- strcmp( machine.system().name, "gunbarl" ) == 0 ||
- strcmp( machine.system().name, "sws2000" ) == 0 ||
- strcmp( machine.system().name, "sws2001" ) == 0 ||
- strcmp( machine.system().name, "truckk" ) == 0 ||
- strcmp( machine.system().name, "ghlpanic" ) == 0 )
+ if( strcmp( machine().system().name, "tektagt" ) == 0 ||
+ strcmp( machine().system().name, "tektagtac" ) == 0 ||
+ strcmp( machine().system().name, "tektagtac1" ) == 0 ||
+ strcmp( machine().system().name, "tektagtub" ) == 0 ||
+ strcmp( machine().system().name, "tektagtjb" ) == 0 ||
+ strcmp( machine().system().name, "tektagtja" ) == 0 ||
+ strcmp( machine().system().name, "fgtlayer" ) == 0 ||
+ strcmp( machine().system().name, "golgo13" ) == 0 ||
+ strcmp( machine().system().name, "g13knd" ) == 0 ||
+ strcmp( machine().system().name, "mrdrillr" ) == 0 ||
+ strcmp( machine().system().name, "pacapp" ) == 0 ||
+ strcmp( machine().system().name, "pacappsp" ) == 0 ||
+ strcmp( machine().system().name, "pacapp2" ) == 0 ||
+ strcmp( machine().system().name, "tenkomor" ) == 0 ||
+ strcmp( machine().system().name, "tenkomorja" ) == 0 ||
+ strcmp( machine().system().name, "ptblank2" ) == 0 ||
+ strcmp( machine().system().name, "gunbarl" ) == 0 ||
+ strcmp( machine().system().name, "sws2000" ) == 0 ||
+ strcmp( machine().system().name, "sws2001" ) == 0 ||
+ strcmp( machine().system().name, "truckk" ) == 0 ||
+ strcmp( machine().system().name, "ghlpanic" ) == 0 )
{
/* this is based on guesswork, it might not even be keycus. */
space->install_read_bank (0x1fc20280, 0x1fc2028b, "bank2" );
- space->install_write_handler(0x1f008000, 0x1f008003, write32_delegate(FUNC(namcos12_state::kcon_w),state));
- space->install_write_handler(0x1f018000, 0x1f018003, write32_delegate(FUNC(namcos12_state::kcoff_w),state));
+ space->install_write_handler(0x1f008000, 0x1f008003, write32_delegate(FUNC(namcos12_state::kcon_w),this));
+ space->install_write_handler(0x1f018000, 0x1f018003, write32_delegate(FUNC(namcos12_state::kcoff_w),this));
- memset( state->m_kcram, 0, sizeof( state->m_kcram ) );
- state->membank( "bank2" )->set_base( state->m_kcram );
+ memset( m_kcram, 0, sizeof( m_kcram ) );
+ membank( "bank2" )->set_base( m_kcram );
}
}
@@ -1677,7 +1677,7 @@ static MACHINE_CONFIG_START( coh700, namcos12_state )
MCFG_CPU_PROGRAM_MAP( s12h8rwmap)
MCFG_CPU_IO_MAP( s12h8iomap)
- MCFG_MACHINE_RESET( namcos12 )
+ MCFG_MACHINE_RESET_OVERRIDE(namcos12_state, namcos12 )
/* video hardware */
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8654Q, 0x200000, XTAL_53_693175MHz )
diff --git a/src/mame/drivers/namcos2.c b/src/mame/drivers/namcos2.c
index 23e376988ec..6abce45eb02 100644
--- a/src/mame/drivers/namcos2.c
+++ b/src/mame/drivers/namcos2.c
@@ -1623,8 +1623,8 @@ static MACHINE_CONFIG_START( default, namcos2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(12000)) /* CPU slices per frame */
- MCFG_MACHINE_START(namcos2)
- MCFG_MACHINE_RESET(namcos2)
+ MCFG_MACHINE_START_OVERRIDE(namcos2_state,namcos2)
+ MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -1697,8 +1697,8 @@ static MACHINE_CONFIG_START( gollygho, namcos2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices per frame */
- MCFG_MACHINE_START(namcos2)
- MCFG_MACHINE_RESET(namcos2)
+ MCFG_MACHINE_START_OVERRIDE(namcos2_state,namcos2)
+ MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -1744,8 +1744,8 @@ static MACHINE_CONFIG_START( finallap, namcos2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices per frame */
- MCFG_MACHINE_START(namcos2)
- MCFG_MACHINE_RESET(namcos2)
+ MCFG_MACHINE_START_OVERRIDE(namcos2_state,namcos2)
+ MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -1759,7 +1759,7 @@ static MACHINE_CONFIG_START( finallap, namcos2_state )
MCFG_GFXDECODE(finallap)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START_OVERRIDE(namcos2_state, video_start_finallap)
+ MCFG_VIDEO_START_OVERRIDE(namcos2_state, finallap)
MCFG_NAMCO_C45_ROAD_ADD("c45_road")
@@ -1795,8 +1795,8 @@ static MACHINE_CONFIG_START( sgunner, namcos2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices per frame */
- MCFG_MACHINE_START(namcos2)
- MCFG_MACHINE_RESET(namcos2)
+ MCFG_MACHINE_START_OVERRIDE(namcos2_state,namcos2)
+ MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -1810,7 +1810,7 @@ static MACHINE_CONFIG_START( sgunner, namcos2_state )
MCFG_GFXDECODE(sgunner)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START_OVERRIDE(namcos2_state, video_start_sgunner)
+ MCFG_VIDEO_START_OVERRIDE(namcos2_state, sgunner)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1844,8 +1844,8 @@ static MACHINE_CONFIG_START( luckywld, namcos2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices per frame */
- MCFG_MACHINE_START(namcos2)
- MCFG_MACHINE_RESET(namcos2)
+ MCFG_MACHINE_START_OVERRIDE(namcos2_state,namcos2)
+ MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -1859,7 +1859,7 @@ static MACHINE_CONFIG_START( luckywld, namcos2_state )
MCFG_GFXDECODE(luckywld)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START_OVERRIDE(namcos2_state, video_start_luckywld)
+ MCFG_VIDEO_START_OVERRIDE(namcos2_state, luckywld)
MCFG_NAMCO_C45_ROAD_ADD("c45_road")
@@ -1895,8 +1895,8 @@ static MACHINE_CONFIG_START( metlhawk, namcos2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices per frame */
- MCFG_MACHINE_START(namcos2)
- MCFG_MACHINE_RESET(namcos2)
+ MCFG_MACHINE_START_OVERRIDE(namcos2_state,namcos2)
+ MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -1910,7 +1910,7 @@ static MACHINE_CONFIG_START( metlhawk, namcos2_state )
MCFG_GFXDECODE(metlhawk)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START_OVERRIDE(namcos2_state, video_start_metlhawk)
+ MCFG_VIDEO_START_OVERRIDE(namcos2_state, metlhawk)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/namcos21.c b/src/mame/drivers/namcos21.c
index 8b91174202c..06e9b5df966 100644
--- a/src/mame/drivers/namcos21.c
+++ b/src/mame/drivers/namcos21.c
@@ -1479,9 +1479,9 @@ static const c140_interface C140_interface =
C140_TYPE_SYSTEM21
};
-static MACHINE_START( namcos21 )
+MACHINE_START_MEMBER(namcos21_state,namcos21)
{
- MACHINE_START_CALL( namcos2 );
+ MACHINE_START_CALL_MEMBER( namcos2 );
namcos2_kickstart = namcos21_kickstart;
}
@@ -1516,8 +1516,8 @@ static MACHINE_CONFIG_START( namcos21, namcos21_state )
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
- MCFG_MACHINE_START(namcos21)
- MCFG_MACHINE_RESET(namcos2)
+ MCFG_MACHINE_START_OVERRIDE(namcos21_state,namcos21)
+ MCFG_MACHINE_RESET_OVERRIDE(namcos21_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
@@ -1531,7 +1531,7 @@ static MACHINE_CONFIG_START( namcos21, namcos21_state )
MCFG_GFXDECODE(namcos21)
MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
- MCFG_VIDEO_START(namcos21)
+ MCFG_VIDEO_START_OVERRIDE(namcos21_state,namcos21)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1571,8 +1571,8 @@ static MACHINE_CONFIG_START( driveyes, namcos21_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame */
- MCFG_MACHINE_START(namcos21)
- MCFG_MACHINE_RESET(namcos2)
+ MCFG_MACHINE_START_OVERRIDE(namcos21_state,namcos21)
+ MCFG_MACHINE_RESET_OVERRIDE(namcos21_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
@@ -1586,7 +1586,7 @@ static MACHINE_CONFIG_START( driveyes, namcos21_state )
MCFG_GFXDECODE(namcos21)
MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
- MCFG_VIDEO_START(namcos21)
+ MCFG_VIDEO_START_OVERRIDE(namcos21_state,namcos21)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1630,8 +1630,8 @@ static MACHINE_CONFIG_START( winrun, namcos21_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame */
- MCFG_MACHINE_START(namcos21)
- MCFG_MACHINE_RESET(namcos2)
+ MCFG_MACHINE_START_OVERRIDE(namcos21_state,namcos21)
+ MCFG_MACHINE_RESET_OVERRIDE(namcos21_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
@@ -1644,7 +1644,7 @@ static MACHINE_CONFIG_START( winrun, namcos21_state )
MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
- MCFG_VIDEO_START(namcos21)
+ MCFG_VIDEO_START_OVERRIDE(namcos21_state,namcos21)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c
index 83241c0ef9d..dab1af6b3d5 100644
--- a/src/mame/drivers/namcos22.c
+++ b/src/mame/drivers/namcos22.c
@@ -2937,9 +2937,9 @@ static TIMER_DEVICE_CALLBACK( mcu_irq )
state->m_mcu->set_input_line(M37710_LINE_IRQ2, HOLD_LINE);
}
-static MACHINE_RESET(namcos22)
+void namcos22_state::machine_reset()
{
- InitDSP(machine);
+ InitDSP(machine());
}
static MACHINE_CONFIG_START( namcos22s, namcos22_state )
@@ -2975,8 +2975,7 @@ static MACHINE_CONFIG_START( namcos22s, namcos22_state )
MCFG_PALETTE_LENGTH(NAMCOS22_PALETTE_SIZE)
MCFG_GFXDECODE(super)
- MCFG_VIDEO_START(namcos22s)
- MCFG_MACHINE_RESET(namcos22)
+ MCFG_VIDEO_START_OVERRIDE(namcos22_state,namcos22s)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3224,8 +3223,7 @@ static MACHINE_CONFIG_START( namcos22, namcos22_state )
MCFG_PALETTE_LENGTH(NAMCOS22_PALETTE_SIZE)
MCFG_GFXDECODE(namcos22)
- MCFG_VIDEO_START(namcos22)
- MCFG_MACHINE_RESET(namcos22)
+ MCFG_VIDEO_START_OVERRIDE(namcos22_state,namcos22)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c
index 1396bbf15ee..4d3b17191f2 100644
--- a/src/mame/drivers/namcos23.c
+++ b/src/mame/drivers/namcos23.c
@@ -1431,6 +1431,9 @@ public:
DECLARE_READ8_MEMBER(iob_r);
DECLARE_DRIVER_INIT(ss23);
TILE_GET_INFO_MEMBER(TextTilemapGetInfo);
+ DECLARE_MACHINE_START(s23);
+ DECLARE_VIDEO_START(ss23);
+ DECLARE_MACHINE_RESET(gmen);
};
@@ -2395,25 +2398,24 @@ static void render_run(running_machine &machine, bitmap_rgb32 &bitmap)
}
-static VIDEO_START( ss23 )
+VIDEO_START_MEMBER(namcos23_state,ss23)
{
- namcos23_state *state = machine.driver_data<namcos23_state>();
- machine.gfx[0]->set_source(reinterpret_cast<UINT8 *>(state->m_charram.target()));
- state->m_bgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos23_state::TextTilemapGetInfo),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- state->m_bgtilemap->set_transparent_pen(0xf);
+ machine().gfx[0]->set_source(reinterpret_cast<UINT8 *>(m_charram.target()));
+ m_bgtilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(namcos23_state::TextTilemapGetInfo),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_bgtilemap->set_transparent_pen(0xf);
// Gorgon's tilemap offset is 0, S23/SS23's is 860
- if ((!strcmp(machine.system().name, "rapidrvr")) ||
- (!strcmp(machine.system().name, "rapidrvr2")) ||
- (!strcmp(machine.system().name, "finlflng")))
+ if ((!strcmp(machine().system().name, "rapidrvr")) ||
+ (!strcmp(machine().system().name, "rapidrvr2")) ||
+ (!strcmp(machine().system().name, "finlflng")))
{
- state->m_bgtilemap->set_scrolldx(0, 0);
+ m_bgtilemap->set_scrolldx(0, 0);
}
else
{
- state->m_bgtilemap->set_scrolldx(860, 860);
+ m_bgtilemap->set_scrolldx(860, 860);
}
- state->m_render.polymgr = poly_alloc(machine, 10000, sizeof(namcos23_render_data), 0);
+ m_render.polymgr = poly_alloc(machine(), 10000, sizeof(namcos23_render_data), 0);
}
static SCREEN_UPDATE_RGB32( ss23 )
@@ -2444,11 +2446,10 @@ static INTERRUPT_GEN(s23_interrupt)
render.count[render.cur] = 0;
}
-static MACHINE_START( s23 )
+MACHINE_START_MEMBER(namcos23_state,s23)
{
- namcos23_state *state = machine.driver_data<namcos23_state>();
- c361_t &c361 = state->m_c361;
- c361.timer = machine.scheduler().timer_alloc(FUNC(c361_timer_cb));
+ c361_t &c361 = m_c361;
+ c361.timer = machine().scheduler().timer_alloc(FUNC(c361_timer_cb));
c361.timer->adjust(attotime::never);
}
@@ -2539,10 +2540,10 @@ static ADDRESS_MAP_START( gmen_sh2_map, AS_PROGRAM, 32, namcos23_state )
AM_RANGE( 0x04000000, 0x043fffff ) AM_RAM // SH-2 main work RAM
ADDRESS_MAP_END
-static MACHINE_RESET(gmen)
+MACHINE_RESET_MEMBER(namcos23_state,gmen)
{
// halt the SH-2 until we need it
- machine.device("gmen")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("gmen")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
WRITE16_MEMBER(namcos23_state::sharedram_sub_w)
@@ -3173,9 +3174,9 @@ static MACHINE_CONFIG_START( gorgon, namcos23_state )
MCFG_GFXDECODE(namcos23)
- MCFG_VIDEO_START(ss23)
+ MCFG_VIDEO_START_OVERRIDE(namcos23_state,ss23)
- MCFG_MACHINE_START(s23)
+ MCFG_MACHINE_START_OVERRIDE(namcos23_state,s23)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3218,9 +3219,9 @@ static MACHINE_CONFIG_START( s23, namcos23_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_VIDEO_START(ss23)
+ MCFG_VIDEO_START_OVERRIDE(namcos23_state,ss23)
- MCFG_MACHINE_START(s23)
+ MCFG_MACHINE_START_OVERRIDE(namcos23_state,s23)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3259,9 +3260,9 @@ static MACHINE_CONFIG_START( ss23, namcos23_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_VIDEO_START(ss23)
+ MCFG_VIDEO_START_OVERRIDE(namcos23_state,ss23)
- MCFG_MACHINE_START(s23)
+ MCFG_MACHINE_START_OVERRIDE(namcos23_state,s23)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3311,7 +3312,7 @@ static MACHINE_CONFIG_DERIVED( gmen, s23 )
MCFG_CPU_ADD("gmen", SH2, 28700000)
MCFG_CPU_PROGRAM_MAP(gmen_sh2_map)
- MCFG_MACHINE_RESET(gmen)
+ MCFG_MACHINE_RESET_OVERRIDE(namcos23_state,gmen)
MACHINE_CONFIG_END
ROM_START( rapidrvr )
diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c
index 02418826e7f..ab0a0e129c5 100644
--- a/src/mame/drivers/namcos86.c
+++ b/src/mame/drivers/namcos86.c
@@ -322,11 +322,11 @@ WRITE8_MEMBER(namcos86_state::cus115_w)
}
-static MACHINE_RESET( namco86 )
+void namcos86_state::machine_reset()
{
- UINT8 *base = machine.root_device().memregion("cpu1")->base() + 0x10000;
+ UINT8 *base = machine().root_device().memregion("cpu1")->base() + 0x10000;
- machine.root_device().membank("bank1")->set_base(base);
+ machine().root_device().membank("bank1")->set_base(base);
}
@@ -1005,7 +1005,6 @@ static MACHINE_CONFIG_START( hopmappy, namcos86_state )
MCFG_QUANTUM_TIME(attotime::from_hz(48000)) /* heavy interleaving needed to avoid hangs in rthunder */
- MCFG_MACHINE_RESET(namco86)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1019,8 +1018,6 @@ static MACHINE_CONFIG_START( hopmappy, namcos86_state )
MCFG_GFXDECODE(namcos86)
MCFG_PALETTE_LENGTH(4096)
- MCFG_PALETTE_INIT(namcos86)
- MCFG_VIDEO_START(namcos86)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c
index 882038d48f5..98126f9aa3c 100644
--- a/src/mame/drivers/naomi.c
+++ b/src/mame/drivers/naomi.c
@@ -2492,12 +2492,11 @@ static INPUT_PORTS_START( aw1w )
PORT_INCLUDE( naomi_debug )
INPUT_PORTS_END
-static MACHINE_RESET( naomi )
+MACHINE_RESET_MEMBER(dc_state,naomi)
{
- dc_state *state = machine.driver_data<dc_state>();
- MACHINE_RESET_CALL(dc);
- aica_set_ram_base(machine.device("aica"), state->dc_sound_ram, 8*1024*1024);
+ dc_state::machine_reset();
+ aica_set_ram_base(machine().device("aica"), dc_sound_ram, 8*1024*1024);
}
/*
@@ -2516,8 +2515,7 @@ static MACHINE_CONFIG_START( naomi_aw_base, dc_state )
MCFG_MAPLE_DC_ADD( "maple_dc", "maincpu", dc_maple_irq )
- MCFG_MACHINE_START( dc )
- MCFG_MACHINE_RESET( naomi )
+ MCFG_MACHINE_RESET_OVERRIDE(dc_state,naomi)
MCFG_EEPROM_93C46_ADD("main_eeprom")
MCFG_EEPROM_DEFAULT_VALUE(0)
@@ -2532,7 +2530,6 @@ static MACHINE_CONFIG_START( naomi_aw_base, dc_state )
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(dc)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("aica", AICA, 0)
diff --git a/src/mame/drivers/naughtyb.c b/src/mame/drivers/naughtyb.c
index 935c6900c84..d7f175706cb 100644
--- a/src/mame/drivers/naughtyb.c
+++ b/src/mame/drivers/naughtyb.c
@@ -436,8 +436,6 @@ static MACHINE_CONFIG_START( naughtyb, naughtyb_state )
MCFG_GFXDECODE(naughtyb)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(naughtyb)
- MCFG_VIDEO_START(naughtyb)
/* sound hardware */
/* uses the TMS3615NS for sound */
@@ -470,8 +468,6 @@ static MACHINE_CONFIG_START( popflame, naughtyb_state )
MCFG_GFXDECODE(naughtyb)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(naughtyb)
- MCFG_VIDEO_START(naughtyb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/nbmj8688.c b/src/mame/drivers/nbmj8688.c
index 8489c20ae0e..c2daaaea083 100644
--- a/src/mame/drivers/nbmj8688.c
+++ b/src/mame/drivers/nbmj8688.c
@@ -2925,8 +2925,8 @@ static MACHINE_CONFIG_START( NBMJDRV_4096, nbmj8688_state )
MCFG_PALETTE_LENGTH(4096)
- MCFG_PALETTE_INIT(mbmj8688_12bit)
- MCFG_VIDEO_START(mbmj8688_pure_12bit)
+ MCFG_PALETTE_INIT_OVERRIDE(nbmj8688_state,mbmj8688_12bit)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_pure_12bit)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2946,8 +2946,8 @@ static MACHINE_CONFIG_DERIVED( NBMJDRV_256, NBMJDRV_4096 )
/* video hardware */
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(mbmj8688_8bit)
- MCFG_VIDEO_START(mbmj8688_8bit)
+ MCFG_PALETTE_INIT_OVERRIDE(nbmj8688_state,mbmj8688_8bit)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_8bit)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( NBMJDRV_65536, NBMJDRV_4096 )
@@ -2958,8 +2958,8 @@ static MACHINE_CONFIG_DERIVED( NBMJDRV_65536, NBMJDRV_4096 )
MCFG_SCREEN_MODIFY("screen")
MCFG_PALETTE_LENGTH(65536)
- MCFG_PALETTE_INIT(mbmj8688_16bit)
- MCFG_VIDEO_START(mbmj8688_hybrid_16bit)
+ MCFG_PALETTE_INIT_OVERRIDE(nbmj8688_state,mbmj8688_16bit)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_hybrid_16bit)
MACHINE_CONFIG_END
// --------------------------------------------------------------------------------
@@ -2988,7 +2988,7 @@ static MACHINE_CONFIG_DERIVED( mbmj_h12bit, NBMJDRV_4096 )
MCFG_CPU_IO_MAP(secolove_io_map)
/* video hardware */
- MCFG_VIDEO_START(mbmj8688_hybrid_12bit)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_hybrid_12bit)
MACHINE_CONFIG_END
/*Same as h12bit HW with different sound HW + NMI enable bit*/
@@ -3012,7 +3012,7 @@ static MACHINE_CONFIG_DERIVED( mbmj_p16bit, NBMJDRV_65536 )
MCFG_CPU_IO_MAP(secolove_io_map)
/* video hardware */
- MCFG_VIDEO_START(mbmj8688_pure_16bit)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_pure_16bit)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( mbmj_p16bit_LCD, nbmj8688_state )
@@ -3029,7 +3029,7 @@ static MACHINE_CONFIG_START( mbmj_p16bit_LCD, nbmj8688_state )
/* video hardware */
MCFG_PALETTE_LENGTH(65536)
- MCFG_PALETTE_INIT(mbmj8688_16bit)
+ MCFG_PALETTE_INIT_OVERRIDE(nbmj8688_state,mbmj8688_16bit)
MCFG_DEFAULT_LAYOUT(layout_nbmj8688)
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3053,7 +3053,7 @@ static MACHINE_CONFIG_START( mbmj_p16bit_LCD, nbmj8688_state )
MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 64-1)
MCFG_SCREEN_UPDATE_STATIC(mbmj8688_lcd1)
- MCFG_VIDEO_START(mbmj8688_pure_16bit_LCD)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_pure_16bit_LCD)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/nbmj8891.c b/src/mame/drivers/nbmj8891.c
index ef8fa0f7c72..04321f200f0 100644
--- a/src/mame/drivers/nbmj8891.c
+++ b/src/mame/drivers/nbmj8891.c
@@ -2616,7 +2616,6 @@ static MACHINE_CONFIG_START( gionbana, nbmj8891_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(nbmj8891_2layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2665,7 +2664,7 @@ static MACHINE_CONFIG_DERIVED( mjcamerb, gionbana )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
- MCFG_VIDEO_START(nbmj8891_1layer)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8891_state,nbmj8891_1layer)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mmcamera, gionbana )
@@ -2679,7 +2678,7 @@ static MACHINE_CONFIG_DERIVED( mmcamera, gionbana )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
- MCFG_VIDEO_START(nbmj8891_1layer)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8891_state,nbmj8891_1layer)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( hanamomo, gionbana )
@@ -2692,7 +2691,7 @@ static MACHINE_CONFIG_DERIVED( hanamomo, gionbana )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
- MCFG_VIDEO_START(nbmj8891_1layer)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8891_state,nbmj8891_1layer)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( msjiken, hanamomo )
@@ -2707,7 +2706,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( telmahjn, gionbana )
/* video hardware */
- MCFG_VIDEO_START(nbmj8891_1layer)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8891_state,nbmj8891_1layer)
MACHINE_CONFIG_END
/* NBMJDRV4 */
@@ -2716,7 +2715,7 @@ static MACHINE_CONFIG_DERIVED( mjfocus, gionbana )
/* basic machine hardware */
/* video hardware */
- MCFG_VIDEO_START(nbmj8891_1layer)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8891_state,nbmj8891_1layer)
MACHINE_CONFIG_END
/* NBMJDRV5 */
@@ -2810,7 +2809,7 @@ static MACHINE_CONFIG_DERIVED( mjfocusm, gionbana )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
- MCFG_VIDEO_START(nbmj8891_1layer)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8891_state,nbmj8891_1layer)
/* sound hardware */
MCFG_SOUND_REPLACE("fmsnd", AY8910, 1250000)
@@ -2831,7 +2830,7 @@ static MACHINE_CONFIG_DERIVED( taiwanmb, gionbana )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
- MCFG_VIDEO_START(nbmj8891_1layer)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8891_state,nbmj8891_1layer)
/* sound hardware */
MCFG_SOUND_REPLACE("fmsnd", AY8910, 1250000)
diff --git a/src/mame/drivers/nbmj8900.c b/src/mame/drivers/nbmj8900.c
index 9c743641f2e..3cae4e8be78 100644
--- a/src/mame/drivers/nbmj8900.c
+++ b/src/mame/drivers/nbmj8900.c
@@ -321,7 +321,6 @@ static MACHINE_CONFIG_START( ohpaipee, nbmj8900_state )
MCFG_SCREEN_UPDATE_STATIC(nbmj8900)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(nbmj8900_2layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/nbmj8991.c b/src/mame/drivers/nbmj8991.c
index c546aa58eba..3f1c7a0458b 100644
--- a/src/mame/drivers/nbmj8991.c
+++ b/src/mame/drivers/nbmj8991.c
@@ -57,15 +57,15 @@ READ8_MEMBER(nbmj8991_state::nbmj8991_sound_r)
return data;
}
-static MACHINE_RESET( nbmj8991 )
+MACHINE_RESET_MEMBER(nbmj8991_state,nbmj8991)
{
- device_t *audiocpu = machine.device("audiocpu");
+ device_t *audiocpu = machine().device("audiocpu");
if (audiocpu != NULL && audiocpu->type() == Z80)
{
- machine.root_device().membank("bank1")->configure_entries(0, 4, machine.root_device().memregion("audiocpu")->base() + 0x8000, 0x8000);
- machine.root_device().membank("bank1")->set_entry(0);
+ machine().root_device().membank("bank1")->configure_entries(0, 4, machine().root_device().memregion("audiocpu")->base() + 0x8000, 0x8000);
+ machine().root_device().membank("bank1")->set_entry(0);
}
- MACHINE_RESET_CALL(nb1413m3);
+ nbmj8991_state::machine_reset();
}
DRIVER_INIT_MEMBER(nbmj8991_state,pstadium)
@@ -1475,7 +1475,7 @@ static MACHINE_CONFIG_START( nbmjdrv1, nbmj8991_state ) // galkoku
MCFG_CPU_IO_MAP(galkoku_io_map)
MCFG_CPU_VBLANK_INT("screen", nb1413m3_interrupt)
- MCFG_MACHINE_RESET(nbmj8991)
+ MCFG_MACHINE_RESET_OVERRIDE(nbmj8991_state,nbmj8991)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1487,7 +1487,7 @@ static MACHINE_CONFIG_START( nbmjdrv1, nbmj8991_state ) // galkoku
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(nbmj8991)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8991_state,nbmj8991)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1512,7 +1512,7 @@ static MACHINE_CONFIG_START( nbmjdrv2, nbmj8991_state ) // pstadium
MCFG_CPU_IO_MAP(nbmj8991_sound_io_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 128*60) // ?
- MCFG_MACHINE_RESET(nbmj8991)
+ MCFG_MACHINE_RESET_OVERRIDE(nbmj8991_state,nbmj8991)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1524,7 +1524,7 @@ static MACHINE_CONFIG_START( nbmjdrv2, nbmj8991_state ) // pstadium
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(nbmj8991)
+ MCFG_VIDEO_START_OVERRIDE(nbmj8991_state,nbmj8991)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/nbmj9195.c b/src/mame/drivers/nbmj9195.c
index 5913f22dad9..a4c8928b399 100644
--- a/src/mame/drivers/nbmj9195.c
+++ b/src/mame/drivers/nbmj9195.c
@@ -634,17 +634,16 @@ static Z80CTC_INTERFACE( ctc_intf_audio )
DEVCB_NULL /* ZC/TO2 callback */
};
-static MACHINE_RESET( sailorws )
+void nbmj9195_state::machine_reset()
{
- nbmj9195_state *state = machine.driver_data<nbmj9195_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
int i;
// initialize TMPZ84C011 PIO
for (i = 0; i < (5 * 2); i++)
{
- state->m_pio_dir[i] = state->m_pio_latch[i] = 0;
- state->tmpz84c011_pio_w(*space, i, 0);
+ m_pio_dir[i] = m_pio_latch[i] = 0;
+ tmpz84c011_pio_w(*space, i, 0);
}
}
@@ -3176,7 +3175,6 @@ static MACHINE_CONFIG_START( NBMJDRV1, nbmj9195_state )
MCFG_Z80CTC_ADD("main_ctc", 12000000/2 /* same as "maincpu" */, ctc_intf_main)
MCFG_Z80CTC_ADD("audio_ctc", 8000000 /* same as "audiocpu" */, ctc_intf_audio)
- MCFG_MACHINE_RESET(sailorws)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
@@ -3189,7 +3187,6 @@ static MACHINE_CONFIG_START( NBMJDRV1, nbmj9195_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(nbmj9195_2layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3210,7 +3207,7 @@ static MACHINE_CONFIG_DERIVED( NBMJDRV2, NBMJDRV1 )
/* basic machine hardware */
/* video hardware */
- MCFG_VIDEO_START(nbmj9195_1layer)
+ MCFG_VIDEO_START_OVERRIDE(nbmj9195_state,nbmj9195_1layer)
MACHINE_CONFIG_END
@@ -3221,7 +3218,7 @@ static MACHINE_CONFIG_DERIVED( NBMJDRV3, NBMJDRV1 )
/* video hardware */
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(nbmj9195_nb22090)
+ MCFG_VIDEO_START_OVERRIDE(nbmj9195_state,nbmj9195_nb22090)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(nbmj9195)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c
index 45ae796da9f..d5143eb6309 100644
--- a/src/mame/drivers/nemesis.c
+++ b/src/mame/drivers/nemesis.c
@@ -1516,42 +1516,40 @@ static const k007232_interface k007232_config =
/******************************************************************************/
-static MACHINE_START( nemesis )
+void nemesis_state::machine_start()
{
- nemesis_state *state = machine.driver_data<nemesis_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_vlm = machine.device("vlm");
-
- state->save_item(NAME(state->m_irq_on));
- state->save_item(NAME(state->m_irq1_on));
- state->save_item(NAME(state->m_irq2_on));
- state->save_item(NAME(state->m_irq4_on));
- state->save_item(NAME(state->m_frame_counter));
- state->save_item(NAME(state->m_gx400_irq1_cnt));
- state->save_item(NAME(state->m_selected_ip));
-
- state->save_item(NAME(state->m_tilemap_flip));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_irq_port_last));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_vlm = machine().device("vlm");
+
+ save_item(NAME(m_irq_on));
+ save_item(NAME(m_irq1_on));
+ save_item(NAME(m_irq2_on));
+ save_item(NAME(m_irq4_on));
+ save_item(NAME(m_frame_counter));
+ save_item(NAME(m_gx400_irq1_cnt));
+ save_item(NAME(m_selected_ip));
+
+ save_item(NAME(m_tilemap_flip));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_irq_port_last));
}
-static MACHINE_RESET( nemesis )
+void nemesis_state::machine_reset()
{
- nemesis_state *state = machine.driver_data<nemesis_state>();
-
- state->m_irq_on = 0;
- state->m_irq1_on = 0;
- state->m_irq2_on = 0;
- state->m_irq4_on = 0;
- state->m_gx400_irq1_cnt = 0;
- state->m_frame_counter = 1;
- state->m_selected_ip = 0;
-
- state->m_flipscreen = 0;
- state->m_tilemap_flip = 0;
- state->m_irq_port_last = 0;
+
+ m_irq_on = 0;
+ m_irq1_on = 0;
+ m_irq2_on = 0;
+ m_irq4_on = 0;
+ m_gx400_irq1_cnt = 0;
+ m_frame_counter = 1;
+ m_selected_ip = 0;
+
+ m_flipscreen = 0;
+ m_tilemap_flip = 0;
+ m_irq_port_last = 0;
}
static MACHINE_CONFIG_START( nemesis, nemesis_state )
@@ -1565,8 +1563,6 @@ static MACHINE_CONFIG_START( nemesis, nemesis_state )
MCFG_CPU_ADD("audiocpu", Z80,14318180/4) /* From schematics, should be accurate */
MCFG_CPU_PROGRAM_MAP(sound_map) /* fixed */
- MCFG_MACHINE_START(nemesis)
- MCFG_MACHINE_RESET(nemesis)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1579,7 +1575,6 @@ static MACHINE_CONFIG_START( nemesis, nemesis_state )
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(nemesis)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1611,8 +1606,6 @@ static MACHINE_CONFIG_START( gx400, nemesis_state )
MCFG_CPU_PROGRAM_MAP(gx400_sound_map)
MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse) /* interrupts are triggered by the main CPU */
- MCFG_MACHINE_START(nemesis)
- MCFG_MACHINE_RESET(nemesis)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1625,7 +1618,6 @@ static MACHINE_CONFIG_START( gx400, nemesis_state )
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(nemesis)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1656,8 +1648,6 @@ static MACHINE_CONFIG_START( konamigt, nemesis_state )
MCFG_CPU_ADD("audiocpu", Z80,14318180/4) /* 3.579545 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(nemesis)
- MCFG_MACHINE_RESET(nemesis)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1670,7 +1660,6 @@ static MACHINE_CONFIG_START( konamigt, nemesis_state )
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(nemesis)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1699,8 +1688,6 @@ static MACHINE_CONFIG_START( rf2_gx400, nemesis_state )
MCFG_CPU_PROGRAM_MAP(gx400_sound_map)
MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse) /* interrupts are triggered by the main CPU */
- MCFG_MACHINE_START(nemesis)
- MCFG_MACHINE_RESET(nemesis)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1713,7 +1700,6 @@ static MACHINE_CONFIG_START( rf2_gx400, nemesis_state )
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(nemesis)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1744,8 +1730,6 @@ static MACHINE_CONFIG_START( salamand, nemesis_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545) /* 3.579545 MHz */
MCFG_CPU_PROGRAM_MAP(sal_sound_map)
- MCFG_MACHINE_START(nemesis)
- MCFG_MACHINE_RESET(nemesis)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
@@ -1760,7 +1744,6 @@ static MACHINE_CONFIG_START( salamand, nemesis_state )
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(nemesis)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1793,8 +1776,6 @@ static MACHINE_CONFIG_START( blkpnthr, nemesis_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545) /* 3.579545 MHz */
MCFG_CPU_PROGRAM_MAP(blkpnthr_sound_map)
- MCFG_MACHINE_START(nemesis)
- MCFG_MACHINE_RESET(nemesis)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1809,7 +1790,6 @@ static MACHINE_CONFIG_START( blkpnthr, nemesis_state )
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(nemesis)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1838,8 +1818,6 @@ static MACHINE_CONFIG_START( citybomb, nemesis_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545) /* 3.579545 MHz */
MCFG_CPU_PROGRAM_MAP(city_sound_map)
- MCFG_MACHINE_START(nemesis)
- MCFG_MACHINE_RESET(nemesis)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1854,7 +1832,6 @@ static MACHINE_CONFIG_START( citybomb, nemesis_state )
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(nemesis)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1887,8 +1864,6 @@ static MACHINE_CONFIG_START( nyanpani, nemesis_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545) /* 3.579545 MHz */
MCFG_CPU_PROGRAM_MAP(city_sound_map)
- MCFG_MACHINE_START(nemesis)
- MCFG_MACHINE_RESET(nemesis)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1903,7 +1878,6 @@ static MACHINE_CONFIG_START( nyanpani, nemesis_state )
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(nemesis)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1936,8 +1910,6 @@ static MACHINE_CONFIG_START( hcrash, nemesis_state )
MCFG_CPU_ADD("audiocpu", Z80,14318180/4) /* 3.579545 MHz */
MCFG_CPU_PROGRAM_MAP(sal_sound_map)
- MCFG_MACHINE_START(nemesis)
- MCFG_MACHINE_RESET(nemesis)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1950,7 +1922,6 @@ static MACHINE_CONFIG_START( hcrash, nemesis_state )
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(nemesis)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2686,8 +2657,6 @@ static MACHINE_CONFIG_START( bubsys, nemesis_state )
MCFG_CPU_PROGRAM_MAP(gx400_sound_map)
MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse) /* interrupts are triggered by the main CPU */
- MCFG_MACHINE_START(nemesis)
- MCFG_MACHINE_RESET(nemesis)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2700,7 +2669,6 @@ static MACHINE_CONFIG_START( bubsys, nemesis_state )
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(nemesis)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c
index ebef77b2815..4522d88af44 100644
--- a/src/mame/drivers/neogeo.c
+++ b/src/mame/drivers/neogeo.c
@@ -986,58 +986,57 @@ static void neogeo_postload(running_machine &machine)
set_outputs(machine);
}
-static MACHINE_START( neogeo )
+void neogeo_state::machine_start()
{
- neogeo_state *state = machine.driver_data<neogeo_state>();
/* configure NVRAM */
- machine.device<nvram_device>("saveram")->set_base(state->m_save_ram, 0x10000);
+ machine().device<nvram_device>("saveram")->set_base(m_save_ram, 0x10000);
/* set the BIOS bank */
- state->membank(NEOGEO_BANK_BIOS)->set_base(state->memregion("mainbios")->base());
+ membank(NEOGEO_BANK_BIOS)->set_base(memregion("mainbios")->base());
/* set the initial main CPU bank */
- main_cpu_banking_init(machine);
+ main_cpu_banking_init(machine());
/* set the initial audio CPU ROM banks */
- audio_cpu_banking_init(machine);
+ audio_cpu_banking_init(machine());
- create_interrupt_timers(machine);
+ create_interrupt_timers(machine());
/* initialize the memcard data structure */
- memcard_data = auto_alloc_array_clear(machine, UINT8, MEMCARD_SIZE);
+ memcard_data = auto_alloc_array_clear(machine(), UINT8, MEMCARD_SIZE);
/* start with an IRQ3 - but NOT on a reset */
- state->m_irq3_pending = 1;
+ m_irq3_pending = 1;
/* get devices */
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_upd4990a = machine.device("upd4990a");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_upd4990a = machine().device("upd4990a");
/* register state save */
- state->save_item(NAME(state->m_display_position_interrupt_control));
- state->save_item(NAME(state->m_display_counter));
- state->save_item(NAME(state->m_vblank_interrupt_pending));
- state->save_item(NAME(state->m_display_position_interrupt_pending));
- state->save_item(NAME(state->m_irq3_pending));
- state->save_item(NAME(state->m_audio_result));
- state->save_item(NAME(state->m_controller_select));
- state->save_item(NAME(state->m_main_cpu_bank_address));
- state->save_item(NAME(state->m_main_cpu_vector_table_source));
- state->save_item(NAME(state->m_audio_cpu_banks));
- state->save_item(NAME(state->m_audio_cpu_rom_source));
- state->save_item(NAME(state->m_audio_cpu_rom_source_last));
- state->save_item(NAME(state->m_save_ram_unlocked));
- state_save_register_global_pointer(machine, memcard_data, 0x800);
- state->save_item(NAME(state->m_output_data));
- state->save_item(NAME(state->m_output_latch));
- state->save_item(NAME(state->m_el_value));
- state->save_item(NAME(state->m_led1_value));
- state->save_item(NAME(state->m_led2_value));
- state->save_item(NAME(state->m_recurse));
-
- machine.save().register_postload(save_prepost_delegate(FUNC(neogeo_postload), &machine));
+ save_item(NAME(m_display_position_interrupt_control));
+ save_item(NAME(m_display_counter));
+ save_item(NAME(m_vblank_interrupt_pending));
+ save_item(NAME(m_display_position_interrupt_pending));
+ save_item(NAME(m_irq3_pending));
+ save_item(NAME(m_audio_result));
+ save_item(NAME(m_controller_select));
+ save_item(NAME(m_main_cpu_bank_address));
+ save_item(NAME(m_main_cpu_vector_table_source));
+ save_item(NAME(m_audio_cpu_banks));
+ save_item(NAME(m_audio_cpu_rom_source));
+ save_item(NAME(m_audio_cpu_rom_source_last));
+ save_item(NAME(m_save_ram_unlocked));
+ state_save_register_global_pointer(machine(), memcard_data, 0x800);
+ save_item(NAME(m_output_data));
+ save_item(NAME(m_output_latch));
+ save_item(NAME(m_el_value));
+ save_item(NAME(m_led1_value));
+ save_item(NAME(m_led2_value));
+ save_item(NAME(m_recurse));
+
+ machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_postload), &machine()));
}
@@ -1048,29 +1047,28 @@ static MACHINE_START( neogeo )
*
*************************************/
-static MACHINE_RESET( neogeo )
+void neogeo_state::machine_reset()
{
- neogeo_state *state = machine.driver_data<neogeo_state>();
offs_t offs;
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
/* reset system control registers */
for (offs = 0; offs < 8; offs++)
- state->system_control_w(*space, offs, 0, 0x00ff);
+ system_control_w(*space, offs, 0, 0x00ff);
- machine.device("maincpu")->reset();
+ machine().device("maincpu")->reset();
- neogeo_reset_rng(machine);
+ neogeo_reset_rng(machine());
- start_interrupt_timers(machine);
+ start_interrupt_timers(machine());
/* trigger the IRQ3 that was set by MACHINE_START */
- update_interrupts(machine);
+ update_interrupts(machine());
- state->m_recurse = 0;
+ m_recurse = 0;
/* AES apparently always uses the cartridge's fixed bank mode */
- // neogeo_set_fixed_layer_source(machine,1);
+ // neogeo_set_fixed_layer_source(machine(),1);
}
@@ -1369,14 +1367,10 @@ static MACHINE_CONFIG_START( neogeo, neogeo_state )
MCFG_WATCHDOG_TIME_INIT(attotime::from_usec(128762))
- MCFG_MACHINE_START(neogeo)
- MCFG_MACHINE_RESET(neogeo)
MCFG_NVRAM_ADD_0FILL("saveram")
MCFG_MEMCARD_HANDLER(neogeo)
/* video hardware */
- MCFG_VIDEO_START(neogeo)
- MCFG_VIDEO_RESET(neogeo)
MCFG_DEFAULT_LAYOUT(layout_neogeo)
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/neoprint.c b/src/mame/drivers/neoprint.c
index 144bfcf1ac5..655921aeb00 100644
--- a/src/mame/drivers/neoprint.c
+++ b/src/mame/drivers/neoprint.c
@@ -53,10 +53,12 @@ public:
DECLARE_DRIVER_INIT(98best44);
DECLARE_DRIVER_INIT(npcartv1);
DECLARE_DRIVER_INIT(nprsp);
+ virtual void video_start();
+ DECLARE_MACHINE_RESET(nprsp);
};
-VIDEO_START(neoprint)
+void neoprint_state::video_start()
{
}
@@ -481,7 +483,6 @@ static MACHINE_CONFIG_START( neoprint, neoprint_state )
MCFG_PALETTE_LENGTH(0x10000)
- MCFG_VIDEO_START(neoprint)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -493,10 +494,9 @@ static MACHINE_CONFIG_START( neoprint, neoprint_state )
MCFG_SOUND_ROUTE(2, "rspeaker", 1.0)
MACHINE_CONFIG_END
-static MACHINE_RESET( nprsp )
+MACHINE_RESET_MEMBER(neoprint_state,nprsp)
{
- neoprint_state *state = machine.driver_data<neoprint_state>();
- state->m_bank_val = 0;
+ m_bank_val = 0;
}
static MACHINE_CONFIG_START( nprsp, neoprint_state )
@@ -521,11 +521,10 @@ static MACHINE_CONFIG_START( nprsp, neoprint_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(nprsp)
- MCFG_MACHINE_RESET(nprsp)
+ MCFG_MACHINE_RESET_OVERRIDE(neoprint_state,nprsp)
MCFG_PALETTE_LENGTH(0x10000)
- MCFG_VIDEO_START(neoprint)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/news.c b/src/mame/drivers/news.c
index ccfde460a4e..45d04f348be 100644
--- a/src/mame/drivers/news.c
+++ b/src/mame/drivers/news.c
@@ -113,18 +113,16 @@ GFXDECODE_END
-static MACHINE_START( news )
+void news_state::machine_start()
{
- news_state *state = machine.driver_data<news_state>();
- state->save_item(NAME(state->m_bgpic));
+ save_item(NAME(m_bgpic));
}
-static MACHINE_RESET( news )
+void news_state::machine_reset()
{
- news_state *state = machine.driver_data<news_state>();
- state->m_bgpic = 0;
+ m_bgpic = 0;
}
static MACHINE_CONFIG_START( news, news_state )
@@ -134,8 +132,6 @@ static MACHINE_CONFIG_START( news, news_state )
MCFG_CPU_PROGRAM_MAP(news_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(news)
- MCFG_MACHINE_RESET(news)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -148,7 +144,6 @@ static MACHINE_CONFIG_START( news, news_state )
MCFG_GFXDECODE(news)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(news)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/nexus3d.c b/src/mame/drivers/nexus3d.c
index 3230b5100a2..4c0a2bb7f02 100644
--- a/src/mame/drivers/nexus3d.c
+++ b/src/mame/drivers/nexus3d.c
@@ -48,6 +48,8 @@ public:
DECLARE_WRITE8_MEMBER(n3d_flash_cmd_w);
DECLARE_WRITE8_MEMBER(n3d_flash_addr_w);
DECLARE_DRIVER_INIT(nexus3d);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -176,7 +178,7 @@ static INPUT_PORTS_START( nexus3d )
INPUT_PORTS_END
-VIDEO_START( nexus3d )
+void nexus3d_state::video_start()
{
}
@@ -186,9 +188,9 @@ SCREEN_UPDATE_RGB32(nexus3d)
return 0;
}
-static MACHINE_RESET (nexus3d)
+void nexus3d_state::machine_reset()
{
- nexus3d_flash_reset(machine);
+ nexus3d_flash_reset(machine());
}
static MACHINE_CONFIG_START( nexus3d, nexus3d_state )
@@ -206,9 +208,7 @@ static MACHINE_CONFIG_START( nexus3d, nexus3d_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_MACHINE_RESET( nexus3d )
- MCFG_VIDEO_START(nexus3d)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/nightgal.c b/src/mame/drivers/nightgal.c
index 1473364b5e7..96faa64162d 100644
--- a/src/mame/drivers/nightgal.c
+++ b/src/mame/drivers/nightgal.c
@@ -76,6 +76,10 @@ public:
DECLARE_READ8_MEMBER(input_2p_r);
DECLARE_DRIVER_INIT(ngalsumr);
DECLARE_DRIVER_INIT(royalqn);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -85,11 +89,10 @@ READ8_MEMBER(nightgal_state::blitter_status_r)
return 0x80;
}
-static VIDEO_START( nightgal )
+void nightgal_state::video_start()
{
- nightgal_state *state = machine.driver_data<nightgal_state>();
- state->save_item(NAME(state->m_blit_buffer));
+ save_item(NAME(m_blit_buffer));
}
static SCREEN_UPDATE_IND16( nightgal )
@@ -252,9 +255,9 @@ WRITE8_MEMBER(nightgal_state::sexygal_nsc_true_blitter_w)
}
/* guess: use the same resistor values as Crazy Climber (needs checking on the real HW) */
-static PALETTE_INIT( nightgal )
+void nightgal_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
static const int resistances_rg[3] = { 1000, 470, 220 };
static const int resistances_b [2] = { 470, 220 };
double weights_rg[3], weights_b[2];
@@ -266,7 +269,7 @@ static PALETTE_INIT( nightgal )
2, resistances_b, weights_b, 0, 0,
0, 0, 0, 0, 0);
- for (i = 0; i < machine.total_colors(); i++)
+ for (i = 0; i < machine().total_colors(); i++)
{
int bit0, bit1, bit2;
int r, g, b;
@@ -288,7 +291,7 @@ static PALETTE_INIT( nightgal )
bit1 = BIT(color_prom[i], 7);
b = combine_2_weights(weights_b, bit0, bit1);
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -830,35 +833,33 @@ static const ay8910_interface ay8910_config =
};
-static MACHINE_START( nightgal )
+void nightgal_state::machine_start()
{
- nightgal_state *state = machine.driver_data<nightgal_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_subcpu = machine().device<cpu_device>("sub");
- state->save_item(NAME(state->m_nsc_latch));
- state->save_item(NAME(state->m_z80_latch));
- state->save_item(NAME(state->m_mux_data));
+ save_item(NAME(m_nsc_latch));
+ save_item(NAME(m_z80_latch));
+ save_item(NAME(m_mux_data));
- state->save_item(NAME(state->m_blit_raw_data));
- state->save_item(NAME(state->m_true_blit));
- state->save_item(NAME(state->m_pen_data));
- state->save_item(NAME(state->m_pen_raw_data));
+ save_item(NAME(m_blit_raw_data));
+ save_item(NAME(m_true_blit));
+ save_item(NAME(m_pen_data));
+ save_item(NAME(m_pen_raw_data));
}
-static MACHINE_RESET( nightgal )
+void nightgal_state::machine_reset()
{
- nightgal_state *state = machine.driver_data<nightgal_state>();
- state->m_nsc_latch = 0;
- state->m_z80_latch = 0;
- state->m_mux_data = 0;
+ m_nsc_latch = 0;
+ m_z80_latch = 0;
+ m_mux_data = 0;
- memset(state->m_blit_raw_data, 0, ARRAY_LENGTH(state->m_blit_raw_data));
- memset(state->m_true_blit, 0, ARRAY_LENGTH(state->m_true_blit));
- memset(state->m_pen_data, 0, ARRAY_LENGTH(state->m_pen_data));
- memset(state->m_pen_raw_data, 0, ARRAY_LENGTH(state->m_pen_raw_data));
+ memset(m_blit_raw_data, 0, ARRAY_LENGTH(m_blit_raw_data));
+ memset(m_true_blit, 0, ARRAY_LENGTH(m_true_blit));
+ memset(m_pen_data, 0, ARRAY_LENGTH(m_pen_data));
+ memset(m_pen_raw_data, 0, ARRAY_LENGTH(m_pen_raw_data));
}
static MACHINE_CONFIG_START( royalqn, nightgal_state )
@@ -874,8 +875,6 @@ static MACHINE_CONFIG_START( royalqn, nightgal_state )
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_START(nightgal)
- MCFG_MACHINE_RESET(nightgal)
/* video hardware */
/* TODO: blitter clock is MASTER_CLOCK / 4, 320 x 264 pixels, 256 x 224 of visible area */
@@ -885,11 +884,9 @@ static MACHINE_CONFIG_START( royalqn, nightgal_state )
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
MCFG_SCREEN_UPDATE_STATIC(nightgal)
- MCFG_PALETTE_INIT(nightgal)
MCFG_PALETTE_LENGTH(0x10)
- MCFG_VIDEO_START(nightgal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c
index a7db299dc8b..61b0b59fe6b 100644
--- a/src/mame/drivers/ninjakd2.c
+++ b/src/mame/drivers/ninjakd2.c
@@ -172,11 +172,11 @@ static INTERRUPT_GEN( ninjakd2_interrupt )
}
-static MACHINE_RESET( ninjakd2 )
+void ninjakd2_state::machine_reset()
{
/* initialize main Z80 bank */
- machine.root_device().membank("bank1")->configure_entries(0, 8, machine.root_device().memregion("maincpu")->base() + 0x10000, 0x4000);
- machine.root_device().membank("bank1")->set_entry(0);
+ machine().root_device().membank("bank1")->configure_entries(0, 8, machine().root_device().memregion("maincpu")->base() + 0x10000, 0x4000);
+ machine().root_device().membank("bank1")->set_entry(0);
}
static void robokid_init_banks(running_machine &machine)
@@ -187,16 +187,16 @@ static void robokid_init_banks(running_machine &machine)
machine.root_device().membank("bank1")->set_entry(0);
}
-static MACHINE_RESET( robokid )
+MACHINE_RESET_MEMBER(ninjakd2_state,robokid)
{
- robokid_init_banks(machine);
+ robokid_init_banks(machine());
}
-static MACHINE_RESET( omegaf )
+MACHINE_RESET_MEMBER(ninjakd2_state,omegaf)
{
- robokid_init_banks(machine);
+ robokid_init_banks(machine());
- omegaf_io_protection_reset(machine);
+ omegaf_io_protection_reset(machine());
}
@@ -945,7 +945,6 @@ static MACHINE_CONFIG_START( ninjakd2, ninjakd2_state )
MCFG_CPU_PROGRAM_MAP(ninjakd2_sound_cpu)
MCFG_CPU_IO_MAP(ninjakd2_sound_io)
- MCFG_MACHINE_RESET(ninjakd2)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -958,7 +957,6 @@ static MACHINE_CONFIG_START( ninjakd2, ninjakd2_state )
MCFG_GFXDECODE(ninjakd2)
MCFG_PALETTE_LENGTH(0x300)
- MCFG_VIDEO_START(ninjakd2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -988,7 +986,7 @@ static MACHINE_CONFIG_DERIVED( mnight, ninjakd2 )
MCFG_CPU_PROGRAM_MAP(mnight_main_cpu)
/* video hardware */
- MCFG_VIDEO_START(mnight)
+ MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,mnight)
/* sound hardware */
MCFG_DEVICE_REMOVE("pcm")
@@ -1002,7 +1000,7 @@ static MACHINE_CONFIG_DERIVED( arkarea, ninjakd2 )
MCFG_CPU_PROGRAM_MAP(mnight_main_cpu)
/* video hardware */
- MCFG_VIDEO_START(arkarea)
+ MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,arkarea)
/* sound hardware */
MCFG_DEVICE_REMOVE("pcm")
@@ -1015,13 +1013,13 @@ static MACHINE_CONFIG_DERIVED( robokid, mnight )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(robokid_main_cpu)
- MCFG_MACHINE_RESET(robokid)
+ MCFG_MACHINE_RESET_OVERRIDE(ninjakd2_state,robokid)
/* video hardware */
MCFG_GFXDECODE(robokid)
MCFG_PALETTE_LENGTH(0x400) // RAM is this large, but still only 0x300 colors used
- MCFG_VIDEO_START(robokid)
+ MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,robokid)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(robokid)
MACHINE_CONFIG_END
@@ -1033,10 +1031,10 @@ static MACHINE_CONFIG_DERIVED( omegaf, robokid )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(omegaf_main_cpu)
- MCFG_MACHINE_RESET(omegaf)
+ MCFG_MACHINE_RESET_OVERRIDE(ninjakd2_state,omegaf)
/* video hardware */
- MCFG_VIDEO_START(omegaf)
+ MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,omegaf)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(omegaf)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c
index 0d3af52080b..70bf258efac 100644
--- a/src/mame/drivers/ninjaw.c
+++ b/src/mame/drivers/ninjaw.c
@@ -800,44 +800,42 @@ static void ninjaw_postload(running_machine &machine)
reset_sound_region(machine);
}
-static MACHINE_START( ninjaw )
+void ninjaw_state::machine_start()
{
- ninjaw_state *state = machine.driver_data<ninjaw_state>();
- state->membank("bank10")->configure_entries(0, 8, state->memregion("audiocpu")->base() + 0xc000, 0x4000);
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
- state->m_tc0140syt = machine.device("tc0140syt");
- state->m_tc0100scn_1 = machine.device("tc0100scn_1");
- state->m_tc0100scn_2 = machine.device("tc0100scn_2");
- state->m_tc0100scn_3 = machine.device("tc0100scn_3");
-
- state->m_lscreen = machine.device("lscreen");
- state->m_mscreen = machine.device("mscreen");
- state->m_rscreen = machine.device("rscreen");
-
- state->m_2610_1l = machine.device("2610.1.l");
- state->m_2610_1r = machine.device("2610.1.r");
- state->m_2610_2l = machine.device("2610.2.l");
- state->m_2610_2r = machine.device("2610.2.r");
-
- state->save_item(NAME(state->m_cpua_ctrl));
- state->save_item(NAME(state->m_banknum));
- state->save_item(NAME(state->m_pandata));
- machine.save().register_postload(save_prepost_delegate(FUNC(ninjaw_postload), &machine));
+ membank("bank10")->configure_entries(0, 8, memregion("audiocpu")->base() + 0xc000, 0x4000);
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_subcpu = machine().device<cpu_device>("sub");
+ m_tc0140syt = machine().device("tc0140syt");
+ m_tc0100scn_1 = machine().device("tc0100scn_1");
+ m_tc0100scn_2 = machine().device("tc0100scn_2");
+ m_tc0100scn_3 = machine().device("tc0100scn_3");
+
+ m_lscreen = machine().device("lscreen");
+ m_mscreen = machine().device("mscreen");
+ m_rscreen = machine().device("rscreen");
+
+ m_2610_1l = machine().device("2610.1.l");
+ m_2610_1r = machine().device("2610.1.r");
+ m_2610_2l = machine().device("2610.2.l");
+ m_2610_2r = machine().device("2610.2.r");
+
+ save_item(NAME(m_cpua_ctrl));
+ save_item(NAME(m_banknum));
+ save_item(NAME(m_pandata));
+ machine().save().register_postload(save_prepost_delegate(FUNC(ninjaw_postload), &machine()));
}
-static MACHINE_RESET( ninjaw )
+void ninjaw_state::machine_reset()
{
- ninjaw_state *state = machine.driver_data<ninjaw_state>();
- state->m_cpua_ctrl = 0xff;
- state->m_banknum = 0;
- memset(state->m_pandata, 0, sizeof(state->m_pandata));
+ m_cpua_ctrl = 0xff;
+ m_banknum = 0;
+ memset(m_pandata, 0, sizeof(m_pandata));
/**** mixer control enable ****/
- machine.sound().system_enable(true); /* mixer enabled */
+ machine().sound().system_enable(true); /* mixer enabled */
}
static MACHINE_CONFIG_START( ninjaw, ninjaw_state )
@@ -856,8 +854,6 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices */
- MCFG_MACHINE_START(ninjaw)
- MCFG_MACHINE_RESET(ninjaw)
MCFG_TC0220IOC_ADD("tc0220ioc", ninjaw_io_intf)
@@ -887,7 +883,6 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
MCFG_SCREEN_UPDATE_STATIC(ninjaw_right)
- MCFG_VIDEO_START(ninjaw)
MCFG_TC0100SCN_ADD("tc0100scn_1", darius2_tc0100scn_intf_l)
MCFG_TC0100SCN_ADD("tc0100scn_2", darius2_tc0100scn_intf_m)
@@ -939,8 +934,6 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices */
- MCFG_MACHINE_START(ninjaw)
- MCFG_MACHINE_RESET(ninjaw)
MCFG_TC0220IOC_ADD("tc0220ioc", ninjaw_io_intf)
@@ -970,7 +963,6 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
MCFG_SCREEN_UPDATE_STATIC(ninjaw_right)
- MCFG_VIDEO_START(ninjaw)
MCFG_TC0100SCN_ADD("tc0100scn_1", darius2_tc0100scn_intf_l)
MCFG_TC0100SCN_ADD("tc0100scn_2", darius2_tc0100scn_intf_m)
diff --git a/src/mame/drivers/nitedrvr.c b/src/mame/drivers/nitedrvr.c
index 83ab0006617..ba33762c1c5 100644
--- a/src/mame/drivers/nitedrvr.c
+++ b/src/mame/drivers/nitedrvr.c
@@ -142,8 +142,6 @@ static MACHINE_CONFIG_START( nitedrvr, nitedrvr_state )
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
MCFG_WATCHDOG_VBLANK_INIT(3)
- MCFG_MACHINE_START(nitedrvr)
- MCFG_MACHINE_RESET(nitedrvr)
MCFG_TIMER_ADD_PERIODIC("crash_timer", nitedrvr_crash_toggle_callback, PERIOD_OF_555_ASTABLE(RES_K(180), 330, CAP_U(1)))
@@ -159,7 +157,6 @@ static MACHINE_CONFIG_START( nitedrvr, nitedrvr_state )
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
- MCFG_VIDEO_START(nitedrvr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c
index 3289e324a1e..0029530329a 100644
--- a/src/mame/drivers/niyanpai.c
+++ b/src/mame/drivers/niyanpai.c
@@ -243,17 +243,16 @@ static Z80CTC_INTERFACE( ctc_intf )
DEVCB_NULL /* ZC/TO2 callback */
};
-static MACHINE_RESET( niyanpai )
+void niyanpai_state::machine_reset()
{
- niyanpai_state *state = machine.driver_data<niyanpai_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
int i;
// initialize TMPZ84C011 PIO
for (i = 0; i < 5; i++)
{
- state->m_pio_dir[i] = state->m_pio_latch[i] = 0;
- state->tmpz84c011_pio_w(*space, i, 0);
+ m_pio_dir[i] = m_pio_latch[i] = 0;
+ tmpz84c011_pio_w(*space, i, 0);
}
}
@@ -953,7 +952,6 @@ static MACHINE_CONFIG_START( niyanpai, niyanpai_state )
MCFG_Z80CTC_ADD("ctc", 8000000 /* same as "audiocpu" */, ctc_intf)
- MCFG_MACHINE_RESET(niyanpai)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -966,7 +964,6 @@ static MACHINE_CONFIG_START( niyanpai, niyanpai_state )
MCFG_PALETTE_LENGTH(256*3)
- MCFG_VIDEO_START(niyanpai)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/nmg5.c b/src/mame/drivers/nmg5.c
index 065ef6035fd..28a5b62ed1f 100644
--- a/src/mame/drivers/nmg5.c
+++ b/src/mame/drivers/nmg5.c
@@ -272,6 +272,9 @@ public:
DECLARE_DRIVER_INIT(prot_val_40);
TILE_GET_INFO_MEMBER(fg_get_tile_info);
TILE_GET_INFO_MEMBER(bg_get_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -841,13 +844,12 @@ INPUT_PORTS_END
TILE_GET_INFO_MEMBER(nmg5_state::fg_get_tile_info){ SET_TILE_INFO_MEMBER(0, m_fg_videoram[tile_index] | (m_gfx_bank << 16), 0, 0);}
TILE_GET_INFO_MEMBER(nmg5_state::bg_get_tile_info){ SET_TILE_INFO_MEMBER(0, m_bg_videoram[tile_index] | (m_gfx_bank << 16), 1, 0);}
-static VIDEO_START( nmg5 )
+void nmg5_state::video_start()
{
- nmg5_state *state = machine.driver_data<nmg5_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmg5_state::bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmg5_state::fg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(nmg5_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(nmg5_state::fg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_fg_tilemap->set_transparent_pen(0);
}
@@ -982,27 +984,25 @@ static const ym3812_interface ym3812_intf =
soundirq /* IRQ Line */
};
-static MACHINE_START( nmg5 )
+void nmg5_state::machine_start()
{
- nmg5_state *state = machine.driver_data<nmg5_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_soundcpu = machine.device<cpu_device>("soundcpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_soundcpu = machine().device<cpu_device>("soundcpu");
- state->save_item(NAME(state->m_gfx_bank));
- state->save_item(NAME(state->m_priority_reg));
- state->save_item(NAME(state->m_input_data));
+ save_item(NAME(m_gfx_bank));
+ save_item(NAME(m_priority_reg));
+ save_item(NAME(m_input_data));
}
-static MACHINE_RESET( nmg5 )
+void nmg5_state::machine_reset()
{
- nmg5_state *state = machine.driver_data<nmg5_state>();
/* some games don't set the priority register so it should be hard-coded to a normal layout */
- state->m_priority_reg = 7;
+ m_priority_reg = 7;
- state->m_gfx_bank = 0;
- state->m_input_data = 0;
+ m_gfx_bank = 0;
+ m_input_data = 0;
}
static MACHINE_CONFIG_START( nmg5, nmg5_state )
@@ -1016,8 +1016,6 @@ static MACHINE_CONFIG_START( nmg5, nmg5_state )
MCFG_CPU_PROGRAM_MAP(nmg5_sound_map)
MCFG_CPU_IO_MAP(sound_io_map)
- MCFG_MACHINE_START(nmg5)
- MCFG_MACHINE_RESET(nmg5)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1030,7 +1028,6 @@ static MACHINE_CONFIG_START( nmg5, nmg5_state )
MCFG_GFXDECODE(nmg5)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(nmg5)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 1);
diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c
index a13df75b8ec..630d69ba9b8 100644
--- a/src/mame/drivers/nmk16.c
+++ b/src/mame/drivers/nmk16.c
@@ -191,14 +191,14 @@ WRITE16_MEMBER(nmk16_state::nmk16_mainram_strange_w)
}
-static MACHINE_RESET( NMK004 )
+MACHINE_RESET_MEMBER(nmk16_state,NMK004)
{
- NMK004_init(machine);
+ NMK004_init(machine());
}
-static MACHINE_RESET( mustang_sound )
+MACHINE_RESET_MEMBER(nmk16_state,mustang_sound)
{
- MACHINE_RESET_CALL(seibu_sound);
+ MACHINE_RESET_CALL_LEGACY(seibu_sound);
}
WRITE16_MEMBER(nmk16_state::ssmissin_sound_w)
@@ -3556,7 +3556,7 @@ static MACHINE_CONFIG_START( tharrier, nmk16_state )
MCFG_CPU_PROGRAM_MAP(tharrier_sound_map)
MCFG_CPU_IO_MAP(tharrier_sound_io_map)
- MCFG_MACHINE_RESET(mustang_sound)
+ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,mustang_sound)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3570,7 +3570,7 @@ static MACHINE_CONFIG_START( tharrier, nmk16_state )
MCFG_GFXDECODE(tharrier)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3613,7 +3613,7 @@ static MACHINE_CONFIG_START( manybloc, nmk16_state )
MCFG_GFXDECODE(tharrier)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3640,7 +3640,7 @@ static MACHINE_CONFIG_START( mustang, nmk16_state )
MCFG_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
MCFG_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
- MCFG_MACHINE_RESET(NMK004)
+ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3654,7 +3654,7 @@ static MACHINE_CONFIG_START( mustang, nmk16_state )
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3683,7 +3683,7 @@ static MACHINE_CONFIG_START( mustangb, nmk16_state )
SEIBU_SOUND_SYSTEM_CPU(14318180/4)
- MCFG_MACHINE_RESET(mustang_sound)
+ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,mustang_sound)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3697,7 +3697,7 @@ static MACHINE_CONFIG_START( mustangb, nmk16_state )
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4, 1320000)
@@ -3715,7 +3715,7 @@ static MACHINE_CONFIG_START( bioship, nmk16_state )
MCFG_CPU_PERIODIC_INT(irq1_line_hold,100)/* 112 breaks the title screen */
MCFG_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
- MCFG_MACHINE_RESET(NMK004)
+ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3729,7 +3729,7 @@ static MACHINE_CONFIG_START( bioship, nmk16_state )
MCFG_GFXDECODE(bioship)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(bioship)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,bioship)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3756,7 +3756,7 @@ static MACHINE_CONFIG_START( vandyke, nmk16_state )
MCFG_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
MCFG_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
- MCFG_MACHINE_RESET(NMK004)
+ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3770,7 +3770,7 @@ static MACHINE_CONFIG_START( vandyke, nmk16_state )
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3800,7 +3800,7 @@ static MACHINE_CONFIG_START( vandykeb, nmk16_state )
MCFG_CPU_ADD("mcu", PIC16C57, 12000000) /* 3MHz */
MCFG_DEVICE_DISABLE()
- //MCFG_MACHINE_RESET(NMK004) // no NMK004
+ //MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004) // no NMK004
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3814,7 +3814,7 @@ static MACHINE_CONFIG_START( vandykeb, nmk16_state )
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3831,7 +3831,7 @@ static MACHINE_CONFIG_START( acrobatm, nmk16_state )
MCFG_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
MCFG_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
- MCFG_MACHINE_RESET(NMK004)
+ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3845,7 +3845,7 @@ static MACHINE_CONFIG_START( acrobatm, nmk16_state )
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3876,7 +3876,7 @@ static MACHINE_CONFIG_START( tdragonb, nmk16_state ) /* bootleg using Raiden sou
SEIBU_SOUND_SYSTEM_CPU(14318180/4)
- MCFG_MACHINE_RESET(mustang_sound)
+ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,mustang_sound)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3890,7 +3890,7 @@ static MACHINE_CONFIG_START( tdragonb, nmk16_state ) /* bootleg using Raiden sou
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4, 1320000)
@@ -3905,7 +3905,7 @@ static MACHINE_CONFIG_START( tdragon, nmk16_state )
MCFG_CPU_PERIODIC_INT(irq1_line_hold,112)/* ?? drives music */
MCFG_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
- MCFG_MACHINE_RESET(NMK004)
+ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3919,7 +3919,7 @@ static MACHINE_CONFIG_START( tdragon, nmk16_state )
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
MCFG_TIMER_ADD_PERIODIC("coinsim", tdragon_mcu_sim, attotime::from_hz(10000)) // not real, but for simulating the MCU
/* sound hardware */
@@ -3962,7 +3962,7 @@ static MACHINE_CONFIG_START( ssmissin, nmk16_state )
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3980,7 +3980,7 @@ static MACHINE_CONFIG_START( strahl, nmk16_state )
MCFG_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
MCFG_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
- MCFG_MACHINE_RESET(NMK004)
+ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3994,7 +3994,7 @@ static MACHINE_CONFIG_START( strahl, nmk16_state )
MCFG_GFXDECODE(strahl)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(strahl)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,strahl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4021,7 +4021,7 @@ static MACHINE_CONFIG_START( hachamf, nmk16_state )
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
MCFG_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
- MCFG_MACHINE_RESET(NMK004)
+ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -4035,7 +4035,7 @@ static MACHINE_CONFIG_START( hachamf, nmk16_state )
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
MCFG_TIMER_ADD_PERIODIC("coinsim", hachamf_mcu_sim, attotime::from_hz(10000)) // not real, but for simulating the MCU
/* sound hardware */
@@ -4063,7 +4063,7 @@ static MACHINE_CONFIG_START( macross, nmk16_state )
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
MCFG_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
- MCFG_MACHINE_RESET(NMK004)
+ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -4077,7 +4077,7 @@ static MACHINE_CONFIG_START( macross, nmk16_state )
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4104,7 +4104,7 @@ static MACHINE_CONFIG_START( blkheart, nmk16_state )
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
MCFG_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
- MCFG_MACHINE_RESET(NMK004)
+ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -4118,7 +4118,7 @@ static MACHINE_CONFIG_START( blkheart, nmk16_state )
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4145,7 +4145,7 @@ static MACHINE_CONFIG_START( gunnail, nmk16_state )
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
MCFG_CPU_PERIODIC_INT(irq1_line_hold,112)
- MCFG_MACHINE_RESET(NMK004)
+ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -4159,7 +4159,7 @@ static MACHINE_CONFIG_START( gunnail, nmk16_state )
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(gunnail)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,gunnail)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4202,7 +4202,7 @@ static MACHINE_CONFIG_START( macross2, nmk16_state )
MCFG_GFXDECODE(macross2)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross2)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4244,7 +4244,7 @@ static MACHINE_CONFIG_START( tdragon2, nmk16_state )
MCFG_GFXDECODE(macross2)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross2)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4285,7 +4285,7 @@ static MACHINE_CONFIG_START( raphero, nmk16_state )
MCFG_GFXDECODE(macross2)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(raphero)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,raphero)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4323,7 +4323,7 @@ static MACHINE_CONFIG_START( bjtwin, nmk16_state )
MCFG_GFXDECODE(bjtwin)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(bjtwin)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,bjtwin)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4832,7 +4832,7 @@ static MACHINE_CONFIG_START( stagger1, nmk16_state )
MCFG_GFXDECODE(stagger1)
MCFG_PALETTE_LENGTH(768)
- MCFG_VIDEO_START(afega)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,afega)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4870,7 +4870,7 @@ static MACHINE_CONFIG_DERIVED( grdnstrm, stagger1 )
/* video hardware */
MCFG_GFXDECODE(grdnstrm)
- MCFG_VIDEO_START(firehawk)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,firehawk)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(firehawk)
MACHINE_CONFIG_END
@@ -4883,7 +4883,7 @@ static MACHINE_CONFIG_DERIVED( grdnstrmk, stagger1 ) /* Side by side with PCB, t
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_REFRESH_RATE(57) /* Side by side with PCB, MAME is too fast at 56 */
MCFG_GFXDECODE(grdnstrm)
- MCFG_VIDEO_START(grdnstrm)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,grdnstrm)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( popspops, grdnstrm )
@@ -4917,7 +4917,7 @@ static MACHINE_CONFIG_START( firehawk, nmk16_state )
MCFG_GFXDECODE(grdnstrm)
MCFG_PALETTE_LENGTH(768)
- MCFG_VIDEO_START(firehawk)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,firehawk)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4952,7 +4952,7 @@ static MACHINE_CONFIG_START( twinactn, nmk16_state )
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(macross)
+ MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/norautp.c b/src/mame/drivers/norautp.c
index ede6ad8d5cd..4fb4f068330 100644
--- a/src/mame/drivers/norautp.c
+++ b/src/mame/drivers/norautp.c
@@ -557,10 +557,9 @@
* Video Hardware *
*************************/
-static VIDEO_START( norautp )
+void norautp_state::video_start()
{
- norautp_state *state = machine.driver_data<norautp_state>();
- state->m_np_vram = auto_alloc_array_clear(machine, UINT16, 0x1000/2);
+ m_np_vram = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
}
@@ -606,17 +605,17 @@ static SCREEN_UPDATE_IND16( norautp )
}
-static PALETTE_INIT( norautp )
+void norautp_state::palette_init()
{
/* 1st gfx bank */
- palette_set_color(machine, 0, MAKE_RGB(0x00, 0x00, 0xff)); /* blue */
- palette_set_color(machine, 1, MAKE_RGB(0xff, 0xff, 0x00)); /* yellow */
- palette_set_color(machine, 2, MAKE_RGB(0x00, 0x00, 0xff)); /* blue */
- palette_set_color(machine, 3, MAKE_RGB(0xff, 0xff, 0xff)); /* white */
- palette_set_color(machine, 4, MAKE_RGB(0xff, 0xff, 0xff)); /* white */
- palette_set_color(machine, 5, MAKE_RGB(0xff, 0x00, 0x00)); /* red */
- palette_set_color(machine, 6, MAKE_RGB(0xff, 0xff, 0xff)); /* white */
- palette_set_color(machine, 7, MAKE_RGB(0x00, 0x00, 0x00)); /* black */
+ palette_set_color(machine(), 0, MAKE_RGB(0x00, 0x00, 0xff)); /* blue */
+ palette_set_color(machine(), 1, MAKE_RGB(0xff, 0xff, 0x00)); /* yellow */
+ palette_set_color(machine(), 2, MAKE_RGB(0x00, 0x00, 0xff)); /* blue */
+ palette_set_color(machine(), 3, MAKE_RGB(0xff, 0xff, 0xff)); /* white */
+ palette_set_color(machine(), 4, MAKE_RGB(0xff, 0xff, 0xff)); /* white */
+ palette_set_color(machine(), 5, MAKE_RGB(0xff, 0x00, 0x00)); /* red */
+ palette_set_color(machine(), 6, MAKE_RGB(0xff, 0xff, 0xff)); /* white */
+ palette_set_color(machine(), 7, MAKE_RGB(0x00, 0x00, 0x00)); /* black */
}
@@ -1270,9 +1269,7 @@ static MACHINE_CONFIG_START( noraut_base, norautp_state )
MCFG_GFXDECODE(norautp)
- MCFG_PALETTE_INIT(norautp)
MCFG_PALETTE_LENGTH(8)
- MCFG_VIDEO_START(norautp)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/nova2001.c b/src/mame/drivers/nova2001.c
index 963dfd20e2d..8348dbaf4e4 100644
--- a/src/mame/drivers/nova2001.c
+++ b/src/mame/drivers/nova2001.c
@@ -157,11 +157,10 @@ WRITE8_MEMBER(nova2001_state::ninjakun_cpu2_io_A002_w)
*
*************************************/
-static MACHINE_START( ninjakun )
+MACHINE_START_MEMBER(nova2001_state,ninjakun)
{
- nova2001_state *state = machine.driver_data<nova2001_state>();
/* Save State Stuff */
- state_save_register_global(machine, state->m_ninjakun_io_a002_ctrl);
+ state_save_register_global(machine(), m_ninjakun_io_a002_ctrl);
}
@@ -696,8 +695,8 @@ static MACHINE_CONFIG_START( nova2001, nova2001_state )
MCFG_GFXDECODE(nova2001)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT(nova2001)
- MCFG_VIDEO_START(nova2001)
+ MCFG_PALETTE_INIT_OVERRIDE(nova2001_state,nova2001)
+ MCFG_VIDEO_START_OVERRIDE(nova2001_state,nova2001)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -724,7 +723,7 @@ static MACHINE_CONFIG_START( ninjakun, nova2001_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame */
- MCFG_MACHINE_START(ninjakun)
+ MCFG_MACHINE_START_OVERRIDE(nova2001_state,ninjakun)
/* video hardware */
@@ -737,7 +736,7 @@ static MACHINE_CONFIG_START( ninjakun, nova2001_state )
MCFG_GFXDECODE(ninjakun)
MCFG_PALETTE_LENGTH(0x300)
- MCFG_VIDEO_START(ninjakun)
+ MCFG_VIDEO_START_OVERRIDE(nova2001_state,ninjakun)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -769,8 +768,8 @@ static MACHINE_CONFIG_START( pkunwar, nova2001_state )
MCFG_GFXDECODE(pkunwar)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT(nova2001)
- MCFG_VIDEO_START(pkunwar)
+ MCFG_PALETTE_INIT_OVERRIDE(nova2001_state,nova2001)
+ MCFG_VIDEO_START_OVERRIDE(nova2001_state,pkunwar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -808,7 +807,7 @@ static MACHINE_CONFIG_START( raiders5, nova2001_state )
MCFG_GFXDECODE(raiders5)
MCFG_PALETTE_LENGTH(0x300)
- MCFG_VIDEO_START(raiders5)
+ MCFG_VIDEO_START_OVERRIDE(nova2001_state,raiders5)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/nsmpoker.c b/src/mame/drivers/nsmpoker.c
index b862c721d30..20eb5d3cedf 100644
--- a/src/mame/drivers/nsmpoker.c
+++ b/src/mame/drivers/nsmpoker.c
@@ -80,6 +80,8 @@ public:
DECLARE_WRITE8_MEMBER(debug_w);
DECLARE_READ8_MEMBER(debug_r);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -119,10 +121,9 @@ TILE_GET_INFO_MEMBER(nsmpoker_state::get_bg_tile_info)
}
-static VIDEO_START( nsmpoker )
+void nsmpoker_state::video_start()
{
- nsmpoker_state *state = machine.driver_data<nsmpoker_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nsmpoker_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(nsmpoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -134,7 +135,7 @@ static SCREEN_UPDATE_IND16( nsmpoker )
}
-static PALETTE_INIT( nsmpoker )
+void nsmpoker_state::palette_init()
{
}
@@ -409,10 +410,8 @@ static MACHINE_CONFIG_START( nsmpoker, nsmpoker_state )
MCFG_GFXDECODE(nsmpoker)
- MCFG_PALETTE_INIT(nsmpoker)
MCFG_PALETTE_LENGTH(8)
- MCFG_VIDEO_START(nsmpoker)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/nss.c b/src/mame/drivers/nss.c
index 4403bb22925..f6d4738ed7e 100644
--- a/src/mame/drivers/nss.c
+++ b/src/mame/drivers/nss.c
@@ -327,6 +327,8 @@ public:
DECLARE_DRIVER_INIT(nss);
DECLARE_CUSTOM_INPUT_MEMBER(game_over_flag_r);
+ DECLARE_MACHINE_START(nss);
+ DECLARE_MACHINE_RESET(nss);
};
@@ -617,14 +619,13 @@ static ADDRESS_MAP_START( bios_io_map, AS_IO, 8, nss_state )
AM_RANGE(0x07, 0x07) AM_WRITE(port_07_w)
ADDRESS_MAP_END
-static MACHINE_START( nss )
+MACHINE_START_MEMBER(nss_state,nss)
{
- nss_state *state = machine.driver_data<nss_state>();
- MACHINE_START_CALL(snes);
+ MACHINE_START_CALL_LEGACY(snes);
- state->m_is_nss = 1;
- state->m_wram = auto_alloc_array_clear(machine, UINT8, 0x1000);
+ m_is_nss = 1;
+ m_wram = auto_alloc_array_clear(machine(), UINT8, 0x1000);
}
@@ -824,18 +825,17 @@ static INTERRUPT_GEN ( nss_vblank_irq )
device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
-static MACHINE_RESET( nss )
+MACHINE_RESET_MEMBER(nss_state,nss)
{
- nss_state *state = machine.driver_data<nss_state>();
- MACHINE_RESET_CALL( snes );
+ MACHINE_RESET_CALL_LEGACY( snes );
/* start with both CPUs disabled */
- state->m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- state->m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- state->m_game_over_flag = 1;
- state->m_joy_flag = 1;
+ m_game_over_flag = 1;
+ m_joy_flag = 1;
}
static M50458_INTERFACE( m50458_intf )
@@ -855,8 +855,8 @@ static MACHINE_CONFIG_DERIVED( nss, snes )
MCFG_RP5H01_ADD("rp5h01")
MCFG_M6M80011AP_ADD("m6m80011ap")
- MCFG_MACHINE_START( nss )
- MCFG_MACHINE_RESET( nss )
+ MCFG_MACHINE_START_OVERRIDE(nss_state, nss )
+ MCFG_MACHINE_RESET_OVERRIDE(nss_state, nss )
/* TODO: the screen should actually superimpose, but for the time being let's just separate outputs */
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
diff --git a/src/mame/drivers/nwk-tr.c b/src/mame/drivers/nwk-tr.c
index ea58ed3a074..f4f93f17a15 100644
--- a/src/mame/drivers/nwk-tr.c
+++ b/src/mame/drivers/nwk-tr.c
@@ -252,6 +252,8 @@ public:
DECLARE_READ32_MEMBER(dsp_dataram_r);
DECLARE_WRITE32_MEMBER(dsp_dataram_w);
DECLARE_DRIVER_INIT(nwktr);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -513,16 +515,15 @@ static TIMER_CALLBACK( irq_off )
machine.device("audiocpu")->execute().set_input_line(param, CLEAR_LINE);
}
-static MACHINE_START( nwktr )
+void nwktr_state::machine_start()
{
- nwktr_state *state = machine.driver_data<nwktr_state>();
/* set conservative DRC options */
- ppcdrc_set_options(machine.device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
+ ppcdrc_set_options(machine().device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
/* configure fast RAM regions for DRC */
- ppcdrc_add_fastram(machine.device("maincpu"), 0x00000000, 0x003fffff, FALSE, state->m_work_ram);
+ ppcdrc_add_fastram(machine().device("maincpu"), 0x00000000, 0x003fffff, FALSE, m_work_ram);
- state->m_sound_irq_timer = machine.scheduler().timer_alloc(FUNC(irq_off));
+ m_sound_irq_timer = machine().scheduler().timer_alloc(FUNC(irq_off));
}
static ADDRESS_MAP_START( nwktr_map, AS_PROGRAM, 32, nwktr_state )
@@ -703,9 +704,9 @@ static const k001604_interface thrilld_k001604_intf =
0 /* slrasslt hack */
};
-static MACHINE_RESET( nwktr )
+void nwktr_state::machine_reset()
{
- machine.device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
static const voodoo_config voodoo_intf =
@@ -734,8 +735,6 @@ static MACHINE_CONFIG_START( nwktr, nwktr_state )
MCFG_QUANTUM_TIME(attotime::from_hz(9000))
- MCFG_MACHINE_START(nwktr)
- MCFG_MACHINE_RESET(nwktr)
MCFG_3DFX_VOODOO_1_ADD("voodoo", STD_VOODOO_1_CLOCK, voodoo_intf)
diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c
index fb202016c90..7a17fad9f2d 100644
--- a/src/mame/drivers/nycaptor.c
+++ b/src/mame/drivers/nycaptor.c
@@ -253,9 +253,8 @@ WRITE8_MEMBER(nycaptor_state::sound_cpu_reset_w)
}
-static MACHINE_RESET( ta7630 )
+MACHINE_RESET_MEMBER(nycaptor_state,ta7630)
{
- nycaptor_state *state = machine.driver_data<nycaptor_state>();
int i;
double db = 0.0;
double db_step = 0.50; /* 0.50 dB step (at least, maybe more) */
@@ -264,8 +263,8 @@ static MACHINE_RESET( ta7630 )
for (i = 0; i < 16; i++)
{
double max = 100.0 / pow(10.0, db/20.0 );
- state->m_vol_ctrl[15 - i] = max;
- /*logerror("vol_ctrl[%x] = %i (%f dB)\n", 15 - i, state->m_vol_ctrl[15 - i], db);*/
+ m_vol_ctrl[15 - i] = max;
+ /*logerror("vol_ctrl[%x] = %i (%f dB)\n", 15 - i, m_vol_ctrl[15 - i], db);*/
db += db_step;
db_step += db_step_inc;
}
@@ -763,70 +762,68 @@ GFXDECODE_END
-static MACHINE_START( nycaptor )
+void nycaptor_state::machine_start()
{
- nycaptor_state *state = machine.driver_data<nycaptor_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
- state->m_mcu = machine.device("mcu");
-
- state->save_item(NAME(state->m_generic_control_reg));
- state->save_item(NAME(state->m_sound_nmi_enable));
- state->save_item(NAME(state->m_pending_nmi));
- state->save_item(NAME(state->m_snd_data));
- state->save_item(NAME(state->m_vol_ctrl));
-
- state->save_item(NAME(state->m_char_bank));
- state->save_item(NAME(state->m_palette_bank));
- state->save_item(NAME(state->m_gfxctrl));
-
- state->save_item(NAME(state->m_port_a_in));
- state->save_item(NAME(state->m_port_a_out));
- state->save_item(NAME(state->m_ddr_a));
- state->save_item(NAME(state->m_port_b_in));
- state->save_item(NAME(state->m_port_b_out));
- state->save_item(NAME(state->m_ddr_b));
- state->save_item(NAME(state->m_port_c_in));
- state->save_item(NAME(state->m_port_c_out));
- state->save_item(NAME(state->m_ddr_c));
- state->save_item(NAME(state->m_mcu_sent));
- state->save_item(NAME(state->m_main_sent));
- state->save_item(NAME(state->m_from_main));
- state->save_item(NAME(state->m_from_mcu));
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_subcpu = machine().device<cpu_device>("sub");
+ m_mcu = machine().device("mcu");
+
+ save_item(NAME(m_generic_control_reg));
+ save_item(NAME(m_sound_nmi_enable));
+ save_item(NAME(m_pending_nmi));
+ save_item(NAME(m_snd_data));
+ save_item(NAME(m_vol_ctrl));
+
+ save_item(NAME(m_char_bank));
+ save_item(NAME(m_palette_bank));
+ save_item(NAME(m_gfxctrl));
+
+ save_item(NAME(m_port_a_in));
+ save_item(NAME(m_port_a_out));
+ save_item(NAME(m_ddr_a));
+ save_item(NAME(m_port_b_in));
+ save_item(NAME(m_port_b_out));
+ save_item(NAME(m_ddr_b));
+ save_item(NAME(m_port_c_in));
+ save_item(NAME(m_port_c_out));
+ save_item(NAME(m_ddr_c));
+ save_item(NAME(m_mcu_sent));
+ save_item(NAME(m_main_sent));
+ save_item(NAME(m_from_main));
+ save_item(NAME(m_from_mcu));
}
-static MACHINE_RESET( nycaptor )
+void nycaptor_state::machine_reset()
{
- nycaptor_state *state = machine.driver_data<nycaptor_state>();
- MACHINE_RESET_CALL(ta7630);
-
- state->m_generic_control_reg = 0;
- state->m_sound_nmi_enable = 0;
- state->m_pending_nmi = 0;
- state->m_snd_data = 0;
-
- state->m_char_bank = 0;
- state->m_palette_bank = 0;
- state->m_gfxctrl = 0;
-
- state->m_port_a_in = 0;
- state->m_port_a_out = 0;
- state->m_ddr_a = 0;
- state->m_port_b_in = 0;
- state->m_port_b_out = 0;
- state->m_ddr_b = 0;
- state->m_port_c_in = 0;
- state->m_port_c_out = 0;
- state->m_ddr_c = 0;
- state->m_mcu_sent = 0;
- state->m_main_sent = 0;
- state->m_from_main = 0;
- state->m_from_mcu = 0;
-
- memset(state->m_vol_ctrl, 0, sizeof(state->m_vol_ctrl));
+ MACHINE_RESET_CALL_MEMBER(ta7630);
+
+ m_generic_control_reg = 0;
+ m_sound_nmi_enable = 0;
+ m_pending_nmi = 0;
+ m_snd_data = 0;
+
+ m_char_bank = 0;
+ m_palette_bank = 0;
+ m_gfxctrl = 0;
+
+ m_port_a_in = 0;
+ m_port_a_out = 0;
+ m_ddr_a = 0;
+ m_port_b_in = 0;
+ m_port_b_out = 0;
+ m_ddr_b = 0;
+ m_port_c_in = 0;
+ m_port_c_out = 0;
+ m_ddr_c = 0;
+ m_mcu_sent = 0;
+ m_main_sent = 0;
+ m_from_main = 0;
+ m_from_mcu = 0;
+
+ memset(m_vol_ctrl, 0, sizeof(m_vol_ctrl));
}
static MACHINE_CONFIG_START( nycaptor, nycaptor_state )
@@ -849,8 +846,6 @@ static MACHINE_CONFIG_START( nycaptor, nycaptor_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
- MCFG_MACHINE_START(nycaptor)
- MCFG_MACHINE_RESET(nycaptor)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -863,7 +858,6 @@ static MACHINE_CONFIG_START( nycaptor, nycaptor_state )
MCFG_GFXDECODE(nycaptor)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(nycaptor)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -911,8 +905,6 @@ static MACHINE_CONFIG_START( cyclshtg, nycaptor_state )
#endif
MCFG_QUANTUM_TIME(attotime::from_hz(60))
- MCFG_MACHINE_START(nycaptor)
- MCFG_MACHINE_RESET(nycaptor)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -924,7 +916,6 @@ static MACHINE_CONFIG_START( cyclshtg, nycaptor_state )
MCFG_GFXDECODE(nycaptor)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(nycaptor)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -968,8 +959,6 @@ static MACHINE_CONFIG_START( bronx, nycaptor_state )
MCFG_CPU_PERIODIC_INT(irq0_line_hold,2*60)
MCFG_QUANTUM_TIME(attotime::from_hz(120))
- MCFG_MACHINE_START(nycaptor)
- MCFG_MACHINE_RESET(nycaptor)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -981,7 +970,6 @@ static MACHINE_CONFIG_START( bronx, nycaptor_state )
MCFG_GFXDECODE(nycaptor)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(nycaptor)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/nyny.c b/src/mame/drivers/nyny.c
index 0fc528d35a4..be9358acd3b 100644
--- a/src/mame/drivers/nyny.c
+++ b/src/mame/drivers/nyny.c
@@ -127,6 +127,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(flipscreen_w);
DECLARE_WRITE_LINE_MEMBER(display_enable_changed);
DECLARE_WRITE8_MEMBER(nyny_ay8910_37_port_a_w);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -673,33 +675,31 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_START( nyny )
+void nyny_state::machine_start()
{
- nyny_state *state = machine.driver_data<nyny_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_audiocpu2 = machine.device("audio2");
- state->m_ic48_1 = machine.device("ic48_1");
- state->m_mc6845 = machine.device<mc6845_device>("crtc");
- state->m_pia1 = machine.device<pia6821_device>("pia1");
- state->m_pia2 = machine.device<pia6821_device>("pia2");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_audiocpu2 = machine().device("audio2");
+ m_ic48_1 = machine().device("ic48_1");
+ m_mc6845 = machine().device<mc6845_device>("crtc");
+ m_pia1 = machine().device<pia6821_device>("pia1");
+ m_pia2 = machine().device<pia6821_device>("pia2");
/* setup for save states */
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_star_enable));
- state->save_item(NAME(state->m_star_delay_counter));
- state->save_item(NAME(state->m_star_shift_reg));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_star_enable));
+ save_item(NAME(m_star_delay_counter));
+ save_item(NAME(m_star_shift_reg));
}
-static MACHINE_RESET( nyny )
+void nyny_state::machine_reset()
{
- nyny_state *state = machine.driver_data<nyny_state>();
- state->m_flipscreen = 0;
- state->m_star_enable = 0;
- state->m_star_delay_counter = 0;
- state->m_star_shift_reg = 0;
+ m_flipscreen = 0;
+ m_star_enable = 0;
+ m_star_delay_counter = 0;
+ m_star_shift_reg = 0;
}
/*************************************
@@ -721,8 +721,6 @@ static MACHINE_CONFIG_START( nyny, nyny_state )
MCFG_CPU_ADD("audio2", M6802, AUDIO_CPU_2_CLOCK)
MCFG_CPU_PROGRAM_MAP(nyny_audio_2_map)
- MCFG_MACHINE_START(nyny)
- MCFG_MACHINE_RESET(nyny)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
diff --git a/src/mame/drivers/offtwall.c b/src/mame/drivers/offtwall.c
index 546a795adc9..ca6729ea27d 100644
--- a/src/mame/drivers/offtwall.c
+++ b/src/mame/drivers/offtwall.c
@@ -46,19 +46,18 @@ static void update_interrupts(running_machine &machine)
*
*************************************/
-static MACHINE_START( offtwall )
+MACHINE_START_MEMBER(offtwall_state,offtwall)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( offtwall )
+MACHINE_RESET_MEMBER(offtwall_state,offtwall)
{
- offtwall_state *state = machine.driver_data<offtwall_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarivc_reset(*machine.primary_screen, state->m_atarivc_eof_data, 1);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarivc_reset(*machine().primary_screen, m_atarivc_eof_data, 1);
atarijsa_reset();
}
@@ -405,8 +404,8 @@ static MACHINE_CONFIG_START( offtwall, offtwall_state )
MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(offtwall)
- MCFG_MACHINE_RESET(offtwall)
+ MCFG_MACHINE_START_OVERRIDE(offtwall_state,offtwall)
+ MCFG_MACHINE_RESET_OVERRIDE(offtwall_state,offtwall)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -420,7 +419,7 @@ static MACHINE_CONFIG_START( offtwall, offtwall_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(offtwall)
- MCFG_VIDEO_START(offtwall)
+ MCFG_VIDEO_START_OVERRIDE(offtwall_state,offtwall)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_iii_mono_noadpcm)
diff --git a/src/mame/drivers/ohmygod.c b/src/mame/drivers/ohmygod.c
index a2f9652b949..06d70a44a84 100644
--- a/src/mame/drivers/ohmygod.c
+++ b/src/mame/drivers/ohmygod.c
@@ -293,27 +293,25 @@ GFXDECODE_END
-static MACHINE_START( ohmygod )
+void ohmygod_state::machine_start()
{
- ohmygod_state *state = machine.driver_data<ohmygod_state>();
- state->save_item(NAME(state->m_spritebank));
- state->save_item(NAME(state->m_scrollx));
- state->save_item(NAME(state->m_scrolly));
- state->save_item(NAME(state->m_sndbank));
+ save_item(NAME(m_spritebank));
+ save_item(NAME(m_scrollx));
+ save_item(NAME(m_scrolly));
+ save_item(NAME(m_sndbank));
}
-static MACHINE_RESET( ohmygod )
+void ohmygod_state::machine_reset()
{
- ohmygod_state *state = machine.driver_data<ohmygod_state>();
- UINT8 *rom = state->memregion("oki")->base();
+ UINT8 *rom = memregion("oki")->base();
- state->m_sndbank = 0;
- memcpy(rom + 0x20000, rom + 0x40000 + 0x20000 * state->m_sndbank, 0x20000);
+ m_sndbank = 0;
+ memcpy(rom + 0x20000, rom + 0x40000 + 0x20000 * m_sndbank, 0x20000);
- state->m_spritebank = 0;
- state->m_scrollx = 0;
- state->m_scrolly = 0;
+ m_spritebank = 0;
+ m_scrollx = 0;
+ m_scrolly = 0;
}
static MACHINE_CONFIG_START( ohmygod, ohmygod_state )
@@ -325,8 +323,6 @@ static MACHINE_CONFIG_START( ohmygod, ohmygod_state )
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */
- MCFG_MACHINE_START(ohmygod)
- MCFG_MACHINE_RESET(ohmygod)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -339,7 +335,6 @@ static MACHINE_CONFIG_START( ohmygod, ohmygod_state )
MCFG_GFXDECODE(ohmygod)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(ohmygod)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ojankohs.c b/src/mame/drivers/ojankohs.c
index c7e03a40316..995be5d4824 100644
--- a/src/mame/drivers/ojankohs.c
+++ b/src/mame/drivers/ojankohs.c
@@ -789,68 +789,66 @@ static const msm5205_interface msm5205_config =
};
-static MACHINE_START( common )
+MACHINE_START_MEMBER(ojankohs_state,common)
{
- ojankohs_state *state = machine.driver_data<ojankohs_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_msm = machine.device("msm");
-
- state->save_item(NAME(state->m_gfxreg));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_flipscreen_old));
- state->save_item(NAME(state->m_scrollx));
- state->save_item(NAME(state->m_scrolly));
- state->save_item(NAME(state->m_screen_refresh));
- state->save_item(NAME(state->m_portselect));
- state->save_item(NAME(state->m_adpcm_reset));
- state->save_item(NAME(state->m_adpcm_data));
- state->save_item(NAME(state->m_vclk_left));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_msm = machine().device("msm");
+
+ save_item(NAME(m_gfxreg));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_flipscreen_old));
+ save_item(NAME(m_scrollx));
+ save_item(NAME(m_scrolly));
+ save_item(NAME(m_screen_refresh));
+ save_item(NAME(m_portselect));
+ save_item(NAME(m_adpcm_reset));
+ save_item(NAME(m_adpcm_data));
+ save_item(NAME(m_vclk_left));
}
-static MACHINE_START( ojankohs )
+MACHINE_START_MEMBER(ojankohs_state,ojankohs)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 0x40, &ROM[0x10000], 0x4000);
+ machine().root_device().membank("bank1")->configure_entries(0, 0x40, &ROM[0x10000], 0x4000);
- MACHINE_START_CALL(common);
+ MACHINE_START_CALL_MEMBER(common);
}
-static MACHINE_START( ojankoy )
+MACHINE_START_MEMBER(ojankohs_state,ojankoy)
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 0x20, &ROM[0x10000], 0x4000);
+ machine().root_device().membank("bank1")->configure_entries(0, 0x20, &ROM[0x10000], 0x4000);
- MACHINE_START_CALL(common);
+ MACHINE_START_CALL_MEMBER(common);
}
-static MACHINE_START( ojankoc )
+MACHINE_START_MEMBER(ojankohs_state,ojankoc)
{
- UINT8 *ROM = machine.root_device().memregion("user1")->base();
+ UINT8 *ROM = machine().root_device().memregion("user1")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x0000], 0x8000);
+ machine().root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x0000], 0x8000);
- MACHINE_START_CALL(common);
+ MACHINE_START_CALL_MEMBER(common);
}
-static MACHINE_RESET( ojankohs )
+void ojankohs_state::machine_reset()
{
- ojankohs_state *state = machine.driver_data<ojankohs_state>();
- state->m_portselect = 0;
+ m_portselect = 0;
- state->m_adpcm_reset = 0;
- state->m_adpcm_data = 0;
- state->m_vclk_left = 0;
+ m_adpcm_reset = 0;
+ m_adpcm_data = 0;
+ m_vclk_left = 0;
- state->m_gfxreg = 0;
- state->m_flipscreen = 0;
- state->m_flipscreen_old = 0;
- state->m_scrollx = 0;
- state->m_scrolly = 0;
- state->m_screen_refresh = 0;
+ m_gfxreg = 0;
+ m_flipscreen = 0;
+ m_flipscreen_old = 0;
+ m_scrollx = 0;
+ m_scrolly = 0;
+ m_screen_refresh = 0;
}
static MACHINE_CONFIG_START( ojankohs, ojankohs_state )
@@ -861,8 +859,7 @@ static MACHINE_CONFIG_START( ojankohs, ojankohs_state )
MCFG_CPU_IO_MAP(ojankohs_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(ojankohs)
- MCFG_MACHINE_RESET(ojankohs)
+ MCFG_MACHINE_START_OVERRIDE(ojankohs_state,ojankohs)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -876,7 +873,7 @@ static MACHINE_CONFIG_START( ojankohs, ojankohs_state )
MCFG_GFXDECODE(ojankohs)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(ojankohs)
+ MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankohs)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -898,8 +895,7 @@ static MACHINE_CONFIG_START( ojankoy, ojankohs_state )
MCFG_CPU_IO_MAP(ojankoy_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(ojankoy)
- MCFG_MACHINE_RESET(ojankohs)
+ MCFG_MACHINE_START_OVERRIDE(ojankohs_state,ojankoy)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -912,9 +908,9 @@ static MACHINE_CONFIG_START( ojankoy, ojankohs_state )
MCFG_GFXDECODE(ojankohs)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(ojankoy)
+ MCFG_PALETTE_INIT_OVERRIDE(ojankohs_state,ojankoy)
- MCFG_VIDEO_START(ojankoy)
+ MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankoy)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -936,8 +932,7 @@ static MACHINE_CONFIG_START( ccasino, ojankohs_state )
MCFG_CPU_IO_MAP(ccasino_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(ojankohs)
- MCFG_MACHINE_RESET(ojankohs)
+ MCFG_MACHINE_START_OVERRIDE(ojankohs_state,ojankohs)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -951,7 +946,7 @@ static MACHINE_CONFIG_START( ccasino, ojankohs_state )
MCFG_GFXDECODE(ojankohs)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(ojankoy)
+ MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankoy)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -973,8 +968,7 @@ static MACHINE_CONFIG_START( ojankoc, ojankohs_state )
MCFG_CPU_IO_MAP(ojankoc_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(ojankoc)
- MCFG_MACHINE_RESET(ojankohs)
+ MCFG_MACHINE_START_OVERRIDE(ojankohs_state,ojankoc)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -987,7 +981,7 @@ static MACHINE_CONFIG_START( ojankoc, ojankohs_state )
MCFG_PALETTE_LENGTH(16)
- MCFG_VIDEO_START(ojankoc)
+ MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankoc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/olibochu.c b/src/mame/drivers/olibochu.c
index 0f4e67e068d..c3f725dbf48 100644
--- a/src/mame/drivers/olibochu.c
+++ b/src/mame/drivers/olibochu.c
@@ -82,16 +82,20 @@ public:
DECLARE_WRITE8_MEMBER(olibochu_flipscreen_w);
DECLARE_WRITE8_MEMBER(sound_command_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
-static PALETTE_INIT( olibochu )
+void olibochu_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
- for (i = 0; i < machine.total_colors(); i++)
+ for (i = 0; i < machine().total_colors(); i++)
{
UINT8 pen;
int bit0, bit1, bit2, r, g, b;
@@ -120,7 +124,7 @@ static PALETTE_INIT( olibochu )
bit1 = BIT(color_prom[pen], 7);
b = 0x4f * bit0 + 0xa8 * bit1;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -157,10 +161,9 @@ TILE_GET_INFO_MEMBER(olibochu_state::get_bg_tile_info)
SET_TILE_INFO_MEMBER(0, code, color, flags);
}
-static VIDEO_START( olibochu )
+void olibochu_state::video_start()
{
- olibochu_state *state = machine.driver_data<olibochu_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(olibochu_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(olibochu_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
@@ -417,18 +420,16 @@ GFXDECODE_END
-static MACHINE_START( olibochu )
+void olibochu_state::machine_start()
{
- olibochu_state *state = machine.driver_data<olibochu_state>();
- state->save_item(NAME(state->m_cmd));
+ save_item(NAME(m_cmd));
}
-static MACHINE_RESET( olibochu )
+void olibochu_state::machine_reset()
{
- olibochu_state *state = machine.driver_data<olibochu_state>();
- state->m_cmd = 0;
+ m_cmd = 0;
}
static TIMER_DEVICE_CALLBACK( olibochu_scanline )
@@ -455,8 +456,6 @@ static MACHINE_CONFIG_START( olibochu, olibochu_state )
// MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_START(olibochu)
- MCFG_MACHINE_RESET(olibochu)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -469,8 +468,6 @@ static MACHINE_CONFIG_START( olibochu, olibochu_state )
MCFG_GFXDECODE(olibochu)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(olibochu)
- MCFG_VIDEO_START(olibochu)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/omegrace.c b/src/mame/drivers/omegrace.c
index de0fa97ff8e..2665ed7975a 100644
--- a/src/mame/drivers/omegrace.c
+++ b/src/mame/drivers/omegrace.c
@@ -234,6 +234,7 @@ public:
DECLARE_WRITE8_MEMBER(omegrace_leds_w);
DECLARE_WRITE8_MEMBER(omegrace_soundlatch_w);
DECLARE_DRIVER_INIT(omegrace);
+ virtual void machine_reset();
};
@@ -243,9 +244,9 @@ public:
*
*************************************/
-static MACHINE_RESET( omegrace )
+void omegrace_state::machine_reset()
{
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
/* Omega Race expects the vector processor to be ready. */
avgdvg_reset_w(space, 0, 0);
}
@@ -501,7 +502,6 @@ static MACHINE_CONFIG_START( omegrace, omegrace_state )
MCFG_CPU_IO_MAP(sound_port)
MCFG_CPU_PERIODIC_INT(nmi_line_pulse,250)
- MCFG_MACHINE_RESET(omegrace)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
diff --git a/src/mame/drivers/oneshot.c b/src/mame/drivers/oneshot.c
index 39673966bef..64ad5bfab9c 100644
--- a/src/mame/drivers/oneshot.c
+++ b/src/mame/drivers/oneshot.c
@@ -340,33 +340,31 @@ static const ym3812_interface ym3812_config =
irq_handler
};
-static MACHINE_START( oneshot )
+void oneshot_state::machine_start()
{
- oneshot_state *state = machine.driver_data<oneshot_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
-
- state->save_item(NAME(state->m_gun_x_p1));
- state->save_item(NAME(state->m_gun_y_p1));
- state->save_item(NAME(state->m_gun_x_p2));
- state->save_item(NAME(state->m_gun_y_p2));
- state->save_item(NAME(state->m_gun_x_shift));
- state->save_item(NAME(state->m_p1_wobble));
- state->save_item(NAME(state->m_p2_wobble));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+
+ save_item(NAME(m_gun_x_p1));
+ save_item(NAME(m_gun_y_p1));
+ save_item(NAME(m_gun_x_p2));
+ save_item(NAME(m_gun_y_p2));
+ save_item(NAME(m_gun_x_shift));
+ save_item(NAME(m_p1_wobble));
+ save_item(NAME(m_p2_wobble));
}
-static MACHINE_RESET( oneshot )
+void oneshot_state::machine_reset()
{
- oneshot_state *state = machine.driver_data<oneshot_state>();
-
- state->m_gun_x_p1 = 0;
- state->m_gun_y_p1 = 0;
- state->m_gun_x_p2 = 0;
- state->m_gun_y_p2 = 0;
- state->m_gun_x_shift = 0;
- state->m_p1_wobble = 0;
- state->m_p2_wobble = 0;
+
+ m_gun_x_p1 = 0;
+ m_gun_y_p1 = 0;
+ m_gun_x_p2 = 0;
+ m_gun_y_p2 = 0;
+ m_gun_x_shift = 0;
+ m_p1_wobble = 0;
+ m_p2_wobble = 0;
}
static MACHINE_CONFIG_START( oneshot, oneshot_state )
@@ -379,8 +377,6 @@ static MACHINE_CONFIG_START( oneshot, oneshot_state )
MCFG_CPU_ADD("audiocpu", Z80, 5000000)
MCFG_CPU_PROGRAM_MAP(oneshot_sound_map)
- MCFG_MACHINE_START(oneshot)
- MCFG_MACHINE_RESET(oneshot)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -393,7 +389,6 @@ static MACHINE_CONFIG_START( oneshot, oneshot_state )
MCFG_GFXDECODE(oneshot)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(oneshot)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/onetwo.c b/src/mame/drivers/onetwo.c
index 72e596fe176..044788ec60f 100644
--- a/src/mame/drivers/onetwo.c
+++ b/src/mame/drivers/onetwo.c
@@ -73,6 +73,8 @@ public:
DECLARE_WRITE8_MEMBER(palette1_w);
DECLARE_WRITE8_MEMBER(palette2_w);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ virtual void machine_start();
+ virtual void video_start();
};
@@ -93,10 +95,9 @@ TILE_GET_INFO_MEMBER(onetwo_state::get_fg_tile_info)
SET_TILE_INFO_MEMBER(0, code, color, 0);
}
-static VIDEO_START( onetwo )
+void onetwo_state::video_start()
{
- onetwo_state *state = machine.driver_data<onetwo_state>();
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(onetwo_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(onetwo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
static SCREEN_UPDATE_IND16( onetwo )
@@ -345,15 +346,14 @@ static const ym3812_interface ym3812_config =
*
*************************************/
-static MACHINE_START( onetwo )
+void onetwo_state::machine_start()
{
- onetwo_state *state = machine.driver_data<onetwo_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
}
static MACHINE_CONFIG_START( onetwo, onetwo_state )
@@ -368,7 +368,6 @@ static MACHINE_CONFIG_START( onetwo, onetwo_state )
MCFG_CPU_PROGRAM_MAP(sound_cpu)
MCFG_CPU_IO_MAP(sound_cpu_io)
- MCFG_MACHINE_START(onetwo)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -381,7 +380,6 @@ static MACHINE_CONFIG_START( onetwo, onetwo_state )
MCFG_GFXDECODE(onetwo)
MCFG_PALETTE_LENGTH(0x80)
- MCFG_VIDEO_START(onetwo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/opwolf.c b/src/mame/drivers/opwolf.c
index 93782debaab..1eab0f661cd 100644
--- a/src/mame/drivers/opwolf.c
+++ b/src/mame/drivers/opwolf.c
@@ -426,41 +426,39 @@ ADDRESS_MAP_END
//5 - different values
//6 - different values
-static MACHINE_START( opwolf )
+void opwolf_state::machine_start()
{
- opwolf_state *state = machine.driver_data<opwolf_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_pc080sn = machine.device("pc080sn");
- state->m_pc090oj = machine.device("pc090oj");
- state->m_msm1 = machine.device("msm1");
- state->m_msm2 = machine.device("msm2");
-
- state->save_item(NAME(state->m_sprite_ctrl));
- state->save_item(NAME(state->m_sprites_flipscreen));
-
- state->save_item(NAME(state->m_adpcm_b));
- state->save_item(NAME(state->m_adpcm_c));
- state->save_item(NAME(state->m_adpcm_pos));
- state->save_item(NAME(state->m_adpcm_end));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_pc080sn = machine().device("pc080sn");
+ m_pc090oj = machine().device("pc090oj");
+ m_msm1 = machine().device("msm1");
+ m_msm2 = machine().device("msm2");
+
+ save_item(NAME(m_sprite_ctrl));
+ save_item(NAME(m_sprites_flipscreen));
+
+ save_item(NAME(m_adpcm_b));
+ save_item(NAME(m_adpcm_c));
+ save_item(NAME(m_adpcm_pos));
+ save_item(NAME(m_adpcm_end));
}
-static MACHINE_RESET( opwolf )
+MACHINE_RESET_MEMBER(opwolf_state,opwolf)
{
- opwolf_state *state = machine.driver_data<opwolf_state>();
- state->m_adpcm_b[0] = state->m_adpcm_b[1] = 0;
- state->m_adpcm_c[0] = state->m_adpcm_c[1] = 0;
- state->m_adpcm_pos[0] = state->m_adpcm_pos[1] = 0;
- state->m_adpcm_end[0] = state->m_adpcm_end[1] = 0;
- state->m_adpcm_data[0] = state->m_adpcm_data[1] = -1;
+ m_adpcm_b[0] = m_adpcm_b[1] = 0;
+ m_adpcm_c[0] = m_adpcm_c[1] = 0;
+ m_adpcm_pos[0] = m_adpcm_pos[1] = 0;
+ m_adpcm_end[0] = m_adpcm_end[1] = 0;
+ m_adpcm_data[0] = m_adpcm_data[1] = -1;
- state->m_sprite_ctrl = 0;
- state->m_sprites_flipscreen = 0;
+ m_sprite_ctrl = 0;
+ m_sprites_flipscreen = 0;
- msm5205_reset_w(machine.device("msm1"), 1);
- msm5205_reset_w(machine.device("msm2"), 1);
+ msm5205_reset_w(machine().device("msm1"), 1);
+ msm5205_reset_w(machine().device("msm2"), 1);
}
static void opwolf_msm5205_vck( device_t *device )
@@ -744,8 +742,7 @@ static MACHINE_CONFIG_START( opwolf, opwolf_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
- MCFG_MACHINE_START(opwolf)
- MCFG_MACHINE_RESET(opwolf)
+ MCFG_MACHINE_RESET_OVERRIDE(opwolf_state,opwolf)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -799,7 +796,6 @@ static MACHINE_CONFIG_START( opwolfb, opwolf_state ) /* OSC clocks unknown for t
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
- MCFG_MACHINE_START(opwolf)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c
index 9001824f6ce..57df7006c8a 100644
--- a/src/mame/drivers/orbit.c
+++ b/src/mame/drivers/orbit.c
@@ -271,23 +271,21 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( orbit )
+void orbit_state::machine_start()
{
- orbit_state *state = machine.driver_data<orbit_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_discrete = machine.device("discrete");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_discrete = machine().device("discrete");
- state->save_item(NAME(state->m_misc_flags));
- state->save_item(NAME(state->m_flip_screen));
+ save_item(NAME(m_misc_flags));
+ save_item(NAME(m_flip_screen));
}
-static MACHINE_RESET( orbit )
+void orbit_state::machine_reset()
{
- orbit_state *state = machine.driver_data<orbit_state>();
- update_misc_flags(machine, 0);
- state->m_flip_screen = 0;
+ update_misc_flags(machine(), 0);
+ m_flip_screen = 0;
}
@@ -306,8 +304,6 @@ static MACHINE_CONFIG_START( orbit, orbit_state )
MCFG_TIMER_ADD_SCANLINE("32v", nmi_32v, "screen", 0, 32)
- MCFG_MACHINE_START(orbit)
- MCFG_MACHINE_RESET(orbit)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -317,7 +313,6 @@ static MACHINE_CONFIG_START( orbit, orbit_state )
MCFG_GFXDECODE(orbit)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
- MCFG_VIDEO_START(orbit)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/othello.c b/src/mame/drivers/othello.c
index 834c105b9cb..ae1ab6f8048 100644
--- a/src/mame/drivers/othello.c
+++ b/src/mame/drivers/othello.c
@@ -90,6 +90,9 @@ public:
DECLARE_READ8_MEMBER(n7751_command_r);
DECLARE_READ8_MEMBER(n7751_t1_r);
DECLARE_WRITE8_MEMBER(n7751_p2_w);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void palette_init();
};
@@ -116,22 +119,22 @@ static MC6845_UPDATE_ROW( update_row )
}
}
-static PALETTE_INIT( othello )
+void othello_state::palette_init()
{
int i;
- for (i = 0; i < machine.total_colors(); i++)
+ for (i = 0; i < machine().total_colors(); i++)
{
- palette_set_color(machine, i, MAKE_RGB(0xff, 0x00, 0xff));
+ palette_set_color(machine(), i, MAKE_RGB(0xff, 0x00, 0xff));
}
/* only colors 2,3,7,9,c,d,f are used */
- palette_set_color(machine, 0x02, MAKE_RGB(0x00, 0xff, 0x00));
- palette_set_color(machine, 0x03, MAKE_RGB(0xff, 0x7f, 0x00));
- palette_set_color(machine, 0x07, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, 0x09, MAKE_RGB(0xff, 0x00, 0x00));
- palette_set_color(machine, 0x0c, MAKE_RGB(0x00, 0x00, 0xff));
- palette_set_color(machine, 0x0d, MAKE_RGB(0x7f, 0x7f, 0x00));
- palette_set_color(machine, 0x0f, MAKE_RGB(0xff, 0xff, 0xff));
+ palette_set_color(machine(), 0x02, MAKE_RGB(0x00, 0xff, 0x00));
+ palette_set_color(machine(), 0x03, MAKE_RGB(0xff, 0x7f, 0x00));
+ palette_set_color(machine(), 0x07, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), 0x09, MAKE_RGB(0xff, 0x00, 0x00));
+ palette_set_color(machine(), 0x0c, MAKE_RGB(0x00, 0x00, 0xff));
+ palette_set_color(machine(), 0x0d, MAKE_RGB(0x7f, 0x7f, 0x00));
+ palette_set_color(machine(), 0x0f, MAKE_RGB(0xff, 0xff, 0xff));
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, othello_state )
@@ -380,34 +383,32 @@ static const mc6845_interface h46505_intf =
};
-static MACHINE_START( othello )
+void othello_state::machine_start()
{
- othello_state *state = machine.driver_data<othello_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_mc6845 = machine.device<mc6845_device>("crtc");
- state->m_n7751 = machine.device("n7751");
- state->m_ay1 = machine.device("ay1");
- state->m_ay2 = machine.device("ay2");
-
- state->save_item(NAME(state->m_tile_bank));
- state->save_item(NAME(state->m_ay_select));
- state->save_item(NAME(state->m_ack_data));
- state->save_item(NAME(state->m_n7751_command));
- state->save_item(NAME(state->m_sound_addr));
- state->save_item(NAME(state->m_n7751_busy));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_mc6845 = machine().device<mc6845_device>("crtc");
+ m_n7751 = machine().device("n7751");
+ m_ay1 = machine().device("ay1");
+ m_ay2 = machine().device("ay2");
+
+ save_item(NAME(m_tile_bank));
+ save_item(NAME(m_ay_select));
+ save_item(NAME(m_ack_data));
+ save_item(NAME(m_n7751_command));
+ save_item(NAME(m_sound_addr));
+ save_item(NAME(m_n7751_busy));
}
-static MACHINE_RESET( othello )
+void othello_state::machine_reset()
{
- othello_state *state = machine.driver_data<othello_state>();
-
- state->m_tile_bank = 0;
- state->m_ay_select = 0;
- state->m_ack_data = 0;
- state->m_n7751_command = 0;
- state->m_sound_addr = 0;
- state->m_n7751_busy = 0;
+
+ m_tile_bank = 0;
+ m_ay_select = 0;
+ m_ack_data = 0;
+ m_n7751_command = 0;
+ m_sound_addr = 0;
+ m_n7751_busy = 0;
}
static MACHINE_CONFIG_START( othello, othello_state )
@@ -427,8 +428,6 @@ static MACHINE_CONFIG_START( othello, othello_state )
MCFG_I8243_ADD("n7751_8243", NULL, n7751_rom_control_w)
- MCFG_MACHINE_START(othello)
- MCFG_MACHINE_RESET(othello)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -439,7 +438,6 @@ static MACHINE_CONFIG_START( othello, othello_state )
MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update)
MCFG_PALETTE_LENGTH(0x10)
- MCFG_PALETTE_INIT(othello)
MCFG_MC6845_ADD("crtc", H46505, 1000000 /* ? MHz */, h46505_intf) /* H46505 @ CPU clock */
diff --git a/src/mame/drivers/othldrby.c b/src/mame/drivers/othldrby.c
index 5bcbff321c7..2636630505e 100644
--- a/src/mame/drivers/othldrby.c
+++ b/src/mame/drivers/othldrby.c
@@ -218,25 +218,23 @@ GFXDECODE_END
-static MACHINE_START( othldrby )
+void othldrby_state::machine_start()
{
- othldrby_state *state = machine.driver_data<othldrby_state>();
- state->save_item(NAME(state->m_toggle));
- state->save_item(NAME(state->m_vram_addr));
- state->save_item(NAME(state->m_vreg_addr));
- state->save_item(NAME(state->m_vreg));
+ save_item(NAME(m_toggle));
+ save_item(NAME(m_vram_addr));
+ save_item(NAME(m_vreg_addr));
+ save_item(NAME(m_vreg));
}
-static MACHINE_RESET( othldrby )
+void othldrby_state::machine_reset()
{
- othldrby_state *state = machine.driver_data<othldrby_state>();
- state->m_toggle = 0xff;
- state->m_vram_addr = 0;
- state->m_vreg_addr = 0;
+ m_toggle = 0xff;
+ m_vram_addr = 0;
+ m_vreg_addr = 0;
- memset(state->m_vreg, 0, sizeof(state->m_vreg));
+ memset(m_vreg, 0, sizeof(m_vreg));
}
static MACHINE_CONFIG_START( othldrby, othldrby_state )
@@ -246,8 +244,6 @@ static MACHINE_CONFIG_START( othldrby, othldrby_state )
MCFG_CPU_PROGRAM_MAP(othldrby_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
- MCFG_MACHINE_START(othldrby)
- MCFG_MACHINE_RESET(othldrby)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -261,7 +257,6 @@ static MACHINE_CONFIG_START( othldrby, othldrby_state )
MCFG_GFXDECODE(othldrby)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(othldrby)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c
index ff1e7d2255a..91a43103c4e 100644
--- a/src/mame/drivers/othunder.c
+++ b/src/mame/drivers/othunder.c
@@ -670,40 +670,38 @@ static const tc0140syt_interface othunder_tc0140syt_intf =
"maincpu", "audiocpu"
};
-static MACHINE_START( othunder )
+void othunder_state::machine_start()
{
- othunder_state *state = machine.driver_data<othunder_state>();
- state->membank("bank10")->configure_entries(0, 4, state->memregion("audiocpu")->base() + 0xc000, 0x4000);
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_eeprom = machine.device<eeprom_device>("eeprom");
- state->m_tc0220ioc = machine.device("tc0220ioc");
- state->m_tc0100scn = machine.device("tc0100scn");
- state->m_tc0110pcr = machine.device("tc0110pcr");
- state->m_tc0140syt = machine.device("tc0140syt");
- state->m_2610_0l = machine.device("2610.0l");
- state->m_2610_0r = machine.device("2610.0r");
- state->m_2610_1l = machine.device("2610.1l");
- state->m_2610_1r = machine.device("2610.1r");
- state->m_2610_2l = machine.device("2610.2l");
- state->m_2610_2r = machine.device("2610.2r");
-
- state->save_item(NAME(state->m_vblank_irq));
- state->save_item(NAME(state->m_ad_irq));
- state->save_item(NAME(state->m_banknum));
- state->save_item(NAME(state->m_pan));
- machine.save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine));
+ membank("bank10")->configure_entries(0, 4, memregion("audiocpu")->base() + 0xc000, 0x4000);
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_eeprom = machine().device<eeprom_device>("eeprom");
+ m_tc0220ioc = machine().device("tc0220ioc");
+ m_tc0100scn = machine().device("tc0100scn");
+ m_tc0110pcr = machine().device("tc0110pcr");
+ m_tc0140syt = machine().device("tc0140syt");
+ m_2610_0l = machine().device("2610.0l");
+ m_2610_0r = machine().device("2610.0r");
+ m_2610_1l = machine().device("2610.1l");
+ m_2610_1r = machine().device("2610.1r");
+ m_2610_2l = machine().device("2610.2l");
+ m_2610_2r = machine().device("2610.2r");
+
+ save_item(NAME(m_vblank_irq));
+ save_item(NAME(m_ad_irq));
+ save_item(NAME(m_banknum));
+ save_item(NAME(m_pan));
+ machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
}
-static MACHINE_RESET( othunder )
+void othunder_state::machine_reset()
{
- othunder_state *state = machine.driver_data<othunder_state>();
- state->m_vblank_irq = 0;
- state->m_ad_irq = 0;
- state->m_banknum = 0;
+ m_vblank_irq = 0;
+ m_ad_irq = 0;
+ m_banknum = 0;
}
static MACHINE_CONFIG_START( othunder, othunder_state )
@@ -719,8 +717,6 @@ static MACHINE_CONFIG_START( othunder, othunder_state )
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
- MCFG_MACHINE_START(othunder)
- MCFG_MACHINE_RESET(othunder)
MCFG_TC0220IOC_ADD("tc0220ioc", othunder_io_intf)
@@ -735,7 +731,6 @@ static MACHINE_CONFIG_START( othunder, othunder_state )
MCFG_GFXDECODE(othunder)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(othunder)
MCFG_TC0100SCN_ADD("tc0100scn", othunder_tc0100scn_intf)
MCFG_TC0110PCR_ADD("tc0110pcr", othunder_tc0110pcr_intf)
diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c
index 8745ec22a6c..dec80a7e346 100644
--- a/src/mame/drivers/overdriv.c
+++ b/src/mame/drivers/overdriv.c
@@ -280,39 +280,37 @@ static const k051316_interface overdriv_k051316_intf_2 =
};
-static MACHINE_START( overdriv )
+void overdriv_state::machine_start()
{
- overdriv_state *state = machine.driver_data<overdriv_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
- state->m_k051316_1 = machine.device("k051316_1");
- state->m_k051316_2 = machine.device("k051316_2");
- state->m_k053260_1 = machine.device("k053260_1");
- state->m_k053260_2 = machine.device("k053260_2");
- state->m_k053246 = machine.device("k053246");
- state->m_k053251 = machine.device("k053251");
-
- state->save_item(NAME(state->m_cpuB_ctrl));
- state->save_item(NAME(state->m_sprite_colorbase));
- state->save_item(NAME(state->m_zoom_colorbase));
- state->save_item(NAME(state->m_road_colorbase));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_subcpu = machine().device<cpu_device>("sub");
+ m_k051316_1 = machine().device("k051316_1");
+ m_k051316_2 = machine().device("k051316_2");
+ m_k053260_1 = machine().device("k053260_1");
+ m_k053260_2 = machine().device("k053260_2");
+ m_k053246 = machine().device("k053246");
+ m_k053251 = machine().device("k053251");
+
+ save_item(NAME(m_cpuB_ctrl));
+ save_item(NAME(m_sprite_colorbase));
+ save_item(NAME(m_zoom_colorbase));
+ save_item(NAME(m_road_colorbase));
}
-static MACHINE_RESET( overdriv )
+void overdriv_state::machine_reset()
{
- overdriv_state *state = machine.driver_data<overdriv_state>();
- state->m_cpuB_ctrl = 0;
- state->m_sprite_colorbase = 0;
- state->m_zoom_colorbase[0] = 0;
- state->m_zoom_colorbase[1] = 0;
- state->m_road_colorbase[0] = 0;
- state->m_road_colorbase[1] = 0;
+ m_cpuB_ctrl = 0;
+ m_sprite_colorbase = 0;
+ m_zoom_colorbase[0] = 0;
+ m_zoom_colorbase[1] = 0;
+ m_road_colorbase[0] = 0;
+ m_road_colorbase[1] = 0;
/* start with cpu B halted */
- machine.device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
static const k053252_interface overdriv_k053252_intf =
@@ -345,8 +343,6 @@ static MACHINE_CONFIG_START( overdriv, overdriv_state )
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
- MCFG_MACHINE_START(overdriv)
- MCFG_MACHINE_RESET(overdriv)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
MCFG_EEPROM_DATA(overdriv_default_eeprom, 128)
diff --git a/src/mame/drivers/pachifev.c b/src/mame/drivers/pachifev.c
index fb327b659f6..10bea16902a 100644
--- a/src/mame/drivers/pachifev.c
+++ b/src/mame/drivers/pachifev.c
@@ -105,6 +105,8 @@ public:
UINT8 m_adpcm_data;
DECLARE_WRITE8_MEMBER(controls_w);
DECLARE_READ8_MEMBER(controls_r);
+ virtual void machine_start();
+ virtual void machine_reset();
};
WRITE8_MEMBER(pachifev_state::controls_w)
@@ -300,18 +302,17 @@ static const msm5205_interface msm5205_config =
#endif
-static MACHINE_RESET( pachifev )
+void pachifev_state::machine_reset()
{
- pachifev_state *state = machine.driver_data<pachifev_state>();
- state->m_power=0;
- state->m_max_power=0;
- state->m_input_power=0;
- state->m_previous_power=0;
- state->m_cnt=0;
+ m_power=0;
+ m_max_power=0;
+ m_input_power=0;
+ m_previous_power=0;
+ m_cnt=0;
#if USE_MSM
- state->m_adpcm_pos = 0;
+ m_adpcm_pos = 0;
#endif
}
@@ -355,15 +356,14 @@ static TMS9928A_INTERFACE(pachifev_tms9928a_interface)
DEVCB_NULL
};
-static MACHINE_START( pachifev)
+void pachifev_state::machine_start()
{
- pachifev_state *state = machine.driver_data<pachifev_state>();
- state->save_item(NAME(state->m_power));
- state->save_item(NAME(state->m_max_power));
- state->save_item(NAME(state->m_input_power));
- state->save_item(NAME(state->m_previous_power));
- state->save_item(NAME(state->m_cnt));
+ save_item(NAME(m_power));
+ save_item(NAME(m_max_power));
+ save_item(NAME(m_input_power));
+ save_item(NAME(m_previous_power));
+ save_item(NAME(m_cnt));
}
static const struct tms9995reset_param pachifev_processor_config =
@@ -380,8 +380,6 @@ static MACHINE_CONFIG_START( pachifev, pachifev_state )
MCFG_CPU_IO_MAP(pachifev_cru)
MCFG_CPU_VBLANK_INT("screen",pachifev_vblank_irq)
- MCFG_MACHINE_START(pachifev)
- MCFG_MACHINE_RESET(pachifev)
/* video hardware */
MCFG_TMS9928A_ADD( "tms9928a", TMS9928A, pachifev_tms9928a_interface )
diff --git a/src/mame/drivers/pacland.c b/src/mame/drivers/pacland.c
index 926867b3656..968b5f726b6 100644
--- a/src/mame/drivers/pacland.c
+++ b/src/mame/drivers/pacland.c
@@ -437,8 +437,6 @@ static MACHINE_CONFIG_START( pacland, pacland_state )
MCFG_GFXDECODE(pacland)
MCFG_PALETTE_LENGTH(256*4+256*4+64*16)
- MCFG_PALETTE_INIT(pacland)
- MCFG_VIDEO_START(pacland)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c
index 37d3f554c7a..2b4b81e9d10 100644
--- a/src/mame/drivers/pacman.c
+++ b/src/mame/drivers/pacman.c
@@ -374,22 +374,21 @@ Boards:
*
*************************************/
-static MACHINE_RESET( mschamp )
+MACHINE_RESET_MEMBER(pacman_state,mschamp)
{
- UINT8 *rom = machine.root_device().memregion("maincpu")->base() + 0x10000;
- int whichbank = machine.root_device().ioport("GAME")->read() & 1;
+ UINT8 *rom = machine().root_device().memregion("maincpu")->base() + 0x10000;
+ int whichbank = machine().root_device().ioport("GAME")->read() & 1;
- machine.root_device().membank("bank1")->configure_entries(0, 2, &rom[0x0000], 0x8000);
- machine.root_device().membank("bank2")->configure_entries(0, 2, &rom[0x4000], 0x8000);
+ machine().root_device().membank("bank1")->configure_entries(0, 2, &rom[0x0000], 0x8000);
+ machine().root_device().membank("bank2")->configure_entries(0, 2, &rom[0x4000], 0x8000);
- machine.root_device().membank("bank1")->set_entry(whichbank);
- machine.root_device().membank("bank2")->set_entry(whichbank);
+ machine().root_device().membank("bank1")->set_entry(whichbank);
+ machine().root_device().membank("bank2")->set_entry(whichbank);
}
-static MACHINE_RESET( superabc )
+MACHINE_RESET_MEMBER(pacman_state,superabc)
{
- pacman_state *state = machine.driver_data<pacman_state>();
- state->superabc_bank_w(*state->m_maincpu->space(AS_PROGRAM), 0, 0);
+ superabc_bank_w(*m_maincpu->space(AS_PROGRAM), 0, 0);
}
@@ -3306,8 +3305,8 @@ static MACHINE_CONFIG_START( pacman, pacman_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(pacman)
- MCFG_PALETTE_INIT(pacman)
- MCFG_VIDEO_START(pacman)
+ MCFG_PALETTE_INIT_OVERRIDE(pacman_state,pacman)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state,pacman)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3324,7 +3323,7 @@ static MACHINE_CONFIG_DERIVED( birdiy, pacman )
MCFG_CPU_PROGRAM_MAP(birdiy_map)
MCFG_CPU_IO_MAP(0)
- MCFG_VIDEO_START(birdiy)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state,birdiy)
MACHINE_CONFIG_END
@@ -3391,8 +3390,8 @@ static MACHINE_CONFIG_DERIVED( theglobp, pacman )
MCFG_CPU_PROGRAM_MAP(epos_map)
MCFG_CPU_IO_MAP(theglobp_portmap)
- MCFG_MACHINE_START(theglobp)
- MCFG_MACHINE_RESET(theglobp)
+ MCFG_MACHINE_START_OVERRIDE(pacman_state,theglobp)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state,theglobp)
MACHINE_CONFIG_END
@@ -3403,8 +3402,8 @@ static MACHINE_CONFIG_DERIVED( acitya, pacman )
MCFG_CPU_PROGRAM_MAP(epos_map)
MCFG_CPU_IO_MAP(acitya_portmap)
- MCFG_MACHINE_START(acitya)
- MCFG_MACHINE_RESET(acitya)
+ MCFG_MACHINE_START_OVERRIDE(pacman_state,acitya)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state,acitya)
MACHINE_CONFIG_END
@@ -3459,7 +3458,7 @@ static MACHINE_CONFIG_DERIVED( s2650games, pacman )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_UPDATE_STATIC(s2650games)
- MCFG_VIDEO_START(s2650games)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state,s2650games)
/* sound hardware */
MCFG_SOUND_REPLACE("namco", SN76496_NEW, MASTER_CLOCK/6) /* 1H */
@@ -3512,7 +3511,7 @@ static MACHINE_CONFIG_DERIVED( mschamp, pacman )
MCFG_CPU_IO_MAP(mschamp_portmap)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_RESET(mschamp)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state,mschamp)
MACHINE_CONFIG_END
@@ -3524,7 +3523,7 @@ static MACHINE_CONFIG_DERIVED( superabc, pacman )
MCFG_NVRAM_ADD_0FILL("28c16.u17")
- MCFG_MACHINE_RESET(superabc)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state,superabc)
/* video hardware */
MCFG_GFXDECODE(superabc)
diff --git a/src/mame/drivers/pandoras.c b/src/mame/drivers/pandoras.c
index 3b26df5c2a0..62836df34af 100644
--- a/src/mame/drivers/pandoras.c
+++ b/src/mame/drivers/pandoras.c
@@ -292,33 +292,31 @@ GFXDECODE_END
***************************************************************************/
-static MACHINE_START( pandoras )
+void pandoras_state::machine_start()
{
- pandoras_state *state = machine.driver_data<pandoras_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_mcu = machine.device<cpu_device>("mcu");
-
- state->save_item(NAME(state->m_firq_old_data_a));
- state->save_item(NAME(state->m_firq_old_data_b));
- state->save_item(NAME(state->m_irq_enable_a));
- state->save_item(NAME(state->m_irq_enable_b));
- state->save_item(NAME(state->m_i8039_status));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_subcpu = machine().device<cpu_device>("sub");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_mcu = machine().device<cpu_device>("mcu");
+
+ save_item(NAME(m_firq_old_data_a));
+ save_item(NAME(m_firq_old_data_b));
+ save_item(NAME(m_irq_enable_a));
+ save_item(NAME(m_irq_enable_b));
+ save_item(NAME(m_i8039_status));
}
-static MACHINE_RESET( pandoras )
+void pandoras_state::machine_reset()
{
- pandoras_state *state = machine.driver_data<pandoras_state>();
- state->m_firq_old_data_a = 0;
- state->m_firq_old_data_b = 0;
- state->m_irq_enable_a = 0;
- state->m_irq_enable_b = 0;
- state->m_i8039_status = 0;
+ m_firq_old_data_a = 0;
+ m_firq_old_data_b = 0;
+ m_irq_enable_a = 0;
+ m_irq_enable_b = 0;
+ m_i8039_status = 0;
- state->m_flipscreen = 0;
+ m_flipscreen = 0;
}
READ8_MEMBER(pandoras_state::pandoras_portA_r)
@@ -361,8 +359,6 @@ static MACHINE_CONFIG_START( pandoras, pandoras_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - needed for correct synchronization of the sound CPUs */
- MCFG_MACHINE_START(pandoras)
- MCFG_MACHINE_RESET(pandoras)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -375,8 +371,6 @@ static MACHINE_CONFIG_START( pandoras, pandoras_state )
MCFG_GFXDECODE(pandoras)
MCFG_PALETTE_LENGTH(16*16+16*16)
- MCFG_PALETTE_INIT(pandoras)
- MCFG_VIDEO_START(pandoras)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pangofun.c b/src/mame/drivers/pangofun.c
index 49951fd3241..9ffe986dc93 100644
--- a/src/mame/drivers/pangofun.c
+++ b/src/mame/drivers/pangofun.c
@@ -106,6 +106,7 @@ public:
: driver_device(mconfig, type, tag) { }
DECLARE_DRIVER_INIT(pangofun);
+ virtual void machine_start();
};
@@ -185,11 +186,11 @@ static const struct kbdc8042_interface at8042 =
KBDC8042_AT386, set_gate_a20, keyboard_interrupt, NULL, pcat_dyn_get_out2
};
-static MACHINE_START( pangofun )
+void pangofun_state::machine_start()
{
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(pcat_irq_callback);
- init_pc_common(machine, PCCOMMON_KEYBOARD_AT, pangofun_set_keyb_int);
- kbdc8042_init(machine, &at8042);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(pcat_irq_callback);
+ init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, pangofun_set_keyb_int);
+ kbdc8042_init(machine(), &at8042);
}
@@ -205,7 +206,6 @@ static MACHINE_CONFIG_START( pangofun, pangofun_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_MACHINE_START(pangofun)
MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
MCFG_FRAGMENT_ADD( pcat_common )
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/panicr.c b/src/mame/drivers/panicr.c
index b0af96aa2b8..77f3a94b9be 100644
--- a/src/mame/drivers/panicr.c
+++ b/src/mame/drivers/panicr.c
@@ -96,6 +96,8 @@ public:
TILE_GET_INFO_MEMBER(get_bgtile_info);
TILE_GET_INFO_MEMBER(get_infotile_info);
TILE_GET_INFO_MEMBER(get_txttile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -110,13 +112,13 @@ public:
***************************************************************************/
-static PALETTE_INIT( panicr )
+void panicr_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
/* allocate the colortable */
- machine.colortable = colortable_alloc(machine, 0x100);
+ machine().colortable = colortable_alloc(machine(), 0x100);
/* create a lookup table for the palette */
for (i = 0; i < 0x100; i++)
@@ -125,7 +127,7 @@ static PALETTE_INIT( panicr )
int g = pal4bit(color_prom[i + 0x100]);
int b = pal4bit(color_prom[i + 0x200]);
- colortable_palette_set_color(machine.colortable, i, MAKE_RGB(r, g, b));
+ colortable_palette_set_color(machine().colortable, i, MAKE_RGB(r, g, b));
}
/* color_prom now points to the beginning of the lookup table */
@@ -141,7 +143,7 @@ static PALETTE_INIT( panicr )
else
ctabentry = (color_prom[i] & 0x3f) | 0x80;
- colortable_entry_set_value(machine.colortable, i, ctabentry);
+ colortable_entry_set_value(machine().colortable, i, ctabentry);
}
// tile lookup table
@@ -149,7 +151,7 @@ static PALETTE_INIT( panicr )
{
UINT8 ctabentry = (color_prom[i] & 0x3f) | 0x00;
- colortable_entry_set_value(machine.colortable, i, ctabentry);
+ colortable_entry_set_value(machine().colortable, i, ctabentry);
}
// sprite lookup table
@@ -162,7 +164,7 @@ static PALETTE_INIT( panicr )
else
ctabentry = (color_prom[i] & 0x3f) | 0x40;
- colortable_entry_set_value(machine.colortable, i, ctabentry);
+ colortable_entry_set_value(machine().colortable, i, ctabentry);
}
}
@@ -211,15 +213,14 @@ TILE_GET_INFO_MEMBER(panicr_state::get_txttile_info)
}
-static VIDEO_START( panicr )
+void panicr_state::video_start()
{
- panicr_state *state = machine.driver_data<panicr_state>();
- state->m_bgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_bgtile_info),state),TILEMAP_SCAN_ROWS,16,16,1024,16 );
- state->m_infotilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_infotile_info),state),TILEMAP_SCAN_ROWS,16,16,1024,16 ); // 3 more bitplanes, contains collision and priority data
+ m_bgtilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_bgtile_info),this),TILEMAP_SCAN_ROWS,16,16,1024,16 );
+ m_infotilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_infotile_info),this),TILEMAP_SCAN_ROWS,16,16,1024,16 ); // 3 more bitplanes, contains collision and priority data
- state->m_txttilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_txttile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32 );
- colortable_configure_tilemap_groups(machine.colortable, state->m_txttilemap, machine.gfx[0], 0);
+ m_txttilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_txttile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ colortable_configure_tilemap_groups(machine().colortable, m_txttilemap, machine().gfx[0], 0);
}
static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const rectangle &cliprect )
@@ -518,9 +519,7 @@ static MACHINE_CONFIG_START( panicr, panicr_state )
MCFG_GFXDECODE(panicr)
MCFG_PALETTE_LENGTH(256*3)
- MCFG_PALETTE_INIT(panicr)
- MCFG_VIDEO_START(panicr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/paradise.c b/src/mame/drivers/paradise.c
index 92d8723dec4..0263c394fa0 100644
--- a/src/mame/drivers/paradise.c
+++ b/src/mame/drivers/paradise.c
@@ -670,27 +670,25 @@ GFXDECODE_END
***************************************************************************/
-static MACHINE_START( paradise )
+void paradise_state::machine_start()
{
- paradise_state *state = machine.driver_data<paradise_state>();
- int bank_n = state->memregion("maincpu")->bytes() / 0x4000 - 1;
- UINT8 *ROM = state->memregion("maincpu")->base();
+ int bank_n = memregion("maincpu")->bytes() / 0x4000 - 1;
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 3, &ROM[0x00000], 0x4000);
- state->membank("bank1")->configure_entries(3, bank_n - 3, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 3, &ROM[0x00000], 0x4000);
+ membank("bank1")->configure_entries(3, bank_n - 3, &ROM[0x10000], 0x4000);
- state->save_item(NAME(state->m_palbank));
- state->save_item(NAME(state->m_priority));
+ save_item(NAME(m_palbank));
+ save_item(NAME(m_priority));
}
-static MACHINE_RESET( paradise )
+void paradise_state::machine_reset()
{
- paradise_state *state = machine.driver_data<paradise_state>();
- state->m_palbank = 0;
- state->m_priority = 0;
+ m_palbank = 0;
+ m_priority = 0;
- state->irq_count = 0;
+ irq_count = 0;
}
@@ -712,8 +710,6 @@ static MACHINE_CONFIG_START( paradise, paradise_state )
MCFG_CPU_IO_MAP(paradise_io_map)
MCFG_CPU_PERIODIC_INT(paradise_irq,4*54) /* No nmi routine, timing is confirmed (i.e. three timing irqs for each vblank irq */
- MCFG_MACHINE_START(paradise)
- MCFG_MACHINE_RESET(paradise)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -726,7 +722,6 @@ static MACHINE_CONFIG_START( paradise, paradise_state )
MCFG_GFXDECODE(paradise)
MCFG_PALETTE_LENGTH(0x800 + 16)
- MCFG_VIDEO_START(paradise)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/parodius.c b/src/mame/drivers/parodius.c
index 22b75027d38..d1e72e841cf 100644
--- a/src/mame/drivers/parodius.c
+++ b/src/mame/drivers/parodius.c
@@ -246,45 +246,43 @@ static const k05324x_interface parodius_k05324x_intf =
parodius_sprite_callback
};
-static MACHINE_START( parodius )
+void parodius_state::machine_start()
{
- parodius_state *state = machine.driver_data<parodius_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 14, &ROM[0x10000], 0x4000);
- state->membank("bank1")->configure_entries(14, 2, &ROM[0x08000], 0x4000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 14, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(14, 2, &ROM[0x08000], 0x4000);
+ membank("bank1")->set_entry(0);
- state->m_generic_paletteram_8.allocate(0x1000);
+ m_generic_paletteram_8.allocate(0x1000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k053260 = machine.device("k053260");
- state->m_k053245 = machine.device("k053245");
- state->m_k053251 = machine.device("k053251");
- state->m_k052109 = machine.device("k052109");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k053260 = machine().device("k053260");
+ m_k053245 = machine().device("k053245");
+ m_k053251 = machine().device("k053251");
+ m_k052109 = machine().device("k052109");
- state->save_item(NAME(state->m_videobank));
- state->save_item(NAME(state->m_sprite_colorbase));
- state->save_item(NAME(state->m_layer_colorbase));
- state->save_item(NAME(state->m_layerpri));
+ save_item(NAME(m_videobank));
+ save_item(NAME(m_sprite_colorbase));
+ save_item(NAME(m_layer_colorbase));
+ save_item(NAME(m_layerpri));
}
-static MACHINE_RESET( parodius )
+void parodius_state::machine_reset()
{
- parodius_state *state = machine.driver_data<parodius_state>();
int i;
- konami_configure_set_lines(machine.device("maincpu"), parodius_banking);
+ konami_configure_set_lines(machine().device("maincpu"), parodius_banking);
for (i = 0; i < 3; i++)
{
- state->m_layerpri[i] = 0;
- state->m_layer_colorbase[i] = 0;
+ m_layerpri[i] = 0;
+ m_layer_colorbase[i] = 0;
}
- state->m_sprite_colorbase = 0;
- state->m_videobank = 0;
+ m_sprite_colorbase = 0;
+ m_videobank = 0;
}
static MACHINE_CONFIG_START( parodius, parodius_state )
@@ -297,8 +295,6 @@ static MACHINE_CONFIG_START( parodius, parodius_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545)
MCFG_CPU_PROGRAM_MAP(parodius_sound_map)
/* NMIs are triggered by the 053260 */
- MCFG_MACHINE_START(parodius)
- MCFG_MACHINE_RESET(parodius)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
diff --git a/src/mame/drivers/pasha2.c b/src/mame/drivers/pasha2.c
index 70419b1bf05..8192ac4b250 100644
--- a/src/mame/drivers/pasha2.c
+++ b/src/mame/drivers/pasha2.c
@@ -106,6 +106,9 @@ public:
DECLARE_WRITE16_MEMBER(oki1_bank_w);
DECLARE_WRITE16_MEMBER(oki2_bank_w);
DECLARE_DRIVER_INIT(pasha2);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -339,12 +342,11 @@ static INPUT_PORTS_START( pasha2 )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START3 )
INPUT_PORTS_END
-static VIDEO_START( pasha2 )
+void pasha2_state::video_start()
{
- pasha2_state *state = machine.driver_data<pasha2_state>();
- state->save_item(NAME(state->m_bitmap0));
- state->save_item(NAME(state->m_bitmap1));
+ save_item(NAME(m_bitmap0));
+ save_item(NAME(m_bitmap1));
}
static SCREEN_UPDATE_IND16( pasha2 )
@@ -396,20 +398,18 @@ static SCREEN_UPDATE_IND16( pasha2 )
return 0;
}
-static MACHINE_START( pasha2 )
+void pasha2_state::machine_start()
{
- pasha2_state *state = machine.driver_data<pasha2_state>();
- state->save_item(NAME(state->m_old_bank));
- state->save_item(NAME(state->m_vbuffer));
+ save_item(NAME(m_old_bank));
+ save_item(NAME(m_vbuffer));
}
-static MACHINE_RESET( pasha2 )
+void pasha2_state::machine_reset()
{
- pasha2_state *state = machine.driver_data<pasha2_state>();
- state->m_old_bank = -1;
- state->m_vbuffer = 0;
+ m_old_bank = -1;
+ m_vbuffer = 0;
}
static MACHINE_CONFIG_START( pasha2, pasha2_state )
@@ -420,8 +420,6 @@ static MACHINE_CONFIG_START( pasha2, pasha2_state )
MCFG_CPU_IO_MAP(pasha2_io)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(pasha2)
- MCFG_MACHINE_RESET(pasha2)
MCFG_EEPROM_93C46_ADD("eeprom")
/* video hardware */
@@ -434,7 +432,6 @@ static MACHINE_CONFIG_START( pasha2, pasha2_state )
MCFG_PALETTE_LENGTH(0x200)
- MCFG_VIDEO_START(pasha2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pass.c b/src/mame/drivers/pass.c
index 181e4adef04..d7c0726bf18 100644
--- a/src/mame/drivers/pass.c
+++ b/src/mame/drivers/pass.c
@@ -254,7 +254,6 @@ static MACHINE_CONFIG_START( pass, pass_state )
MCFG_PALETTE_LENGTH(0x200)
MCFG_GFXDECODE(pass)
- MCFG_VIDEO_START(pass)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pastelg.c b/src/mame/drivers/pastelg.c
index df089b65fcd..8a723982812 100644
--- a/src/mame/drivers/pastelg.c
+++ b/src/mame/drivers/pastelg.c
@@ -425,8 +425,6 @@ static MACHINE_CONFIG_START( pastelg, pastelg_state )
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(pastelg)
- MCFG_VIDEO_START(pastelg)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -483,8 +481,6 @@ static MACHINE_CONFIG_START( threeds, pastelg_state )
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(pastelg)
- MCFG_VIDEO_START(pastelg)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pbaction.c b/src/mame/drivers/pbaction.c
index 11a142417ba..63eedeec830 100644
--- a/src/mame/drivers/pbaction.c
+++ b/src/mame/drivers/pbaction.c
@@ -255,21 +255,19 @@ static INTERRUPT_GEN( pbaction_interrupt )
}
-static MACHINE_START( pbaction )
+void pbaction_state::machine_start()
{
- pbaction_state *state = machine.driver_data<pbaction_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_scroll));
+ save_item(NAME(m_scroll));
}
-static MACHINE_RESET( pbaction )
+void pbaction_state::machine_reset()
{
- pbaction_state *state = machine.driver_data<pbaction_state>();
- state->m_scroll = 0;
+ m_scroll = 0;
}
static INTERRUPT_GEN( vblank_irq )
@@ -293,8 +291,6 @@ static MACHINE_CONFIG_START( pbaction, pbaction_state )
MCFG_CPU_PERIODIC_INT(pbaction_interrupt,2*60) /* ??? */
/* IRQs are caused by the main CPU */
- MCFG_MACHINE_START(pbaction)
- MCFG_MACHINE_RESET(pbaction)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -307,7 +303,6 @@ static MACHINE_CONFIG_START( pbaction, pbaction_state )
MCFG_GFXDECODE(pbaction)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(pbaction)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pcat_dyn.c b/src/mame/drivers/pcat_dyn.c
index f28dca5812d..d49afd76d74 100644
--- a/src/mame/drivers/pcat_dyn.c
+++ b/src/mame/drivers/pcat_dyn.c
@@ -44,6 +44,7 @@ public:
: driver_device(mconfig, type, tag) { }
DECLARE_DRIVER_INIT(pcat_dyn);
+ virtual void machine_start();
};
@@ -130,12 +131,12 @@ static const struct kbdc8042_interface at8042 =
KBDC8042_AT386, set_gate_a20, keyboard_interrupt, NULL, pcat_dyn_get_out2
};
-static MACHINE_START( pcat_dyn )
+void pcat_dyn_state::machine_start()
{
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(pcat_irq_callback);
- init_pc_common(machine, PCCOMMON_KEYBOARD_AT, pcat_dyn_set_keyb_int);
- kbdc8042_init(machine, &at8042);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(pcat_irq_callback);
+ init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, pcat_dyn_set_keyb_int);
+ kbdc8042_init(machine(), &at8042);
}
static MACHINE_CONFIG_START( pcat_dyn, pcat_dyn_state )
@@ -149,7 +150,6 @@ static MACHINE_CONFIG_START( pcat_dyn, pcat_dyn_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_MACHINE_START(pcat_dyn)
MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
MCFG_FRAGMENT_ADD( pcat_common )
diff --git a/src/mame/drivers/pcat_nit.c b/src/mame/drivers/pcat_nit.c
index 715fcc62640..b7d86696d7e 100644
--- a/src/mame/drivers/pcat_nit.c
+++ b/src/mame/drivers/pcat_nit.c
@@ -111,6 +111,7 @@ public:
DECLARE_READ8_MEMBER(pcat_nit_io_r);
DECLARE_WRITE_LINE_MEMBER(at_com_interrupt_1);
DECLARE_DRIVER_INIT(pcat_nit);
+ virtual void machine_start();
};
WRITE_LINE_MEMBER(pcat_nit_state::microtouch_out)
@@ -228,16 +229,16 @@ static void streetg2_set_keyb_int(running_machine &machine, int state)
static READ8_HANDLER( vga_setting ) { return 0xff; } // hard-code to color
-static MACHINE_START( streetg2 )
+void pcat_nit_state::machine_start()
{
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(pcat_irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(pcat_irq_callback);
- init_pc_common(machine, PCCOMMON_KEYBOARD_AT, streetg2_set_keyb_int);
+ init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, streetg2_set_keyb_int);
- machine.root_device().membank("rombank")->configure_entries(0, 0x80, machine.root_device().memregion("game_prg")->base(), 0x8000 );
- machine.root_device().membank("rombank")->set_entry(0);
+ machine().root_device().membank("rombank")->configure_entries(0, 0x80, machine().root_device().memregion("game_prg")->base(), 0x8000 );
+ machine().root_device().membank("rombank")->set_entry(0);
- //microtouch_init(machine, pcat_nit_microtouch_tx_callback, NULL);
+ //microtouch_init(machine(), pcat_nit_microtouch_tx_callback, NULL);
}
static MACHINE_CONFIG_START( pcat_nit, pcat_nit_state )
@@ -253,7 +254,6 @@ static MACHINE_CONFIG_START( pcat_nit, pcat_nit_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_MACHINE_START(streetg2)
MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
// MCFG_FRAGMENT_ADD( at_kbdc8042 )
diff --git a/src/mame/drivers/pcktgal.c b/src/mame/drivers/pcktgal.c
index 97ac64eaeb7..d71d7ba8dde 100644
--- a/src/mame/drivers/pcktgal.c
+++ b/src/mame/drivers/pcktgal.c
@@ -240,7 +240,6 @@ static MACHINE_CONFIG_START( pcktgal, pcktgal_state )
MCFG_GFXDECODE(pcktgal)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(pcktgal)
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
deco_bac06_device::set_gfx_region_wide(*device, 0,0,0);
diff --git a/src/mame/drivers/pcxt.c b/src/mame/drivers/pcxt.c
index 438a62f6578..2ebc6d97266 100644
--- a/src/mame/drivers/pcxt.c
+++ b/src/mame/drivers/pcxt.c
@@ -123,6 +123,7 @@ public:
DECLARE_READ8_MEMBER(get_slave_ack);
DECLARE_DRIVER_INIT(tetriskr);
DECLARE_DRIVER_INIT(filetto);
+ virtual void machine_reset();
};
static SCREEN_UPDATE_RGB32( tetriskr )
@@ -713,17 +714,16 @@ static GFXDECODE_START( pcxt )
GFXDECODE_END
-static MACHINE_RESET( filetto )
+void pcxt_state::machine_reset()
{
- pcxt_state *state = machine.driver_data<pcxt_state>();
- device_t *speaker = machine.device("speaker");
- state->m_bank = -1;
- state->m_lastvalue = -1;
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ device_t *speaker = machine().device("speaker");
+ m_bank = -1;
+ m_lastvalue = -1;
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
- state->m_pc_spkrdata = 0;
- state->m_pc_input = 0;
- state->m_wss2_data = 0;
+ m_pc_spkrdata = 0;
+ m_pc_input = 0;
+ m_wss2_data = 0;
speaker_level_w( speaker, 0 );
}
@@ -732,7 +732,6 @@ static MACHINE_CONFIG_START( filetto, pcxt_state )
MCFG_CPU_PROGRAM_MAP(filetto_map)
MCFG_CPU_IO_MAP(filetto_io)
- MCFG_MACHINE_RESET( filetto )
MCFG_PIT8253_ADD( "pit8253", pc_pit8253_config )
diff --git a/src/mame/drivers/pengadvb.c b/src/mame/drivers/pengadvb.c
index a4aa288ee42..93e74617ca0 100644
--- a/src/mame/drivers/pengadvb.c
+++ b/src/mame/drivers/pengadvb.c
@@ -44,6 +44,8 @@ public:
DECLARE_READ8_MEMBER(pengadvb_ppi_port_b_r);
DECLARE_WRITE_LINE_MEMBER(vdp_interrupt);
DECLARE_DRIVER_INIT(pengadvb);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -247,23 +249,21 @@ static void pengadvb_postload(running_machine &machine)
mem_map_banks(machine);
}
-static MACHINE_START( pengadvb )
+void pengadvb_state::machine_start()
{
- pengadvb_state *state = machine.driver_data<pengadvb_state>();
- state_save_register_global_pointer(machine, state->m_main_mem, 0x4000);
- state_save_register_global(machine, state->m_mem_map);
- state_save_register_global_array(machine, state->m_mem_banks);
- machine.save().register_postload(save_prepost_delegate(FUNC(pengadvb_postload), &machine));
+ state_save_register_global_pointer(machine(), m_main_mem, 0x4000);
+ state_save_register_global(machine(), m_mem_map);
+ state_save_register_global_array(machine(), m_mem_banks);
+ machine().save().register_postload(save_prepost_delegate(FUNC(pengadvb_postload), &machine()));
}
-static MACHINE_RESET( pengadvb )
+void pengadvb_state::machine_reset()
{
- pengadvb_state *state = machine.driver_data<pengadvb_state>();
- state->m_mem_map = 0;
- state->m_mem_banks[0] = state->m_mem_banks[1] = state->m_mem_banks[2] = state->m_mem_banks[3] = 0;
- mem_map_banks(machine);
+ m_mem_map = 0;
+ m_mem_banks[0] = m_mem_banks[1] = m_mem_banks[2] = m_mem_banks[3] = 0;
+ mem_map_banks(machine());
}
@@ -273,8 +273,6 @@ static MACHINE_CONFIG_START( pengadvb, pengadvb_state )
MCFG_CPU_PROGRAM_MAP(program_mem)
MCFG_CPU_IO_MAP(io_mem)
- MCFG_MACHINE_START( pengadvb )
- MCFG_MACHINE_RESET( pengadvb )
MCFG_I8255_ADD( "ppi8255", pengadvb_ppi8255_interface)
diff --git a/src/mame/drivers/pengo.c b/src/mame/drivers/pengo.c
index c184a53dc7e..72e757985df 100644
--- a/src/mame/drivers/pengo.c
+++ b/src/mame/drivers/pengo.c
@@ -393,8 +393,8 @@ static MACHINE_CONFIG_START( pengo, pengo_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(pacman)
- MCFG_PALETTE_INIT(pacman)
- MCFG_VIDEO_START(pengo)
+ MCFG_PALETTE_INIT_OVERRIDE(pengo_state,pacman)
+ MCFG_VIDEO_START_OVERRIDE(pengo_state,pengo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -413,7 +413,7 @@ static MACHINE_CONFIG_DERIVED( jrpacmbl, pengo )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(jrpacmbl_map)
- MCFG_VIDEO_START(jrpacman)
+ MCFG_VIDEO_START_OVERRIDE(pengo_state,jrpacman)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c
index 9a16541c81f..bb749741987 100644
--- a/src/mame/drivers/peplus.c
+++ b/src/mame/drivers/peplus.c
@@ -263,6 +263,9 @@ public:
DECLARE_DRIVER_INIT(peplussb);
DECLARE_DRIVER_INIT(peplussbw);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
static const UINT8 id_022[8] = { 0x00, 0x01, 0x04, 0x09, 0x13, 0x16, 0x18, 0x00 };
@@ -956,14 +959,13 @@ TILE_GET_INFO_MEMBER(peplus_state::get_bg_tile_info)
SET_TILE_INFO_MEMBER(0, code, color, 0);
}
-static VIDEO_START( peplus )
+void peplus_state::video_start()
{
- peplus_state *state = machine.driver_data<peplus_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(peplus_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
- state->m_palette_ram = auto_alloc_array(machine, UINT8, 0x3000);
- memset(state->m_palette_ram, 0, 0x3000);
- state->m_palette_ram2 = auto_alloc_array(machine, UINT8, 0x3000);
- memset(state->m_palette_ram2, 0, 0x3000);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(peplus_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
+ m_palette_ram = auto_alloc_array(machine(), UINT8, 0x3000);
+ memset(m_palette_ram, 0, 0x3000);
+ m_palette_ram2 = auto_alloc_array(machine(), UINT8, 0x3000);
+ memset(m_palette_ram2, 0, 0x3000);
}
static SCREEN_UPDATE_IND16( peplus )
@@ -974,9 +976,9 @@ static SCREEN_UPDATE_IND16( peplus )
return 0;
}
-static PALETTE_INIT( peplus )
+void peplus_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
/* prom bits
7654 3210
---- -xxx red component.
@@ -985,7 +987,7 @@ static PALETTE_INIT( peplus )
*/
int i;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0, bit1, bit2, r, g, b;
@@ -1007,7 +1009,7 @@ static PALETTE_INIT( peplus )
bit2 = 0;
b = 0x21 * bit2 + 0x47 * bit1 + 0x97 * bit0;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -1307,29 +1309,28 @@ INPUT_PORTS_END
* Machine Reset *
*************************/
-static MACHINE_RESET( peplus )
+void peplus_state::machine_reset()
{
/* AutoHold Feature Currently Disabled */
#if 0
- peplus_state *state = machine.driver_data<peplus_state>();
// pepp0158
- state->m_program_ram[0xa19f] = 0x22; // RET - Disable Memory Test
- state->m_program_ram[0xddea] = 0x22; // RET - Disable Program Checksum
- state->m_autohold_addr = 0x5ffe; // AutoHold Address
+ m_program_ram[0xa19f] = 0x22; // RET - Disable Memory Test
+ m_program_ram[0xddea] = 0x22; // RET - Disable Program Checksum
+ m_autohold_addr = 0x5ffe; // AutoHold Address
// pepp0188
- state->m_program_ram[0x9a8d] = 0x22; // RET - Disable Memory Test
- state->m_program_ram[0xf429] = 0x22; // RET - Disable Program Checksum
- state->m_autohold_addr = 0x742f; // AutoHold Address
+ m_program_ram[0x9a8d] = 0x22; // RET - Disable Memory Test
+ m_program_ram[0xf429] = 0x22; // RET - Disable Program Checksum
+ m_autohold_addr = 0x742f; // AutoHold Address
// pepp0516
- state->m_program_ram[0x9a24] = 0x22; // RET - Disable Memory Test
- state->m_program_ram[0xd61d] = 0x22; // RET - Disable Program Checksum
- state->m_autohold_addr = 0x5e7e; // AutoHold Address
+ m_program_ram[0x9a24] = 0x22; // RET - Disable Memory Test
+ m_program_ram[0xd61d] = 0x22; // RET - Disable Program Checksum
+ m_autohold_addr = 0x5e7e; // AutoHold Address
- if (state->m_autohold_addr)
- state->m_program_ram[state->m_autohold_addr] = state->ioport("AUTOHOLD")->read_safe(0x00) & 0x01;
+ if (m_autohold_addr)
+ m_program_ram[m_autohold_addr] = ioport("AUTOHOLD")->read_safe(0x00) & 0x01;
#endif
}
@@ -1344,7 +1345,6 @@ static MACHINE_CONFIG_START( peplus, peplus_state )
MCFG_CPU_PROGRAM_MAP(peplus_map)
MCFG_CPU_IO_MAP(peplus_iomap)
- MCFG_MACHINE_RESET(peplus)
MCFG_NVRAM_ADD_0FILL("cmos")
// video hardware
@@ -1360,8 +1360,6 @@ static MACHINE_CONFIG_START( peplus, peplus_state )
MCFG_MC6845_ADD("crtc", R6545_1, MC6845_CLOCK, mc6845_intf)
MCFG_I2CMEM_ADD("i2cmem", i2cmem_interface)
- MCFG_PALETTE_INIT(peplus)
- MCFG_VIDEO_START(peplus)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/peyper.c b/src/mame/drivers/peyper.c
index ca1bcc17653..88f3e8289f4 100644
--- a/src/mame/drivers/peyper.c
+++ b/src/mame/drivers/peyper.c
@@ -20,6 +20,7 @@ public:
DECLARE_WRITE8_MEMBER(sol_w);
DECLARE_CUSTOM_INPUT_MEMBER(wolfman_replay_hs_r);
DECLARE_DRIVER_INIT(peyper);
+ virtual void machine_reset();
};
@@ -526,10 +527,9 @@ static INPUT_PORTS_START( odisea )
INPUT_PORTS_END
-static MACHINE_RESET( peyper )
+void peyper_state::machine_reset()
{
- peyper_state *state = machine.driver_data<peyper_state>();
- state->irq_state = 0;
+ irq_state = 0;
}
static MACHINE_CONFIG_START( peyper, peyper_state )
@@ -539,7 +539,6 @@ static MACHINE_CONFIG_START( peyper, peyper_state )
MCFG_CPU_IO_MAP(peyper_io)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 1250 * 2)
- MCFG_MACHINE_RESET( peyper )
/* video hardware */
MCFG_DEFAULT_LAYOUT(layout_peyper)
diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c
index 5e5a96e24c3..46ea400beca 100644
--- a/src/mame/drivers/pgm.c
+++ b/src/mame/drivers/pgm.c
@@ -500,20 +500,19 @@ TIMER_DEVICE_CALLBACK( pgm_interrupt )
if (!state->m_irq4_disabled) state->m_maincpu->set_input_line(4, HOLD_LINE);
}
-MACHINE_START( pgm )
+MACHINE_START_MEMBER(pgm_state,pgm)
{
- pgm_state *state = machine.driver_data<pgm_state>();
-// machine.base_datetime(state->m_systime);
+// machine().base_datetime(m_systime);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_soundcpu = machine.device<cpu_device>("soundcpu");
- state->m_ics = machine.device("ics");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_soundcpu = machine().device<cpu_device>("soundcpu");
+ m_ics = machine().device("ics");
}
-MACHINE_RESET( pgm )
+MACHINE_RESET_MEMBER(pgm_state,pgm)
{
- machine.device("soundcpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+ machine().device("soundcpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
}
@@ -528,8 +527,8 @@ MACHINE_CONFIG_FRAGMENT( pgmbase )
MCFG_CPU_PROGRAM_MAP(pgm_z80_mem)
MCFG_CPU_IO_MAP(pgm_z80_io)
- MCFG_MACHINE_START( pgm )
- MCFG_MACHINE_RESET( pgm )
+ MCFG_MACHINE_START_OVERRIDE(pgm_state, pgm )
+ MCFG_MACHINE_RESET_OVERRIDE(pgm_state, pgm )
MCFG_NVRAM_ADD_0FILL("sram")
MCFG_V3021_ADD("rtc")
@@ -546,7 +545,7 @@ MACHINE_CONFIG_FRAGMENT( pgmbase )
MCFG_GFXDECODE(pgm)
MCFG_PALETTE_LENGTH(0x1200/2)
- MCFG_VIDEO_START(pgm)
+ MCFG_VIDEO_START_OVERRIDE(pgm_state,pgm)
/*sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pgm2.c b/src/mame/drivers/pgm2.c
index a78f1df49b0..2f0df6eab3f 100644
--- a/src/mame/drivers/pgm2.c
+++ b/src/mame/drivers/pgm2.c
@@ -33,6 +33,9 @@ public:
DECLARE_DRIVER_INIT(kov2nl);
DECLARE_DRIVER_INIT(orleg2);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32, pgm2_state )
@@ -52,17 +55,17 @@ static SCREEN_VBLANK(pgm2)
}
-static VIDEO_START(pgm2)
+void pgm2_state::video_start()
{
}
-static MACHINE_START( pgm2 )
+void pgm2_state::machine_start()
{
}
-static MACHINE_RESET( pgm2 )
+void pgm2_state::machine_reset()
{
}
@@ -127,8 +130,6 @@ static MACHINE_CONFIG_START( pgm2, pgm2_state )
MCFG_CPU_PROGRAM_MAP(pgm2_map)
// MCFG_DEVICE_DISABLE()
- MCFG_MACHINE_START( pgm2 )
- MCFG_MACHINE_RESET( pgm2 )
MCFG_GFXDECODE(pgm2)
@@ -143,7 +144,6 @@ static MACHINE_CONFIG_START( pgm2, pgm2_state )
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(pgm2)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_YMZ770_ADD("ymz770", 16384000) // Actually a YMZ774 on-board
diff --git a/src/mame/drivers/phoenix.c b/src/mame/drivers/phoenix.c
index 15c8912d546..7af1638a3b7 100644
--- a/src/mame/drivers/phoenix.c
+++ b/src/mame/drivers/phoenix.c
@@ -444,9 +444,9 @@ static const ay8910_interface survival_ay8910_interface =
-static MACHINE_RESET( phoenix )
+MACHINE_RESET_MEMBER(phoenix_state,phoenix)
{
- machine.root_device().membank("bank1")->set_base(machine.root_device().memregion("maincpu")->base() + 0x4000);
+ machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base() + 0x4000);
}
@@ -456,7 +456,7 @@ static MACHINE_CONFIG_START( phoenix, phoenix_state )
MCFG_CPU_ADD("maincpu", I8085A, CPU_CLOCK) /* 2.75 MHz */
MCFG_CPU_PROGRAM_MAP(phoenix_memory_map)
- MCFG_MACHINE_RESET(phoenix)
+ MCFG_MACHINE_RESET_OVERRIDE(phoenix_state,phoenix)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -466,8 +466,8 @@ static MACHINE_CONFIG_START( phoenix, phoenix_state )
MCFG_GFXDECODE(phoenix)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(phoenix)
- MCFG_VIDEO_START(phoenix)
+ MCFG_PALETTE_INIT_OVERRIDE(phoenix_state,phoenix)
+ MCFG_VIDEO_START_OVERRIDE(phoenix_state,phoenix)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -494,7 +494,7 @@ static MACHINE_CONFIG_DERIVED( pleiads, phoenix )
/* video hardware */
MCFG_GFXDECODE(pleiads)
- MCFG_PALETTE_INIT(pleiads)
+ MCFG_PALETTE_INIT_OVERRIDE(phoenix_state,pleiads)
/* sound hardware */
MCFG_SOUND_REPLACE("tms", TMS36XX, 247)
@@ -525,7 +525,7 @@ static MACHINE_CONFIG_START( survival, phoenix_state )
MCFG_CPU_CONFIG(survival_i8085_config)
MCFG_CPU_PROGRAM_MAP(survival_memory_map)
- MCFG_MACHINE_RESET(phoenix)
+ MCFG_MACHINE_RESET_OVERRIDE(phoenix_state,phoenix)
/* video hardware */
@@ -539,8 +539,8 @@ static MACHINE_CONFIG_START( survival, phoenix_state )
MCFG_GFXDECODE(phoenix)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(survival)
- MCFG_VIDEO_START(phoenix)
+ MCFG_PALETTE_INIT_OVERRIDE(phoenix_state,survival)
+ MCFG_VIDEO_START_OVERRIDE(phoenix_state,phoenix)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/photon.c b/src/mame/drivers/photon.c
index 01e8dbaa334..a6267568bc2 100644
--- a/src/mame/drivers/photon.c
+++ b/src/mame/drivers/photon.c
@@ -34,6 +34,8 @@ public:
DECLARE_READ8_MEMBER(pk8000_84_porta_r);
DECLARE_WRITE8_MEMBER(pk8000_84_porta_w);
DECLARE_WRITE8_MEMBER(pk8000_84_portc_w);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -193,13 +195,13 @@ static IRQ_CALLBACK(pk8000_irq_callback)
}
-static MACHINE_RESET(pk8000)
+void photon_state::machine_reset()
{
- pk8000_set_bank(machine,0);
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(pk8000_irq_callback);
+ pk8000_set_bank(machine(),0);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(pk8000_irq_callback);
}
-static VIDEO_START( photon )
+void photon_state::video_start()
{
}
@@ -216,7 +218,6 @@ static MACHINE_CONFIG_START( photon, photon_state )
MCFG_CPU_IO_MAP(pk8000_io)
MCFG_CPU_VBLANK_INT("screen", pk8000_interrupt)
- MCFG_MACHINE_RESET(pk8000)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -228,7 +229,6 @@ static MACHINE_CONFIG_START( photon, photon_state )
MCFG_PALETTE_LENGTH(16)
MCFG_PALETTE_INIT(pk8000)
- MCFG_VIDEO_START(photon)
MCFG_I8255_ADD( "ppi8255_1", pk8000_ppi8255_interface_1 )
MCFG_I8255_ADD( "ppi8255_2", pk8000_ppi8255_interface_2 )
diff --git a/src/mame/drivers/photon2.c b/src/mame/drivers/photon2.c
index ee7088541f6..d7e02bd5839 100644
--- a/src/mame/drivers/photon2.c
+++ b/src/mame/drivers/photon2.c
@@ -32,6 +32,9 @@ public:
DECLARE_READ8_MEMBER(photon2_fe_r);
DECLARE_WRITE8_MEMBER(photon2_fe_w);
DECLARE_WRITE8_MEMBER(photon2_misc_w);
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -81,16 +84,15 @@ static const rgb_t spectrum_palette[16] = {
};
/* Initialise the palette */
-static PALETTE_INIT( spectrum )
+void photon2_state::palette_init()
{
- palette_set_colors(machine, 0, spectrum_palette, ARRAY_LENGTH(spectrum_palette));
+ palette_set_colors(machine(), 0, spectrum_palette, ARRAY_LENGTH(spectrum_palette));
}
-static VIDEO_START( spectrum )
+void photon2_state::video_start()
{
- photon2_state *state = machine.driver_data<photon2_state>();
- state->m_spectrum_frame_number = 0;
- state->m_spectrum_flash_invert = 0;
+ m_spectrum_frame_number = 0;
+ m_spectrum_flash_invert = 0;
}
/* return the color to be used inverting FLASHing colors if necessary */
@@ -310,9 +312,9 @@ static TIMER_DEVICE_CALLBACK( spec_interrupt_hack )
}
}
-static MACHINE_RESET( photon2 )
+void photon2_state::machine_reset()
{
- machine.root_device().membank("bank1")->set_base(machine.root_device().memregion("maincpu")->base());
+ machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base());
}
static MACHINE_CONFIG_START( photon2, photon2_state )
@@ -322,7 +324,6 @@ static MACHINE_CONFIG_START( photon2, photon2_state )
MCFG_CPU_IO_MAP(spectrum_io)
MCFG_TIMER_ADD_SCANLINE("scantimer", spec_interrupt_hack, "screen", 0, 1)
- MCFG_MACHINE_RESET( photon2 )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -334,9 +335,7 @@ static MACHINE_CONFIG_START( photon2, photon2_state )
MCFG_SCREEN_VBLANK_STATIC( spectrum )
MCFG_PALETTE_LENGTH(16)
- MCFG_PALETTE_INIT( spectrum )
- MCFG_VIDEO_START( spectrum )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/photoply.c b/src/mame/drivers/photoply.c
index c03f4769f0c..adf61d86cbb 100644
--- a/src/mame/drivers/photoply.c
+++ b/src/mame/drivers/photoply.c
@@ -52,6 +52,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(at_pit8254_out0_changed);
DECLARE_WRITE_LINE_MEMBER(at_pit8254_out2_changed);
DECLARE_DRIVER_INIT(photoply);
+ virtual void machine_start();
};
@@ -306,17 +307,16 @@ static void photoply_set_keyb_int(running_machine &machine, int state)
}
-static MACHINE_START( photoply )
+void photoply_state::machine_start()
{
- photoply_state *state = machine.driver_data<photoply_state>();
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
- state->m_pit8253 = machine.device( "pit8254" );
- state->m_pic8259_1 = machine.device( "pic8259_1" );
- state->m_pic8259_2 = machine.device( "pic8259_2" );
- state->m_dma8237_1 = machine.device( "dma8237_1" );
- state->m_dma8237_2 = machine.device( "dma8237_2" );
-
- init_pc_common(machine, PCCOMMON_KEYBOARD_AT, photoply_set_keyb_int);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ m_pit8253 = machine().device( "pit8254" );
+ m_pic8259_1 = machine().device( "pic8259_1" );
+ m_pic8259_2 = machine().device( "pic8259_2" );
+ m_dma8237_1 = machine().device( "dma8237_1" );
+ m_dma8237_2 = machine().device( "dma8237_2" );
+
+ init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, photoply_set_keyb_int);
}
static const gfx_layout CGA_charlayout =
@@ -345,7 +345,6 @@ static MACHINE_CONFIG_START( photoply, photoply_state )
MCFG_GFXDECODE( photoply )
- MCFG_MACHINE_START(photoply)
MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
// MCFG_FRAGMENT_ADD( at_kbdc8042 )
diff --git a/src/mame/drivers/pingpong.c b/src/mame/drivers/pingpong.c
index c14ea6624da..2e7bbb2afe5 100644
--- a/src/mame/drivers/pingpong.c
+++ b/src/mame/drivers/pingpong.c
@@ -477,8 +477,6 @@ static MACHINE_CONFIG_START( pingpong, pingpong_state )
MCFG_GFXDECODE(pingpong)
MCFG_PALETTE_LENGTH(64*4+64*4)
- MCFG_PALETTE_INIT(pingpong)
- MCFG_VIDEO_START(pingpong)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pinkiri8.c b/src/mame/drivers/pinkiri8.c
index f1c64e1a972..00c46a37098 100644
--- a/src/mame/drivers/pinkiri8.c
+++ b/src/mame/drivers/pinkiri8.c
@@ -75,6 +75,7 @@ public:
DECLARE_READ8_MEMBER(ronjan_prot_status_r);
DECLARE_READ8_MEMBER(ronjan_patched_prot_r);
DECLARE_DRIVER_INIT(ronjan);
+ virtual void video_start();
};
@@ -162,7 +163,7 @@ const address_space_config *janshi_vdp_device::memory_space_config(address_space
-static VIDEO_START( pinkiri8 )
+void pinkiri8_state::video_start()
{
}
@@ -1143,7 +1144,6 @@ static MACHINE_CONFIG_START( pinkiri8, pinkiri8_state )
MCFG_GFXDECODE(pinkiri8)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(pinkiri8)
MCFG_DEVICE_ADD("janshivdp", JANSHIVDP, 0)
diff --git a/src/mame/drivers/pipedrm.c b/src/mame/drivers/pipedrm.c
index f2d4426b90b..4d44b76d41d 100644
--- a/src/mame/drivers/pipedrm.c
+++ b/src/mame/drivers/pipedrm.c
@@ -588,50 +588,48 @@ static const ym2610_interface ym2610_config =
*
*************************************/
-static MACHINE_START( pipedrm )
+MACHINE_START_MEMBER(fromance_state,pipedrm)
{
- fromance_state *state = machine.driver_data<fromance_state>();
- state->m_subcpu = machine.device<cpu_device>("sub");
+ m_subcpu = machine().device<cpu_device>("sub");
/* initialize main Z80 bank */
- state->membank("bank1")->configure_entries(0, 8, state->memregion("maincpu")->base() + 0x10000, 0x2000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x2000);
+ membank("bank1")->set_entry(0);
/* initialize sound bank */
- state->membank("bank2")->configure_entries(0, 2, state->memregion("sub")->base() + 0x10000, 0x8000);
- state->membank("bank2")->set_entry(0);
+ membank("bank2")->configure_entries(0, 2, memregion("sub")->base() + 0x10000, 0x8000);
+ membank("bank2")->set_entry(0);
/* state save */
- state->save_item(NAME(state->m_pending_command));
- state->save_item(NAME(state->m_sound_command));
+ save_item(NAME(m_pending_command));
+ save_item(NAME(m_sound_command));
/* video-related elements are saved in VIDEO_START */
}
-static MACHINE_RESET( pipedrm )
+MACHINE_RESET_MEMBER(fromance_state,pipedrm)
{
- fromance_state *state = machine.driver_data<fromance_state>();
int i;
- state->m_pending_command = 0;
- state->m_sound_command = 0;
+ m_pending_command = 0;
+ m_sound_command = 0;
- state->m_flipscreen_old = -1;
- state->m_scrollx_ofs = 0x159;
- state->m_scrolly_ofs = 0x10;
+ m_flipscreen_old = -1;
+ m_scrollx_ofs = 0x159;
+ m_scrolly_ofs = 0x10;
- state->m_selected_videoram = state->m_selected_paletteram = 0;
- state->m_scrollx[0] = 0;
- state->m_scrollx[1] = 0;
- state->m_scrolly[0] = 0;
- state->m_scrolly[1] = 0;
- state->m_gfxreg = 0;
- state->m_flipscreen = 0;
- state->m_crtc_register = 0;
+ m_selected_videoram = m_selected_paletteram = 0;
+ m_scrollx[0] = 0;
+ m_scrollx[1] = 0;
+ m_scrolly[0] = 0;
+ m_scrolly[1] = 0;
+ m_gfxreg = 0;
+ m_flipscreen = 0;
+ m_crtc_register = 0;
for (i = 0; i < 0x10; i++)
- state->m_crtc_data[i] = 0;
+ m_crtc_data[i] = 0;
}
static MACHINE_CONFIG_START( pipedrm, fromance_state )
@@ -646,8 +644,8 @@ static MACHINE_CONFIG_START( pipedrm, fromance_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(sound_portmap)
- MCFG_MACHINE_START(pipedrm)
- MCFG_MACHINE_RESET(pipedrm)
+ MCFG_MACHINE_START_OVERRIDE(fromance_state,pipedrm)
+ MCFG_MACHINE_RESET_OVERRIDE(fromance_state,pipedrm)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -660,7 +658,7 @@ static MACHINE_CONFIG_START( pipedrm, fromance_state )
MCFG_GFXDECODE(pipedrm)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(pipedrm)
+ MCFG_VIDEO_START_OVERRIDE(fromance_state,pipedrm)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -685,8 +683,8 @@ static MACHINE_CONFIG_START( hatris, fromance_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(hatris_sound_portmap)
- MCFG_MACHINE_START(pipedrm)
- MCFG_MACHINE_RESET(pipedrm)
+ MCFG_MACHINE_START_OVERRIDE(fromance_state,pipedrm)
+ MCFG_MACHINE_RESET_OVERRIDE(fromance_state,pipedrm)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -699,7 +697,7 @@ static MACHINE_CONFIG_START( hatris, fromance_state )
MCFG_GFXDECODE(hatris)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(hatris)
+ MCFG_VIDEO_START_OVERRIDE(fromance_state,hatris)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pipeline.c b/src/mame/drivers/pipeline.c
index b92e2b58bc6..7b7a768b1ed 100644
--- a/src/mame/drivers/pipeline.c
+++ b/src/mame/drivers/pipeline.c
@@ -99,6 +99,8 @@ public:
DECLARE_WRITE8_MEMBER(protection_w);
TILE_GET_INFO_MEMBER(get_tile_info);
TILE_GET_INFO_MEMBER(get_tile_info2);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -125,13 +127,12 @@ TILE_GET_INFO_MEMBER(pipeline_state::get_tile_info2)
);
}
-static VIDEO_START ( pipeline )
+void pipeline_state::video_start()
{
- pipeline_state *state = machine.driver_data<pipeline_state>();
- state->m_palram=auto_alloc_array(machine, UINT8, 0x1000);
- state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pipeline_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32 );
- state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pipeline_state::get_tile_info2),state),TILEMAP_SCAN_ROWS,8,8,64,32 );
- state->m_tilemap2->set_transparent_pen(0);
+ m_palram=auto_alloc_array(machine(), UINT8, 0x1000);
+ m_tilemap1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(pipeline_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
+ m_tilemap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(pipeline_state::get_tile_info2),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
+ m_tilemap2->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16( pipeline )
@@ -366,11 +367,11 @@ static const ym2203_interface ym2203_config =
DEVCB_NULL
};
-static PALETTE_INIT(pipeline)
+void pipeline_state::palette_init()
{
int r,g,b,i,c;
- UINT8 *prom1 = &machine.root_device().memregion("proms")->base()[0x000];
- UINT8 *prom2 = &machine.root_device().memregion("proms")->base()[0x100];
+ UINT8 *prom1 = &machine().root_device().memregion("proms")->base()[0x000];
+ UINT8 *prom2 = &machine().root_device().memregion("proms")->base()[0x100];
for(i=0;i<0x100;i++)
{
@@ -381,7 +382,7 @@ static PALETTE_INIT(pipeline)
r*=36;
g*=36;
b*=85;
- palette_set_color(machine, 0x100+i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), 0x100+i, MAKE_RGB(r, g, b));
}
}
@@ -416,10 +417,8 @@ static MACHINE_CONFIG_START( pipeline, pipeline_state )
MCFG_GFXDECODE(pipeline)
- MCFG_PALETTE_INIT(pipeline)
MCFG_PALETTE_LENGTH(0x100+0x100)
- MCFG_VIDEO_START(pipeline)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pirates.c b/src/mame/drivers/pirates.c
index fa84f67e52d..0ce63367f73 100644
--- a/src/mame/drivers/pirates.c
+++ b/src/mame/drivers/pirates.c
@@ -279,7 +279,6 @@ static MACHINE_CONFIG_START( pirates, pirates_state )
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(pirates)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pitnrun.c b/src/mame/drivers/pitnrun.c
index a46850c5725..0a96137298d 100644
--- a/src/mame/drivers/pitnrun.c
+++ b/src/mame/drivers/pitnrun.c
@@ -241,7 +241,6 @@ static MACHINE_CONFIG_START( pitnrun, pitnrun_state )
MCFG_CPU_ADD("mcu", M68705,XTAL_18_432MHz/6) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(pitnrun_mcu_map)
- MCFG_MACHINE_RESET(pitnrun)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
@@ -255,8 +254,6 @@ static MACHINE_CONFIG_START( pitnrun, pitnrun_state )
MCFG_GFXDECODE(pitnrun)
MCFG_PALETTE_LENGTH(32*3)
- MCFG_PALETTE_INIT(pitnrun)
- MCFG_VIDEO_START(pitnrun)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c
index 00e0d026121..5a41c18bca1 100644
--- a/src/mame/drivers/pkscram.c
+++ b/src/mame/drivers/pkscram.c
@@ -41,6 +41,9 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_md_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -230,15 +233,14 @@ static TIMER_DEVICE_CALLBACK( scanline_callback )
}
}
-static VIDEO_START( pkscramble )
+void pkscram_state::video_start()
{
- pkscram_state *state = machine.driver_data<pkscram_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pkscram_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8,32,32);
- state->m_md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pkscram_state::get_md_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8,32,32);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pkscram_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(pkscram_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_md_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(pkscram_state::get_md_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(pkscram_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,32,32);
- state->m_md_tilemap->set_transparent_pen(15);
- state->m_fg_tilemap->set_transparent_pen(15);
+ m_md_tilemap->set_transparent_pen(15);
+ m_fg_tilemap->set_transparent_pen(15);
}
static SCREEN_UPDATE_IND16( pkscramble )
@@ -283,20 +285,18 @@ static const ym2203_interface ym2203_config =
DEVCB_LINE(irqhandler)
};
-static MACHINE_START( pkscramble)
+void pkscram_state::machine_start()
{
- pkscram_state *state = machine.driver_data<pkscram_state>();
- state_save_register_global(machine, state->m_out);
- state_save_register_global(machine, state->m_interrupt_line_active);
+ state_save_register_global(machine(), m_out);
+ state_save_register_global(machine(), m_interrupt_line_active);
}
-static MACHINE_RESET( pkscramble)
+void pkscram_state::machine_reset()
{
- pkscram_state *state = machine.driver_data<pkscram_state>();
- state->m_out = 0;
- state->m_interrupt_line_active=0;
- timer_device *scanline_timer = machine.device<timer_device>("scan_timer");
- scanline_timer->adjust(machine.primary_screen->time_until_pos(interrupt_scanline), interrupt_scanline);
+ m_out = 0;
+ m_interrupt_line_active=0;
+ timer_device *scanline_timer = machine().device<timer_device>("scan_timer");
+ scanline_timer->adjust(machine().primary_screen->time_until_pos(interrupt_scanline), interrupt_scanline);
}
static MACHINE_CONFIG_START( pkscramble, pkscram_state )
@@ -307,8 +307,6 @@ static MACHINE_CONFIG_START( pkscramble, pkscram_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_MACHINE_START(pkscramble)
- MCFG_MACHINE_RESET(pkscramble)
MCFG_TIMER_ADD("scan_timer", scanline_callback)
@@ -323,7 +321,6 @@ static MACHINE_CONFIG_START( pkscramble, pkscram_state )
MCFG_PALETTE_LENGTH(0x800)
MCFG_GFXDECODE(pkscram)
- MCFG_VIDEO_START(pkscramble)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pktgaldx.c b/src/mame/drivers/pktgaldx.c
index 3582b79040c..56af342e663 100644
--- a/src/mame/drivers/pktgaldx.c
+++ b/src/mame/drivers/pktgaldx.c
@@ -314,14 +314,13 @@ static const deco16ic_interface pktgaldx_deco16ic_tilegen1_intf =
-static MACHINE_START( pktgaldx )
+void pktgaldx_state::machine_start()
{
- pktgaldx_state *state = machine.driver_data<pktgaldx_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_deco_tilegen1 = machine.device("tilegen1");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_deco_tilegen1 = machine().device("tilegen1");
- decoprot_reset(machine);
+ decoprot_reset(machine());
}
static MACHINE_CONFIG_START( pktgaldx, pktgaldx_state )
@@ -331,7 +330,6 @@ static MACHINE_CONFIG_START( pktgaldx, pktgaldx_state )
MCFG_CPU_PROGRAM_MAP(pktgaldx_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)
- MCFG_MACHINE_START(pktgaldx)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -371,7 +369,6 @@ static MACHINE_CONFIG_START( pktgaldb, pktgaldx_state )
MCFG_CPU_PROGRAM_MAP(pktgaldb_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)
- MCFG_MACHINE_START(pktgaldx)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c
index 680e10a7f27..d4fea1e619d 100644
--- a/src/mame/drivers/playch10.c
+++ b/src/mame/drivers/playch10.c
@@ -684,8 +684,6 @@ static MACHINE_CONFIG_START( playch10, playch10_state )
MCFG_CPU_ADD("cart", N2A03, N2A03_DEFAULTCLOCK)
MCFG_CPU_PROGRAM_MAP(cart_map)
- MCFG_MACHINE_RESET(pc10)
- MCFG_MACHINE_START(pc10)
// video hardware
MCFG_GFXDECODE(playch10)
@@ -704,8 +702,6 @@ static MACHINE_CONFIG_START( playch10, playch10_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(playch10_bottom)
- MCFG_PALETTE_INIT(playch10)
- MCFG_VIDEO_START(playch10)
MCFG_PPU2C03B_ADD("ppu", playch10_ppu_interface)
@@ -726,8 +722,8 @@ static MACHINE_CONFIG_DERIVED( playchnv, playch10 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( playch10_hboard, playch10 )
- MCFG_VIDEO_START(playch10_hboard)
- MCFG_MACHINE_START(playch10_hboard)
+ MCFG_VIDEO_START_OVERRIDE(playch10_state,playch10_hboard)
+ MCFG_MACHINE_START_OVERRIDE(playch10_state,playch10_hboard)
MACHINE_CONFIG_END
/***************************************************************************
diff --git a/src/mame/drivers/playmark.c b/src/mame/drivers/playmark.c
index ff1c600301f..25c4ba53c1b 100644
--- a/src/mame/drivers/playmark.c
+++ b/src/mame/drivers/playmark.c
@@ -1026,44 +1026,42 @@ static GFXDECODE_START( bigtwinb )
GFXDECODE_ENTRY( "gfx1", 0, hrdtimes_charlayout, 0x200, 16 ) /* colors 0x200-0x2ff */
GFXDECODE_END
-static MACHINE_START( playmark )
+MACHINE_START_MEMBER(playmark_state,playmark)
{
- playmark_state *state = machine.driver_data<playmark_state>();
-
- state->m_oki = machine.device<okim6295_device>("oki");
- state->m_eeprom = machine.device<eeprom_device>("eeprom");
-
- state->save_item(NAME(state->m_bgscrollx));
- state->save_item(NAME(state->m_bgscrolly));
- state->save_item(NAME(state->m_bg_enable));
- state->save_item(NAME(state->m_bg_full_size));
- state->save_item(NAME(state->m_fgscrollx));
- state->save_item(NAME(state->m_fg_rowscroll_enable));
- state->save_item(NAME(state->m_scroll));
-
- state->save_item(NAME(state->m_snd_command));
- state->save_item(NAME(state->m_snd_flag));
- state->save_item(NAME(state->m_oki_control));
- state->save_item(NAME(state->m_oki_command));
- state->save_item(NAME(state->m_old_oki_bank));
+
+ m_oki = machine().device<okim6295_device>("oki");
+ m_eeprom = machine().device<eeprom_device>("eeprom");
+
+ save_item(NAME(m_bgscrollx));
+ save_item(NAME(m_bgscrolly));
+ save_item(NAME(m_bg_enable));
+ save_item(NAME(m_bg_full_size));
+ save_item(NAME(m_fgscrollx));
+ save_item(NAME(m_fg_rowscroll_enable));
+ save_item(NAME(m_scroll));
+
+ save_item(NAME(m_snd_command));
+ save_item(NAME(m_snd_flag));
+ save_item(NAME(m_oki_control));
+ save_item(NAME(m_oki_command));
+ save_item(NAME(m_old_oki_bank));
}
-static MACHINE_RESET( playmark )
+MACHINE_RESET_MEMBER(playmark_state,playmark)
{
- playmark_state *state = machine.driver_data<playmark_state>();
-
- state->m_bgscrollx = 0;
- state->m_bgscrolly = 0;
- state->m_bg_enable = 0;
- state->m_bg_full_size = 0;
- state->m_fgscrollx = 0;
- state->m_fg_rowscroll_enable = 0;
- memset(state->m_scroll, 0, sizeof(state->m_scroll));
-
- state->m_snd_command = 0;
- state->m_oki_control = 0;
- state->m_oki_command = 0;
- state->m_old_oki_bank = 0;
+
+ m_bgscrollx = 0;
+ m_bgscrolly = 0;
+ m_bg_enable = 0;
+ m_bg_full_size = 0;
+ m_fgscrollx = 0;
+ m_fg_rowscroll_enable = 0;
+ memset(m_scroll, 0, sizeof(m_scroll));
+
+ m_snd_command = 0;
+ m_oki_control = 0;
+ m_oki_command = 0;
+ m_old_oki_bank = 0;
}
static MACHINE_CONFIG_START( bigtwin, playmark_state )
@@ -1077,8 +1075,8 @@ static MACHINE_CONFIG_START( bigtwin, playmark_state )
/* Program and Data Maps are internal to the MCU */
MCFG_CPU_IO_MAP(playmark_sound_io_map)
- MCFG_MACHINE_START(playmark)
- MCFG_MACHINE_RESET(playmark)
+ MCFG_MACHINE_START_OVERRIDE(playmark_state,playmark)
+ MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1091,7 +1089,7 @@ static MACHINE_CONFIG_START( bigtwin, playmark_state )
MCFG_GFXDECODE(playmark)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(bigtwin)
+ MCFG_VIDEO_START_OVERRIDE(playmark_state,bigtwin)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1111,8 +1109,8 @@ static MACHINE_CONFIG_START( bigtwinb, playmark_state )
/* Program and Data Maps are internal to the MCU */
MCFG_CPU_IO_MAP(playmark_sound_io_map)
- MCFG_MACHINE_START(playmark)
- MCFG_MACHINE_RESET(playmark)
+ MCFG_MACHINE_START_OVERRIDE(playmark_state,playmark)
+ MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1125,7 +1123,7 @@ static MACHINE_CONFIG_START( bigtwinb, playmark_state )
MCFG_GFXDECODE(bigtwinb)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(bigtwinb)
+ MCFG_VIDEO_START_OVERRIDE(playmark_state,bigtwinb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1148,8 +1146,8 @@ static MACHINE_CONFIG_START( wbeachvl, playmark_state )
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
MCFG_EEPROM_DEFAULT_VALUE(0)
- MCFG_MACHINE_START(playmark)
- MCFG_MACHINE_RESET(playmark)
+ MCFG_MACHINE_START_OVERRIDE(playmark_state,playmark)
+ MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1162,7 +1160,7 @@ static MACHINE_CONFIG_START( wbeachvl, playmark_state )
MCFG_GFXDECODE(wbeachvl)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(wbeachvl)
+ MCFG_VIDEO_START_OVERRIDE(playmark_state,wbeachvl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1182,8 +1180,8 @@ static MACHINE_CONFIG_START( excelsr, playmark_state )
/* Program and Data Maps are internal to the MCU */
MCFG_CPU_IO_MAP(playmark_sound_io_map)
- MCFG_MACHINE_START(playmark)
- MCFG_MACHINE_RESET(playmark)
+ MCFG_MACHINE_START_OVERRIDE(playmark_state,playmark)
+ MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1196,7 +1194,7 @@ static MACHINE_CONFIG_START( excelsr, playmark_state )
MCFG_GFXDECODE(excelsr)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(excelsr)
+ MCFG_VIDEO_START_OVERRIDE(playmark_state,excelsr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1219,8 +1217,8 @@ static MACHINE_CONFIG_START( hotmind, playmark_state )
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
MCFG_EEPROM_DEFAULT_VALUE(0)
- MCFG_MACHINE_START(playmark)
- MCFG_MACHINE_RESET(playmark)
+ MCFG_MACHINE_START_OVERRIDE(playmark_state,playmark)
+ MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1233,7 +1231,7 @@ static MACHINE_CONFIG_START( hotmind, playmark_state )
MCFG_GFXDECODE(hrdtimes)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(hotmind)
+ MCFG_VIDEO_START_OVERRIDE(playmark_state,hotmind)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1253,8 +1251,8 @@ static MACHINE_CONFIG_START( hrdtimes, playmark_state )
/* Program and Data Maps are internal to the MCU */
// MCFG_CPU_IO_MAP(playmark_sound_io_map)
- MCFG_MACHINE_START(playmark)
- MCFG_MACHINE_RESET(playmark)
+ MCFG_MACHINE_START_OVERRIDE(playmark_state,playmark)
+ MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1267,7 +1265,7 @@ static MACHINE_CONFIG_START( hrdtimes, playmark_state )
MCFG_GFXDECODE(hrdtimes)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(hrdtimes)
+ MCFG_VIDEO_START_OVERRIDE(playmark_state,hrdtimes)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pluto5.c b/src/mame/drivers/pluto5.c
index 3aeba928ffc..3cd58098ce2 100644
--- a/src/mame/drivers/pluto5.c
+++ b/src/mame/drivers/pluto5.c
@@ -198,6 +198,7 @@ protected:
required_device<cpu_device> m_maincpu;
public:
DECLARE_DRIVER_INIT(hb);
+ virtual void machine_start();
};
READ32_MEMBER(pluto5_state::pluto5_mem_r)
@@ -240,11 +241,10 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( pluto5 )
INPUT_PORTS_END
-static MACHINE_START( pluto5 )
+void pluto5_state::machine_start()
{
- pluto5_state *state = machine.driver_data<pluto5_state>();
- state->m_cpuregion = (UINT32*)state->memregion( "maincpu" )->base();
- state->m_mainram = (UINT32*)auto_alloc_array_clear(machine, UINT32, 0x10000);
+ m_cpuregion = (UINT32*)memregion( "maincpu" )->base();
+ m_mainram = (UINT32*)auto_alloc_array_clear(machine(), UINT32, 0x10000);
}
@@ -252,7 +252,6 @@ static MACHINE_CONFIG_START( pluto5, pluto5_state )
MCFG_CPU_ADD("maincpu", M68340, 16000000)
MCFG_CPU_PROGRAM_MAP(pluto5_map)
- MCFG_MACHINE_START( pluto5 )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c
index 78867bfd64e..c25246bd3d4 100644
--- a/src/mame/drivers/plygonet.c
+++ b/src/mame/drivers/plygonet.c
@@ -600,7 +600,7 @@ static GFXDECODE_START( plygonet )
GFXDECODE_ENTRY( "gfx2", 0, bglayout, 0x0000, 64 )
GFXDECODE_END
-static MACHINE_START(polygonet)
+void polygonet_state::machine_start()
{
logerror("Polygonet machine start\n");
@@ -608,9 +608,9 @@ static MACHINE_START(polygonet)
/* It's presumed the hardware has hard-wired operating mode 1 (MODA = 1, MODB = 0) */
/* TODO: This should work, but the MAME core appears to do something funny.
Not a big deal - it's hacked in dsp_w_lines. */
- //machine.device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- //machine.device("dsp")->execute().set_input_line(DSP56K_IRQ_MODA, ASSERT_LINE);
- //machine.device("dsp")->execute().set_input_line(DSP56K_IRQ_MODB, CLEAR_LINE);
+ //machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ //machine().device("dsp")->execute().set_input_line(DSP56K_IRQ_MODA, ASSERT_LINE);
+ //machine().device("dsp")->execute().set_input_line(DSP56K_IRQ_MODB, CLEAR_LINE);
}
static const k053936_interface polygonet_k053936_intf =
@@ -632,7 +632,6 @@ static MACHINE_CONFIG_START( plygonet, polygonet_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(audio_interrupt, 480)
- MCFG_MACHINE_START(polygonet)
MCFG_GFXDECODE(plygonet)
@@ -651,7 +650,6 @@ static MACHINE_CONFIG_START( plygonet, polygonet_state )
MCFG_PALETTE_LENGTH(32768)
- MCFG_VIDEO_START(polygonet)
MCFG_K053936_ADD("k053936", polygonet_k053936_intf)
diff --git a/src/mame/drivers/pokechmp.c b/src/mame/drivers/pokechmp.c
index 7007e48cfe3..4ec5aaed561 100644
--- a/src/mame/drivers/pokechmp.c
+++ b/src/mame/drivers/pokechmp.c
@@ -223,7 +223,6 @@ static MACHINE_CONFIG_START( pokechmp, pokechmp_state )
MCFG_GFXDECODE(pokechmp)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(pokechmp)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/poker72.c b/src/mame/drivers/poker72.c
index 25b9b081ce4..2f634481f8d 100644
--- a/src/mame/drivers/poker72.c
+++ b/src/mame/drivers/poker72.c
@@ -30,10 +30,13 @@ public:
DECLARE_WRITE8_MEMBER(output_w);
DECLARE_WRITE8_MEMBER(tile_bank_w);
DECLARE_DRIVER_INIT(poker72);
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
-static VIDEO_START(poker72)
+void poker72_state::video_start()
{
}
@@ -315,7 +318,7 @@ static GFXDECODE_START( poker72 )
GFXDECODE_END
/* default 444 palette for debug purpose */
-static PALETTE_INIT( poker72 )
+void poker72_state::palette_init()
{
int x,r,g,b;
@@ -324,7 +327,7 @@ static PALETTE_INIT( poker72 )
r = (x & 0xf)*0x10;
g = ((x & 0x3c)>>2)*0x10;
b = ((x & 0xf0)>>4)*0x10;
- palette_set_color(machine,x,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),x,MAKE_RGB(r,g,b));
}
}
@@ -338,11 +341,11 @@ static const ay8910_interface ay8910_config =
DEVCB_NULL
};
-static MACHINE_RESET( poker72 )
+void poker72_state::machine_reset()
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->set_base(&ROM[0]);
+ machine().root_device().membank("bank1")->set_base(&ROM[0]);
}
static MACHINE_CONFIG_START( poker72, poker72_state )
@@ -353,7 +356,6 @@ static MACHINE_CONFIG_START( poker72, poker72_state )
MCFG_CPU_PROGRAM_MAP(poker72_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_RESET(poker72)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -365,9 +367,7 @@ static MACHINE_CONFIG_START( poker72, poker72_state )
MCFG_GFXDECODE(poker72)
MCFG_PALETTE_LENGTH(0xe00)
- MCFG_PALETTE_INIT(poker72)
- MCFG_VIDEO_START(poker72)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c
index f1079b1b549..2d443a7ca13 100644
--- a/src/mame/drivers/polepos.c
+++ b/src/mame/drivers/polepos.c
@@ -461,19 +461,18 @@ static TIMER_DEVICE_CALLBACK( polepos_scanline )
}
-static MACHINE_RESET( polepos )
+MACHINE_RESET_MEMBER(polepos_state,polepos)
{
- polepos_state *state = machine.driver_data<polepos_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
int i;
/* Reset all latches */
for (i = 0; i < 8; i++)
- state->polepos_latch_w(*space, i, 0);
+ polepos_latch_w(*space, i, 0);
/* set the interrupt vectors (this shouldn't be needed) */
- machine.device("sub")->execute().set_input_line_vector(0, Z8000_NVI);
- machine.device("sub2")->execute().set_input_line_vector(0, Z8000_NVI);
+ machine().device("sub")->execute().set_input_line_vector(0, Z8000_NVI);
+ machine().device("sub2")->execute().set_input_line_vector(0, Z8000_NVI);
}
@@ -901,7 +900,7 @@ static MACHINE_CONFIG_START( polepos, polepos_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* some interleaving */
- MCFG_MACHINE_RESET(polepos)
+ MCFG_MACHINE_RESET_OVERRIDE(polepos_state,polepos)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_TIMER_ADD_SCANLINE("scantimer", polepos_scanline, "screen", 0, 1)
@@ -915,8 +914,8 @@ static MACHINE_CONFIG_START( polepos, polepos_state )
MCFG_PALETTE_LENGTH(0x0f00)
MCFG_DEFAULT_LAYOUT(layout_polepos)
- MCFG_PALETTE_INIT(polepos)
- MCFG_VIDEO_START(polepos)
+ MCFG_PALETTE_INIT_OVERRIDE(polepos_state,polepos)
+ MCFG_VIDEO_START_OVERRIDE(polepos_state,polepos)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -980,7 +979,7 @@ static MACHINE_CONFIG_START( topracern, polepos_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* some interleaving */
- MCFG_MACHINE_RESET(polepos)
+ MCFG_MACHINE_RESET_OVERRIDE(polepos_state,polepos)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_TIMER_ADD_SCANLINE("scantimer", polepos_scanline, "screen", 0, 1)
@@ -994,8 +993,8 @@ static MACHINE_CONFIG_START( topracern, polepos_state )
MCFG_PALETTE_LENGTH(0x0f00)
MCFG_DEFAULT_LAYOUT(layout_topracer)
- MCFG_PALETTE_INIT(polepos)
- MCFG_VIDEO_START(polepos)
+ MCFG_PALETTE_INIT_OVERRIDE(polepos_state,polepos)
+ MCFG_VIDEO_START_OVERRIDE(polepos_state,polepos)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/policetr.c b/src/mame/drivers/policetr.c
index 8f18cd97235..51473e9bdad 100644
--- a/src/mame/drivers/policetr.c
+++ b/src/mame/drivers/policetr.c
@@ -431,7 +431,6 @@ static MACHINE_CONFIG_START( policetr, policetr_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(policetr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/polyplay.c b/src/mame/drivers/polyplay.c
index aeed2e38df7..f9b1a304d77 100644
--- a/src/mame/drivers/polyplay.c
+++ b/src/mame/drivers/polyplay.c
@@ -102,20 +102,19 @@ static const samples_interface polyplay_samples_interface =
};
-static MACHINE_RESET( polyplay )
+void polyplay_state::machine_reset()
{
- polyplay_state *state = machine.driver_data<polyplay_state>();
- state->m_channel1_active = 0;
- state->m_channel1_const = 0;
- state->m_channel2_active = 0;
- state->m_channel2_const = 0;
-
- polyplay_set_channel1(machine, 0);
- polyplay_play_channel1(machine, 0);
- polyplay_set_channel2(machine, 0);
- polyplay_play_channel2(machine, 0);
-
- state->m_timer = machine.device<timer_device>("timer");
+ m_channel1_active = 0;
+ m_channel1_const = 0;
+ m_channel2_active = 0;
+ m_channel2_const = 0;
+
+ polyplay_set_channel1(machine(), 0);
+ polyplay_play_channel1(machine(), 0);
+ polyplay_set_channel2(machine(), 0);
+ polyplay_play_channel2(machine(), 0);
+
+ m_timer = machine().device<timer_device>("timer");
}
@@ -277,7 +276,6 @@ static MACHINE_CONFIG_START( polyplay, polyplay_state )
MCFG_CPU_PERIODIC_INT(periodic_interrupt,75)
MCFG_CPU_VBLANK_INT("screen", coin_interrupt)
- MCFG_MACHINE_RESET(polyplay)
MCFG_TIMER_ADD("timer", polyplay_timer_callback)
@@ -292,8 +290,6 @@ static MACHINE_CONFIG_START( polyplay, polyplay_state )
MCFG_GFXDECODE(polyplay)
MCFG_PALETTE_LENGTH(10)
- MCFG_PALETTE_INIT(polyplay)
- MCFG_VIDEO_START(polyplay)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/poo.c b/src/mame/drivers/poo.c
index cbaaec54ee4..a6954d64225 100644
--- a/src/mame/drivers/poo.c
+++ b/src/mame/drivers/poo.c
@@ -66,10 +66,12 @@ public:
DECLARE_WRITE8_MEMBER(sound_cmd_w);
DECLARE_WRITE8_MEMBER(poo_vregs_w);
DECLARE_READ8_MEMBER(timer_r);
+ virtual void video_start();
+ virtual void palette_init();
};
-static VIDEO_START(unclepoo)
+void poo_state::video_start()
{
}
@@ -289,9 +291,9 @@ static GFXDECODE_START( unclepoo )
GFXDECODE_ENTRY( "gfx", 0, tiles8x8_layout, 0, 0x20 )
GFXDECODE_END
-static PALETTE_INIT( unclepoo )
+void poo_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i,r,g,b,val;
int bit0,bit1,bit2;
@@ -312,7 +314,7 @@ static PALETTE_INIT( unclepoo )
bit2 = (val >> 2) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -355,9 +357,7 @@ static MACHINE_CONFIG_START( unclepoo, poo_state )
MCFG_GFXDECODE(unclepoo)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT(unclepoo)
- MCFG_VIDEO_START(unclepoo)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay", AY8910, 18000000/12) /* ? Mhz */
diff --git a/src/mame/drivers/poolshrk.c b/src/mame/drivers/poolshrk.c
index a18ac4c7392..c5c020232b2 100644
--- a/src/mame/drivers/poolshrk.c
+++ b/src/mame/drivers/poolshrk.c
@@ -202,12 +202,12 @@ static GFXDECODE_START( poolshrk )
GFXDECODE_END
-static PALETTE_INIT( poolshrk )
+void poolshrk_state::palette_init()
{
- palette_set_color(machine,0,MAKE_RGB(0x7F, 0x7F, 0x7F));
- palette_set_color(machine,1,MAKE_RGB(0xFF, 0xFF, 0xFF));
- palette_set_color(machine,2,MAKE_RGB(0x7F, 0x7F, 0x7F));
- palette_set_color(machine,3,MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(),0,MAKE_RGB(0x7F, 0x7F, 0x7F));
+ palette_set_color(machine(),1,MAKE_RGB(0xFF, 0xFF, 0xFF));
+ palette_set_color(machine(),2,MAKE_RGB(0x7F, 0x7F, 0x7F));
+ palette_set_color(machine(),3,MAKE_RGB(0x00, 0x00, 0x00));
}
@@ -227,8 +227,6 @@ static MACHINE_CONFIG_START( poolshrk, poolshrk_state )
MCFG_GFXDECODE(poolshrk)
MCFG_PALETTE_LENGTH(4)
- MCFG_PALETTE_INIT(poolshrk)
- MCFG_VIDEO_START(poolshrk)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pooyan.c b/src/mame/drivers/pooyan.c
index 8bf5865f4f8..e6d32f1c928 100644
--- a/src/mame/drivers/pooyan.c
+++ b/src/mame/drivers/pooyan.c
@@ -173,20 +173,18 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( pooyan )
+void pooyan_state::machine_start()
{
- pooyan_state *state = machine.driver_data<pooyan_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_irq_enable));
+ save_item(NAME(m_irq_enable));
}
-static MACHINE_RESET( pooyan )
+void pooyan_state::machine_reset()
{
- pooyan_state *state = machine.driver_data<pooyan_state>();
- state->m_irq_enable = 0;
+ m_irq_enable = 0;
}
@@ -197,8 +195,6 @@ static MACHINE_CONFIG_START( pooyan, pooyan_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", pooyan_interrupt)
- MCFG_MACHINE_START(pooyan)
- MCFG_MACHINE_RESET(pooyan)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -210,8 +206,6 @@ static MACHINE_CONFIG_START( pooyan, pooyan_state )
MCFG_GFXDECODE(pooyan)
MCFG_PALETTE_LENGTH(16*16+16*16)
- MCFG_PALETTE_INIT(pooyan)
- MCFG_VIDEO_START(pooyan)
/* sound hardware */
MCFG_FRAGMENT_ADD(timeplt_sound)
diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c
index cc411857607..99efd79e9c3 100644
--- a/src/mame/drivers/popeye.c
+++ b/src/mame/drivers/popeye.c
@@ -441,8 +441,6 @@ static MACHINE_CONFIG_START( skyskipr, popeye_state )
MCFG_GFXDECODE(popeye)
MCFG_PALETTE_LENGTH(16+16*2+64*4)
- MCFG_PALETTE_INIT(popeye)
- MCFG_VIDEO_START(skyskipr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -457,7 +455,7 @@ static MACHINE_CONFIG_DERIVED( popeye, skyskipr )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(popeye_map)
- MCFG_VIDEO_START(popeye)
+ MCFG_VIDEO_START_OVERRIDE(popeye_state,popeye)
MACHINE_CONFIG_END
@@ -465,8 +463,8 @@ static MACHINE_CONFIG_DERIVED( popeyebl, skyskipr )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(popeyebl_map)
- MCFG_PALETTE_INIT(popeyebl)
- MCFG_VIDEO_START(popeye)
+ MCFG_PALETTE_INIT_OVERRIDE(popeye_state,popeyebl)
+ MCFG_VIDEO_START_OVERRIDE(popeye_state,popeye)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/popobear.c b/src/mame/drivers/popobear.c
index 11f92a14c2e..75ae4d43cb6 100644
--- a/src/mame/drivers/popobear.c
+++ b/src/mame/drivers/popobear.c
@@ -94,9 +94,10 @@ public:
required_shared_ptr<UINT16> m_vregs;
DECLARE_READ8_MEMBER(popo_620000_r);
DECLARE_WRITE8_MEMBER(popobear_irq_ack_w);
+ virtual void video_start();
};
-VIDEO_START(popobear)
+void popobear_state::video_start()
{
}
@@ -472,7 +473,6 @@ static MACHINE_CONFIG_START( popobear, popobear_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
MCFG_PALETTE_LENGTH(256*2)
- MCFG_VIDEO_START(popobear)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/popper.c b/src/mame/drivers/popper.c
index 36455069218..22431a138bf 100644
--- a/src/mame/drivers/popper.c
+++ b/src/mame/drivers/popper.c
@@ -310,24 +310,22 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( popper )
+void popper_state::machine_start()
{
- popper_state *state = machine.driver_data<popper_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_e002));
- state->save_item(NAME(state->m_gfx_bank));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_e002));
+ save_item(NAME(m_gfx_bank));
}
-static MACHINE_RESET( popper )
+void popper_state::machine_reset()
{
- popper_state *state = machine.driver_data<popper_state>();
- state->m_flipscreen = 0;
- state->m_e002 = 0;
- state->m_gfx_bank = 0;
+ m_flipscreen = 0;
+ m_e002 = 0;
+ m_gfx_bank = 0;
}
static INTERRUPT_GEN( vblank_irq )
@@ -352,8 +350,6 @@ static MACHINE_CONFIG_START( popper, popper_state )
MCFG_QUANTUM_TIME(attotime::from_hz(1800))
- MCFG_MACHINE_START(popper)
- MCFG_MACHINE_RESET(popper)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -366,8 +362,6 @@ static MACHINE_CONFIG_START( popper, popper_state )
MCFG_GFXDECODE(popper)
MCFG_PALETTE_LENGTH(64)
- MCFG_PALETTE_INIT(popper)
- MCFG_VIDEO_START(popper)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/portrait.c b/src/mame/drivers/portrait.c
index 96496abaa72..81a71d0c93d 100644
--- a/src/mame/drivers/portrait.c
+++ b/src/mame/drivers/portrait.c
@@ -260,9 +260,7 @@ static MACHINE_CONFIG_START( portrait, portrait_state )
MCFG_GFXDECODE(portrait)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_PALETTE_INIT(portrait)
- MCFG_VIDEO_START(portrait)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/potgoldu.c b/src/mame/drivers/potgoldu.c
index e279c30fa20..a21b5afe562 100644
--- a/src/mame/drivers/potgoldu.c
+++ b/src/mame/drivers/potgoldu.c
@@ -26,6 +26,8 @@ class potgold_state : public driver_device
public:
potgold_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -37,7 +39,7 @@ public:
-static VIDEO_START( potgold )
+void potgold_state::video_start()
{
}
@@ -48,7 +50,7 @@ static void scanline_update(screen_device &screen, bitmap_rgb32 &bitmap, int sca
}
-static MACHINE_RESET( potgold )
+void potgold_state::machine_reset()
{
}
@@ -84,9 +86,7 @@ static MACHINE_CONFIG_START( potgold, potgold_state )
MCFG_CPU_CONFIG(tms_config)
MCFG_CPU_PROGRAM_MAP(potgold_map)
- MCFG_MACHINE_RESET(potgold)
- MCFG_VIDEO_START(potgold)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200)
diff --git a/src/mame/drivers/powerbal.c b/src/mame/drivers/powerbal.c
index a89e9c9b5ba..b6215296072 100644
--- a/src/mame/drivers/powerbal.c
+++ b/src/mame/drivers/powerbal.c
@@ -416,15 +416,14 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-static VIDEO_START( powerbal )
+VIDEO_START_MEMBER(playmark_state,powerbal)
{
- playmark_state *state = machine.driver_data<playmark_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::powerbal_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::powerbal_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- state->m_xoffset = -20;
+ m_xoffset = -20;
- state->m_bg_tilemap->set_scrolly(0, state->m_bg_yoffset);
+ m_bg_tilemap->set_scrolly(0, m_bg_yoffset);
}
static SCREEN_UPDATE_IND16( powerbal )
@@ -469,18 +468,16 @@ GFXDECODE_END
-static MACHINE_START( powerbal )
+MACHINE_START_MEMBER(playmark_state,powerbal)
{
- playmark_state *state = machine.driver_data<playmark_state>();
- state->save_item(NAME(state->m_tilebank));
+ save_item(NAME(m_tilebank));
}
-static MACHINE_RESET( powerbal )
+MACHINE_RESET_MEMBER(playmark_state,powerbal)
{
- playmark_state *state = machine.driver_data<playmark_state>();
- state->m_tilebank = 0;
+ m_tilebank = 0;
}
static MACHINE_CONFIG_START( powerbal, playmark_state )
@@ -490,8 +487,8 @@ static MACHINE_CONFIG_START( powerbal, playmark_state )
MCFG_CPU_PROGRAM_MAP(powerbal_main_map)
MCFG_CPU_VBLANK_INT("screen", irq2_line_hold)
- MCFG_MACHINE_START(powerbal)
- MCFG_MACHINE_RESET(powerbal)
+ MCFG_MACHINE_START_OVERRIDE(playmark_state,powerbal)
+ MCFG_MACHINE_RESET_OVERRIDE(playmark_state,powerbal)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -504,7 +501,7 @@ static MACHINE_CONFIG_START( powerbal, playmark_state )
MCFG_GFXDECODE(powerbal)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(powerbal)
+ MCFG_VIDEO_START_OVERRIDE(playmark_state,powerbal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -523,8 +520,8 @@ static MACHINE_CONFIG_START( magicstk, playmark_state )
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
MCFG_EEPROM_DEFAULT_VALUE(0)
- MCFG_MACHINE_START(powerbal)
- MCFG_MACHINE_RESET(powerbal)
+ MCFG_MACHINE_START_OVERRIDE(playmark_state,powerbal)
+ MCFG_MACHINE_RESET_OVERRIDE(playmark_state,powerbal)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -537,7 +534,7 @@ static MACHINE_CONFIG_START( magicstk, playmark_state )
MCFG_GFXDECODE(powerbal)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(powerbal)
+ MCFG_VIDEO_START_OVERRIDE(playmark_state,powerbal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/powerins.c b/src/mame/drivers/powerins.c
index 7cc7a4b31c0..978a6ecee15 100644
--- a/src/mame/drivers/powerins.c
+++ b/src/mame/drivers/powerins.c
@@ -312,10 +312,9 @@ GFXDECODE_END
***************************************************************************/
-static MACHINE_RESET( powerins )
+void powerins_state::machine_reset()
{
- powerins_state *state = machine.driver_data<powerins_state>();
- state->m_oki_bank = -1; // samples bank "unitialised"
+ m_oki_bank = -1; // samples bank "unitialised"
}
static void irqhandler(device_t *device, int irq)
@@ -350,7 +349,6 @@ static MACHINE_CONFIG_START( powerins, powerins_state )
MCFG_CPU_PROGRAM_MAP(powerins_sound_map)
MCFG_CPU_IO_MAP(powerins_sound_io_map)
- MCFG_MACHINE_RESET(powerins)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -363,7 +361,6 @@ static MACHINE_CONFIG_START( powerins, powerins_state )
MCFG_GFXDECODE(powerins)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(powerins)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c
index 1f5c3ef4581..20c90c7fb78 100644
--- a/src/mame/drivers/ppmast93.c
+++ b/src/mame/drivers/ppmast93.c
@@ -154,6 +154,7 @@ public:
DECLARE_WRITE8_MEMBER(ppmast_sound_w);
TILE_GET_INFO_MEMBER(get_ppmast93_bg_tile_info);
TILE_GET_INFO_MEMBER(get_ppmast93_fg_tile_info);
+ virtual void video_start();
};
@@ -344,13 +345,12 @@ TILE_GET_INFO_MEMBER(ppmast93_state::get_ppmast93_fg_tile_info)
0);
}
-static VIDEO_START( ppmast93 )
+void ppmast93_state::video_start()
{
- ppmast93_state *state = machine.driver_data<ppmast93_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ppmast93_state::get_ppmast93_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32, 32);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ppmast93_state::get_ppmast93_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ppmast93_state::get_ppmast93_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ppmast93_state::get_ppmast93_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_fg_tilemap->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16( ppmast93 )
@@ -386,7 +386,6 @@ static MACHINE_CONFIG_START( ppmast93, ppmast93_state )
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(ppmast93)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/prehisle.c b/src/mame/drivers/prehisle.c
index c32f04af154..074348193bd 100644
--- a/src/mame/drivers/prehisle.c
+++ b/src/mame/drivers/prehisle.c
@@ -227,7 +227,6 @@ static MACHINE_CONFIG_START( prehisle, prehisle_state )
MCFG_GFXDECODE(prehisle)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(prehisle)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/proconn.c b/src/mame/drivers/proconn.c
index 7d3772ffcb4..9cf4b427289 100644
--- a/src/mame/drivers/proconn.c
+++ b/src/mame/drivers/proconn.c
@@ -170,6 +170,7 @@ protected:
required_device<ay8910_device> m_ay;
public:
DECLARE_DRIVER_INIT(proconn);
+ virtual void machine_reset();
};
static ADDRESS_MAP_START( proconn_map, AS_PROGRAM, 8, proconn_state )
@@ -355,10 +356,9 @@ static const z80_daisy_config z80_daisy_chain[] =
{ NULL }
};
-static MACHINE_RESET( proconn )
+void proconn_state::machine_reset()
{
- proconn_state *state = machine.driver_data<proconn_state>();
- state->m_vfd->reset(); // reset display1
+ m_vfd->reset(); // reset display1
}
static MACHINE_CONFIG_START( proconn, proconn_state )
@@ -378,7 +378,6 @@ static MACHINE_CONFIG_START( proconn, proconn_state )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_MACHINE_RESET( proconn )
MCFG_DEFAULT_LAYOUT(layout_awpvid16)
diff --git a/src/mame/drivers/progolf.c b/src/mame/drivers/progolf.c
index ea910106e26..47cc078f59b 100644
--- a/src/mame/drivers/progolf.c
+++ b/src/mame/drivers/progolf.c
@@ -84,19 +84,20 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
DECLARE_DRIVER_INIT(progolfa);
DECLARE_DRIVER_INIT(progolf);
+ virtual void video_start();
+ virtual void palette_init();
};
-static VIDEO_START( progolf )
+void progolf_state::video_start()
{
- progolf_state *state = machine.driver_data<progolf_state>();
- state->m_scrollx_hi = 0;
- state->m_scrollx_lo = 0;
+ m_scrollx_hi = 0;
+ m_scrollx_lo = 0;
- state->m_fg_fb = auto_alloc_array(machine, UINT8, 0x2000*8);
- state->m_videoram = auto_alloc_array(machine, UINT8, 0x1000);
+ m_fg_fb = auto_alloc_array(machine(), UINT8, 0x2000*8);
+ m_videoram = auto_alloc_array(machine(), UINT8, 0x1000);
}
@@ -389,12 +390,12 @@ static const mc6845_interface mc6845_intf =
};
-static PALETTE_INIT( progolf )
+void progolf_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0,bit1,bit2,r,g,b;
@@ -414,7 +415,7 @@ static PALETTE_INIT( progolf )
bit2 = (color_prom[i] >> 7) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
}
}
@@ -439,10 +440,8 @@ static MACHINE_CONFIG_START( progolf, progolf_state )
MCFG_GFXDECODE(progolf)
MCFG_PALETTE_LENGTH(32*3)
- MCFG_PALETTE_INIT(progolf)
MCFG_MC6845_ADD("crtc", MC6845, 3000000/4, mc6845_intf) /* hand tuned to get ~57 fps */
- MCFG_VIDEO_START(progolf)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/psattack.c b/src/mame/drivers/psattack.c
index bf77888f93f..9f3c368ec30 100644
--- a/src/mame/drivers/psattack.c
+++ b/src/mame/drivers/psattack.c
@@ -87,6 +87,9 @@ public:
DECLARE_READ32_MEMBER(psattack_unk_r);
DECLARE_DRIVER_INIT(psattack);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -105,17 +108,17 @@ static ADDRESS_MAP_START( psattack_mem, AS_PROGRAM, 32, psattack_state )
ADDRESS_MAP_END
-static MACHINE_START(psattack)
+void psattack_state::machine_start()
{
}
-static MACHINE_RESET(psattack)
+void psattack_state::machine_reset()
{
}
-static VIDEO_START(psattack)
+void psattack_state::video_start()
{
}
@@ -175,8 +178,6 @@ static MACHINE_CONFIG_START( psattack, psattack_state )
MCFG_CPU_PROGRAM_MAP(psattack_mem)
MCFG_CPU_VBLANK_INT("screen", psattack_interrupt)
- MCFG_MACHINE_START(psattack)
- MCFG_MACHINE_RESET(psattack)
//MCFG_NVRAM_ADD_0FILL("nvram")
@@ -188,7 +189,6 @@ static MACHINE_CONFIG_START( psattack, psattack_state )
MCFG_SCREEN_UPDATE_STATIC(psattack)
MCFG_SCREEN_VBLANK_STATIC(psattack)
- MCFG_VIDEO_START(psattack)
MCFG_PALETTE_INIT(RRRRR_GGGGGG_BBBBB)
MCFG_PALETTE_LENGTH(65536)
diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c
index e20f772f89c..7abba4bbf9d 100644
--- a/src/mame/drivers/psikyo.c
+++ b/src/mame/drivers/psikyo.c
@@ -1013,26 +1013,24 @@ GFXDECODE_END
***************************************************************************/
-static MACHINE_START( psikyo )
+void psikyo_state::machine_start()
{
- psikyo_state *state = machine.driver_data<psikyo_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_soundlatch));
- state->save_item(NAME(state->m_z80_nmi));
- state->save_item(NAME(state->m_mcu_status));
- state->save_item(NAME(state->m_tilemap_0_bank));
- state->save_item(NAME(state->m_tilemap_1_bank));
+ save_item(NAME(m_soundlatch));
+ save_item(NAME(m_z80_nmi));
+ save_item(NAME(m_mcu_status));
+ save_item(NAME(m_tilemap_0_bank));
+ save_item(NAME(m_tilemap_1_bank));
}
-static MACHINE_RESET( psikyo )
+void psikyo_state::machine_reset()
{
- psikyo_state *state = machine.driver_data<psikyo_state>();
- state->m_soundlatch = 0;
- state->m_z80_nmi = 0;
- state->m_mcu_status = 0;
+ m_soundlatch = 0;
+ m_z80_nmi = 0;
+ m_mcu_status = 0;
}
@@ -1057,8 +1055,6 @@ static MACHINE_CONFIG_START( sngkace, psikyo_state )
MCFG_CPU_PROGRAM_MAP(sngkace_sound_map)
MCFG_CPU_IO_MAP(sngkace_sound_io_map)
- MCFG_MACHINE_START(psikyo)
- MCFG_MACHINE_RESET(psikyo)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1072,7 +1068,7 @@ static MACHINE_CONFIG_START( sngkace, psikyo_state )
MCFG_GFXDECODE(psikyo)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(sngkace)
+ MCFG_VIDEO_START_OVERRIDE(psikyo_state,sngkace)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1108,8 +1104,6 @@ static MACHINE_CONFIG_START( gunbird, psikyo_state )
MCFG_CPU_PROGRAM_MAP(gunbird_sound_map)
MCFG_CPU_IO_MAP(gunbird_sound_io_map)
- MCFG_MACHINE_START(psikyo)
- MCFG_MACHINE_RESET(psikyo)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1123,7 +1117,7 @@ static MACHINE_CONFIG_START( gunbird, psikyo_state )
MCFG_GFXDECODE(psikyo)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(psikyo)
+ MCFG_VIDEO_START_OVERRIDE(psikyo_state,psikyo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1143,8 +1137,6 @@ static MACHINE_CONFIG_START( s1945bl, psikyo_state ) /* Bootleg hardware based o
MCFG_CPU_PROGRAM_MAP(psikyo_bootleg_map)
MCFG_CPU_VBLANK_INT("screen", irq1_line_hold)
- MCFG_MACHINE_START(psikyo)
- MCFG_MACHINE_RESET(psikyo)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1158,7 +1150,7 @@ static MACHINE_CONFIG_START( s1945bl, psikyo_state ) /* Bootleg hardware based o
MCFG_GFXDECODE(psikyo)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(psikyo)
+ MCFG_VIDEO_START_OVERRIDE(psikyo_state,psikyo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1199,8 +1191,6 @@ static MACHINE_CONFIG_START( s1945, psikyo_state )
/* MCU should go here */
- MCFG_MACHINE_START(psikyo)
- MCFG_MACHINE_RESET(psikyo)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1214,7 +1204,7 @@ static MACHINE_CONFIG_START( s1945, psikyo_state )
MCFG_GFXDECODE(psikyo)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(psikyo)
+ MCFG_VIDEO_START_OVERRIDE(psikyo_state,psikyo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/psikyo4.c b/src/mame/drivers/psikyo4.c
index d8d7f81ef34..c2d4c3a54ed 100644
--- a/src/mame/drivers/psikyo4.c
+++ b/src/mame/drivers/psikyo4.c
@@ -660,22 +660,20 @@ static const ymf278b_interface ymf278b_config =
};
-static MACHINE_START( psikyo4 )
+void psikyo4_state::machine_start()
{
- psikyo4_state *state = machine.driver_data<psikyo4_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_oldbrt1));
- state->save_item(NAME(state->m_oldbrt2));
+ save_item(NAME(m_oldbrt1));
+ save_item(NAME(m_oldbrt2));
}
-static MACHINE_RESET( psikyo4 )
+void psikyo4_state::machine_reset()
{
- psikyo4_state *state = machine.driver_data<psikyo4_state>();
- state->m_oldbrt1 = -1;
- state->m_oldbrt2 = -1;
+ m_oldbrt1 = -1;
+ m_oldbrt2 = -1;
}
static MACHINE_CONFIG_START( ps4big, psikyo4_state )
@@ -685,8 +683,6 @@ static MACHINE_CONFIG_START( ps4big, psikyo4_state )
MCFG_CPU_PROGRAM_MAP(ps4_map)
MCFG_CPU_VBLANK_INT("lscreen", psikyosh_interrupt)
- MCFG_MACHINE_START(psikyo4)
- MCFG_MACHINE_RESET(psikyo4)
MCFG_EEPROM_ADD("eeprom", eeprom_interface_93C56)
MCFG_EEPROM_DEFAULT_VALUE(0)
@@ -710,7 +706,6 @@ static MACHINE_CONFIG_START( ps4big, psikyo4_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_STATIC(psikyo4_right)
- MCFG_VIDEO_START(psikyo4)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/psikyosh.c b/src/mame/drivers/psikyosh.c
index 7df19722d51..bc8d51213d5 100644
--- a/src/mame/drivers/psikyosh.c
+++ b/src/mame/drivers/psikyosh.c
@@ -794,13 +794,12 @@ static const ymf278b_interface ymf278b_config =
};
-static MACHINE_START( psikyosh )
+void psikyosh_state::machine_start()
{
- psikyosh_state *state = machine.driver_data<psikyosh_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->membank("bank2")->configure_entries(0, 0x1000, state->memregion("gfx1")->base(), 0x20000);
+ membank("bank2")->configure_entries(0, 0x1000, memregion("gfx1")->base(), 0x20000);
}
@@ -811,7 +810,6 @@ static MACHINE_CONFIG_START( psikyo3v1, psikyosh_state )
MCFG_CPU_PROGRAM_MAP(ps3v1_map)
MCFG_CPU_VBLANK_INT("screen", psikyosh_interrupt)
- MCFG_MACHINE_START(psikyosh)
MCFG_EEPROM_ADD("eeprom", eeprom_interface_93C56)
MCFG_EEPROM_DEFAULT_VALUE(0)
@@ -830,7 +828,6 @@ static MACHINE_CONFIG_START( psikyo3v1, psikyosh_state )
MCFG_GFXDECODE(psikyosh)
MCFG_PALETTE_LENGTH(0x5000/4)
- MCFG_VIDEO_START(psikyosh)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/psychic5.c b/src/mame/drivers/psychic5.c
index 9bcfc685884..40c776a4646 100644
--- a/src/mame/drivers/psychic5.c
+++ b/src/mame/drivers/psychic5.c
@@ -315,11 +315,10 @@ The first sprite data is located at f20b,then f21b and so on.
#include "includes/psychic5.h"
-static MACHINE_RESET( psychic5 )
+void psychic5_state::machine_reset()
{
- psychic5_state *state = machine.driver_data<psychic5_state>();
- state->m_bank_latch = 0xff;
- state->flip_screen_set(0);
+ m_bank_latch = 0xff;
+ flip_screen_set(0);
}
/***************************************************************************
@@ -671,7 +670,6 @@ static MACHINE_CONFIG_START( psychic5, psychic5_state )
MCFG_CPU_IO_MAP(psychic5_soundport_map)
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* Allow time for 2nd cpu to interleave */
- MCFG_MACHINE_RESET(psychic5)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -685,8 +683,8 @@ static MACHINE_CONFIG_START( psychic5, psychic5_state )
MCFG_GFXDECODE(psychic5)
MCFG_PALETTE_LENGTH(768)
- MCFG_VIDEO_START(psychic5)
- MCFG_VIDEO_RESET(psychic5)
+ MCFG_VIDEO_START_OVERRIDE(psychic5_state,psychic5)
+ MCFG_VIDEO_RESET_OVERRIDE(psychic5_state,psychic5)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -717,7 +715,6 @@ static MACHINE_CONFIG_START( bombsa, psychic5_state )
MCFG_CPU_IO_MAP(bombsa_soundport_map)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_RESET(psychic5)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -730,8 +727,8 @@ static MACHINE_CONFIG_START( bombsa, psychic5_state )
MCFG_GFXDECODE(bombsa)
MCFG_PALETTE_LENGTH(768)
- MCFG_VIDEO_START(bombsa)
- MCFG_VIDEO_RESET(bombsa)
+ MCFG_VIDEO_START_OVERRIDE(psychic5_state,bombsa)
+ MCFG_VIDEO_RESET_OVERRIDE(psychic5_state,bombsa)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pturn.c b/src/mame/drivers/pturn.c
index 4483d886659..55e2f2a765c 100644
--- a/src/mame/drivers/pturn.c
+++ b/src/mame/drivers/pturn.c
@@ -115,6 +115,8 @@ public:
DECLARE_DRIVER_INIT(pturn);
TILE_GET_INFO_MEMBER(get_pturn_tile_info);
TILE_GET_INFO_MEMBER(get_pturn_bg_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -153,13 +155,12 @@ TILE_GET_INFO_MEMBER(pturn_state::get_pturn_bg_tile_info)
SET_TILE_INFO_MEMBER(1,tileno+m_bgbank*256,palno,0);
}
-static VIDEO_START(pturn)
+void pturn_state::video_start()
{
- pturn_state *state = machine.driver_data<pturn_state>();
- state->m_fgmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pturn_state::get_pturn_tile_info),state),TILEMAP_SCAN_ROWS,8, 8,32,32);
- state->m_fgmap->set_transparent_pen(0);
- state->m_bgmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pturn_state::get_pturn_bg_tile_info),state),TILEMAP_SCAN_ROWS,8, 8,32,32*8);
- state->m_bgmap->set_transparent_pen(0);
+ m_fgmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(pturn_state::get_pturn_tile_info),this),TILEMAP_SCAN_ROWS,8, 8,32,32);
+ m_fgmap->set_transparent_pen(0);
+ m_bgmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(pturn_state::get_pturn_bg_tile_info),this),TILEMAP_SCAN_ROWS,8, 8,32,32*8);
+ m_bgmap->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16(pturn)
@@ -476,11 +477,10 @@ static INTERRUPT_GEN( pturn_main_intgen )
}
}
-static MACHINE_RESET( pturn )
+void pturn_state::machine_reset()
{
- pturn_state *state = machine.driver_data<pturn_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- state->soundlatch_clear_byte_w(*space,0,0);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ soundlatch_clear_byte_w(*space,0,0);
}
static MACHINE_CONFIG_START( pturn, pturn_state )
@@ -492,7 +492,6 @@ static MACHINE_CONFIG_START( pturn, pturn_state )
MCFG_CPU_PROGRAM_MAP(sub_map)
MCFG_CPU_PERIODIC_INT(pturn_sub_intgen,3*60)
- MCFG_MACHINE_RESET(pturn)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -504,7 +503,6 @@ static MACHINE_CONFIG_START( pturn, pturn_state )
MCFG_PALETTE_LENGTH(0x100)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(pturn)
MCFG_GFXDECODE(pturn)
/* sound hardware */
diff --git a/src/mame/drivers/punchout.c b/src/mame/drivers/punchout.c
index e02be32594a..aae65e815d7 100644
--- a/src/mame/drivers/punchout.c
+++ b/src/mame/drivers/punchout.c
@@ -922,11 +922,10 @@ static const nes_interface nes_config =
"audiocpu"
};
-static MACHINE_RESET( punchout )
+void punchout_state::machine_reset()
{
- punchout_state *state = machine.driver_data<punchout_state>();
- state->m_rp5c01_mode_sel = 0;
- memset(state->m_rp5c01_mem, 0, sizeof(state->m_rp5c01_mem));
+ m_rp5c01_mode_sel = 0;
+ memset(m_rp5c01_mem, 0, sizeof(m_rp5c01_mem));
}
static INTERRUPT_GEN( vblank_irq )
@@ -951,7 +950,6 @@ static MACHINE_CONFIG_START( punchout, punchout_state )
MCFG_CPU_PROGRAM_MAP(punchout_sound_map)
MCFG_CPU_VBLANK_INT("top", nmi_line_pulse)
- MCFG_MACHINE_RESET(punchout)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -973,7 +971,6 @@ static MACHINE_CONFIG_START( punchout, punchout_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(punchout_bottom)
- MCFG_VIDEO_START(punchout)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -997,7 +994,7 @@ static MACHINE_CONFIG_DERIVED( armwrest, punchout )
/* video hardware */
MCFG_GFXDECODE(armwrest)
- MCFG_VIDEO_START(armwrest)
+ MCFG_VIDEO_START_OVERRIDE(punchout_state,armwrest)
MCFG_SCREEN_MODIFY("top")
MCFG_SCREEN_UPDATE_STATIC(armwrest_top)
MCFG_SCREEN_MODIFY("bottom")
diff --git a/src/mame/drivers/pushman.c b/src/mame/drivers/pushman.c
index 6146622b273..6768200a03a 100644
--- a/src/mame/drivers/pushman.c
+++ b/src/mame/drivers/pushman.c
@@ -400,30 +400,28 @@ static const ym2203_interface ym2203_config =
};
-static MACHINE_START( pushman )
+void pushman_state::machine_start()
{
- pushman_state *state = machine.driver_data<pushman_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_mcu = machine.device("mcu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_mcu = machine().device("mcu");
- state->save_item(NAME(state->m_control));
- state->save_item(NAME(state->m_shared_ram));
- state->save_item(NAME(state->m_latch));
- state->save_item(NAME(state->m_new_latch));
+ save_item(NAME(m_control));
+ save_item(NAME(m_shared_ram));
+ save_item(NAME(m_latch));
+ save_item(NAME(m_new_latch));
}
-static MACHINE_RESET( pushman )
+MACHINE_RESET_MEMBER(pushman_state,pushman)
{
- pushman_state *state = machine.driver_data<pushman_state>();
- state->m_latch = 0;
- state->m_new_latch = 0;
- state->m_control[0] = 0;
- state->m_control[1] = 0;
+ m_latch = 0;
+ m_new_latch = 0;
+ m_control[0] = 0;
+ m_control[1] = 0;
- memset(state->m_shared_ram, 0, ARRAY_LENGTH(state->m_shared_ram));
+ memset(m_shared_ram, 0, ARRAY_LENGTH(m_shared_ram));
}
static MACHINE_CONFIG_START( pushman, pushman_state )
@@ -443,8 +441,7 @@ static MACHINE_CONFIG_START( pushman, pushman_state )
MCFG_QUANTUM_TIME(attotime::from_hz(3600))
- MCFG_MACHINE_START(pushman)
- MCFG_MACHINE_RESET(pushman)
+ MCFG_MACHINE_RESET_OVERRIDE(pushman_state,pushman)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -457,7 +454,6 @@ static MACHINE_CONFIG_START( pushman, pushman_state )
MCFG_GFXDECODE(pushman)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(pushman)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -470,13 +466,12 @@ static MACHINE_CONFIG_START( pushman, pushman_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MACHINE_CONFIG_END
-static MACHINE_RESET( bballs )
+MACHINE_RESET_MEMBER(pushman_state,bballs)
{
- pushman_state *state = machine.driver_data<pushman_state>();
- MACHINE_RESET_CALL(pushman);
+ MACHINE_RESET_CALL_MEMBER(pushman);
- state->m_latch = 0x400;
+ m_latch = 0x400;
}
static MACHINE_CONFIG_START( bballs, pushman_state )
@@ -492,8 +487,7 @@ static MACHINE_CONFIG_START( bballs, pushman_state )
MCFG_QUANTUM_TIME(attotime::from_hz(3600))
- MCFG_MACHINE_START(pushman)
- MCFG_MACHINE_RESET(bballs)
+ MCFG_MACHINE_RESET_OVERRIDE(pushman_state,bballs)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -506,7 +500,6 @@ static MACHINE_CONFIG_START( bballs, pushman_state )
MCFG_GFXDECODE(pushman)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(pushman)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pzletime.c b/src/mame/drivers/pzletime.c
index 776c7007415..dd498d7af46 100644
--- a/src/mame/drivers/pzletime.c
+++ b/src/mame/drivers/pzletime.c
@@ -55,6 +55,10 @@ public:
DECLARE_WRITE16_MEMBER(oki_bank_w);
TILE_GET_INFO_MEMBER(get_mid_tile_info);
TILE_GET_INFO_MEMBER(get_txt_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -77,15 +81,14 @@ TILE_GET_INFO_MEMBER(pzletime_state::get_txt_tile_info)
tileinfo.category = BIT(colour, 3);
}
-static VIDEO_START( pzletime )
+void pzletime_state::video_start()
{
- pzletime_state *state = machine.driver_data<pzletime_state>();
- state->m_mid_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pzletime_state::get_mid_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
- state->m_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pzletime_state::get_txt_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_mid_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(pzletime_state::get_mid_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
+ m_txt_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(pzletime_state::get_txt_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- state->m_mid_tilemap->set_transparent_pen(0);
- state->m_txt_tilemap->set_transparent_pen(0);
+ m_mid_tilemap->set_transparent_pen(0);
+ m_txt_tilemap->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16( pzletime )
@@ -293,7 +296,7 @@ static GFXDECODE_START( pzletime )
GFXDECODE_ENTRY( "gfx3", 0, layout16x16, 0x000, 0x10 )
GFXDECODE_END
-static PALETTE_INIT( pzletime )
+void pzletime_state::palette_init()
{
int i;
@@ -301,21 +304,19 @@ static PALETTE_INIT( pzletime )
/* initialize 555 RGB lookup */
for (i = 0; i < 32768; i++)
- palette_set_color_rgb(machine, i + 0x300, pal5bit(i >> 10), pal5bit(i >> 5), pal5bit(i >> 0));
+ palette_set_color_rgb(machine(), i + 0x300, pal5bit(i >> 10), pal5bit(i >> 5), pal5bit(i >> 0));
}
-static MACHINE_START( pzletime )
+void pzletime_state::machine_start()
{
- pzletime_state *state = machine.driver_data<pzletime_state>();
- state->save_item(NAME(state->m_ticket));
+ save_item(NAME(m_ticket));
}
-static MACHINE_RESET( pzletime )
+void pzletime_state::machine_reset()
{
- pzletime_state *state = machine.driver_data<pzletime_state>();
- state->m_ticket = 0;
+ m_ticket = 0;
}
static MACHINE_CONFIG_START( pzletime, pzletime_state )
@@ -325,8 +326,6 @@ static MACHINE_CONFIG_START( pzletime, pzletime_state )
MCFG_CPU_PROGRAM_MAP(pzletime_map)
MCFG_CPU_VBLANK_INT("screen",irq4_line_hold)
- MCFG_MACHINE_START(pzletime)
- MCFG_MACHINE_RESET(pzletime)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -339,8 +338,6 @@ static MACHINE_CONFIG_START( pzletime, pzletime_state )
MCFG_PALETTE_LENGTH(0x300 + 32768)
MCFG_EEPROM_93C46_ADD("eeprom")
- MCFG_PALETTE_INIT(pzletime)
- MCFG_VIDEO_START(pzletime)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c
index 7c230fa1948..3bdcf2f0501 100644
--- a/src/mame/drivers/qdrmfgp.c
+++ b/src/mame/drivers/qdrmfgp.c
@@ -635,30 +635,28 @@ static const k053252_interface qdrmfgp2_k053252_intf =
40, 16
};
-static MACHINE_START( qdrmfgp )
+MACHINE_START_MEMBER(qdrmfgp_state,qdrmfgp)
{
- qdrmfgp_state *state = machine.driver_data<qdrmfgp_state>();
- state_save_register_global(machine, state->m_control);
- state_save_register_global(machine, state->m_pal);
- state_save_register_global(machine, state->m_gp2_irq_control);
+ state_save_register_global(machine(), m_control);
+ state_save_register_global(machine(), m_pal);
+ state_save_register_global(machine(), m_gp2_irq_control);
}
-static MACHINE_START( qdrmfgp2 )
+MACHINE_START_MEMBER(qdrmfgp_state,qdrmfgp2)
{
/* sound irq (CCU? 240Hz) */
- machine.scheduler().timer_pulse(attotime::from_hz(18432000/76800), FUNC(gp2_timer_callback));
+ machine().scheduler().timer_pulse(attotime::from_hz(18432000/76800), FUNC(gp2_timer_callback));
- MACHINE_START_CALL( qdrmfgp );
+ MACHINE_START_CALL_MEMBER( qdrmfgp );
}
-static MACHINE_RESET( qdrmfgp )
+void qdrmfgp_state::machine_reset()
{
- qdrmfgp_state *state = machine.driver_data<qdrmfgp_state>();
- state->m_sndram = state->memregion("konami")->base() + 0x100000;
+ m_sndram = memregion("konami")->base() + 0x100000;
/* reset the IDE controller */
- state->m_gp2_irq_control = 0;
- machine.device("ide")->reset();
+ m_gp2_irq_control = 0;
+ machine().device("ide")->reset();
}
@@ -681,8 +679,7 @@ static MACHINE_CONFIG_START( qdrmfgp, qdrmfgp_state )
MCFG_CPU_PROGRAM_MAP(qdrmfgp_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", qdrmfgp_interrupt, "screen", 0, 1)
- MCFG_MACHINE_START(qdrmfgp)
- MCFG_MACHINE_RESET(qdrmfgp)
+ MCFG_MACHINE_START_OVERRIDE(qdrmfgp_state,qdrmfgp)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_IDE_CONTROLLER_ADD("ide", ide_intf, ide_devices, "hdd", NULL, true)
@@ -697,7 +694,7 @@ static MACHINE_CONFIG_START( qdrmfgp, qdrmfgp_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(qdrmfgp)
+ MCFG_VIDEO_START_OVERRIDE(qdrmfgp_state,qdrmfgp)
MCFG_K056832_ADD("k056832", qdrmfgp_k056832_intf)
MCFG_K053252_ADD("k053252", 32000000/4, qdrmfgp_k053252_intf)
@@ -723,8 +720,7 @@ static MACHINE_CONFIG_START( qdrmfgp2, qdrmfgp_state )
MCFG_CPU_PROGRAM_MAP(qdrmfgp2_map)
MCFG_CPU_VBLANK_INT("screen", qdrmfgp2_interrupt)
- MCFG_MACHINE_START(qdrmfgp2)
- MCFG_MACHINE_RESET(qdrmfgp)
+ MCFG_MACHINE_START_OVERRIDE(qdrmfgp_state,qdrmfgp2)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_IDE_CONTROLLER_ADD("ide", qdrmfgp2_ide_intf, ide_devices, "hdd", NULL, true)
@@ -739,7 +735,7 @@ static MACHINE_CONFIG_START( qdrmfgp2, qdrmfgp_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(qdrmfgp2)
+ MCFG_VIDEO_START_OVERRIDE(qdrmfgp_state,qdrmfgp2)
MCFG_K056832_ADD("k056832", qdrmfgp2_k056832_intf)
MCFG_K053252_ADD("k053252", 32000000/4, qdrmfgp2_k053252_intf)
diff --git a/src/mame/drivers/qix.c b/src/mame/drivers/qix.c
index be1a4c1b630..8f8c4263347 100644
--- a/src/mame/drivers/qix.c
+++ b/src/mame/drivers/qix.c
@@ -560,7 +560,6 @@ static MACHINE_CONFIG_START( qix_base, qix_state )
/* Zookeeper settings and high score table seem especially sensitive to this */
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_RESET(qix)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_PIA6821_ADD("pia0", qix_pia_0_intf)
@@ -584,7 +583,7 @@ static MACHINE_CONFIG_DERIVED( mcu, qix )
MCFG_CPU_ADD("mcu", M68705, COIN_CLOCK_OSC) /* 1.00 MHz */
MCFG_CPU_PROGRAM_MAP(mcu_map)
- MCFG_MACHINE_START(qixmcu)
+ MCFG_MACHINE_START_OVERRIDE(qix_state,qixmcu)
MCFG_PIA6821_MODIFY("pia0", qixmcu_pia_0_intf)
MCFG_PIA6821_MODIFY("pia2", qixmcu_pia_2_intf)
diff --git a/src/mame/drivers/quakeat.c b/src/mame/drivers/quakeat.c
index 85b8b5e6df8..0e248a46d09 100644
--- a/src/mame/drivers/quakeat.c
+++ b/src/mame/drivers/quakeat.c
@@ -74,10 +74,12 @@ public:
device_t *m_pic8259_2;
DECLARE_WRITE_LINE_MEMBER(quakeat_pic8259_1_set_int_line);
DECLARE_READ8_MEMBER(get_slave_ack);
+ virtual void machine_start();
+ virtual void video_start();
};
-static VIDEO_START(quake)
+void quakeat_state::video_start()
{
}
@@ -155,13 +157,12 @@ static IRQ_CALLBACK(irq_callback)
return pic8259_acknowledge( state->m_pic8259_1);
}
-static MACHINE_START(quakeat)
+void quakeat_state::machine_start()
{
- quakeat_state *state = machine.driver_data<quakeat_state>();
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
- state->m_pic8259_1 = machine.device( "pic8259_1" );
- state->m_pic8259_2 = machine.device( "pic8259_2" );
+ m_pic8259_1 = machine().device( "pic8259_1" );
+ m_pic8259_2 = machine().device( "pic8259_2" );
}
/*************************************************************/
@@ -171,7 +172,6 @@ static MACHINE_CONFIG_START( quake, quakeat_state )
MCFG_CPU_PROGRAM_MAP(quake_map)
MCFG_CPU_IO_MAP(quake_io)
- MCFG_MACHINE_START(quakeat)
MCFG_PIC8259_ADD( "pic8259_1", quakeat_pic8259_1_config )
MCFG_PIC8259_ADD( "pic8259_2", quakeat_pic8259_2_config )
@@ -186,7 +186,6 @@ static MACHINE_CONFIG_START( quake, quakeat_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(quake)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/quasar.c b/src/mame/drivers/quasar.c
index c8b6dcd59be..f5a767dc6ce 100644
--- a/src/mame/drivers/quasar.c
+++ b/src/mame/drivers/quasar.c
@@ -301,27 +301,25 @@ static const s2636_interface s2636_2_config =
// Quasar S2650 Main CPU, I8035 sound board
// ****************************************
-static MACHINE_START( quasar )
+MACHINE_START_MEMBER(quasar_state,quasar)
{
- quasar_state *state = machine.driver_data<quasar_state>();
- MACHINE_START_CALL(cvs);
+ MACHINE_START_CALL_MEMBER(cvs);
/* register state save */
- state->save_item(NAME(state->m_effectcontrol));
- state->save_item(NAME(state->m_page));
- state->save_item(NAME(state->m_io_page));
+ save_item(NAME(m_effectcontrol));
+ save_item(NAME(m_page));
+ save_item(NAME(m_io_page));
}
-static MACHINE_RESET( quasar )
+MACHINE_RESET_MEMBER(quasar_state,quasar)
{
- quasar_state *state = machine.driver_data<quasar_state>();
- MACHINE_RESET_CALL(cvs);
+ MACHINE_RESET_CALL_MEMBER(cvs);
- state->m_effectcontrol = 0;
- state->m_page = 0;
- state->m_io_page = 8;
+ m_effectcontrol = 0;
+ m_page = 0;
+ m_io_page = 8;
}
static MACHINE_CONFIG_START( quasar, quasar_state )
@@ -336,8 +334,8 @@ static MACHINE_CONFIG_START( quasar, quasar_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(sound_portmap)
- MCFG_MACHINE_START(quasar)
- MCFG_MACHINE_RESET(quasar)
+ MCFG_MACHINE_START_OVERRIDE(quasar_state,quasar)
+ MCFG_MACHINE_RESET_OVERRIDE(quasar_state,quasar)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
@@ -356,8 +354,8 @@ static MACHINE_CONFIG_START( quasar, quasar_state )
MCFG_S2636_ADD("s2636_1", s2636_1_config)
MCFG_S2636_ADD("s2636_2", s2636_2_config)
- MCFG_PALETTE_INIT(quasar)
- MCFG_VIDEO_START(quasar)
+ MCFG_PALETTE_INIT_OVERRIDE(quasar_state,quasar)
+ MCFG_VIDEO_START_OVERRIDE(quasar_state,quasar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/queen.c b/src/mame/drivers/queen.c
index a2a363506b7..81aabc6722b 100644
--- a/src/mame/drivers/queen.c
+++ b/src/mame/drivers/queen.c
@@ -108,6 +108,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(pc_dack2_w);
DECLARE_WRITE_LINE_MEMBER(pc_dack3_w);
DECLARE_WRITE_LINE_MEMBER(queen_pic8259_1_set_int_line);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -636,37 +638,36 @@ static void ide_interrupt(device_t *device, int state)
static READ8_HANDLER( vga_setting ) { return 0xff; } // hard-code to color
-static MACHINE_START( queen )
+void queen_state::machine_start()
{
- queen_state *state = machine.driver_data<queen_state>();
- state->m_bios_ram = auto_alloc_array(machine, UINT32, 0x10000/4);
- state->m_bios_ext1_ram = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_bios_ext2_ram = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_bios_ext3_ram = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_bios_ext4_ram = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_isa_ram1 = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_isa_ram2 = auto_alloc_array(machine, UINT32, 0x4000/4);
+ m_bios_ram = auto_alloc_array(machine(), UINT32, 0x10000/4);
+ m_bios_ext1_ram = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_bios_ext2_ram = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_bios_ext3_ram = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_bios_ext4_ram = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_isa_ram1 = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_isa_ram2 = auto_alloc_array(machine(), UINT32, 0x4000/4);
- init_pc_common(machine, PCCOMMON_KEYBOARD_AT, queen_set_keyb_int);
+ init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, queen_set_keyb_int);
- state->m_maincpu->set_irq_acknowledge_callback(irq_callback);
- intel82439tx_init(machine);
+ m_maincpu->set_irq_acknowledge_callback(irq_callback);
+ intel82439tx_init(machine());
- kbdc8042_init(machine, &at8042);
- pc_vga_init(machine, vga_setting, NULL);
- pc_vga_io_init(machine, machine.device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine.device("maincpu")->memory().space(AS_IO), 0x0000);
+ kbdc8042_init(machine(), &at8042);
+ pc_vga_init(machine(), ::vga_setting, NULL);
+ pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000);
}
-static MACHINE_RESET( queen )
+void queen_state::machine_reset()
{
- machine.root_device().membank("bios_bank")->set_base(machine.root_device().memregion("bios")->base() + 0x30000);
- machine.root_device().membank("bios_ext1")->set_base(machine.root_device().memregion("bios")->base() + 0x20000);
- machine.root_device().membank("bios_ext2")->set_base(machine.root_device().memregion("bios")->base() + 0x24000);
- machine.root_device().membank("bios_ext3")->set_base(machine.root_device().memregion("bios")->base() + 0x28000);
- machine.root_device().membank("bios_ext4")->set_base(machine.root_device().memregion("bios")->base() + 0x2c000);
- machine.root_device().membank("video_bank1")->set_base(machine.root_device().memregion("video_bios")->base() + 0);
- machine.root_device().membank("video_bank2")->set_base(machine.root_device().memregion("video_bios")->base() + 0x4000);
+ machine().root_device().membank("bios_bank")->set_base(machine().root_device().memregion("bios")->base() + 0x30000);
+ machine().root_device().membank("bios_ext1")->set_base(machine().root_device().memregion("bios")->base() + 0x20000);
+ machine().root_device().membank("bios_ext2")->set_base(machine().root_device().memregion("bios")->base() + 0x24000);
+ machine().root_device().membank("bios_ext3")->set_base(machine().root_device().memregion("bios")->base() + 0x28000);
+ machine().root_device().membank("bios_ext4")->set_base(machine().root_device().memregion("bios")->base() + 0x2c000);
+ machine().root_device().membank("video_bank1")->set_base(machine().root_device().memregion("video_bios")->base() + 0);
+ machine().root_device().membank("video_bank2")->set_base(machine().root_device().memregion("video_bios")->base() + 0x4000);
}
@@ -683,8 +684,6 @@ static MACHINE_CONFIG_START( queen, queen_state )
MCFG_CPU_PROGRAM_MAP(queen_map)
MCFG_CPU_IO_MAP(queen_io)
- MCFG_MACHINE_START(queen)
- MCFG_MACHINE_RESET(queen)
MCFG_PIT8254_ADD( "pit8254", queen_pit8254_config )
MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
diff --git a/src/mame/drivers/quizdna.c b/src/mame/drivers/quizdna.c
index aa0d24fbe6e..e5db26bde80 100644
--- a/src/mame/drivers/quizdna.c
+++ b/src/mame/drivers/quizdna.c
@@ -460,7 +460,6 @@ static MACHINE_CONFIG_START( quizdna, quizdna_state )
MCFG_GFXDECODE(quizdna)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(quizdna)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/quizo.c b/src/mame/drivers/quizo.c
index 2c87d921d2f..ab6d5b3a12f 100644
--- a/src/mame/drivers/quizo.c
+++ b/src/mame/drivers/quizo.c
@@ -41,6 +41,7 @@ public:
DECLARE_WRITE8_MEMBER(port70_w);
DECLARE_WRITE8_MEMBER(port60_w);
DECLARE_DRIVER_INIT(quizo);
+ virtual void palette_init();
};
@@ -50,9 +51,9 @@ public:
static const UINT8 rombankLookup[]={ 2, 3, 4, 4, 4, 4, 4, 5, 0, 1};
-static PALETTE_INIT(quizo)
+void quizo_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
for (i = 0;i < 16;i++)
{
@@ -73,7 +74,7 @@ static PALETTE_INIT(quizo)
bit2 = (*color_prom >> 7) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
color_prom++;
}
}
@@ -218,7 +219,6 @@ static MACHINE_CONFIG_START( quizo, quizo_state )
MCFG_SCREEN_UPDATE_STATIC(quizo)
MCFG_PALETTE_LENGTH(16)
- MCFG_PALETTE_INIT(quizo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/quizpani.c b/src/mame/drivers/quizpani.c
index b664f877cbe..73ca7a5de9e 100644
--- a/src/mame/drivers/quizpani.c
+++ b/src/mame/drivers/quizpani.c
@@ -210,7 +210,6 @@ static MACHINE_CONFIG_START( quizpani, quizpani_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_STATIC(quizpani)
- MCFG_VIDEO_START(quizpani)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/quizpun2.c b/src/mame/drivers/quizpun2.c
index 38bfebfcf10..6d0ce580939 100644
--- a/src/mame/drivers/quizpun2.c
+++ b/src/mame/drivers/quizpun2.c
@@ -110,6 +110,8 @@ public:
DECLARE_WRITE8_MEMBER(quizpun2_soundlatch_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -144,14 +146,13 @@ WRITE8_MEMBER(quizpun2_state::fg_ram_w)
m_fg_tmap->mark_tile_dirty(offset/4);
}
-static VIDEO_START(quizpun2)
+void quizpun2_state::video_start()
{
- quizpun2_state *state = machine.driver_data<quizpun2_state>();
- state->m_bg_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizpun2_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS,8,16,0x20,0x20);
- state->m_fg_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizpun2_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS,8,16,0x20,0x20);
+ m_bg_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(quizpun2_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,8,16,0x20,0x20);
+ m_fg_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(quizpun2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,8,16,0x20,0x20);
- state->m_bg_tmap->set_transparent_pen(0);
- state->m_fg_tmap->set_transparent_pen(0);
+ m_bg_tmap->set_transparent_pen(0);
+ m_fg_tmap->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16(quizpun2)
@@ -189,10 +190,9 @@ bitmap.fill(get_black_pen(screen.machine()), cliprect);
***************************************************************************/
-static MACHINE_RESET( quizpun2 )
+void quizpun2_state::machine_reset()
{
- quizpun2_state *state = machine.driver_data<quizpun2_state>();
- struct prot_t &prot = state->m_prot;
+ struct prot_t &prot = m_prot;
prot.state = STATE_IDLE;
prot.wait_param = 0;
prot.param = 0;
@@ -496,7 +496,6 @@ static MACHINE_CONFIG_START( quizpun2, quizpun2_state )
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
// NMI generated by main CPU
- MCFG_MACHINE_RESET( quizpun2 )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -509,7 +508,6 @@ static MACHINE_CONFIG_START( quizpun2, quizpun2_state )
MCFG_GFXDECODE(quizpun2)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_VIDEO_START(quizpun2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/quizshow.c b/src/mame/drivers/quizshow.c
index 3cfe9a69641..46548f401a6 100644
--- a/src/mame/drivers/quizshow.c
+++ b/src/mame/drivers/quizshow.c
@@ -60,6 +60,9 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(quizshow_category_select);
DECLARE_DRIVER_INIT(quizshow);
TILE_GET_INFO_MEMBER(get_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -69,12 +72,12 @@ public:
***************************************************************************/
-PALETTE_INIT( quizshow )
+void quizshow_state::palette_init()
{
- machine.colortable = colortable_alloc(machine, 2);
+ machine().colortable = colortable_alloc(machine(), 2);
- colortable_palette_set_color(machine.colortable, 0, RGB_BLACK);
- colortable_palette_set_color(machine.colortable, 1, RGB_WHITE);
+ colortable_palette_set_color(machine().colortable, 0, RGB_BLACK);
+ colortable_palette_set_color(machine().colortable, 1, RGB_WHITE);
// normal, blink/off, invert, blink+invert
const int lut_pal[16] = {
@@ -85,7 +88,7 @@ PALETTE_INIT( quizshow )
};
for (int i = 0; i < 16 ; i++)
- colortable_entry_set_value(machine.colortable, i, lut_pal[i]);
+ colortable_entry_set_value(machine().colortable, i, lut_pal[i]);
}
TILE_GET_INFO_MEMBER(quizshow_state::get_tile_info)
@@ -98,10 +101,9 @@ TILE_GET_INFO_MEMBER(quizshow_state::get_tile_info)
SET_TILE_INFO_MEMBER(0, code & 0x3f, color, 0);
}
-VIDEO_START( quizshow )
+void quizshow_state::video_start()
{
- quizshow_state *state = machine.driver_data<quizshow_state>();
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizshow_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 16, 32, 16);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(quizshow_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 32, 16);
}
SCREEN_UPDATE_IND16( quizshow )
@@ -362,12 +364,11 @@ static TIMER_DEVICE_CALLBACK( quizshow_clock_timer_cb )
state->m_tilemap->mark_all_dirty();
}
-static MACHINE_RESET(quizshow)
+void quizshow_state::machine_reset()
{
- quizshow_state *state = machine.driver_data<quizshow_state>();
- state->m_category_enable = 0;
- state->m_tape_head_pos = 0;
+ m_category_enable = 0;
+ m_tape_head_pos = 0;
}
static MACHINE_CONFIG_START( quizshow, quizshow_state )
@@ -386,9 +387,6 @@ static MACHINE_CONFIG_START( quizshow, quizshow_state )
MCFG_GFXDECODE(quizshow)
MCFG_PALETTE_LENGTH(8*2)
- MCFG_PALETTE_INIT(quizshow)
- MCFG_VIDEO_START(quizshow)
- MCFG_MACHINE_RESET(quizshow)
/* sound hardware (discrete) */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/r2dtank.c b/src/mame/drivers/r2dtank.c
index db781d2ffc6..625d2c38569 100644
--- a/src/mame/drivers/r2dtank.c
+++ b/src/mame/drivers/r2dtank.c
@@ -75,6 +75,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(flipscreen_w);
DECLARE_WRITE_LINE_MEMBER(display_enable_changed);
DECLARE_WRITE8_MEMBER(pia_comp_w);
+ virtual void machine_start();
};
@@ -296,13 +297,12 @@ static const pia6821_interface pia_audio_intf =
};
-static MACHINE_START( r2dtank )
+void r2dtank_state::machine_start()
{
- r2dtank_state *state = machine.driver_data<r2dtank_state>();
/* setup for save states */
- state_save_register_global(machine, state->m_flipscreen);
- state_save_register_global(machine, state->m_ttl74123_output);
- state_save_register_global(machine, state->m_AY8910_selected);
+ state_save_register_global(machine(), m_flipscreen);
+ state_save_register_global(machine(), m_ttl74123_output);
+ state_save_register_global(machine(), m_AY8910_selected);
}
@@ -539,7 +539,6 @@ static MACHINE_CONFIG_START( r2dtank, r2dtank_state )
MCFG_CPU_ADD("audiocpu", M6802,3000000) /* ?? */
MCFG_CPU_PROGRAM_MAP(r2dtank_audio_map)
- MCFG_MACHINE_START(r2dtank)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
diff --git a/src/mame/drivers/r2dx_v33.c b/src/mame/drivers/r2dx_v33.c
index 098712275b6..8dfb67ed251 100644
--- a/src/mame/drivers/r2dx_v33.c
+++ b/src/mame/drivers/r2dx_v33.c
@@ -69,6 +69,7 @@ public:
tilemap_t *m_md_tilemap;
tilemap_t *m_fg_tilemap;
tilemap_t *m_tx_tilemap;
+ virtual void video_start();
};
@@ -199,18 +200,17 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-static VIDEO_START( rdx_v33 )
+void r2dx_v33_state::video_start()
{
- r2dx_v33_state *state = machine.driver_data<r2dx_v33_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS,16,16,32,32);
- state->m_md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_md_tile_info),state), TILEMAP_SCAN_ROWS,16,16,32,32);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS,16,16,32,32);
- state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS,8, 8, 64,32);
-
- state->m_bg_tilemap->set_transparent_pen(15);
- state->m_md_tilemap->set_transparent_pen(15);
- state->m_fg_tilemap->set_transparent_pen(15);
- state->m_tx_tilemap->set_transparent_pen(15);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_md_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_md_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_tx_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS,8, 8, 64,32);
+
+ m_bg_tilemap->set_transparent_pen(15);
+ m_md_tilemap->set_transparent_pen(15);
+ m_fg_tilemap->set_transparent_pen(15);
+ m_tx_tilemap->set_transparent_pen(15);
}
static SCREEN_UPDATE_IND16( rdx_v33 )
@@ -694,7 +694,7 @@ static MACHINE_CONFIG_START( rdx_v33, r2dx_v33_state )
MCFG_CPU_PROGRAM_MAP(rdx_v33_map)
MCFG_CPU_VBLANK_INT("screen", rdx_v33_interrupt)
- //MCFG_MACHINE_RESET(rdx_v33)
+ //MCFG_MACHINE_RESET_OVERRIDE(r2dx_v33_state,rdx_v33)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -709,7 +709,6 @@ static MACHINE_CONFIG_START( rdx_v33, r2dx_v33_state )
MCFG_GFXDECODE(rdx_v33)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(rdx_v33)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -742,7 +741,6 @@ static MACHINE_CONFIG_START( nzerotea, r2dx_v33_state )
MCFG_GFXDECODE(rdx_v33)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(rdx_v33)
/* sound hardware */
// SEIBU_SOUND_SYSTEM_YM2151_RAIDEN2_INTERFACE(28636360/8,28636360/28,1,2)
diff --git a/src/mame/drivers/rabbit.c b/src/mame/drivers/rabbit.c
index 524983e2ec9..9d580e32f25 100644
--- a/src/mame/drivers/rabbit.c
+++ b/src/mame/drivers/rabbit.c
@@ -136,6 +136,7 @@ public:
TILE_GET_INFO_MEMBER(get_rabbit_tilemap1_tile_info);
TILE_GET_INFO_MEMBER(get_rabbit_tilemap2_tile_info);
TILE_GET_INFO_MEMBER(get_rabbit_tilemap3_tile_info);
+ virtual void video_start();
};
@@ -386,33 +387,32 @@ static void draw_sprite_bitmap( running_machine &machine, bitmap_ind16 &bitmap,
}
-static VIDEO_START(rabbit)
+void rabbit_state::video_start()
{
- rabbit_state *state = machine.driver_data<rabbit_state>();
/* the tilemaps are bigger than the regions the cpu can see, need to allocate the ram here */
/* or maybe not for this game/hw .... */
- state->m_tilemap_ram[0] = auto_alloc_array_clear(machine, UINT32, 0x20000/4);
- state->m_tilemap_ram[1] = auto_alloc_array_clear(machine, UINT32, 0x20000/4);
- state->m_tilemap_ram[2] = auto_alloc_array_clear(machine, UINT32, 0x20000/4);
- state->m_tilemap_ram[3] = auto_alloc_array_clear(machine, UINT32, 0x20000/4);
+ m_tilemap_ram[0] = auto_alloc_array_clear(machine(), UINT32, 0x20000/4);
+ m_tilemap_ram[1] = auto_alloc_array_clear(machine(), UINT32, 0x20000/4);
+ m_tilemap_ram[2] = auto_alloc_array_clear(machine(), UINT32, 0x20000/4);
+ m_tilemap_ram[3] = auto_alloc_array_clear(machine(), UINT32, 0x20000/4);
- state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap0_tile_info),state),TILEMAP_SCAN_ROWS,16, 16, 128,32);
- state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap1_tile_info),state),TILEMAP_SCAN_ROWS,16, 16, 128,32);
- state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap2_tile_info),state),TILEMAP_SCAN_ROWS,16, 16, 128,32);
- state->m_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap3_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 128,32);
+ m_tilemap[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap0_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
+ m_tilemap[1] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap1_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
+ m_tilemap[2] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap2_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
+ m_tilemap[3] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap3_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 128,32);
/* the tilemaps mix 4bpp and 8bbp tiles, we split these into 2 groups, and set a different transpen for each group */
- state->m_tilemap[0]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT);
- state->m_tilemap[0]->map_pen_to_layer(1, 255, TILEMAP_PIXEL_TRANSPARENT);
- state->m_tilemap[1]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT);
- state->m_tilemap[1]->map_pen_to_layer(1, 255, TILEMAP_PIXEL_TRANSPARENT);
- state->m_tilemap[2]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT);
- state->m_tilemap[2]->map_pen_to_layer(1, 255, TILEMAP_PIXEL_TRANSPARENT);
- state->m_tilemap[3]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT);
- state->m_tilemap[3]->map_pen_to_layer(1, 255, TILEMAP_PIXEL_TRANSPARENT);
-
- state->m_sprite_bitmap = auto_bitmap_ind16_alloc(machine,0x1000,0x1000);
- state->m_sprite_clip.set(0, 0x1000-1, 0, 0x1000-1);
+ m_tilemap[0]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT);
+ m_tilemap[0]->map_pen_to_layer(1, 255, TILEMAP_PIXEL_TRANSPARENT);
+ m_tilemap[1]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT);
+ m_tilemap[1]->map_pen_to_layer(1, 255, TILEMAP_PIXEL_TRANSPARENT);
+ m_tilemap[2]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT);
+ m_tilemap[2]->map_pen_to_layer(1, 255, TILEMAP_PIXEL_TRANSPARENT);
+ m_tilemap[3]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT);
+ m_tilemap[3]->map_pen_to_layer(1, 255, TILEMAP_PIXEL_TRANSPARENT);
+
+ m_sprite_bitmap = auto_bitmap_ind16_alloc(machine(),0x1000,0x1000);
+ m_sprite_clip.set(0, 0x1000-1, 0, 0x1000-1);
}
/*
@@ -896,7 +896,6 @@ static MACHINE_CONFIG_START( rabbit, rabbit_state )
MCFG_PALETTE_LENGTH(0x4000)
MCFG_PALETTE_INIT( all_black )
- MCFG_VIDEO_START(rabbit)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/raiden.c b/src/mame/drivers/raiden.c
index 71f0115519b..5e65ad7583b 100644
--- a/src/mame/drivers/raiden.c
+++ b/src/mame/drivers/raiden.c
@@ -273,7 +273,6 @@ static MACHINE_CONFIG_START( raiden, raiden_state )
MCFG_GFXDECODE(raiden)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(raiden)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM3812_RAIDEN_INTERFACE(XTAL_14_31818MHz/4,XTAL_12MHz/12) // frequency and pin 7 verified (pin set in audio\seibu.h)
@@ -283,7 +282,7 @@ static MACHINE_CONFIG_DERIVED( raidena, raiden )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(alt_main_map)
- MCFG_VIDEO_START(raidena)
+ MCFG_VIDEO_START_OVERRIDE(raiden_state,raidena)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( raidenu, raiden )
@@ -294,7 +293,7 @@ static MACHINE_CONFIG_DERIVED( raidenu, raiden )
MCFG_CPU_MODIFY("sub")
MCFG_CPU_PROGRAM_MAP(raidenu_sub_map)
- MCFG_VIDEO_START(raidena)
+ MCFG_VIDEO_START_OVERRIDE(raiden_state,raidena)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/raiden2.c b/src/mame/drivers/raiden2.c
index 22ec22590fa..87cbdf8dddf 100644
--- a/src/mame/drivers/raiden2.c
+++ b/src/mame/drivers/raiden2.c
@@ -911,17 +911,16 @@ TILE_GET_INFO_MEMBER(raiden2_state::get_text_tile_info)
/* VIDEO START (move to video file) */
-static VIDEO_START( raiden2 )
+VIDEO_START_MEMBER(raiden2_state,raiden2)
{
- raiden2_state *state = machine.driver_data<raiden2_state>();
- state->text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64,32 );
- state->background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_back_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
- state->midground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_mid_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
- state->foreground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_fore_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
+ text_layer = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64,32 );
+ background_layer = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_back_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
+ midground_layer = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_mid_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
+ foreground_layer = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_fore_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
- state->midground_layer->set_transparent_pen(15);
- state->foreground_layer->set_transparent_pen(15);
- state->text_layer->set_transparent_pen(15);
+ midground_layer->set_transparent_pen(15);
+ foreground_layer->set_transparent_pen(15);
+ text_layer->set_transparent_pen(15);
}
/* SCREEN_UPDATE_IND16 (move to video file) */
@@ -1095,58 +1094,54 @@ void raiden2_state::common_reset()
cop_itoa_digit_count = 4; //TODO: Raiden 2 never inits the BCD register, value here is a guess (8 digits, as WR is 10.000.000 + a)
}
-static MACHINE_RESET(raiden2)
+MACHINE_RESET_MEMBER(raiden2_state,raiden2)
{
- raiden2_state *state = machine.driver_data<raiden2_state>();
- state->common_reset();
+ common_reset();
sprcpt_init();
- MACHINE_RESET_CALL(seibu_sound);
+ MACHINE_RESET_CALL_LEGACY(seibu_sound);
- state->membank("mainbank")->set_entry(1);
+ membank("mainbank")->set_entry(1);
- state->prg_bank = 0;
+ prg_bank = 0;
//cop_init();
}
-static MACHINE_RESET(raidendx)
+MACHINE_RESET_MEMBER(raiden2_state,raidendx)
{
- raiden2_state *state = machine.driver_data<raiden2_state>();
- state->common_reset();
+ common_reset();
sprcpt_init();
- MACHINE_RESET_CALL(seibu_sound);
+ MACHINE_RESET_CALL_LEGACY(seibu_sound);
- state->membank("mainbank")->set_entry(8);
+ membank("mainbank")->set_entry(8);
- state->prg_bank = 0x08;
+ prg_bank = 0x08;
//cop_init();
}
-static MACHINE_RESET(zeroteam)
+MACHINE_RESET_MEMBER(raiden2_state,zeroteam)
{
- raiden2_state *state = machine.driver_data<raiden2_state>();
- state->bg_bank = 0;
- state->fg_bank = 2;
- state->mid_bank = 1;
+ bg_bank = 0;
+ fg_bank = 2;
+ mid_bank = 1;
sprcpt_init();
- MACHINE_RESET_CALL(seibu_sound);
+ MACHINE_RESET_CALL_LEGACY(seibu_sound);
- state->membank("mainbank")->set_entry(1);
+ membank("mainbank")->set_entry(1);
- state->prg_bank = 0;
+ prg_bank = 0;
//cop_init();
}
-static MACHINE_RESET(xsedae)
+MACHINE_RESET_MEMBER(raiden2_state,xsedae)
{
- raiden2_state *state = machine.driver_data<raiden2_state>();
- state->bg_bank = 0;
- state->fg_bank = 2;
- state->mid_bank = 1;
+ bg_bank = 0;
+ fg_bank = 2;
+ mid_bank = 1;
sprcpt_init();
- MACHINE_RESET_CALL(seibu_sound);
+ MACHINE_RESET_CALL_LEGACY(seibu_sound);
- //state->membank("mainbank")->set_entry(1);
+ //membank("mainbank")->set_entry(1);
//cop_init();
}
@@ -1798,7 +1793,7 @@ static MACHINE_CONFIG_START( raiden2, raiden2_state )
MCFG_CPU_PROGRAM_MAP(raiden2_mem)
MCFG_CPU_VBLANK_INT("screen", raiden2_interrupt)
- MCFG_MACHINE_RESET(raiden2)
+ MCFG_MACHINE_RESET_OVERRIDE(raiden2_state,raiden2)
SEIBU2_RAIDEN2_SOUND_SYSTEM_CPU(XTAL_28_63636MHz/8)
@@ -1814,7 +1809,7 @@ static MACHINE_CONFIG_START( raiden2, raiden2_state )
MCFG_GFXDECODE(raiden2)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(raiden2)
+ MCFG_VIDEO_START_OVERRIDE(raiden2_state,raiden2)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM2151_RAIDEN2_INTERFACE(XTAL_28_63636MHz/8,XTAL_28_63636MHz/28,1,2)
@@ -1830,7 +1825,7 @@ static MACHINE_CONFIG_DERIVED( xsedae, raiden2 )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(xsedae_mem)
- MCFG_MACHINE_RESET(xsedae)
+ MCFG_MACHINE_RESET_OVERRIDE(raiden2_state,xsedae)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1843,7 +1838,7 @@ static MACHINE_CONFIG_DERIVED( raidendx, raiden2 )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(raidendx_mem)
- MCFG_MACHINE_RESET(raidendx)
+ MCFG_MACHINE_RESET_OVERRIDE(raiden2_state,raidendx)
MACHINE_CONFIG_END
@@ -1854,7 +1849,7 @@ static MACHINE_CONFIG_START( zeroteam, raiden2_state )
MCFG_CPU_PROGRAM_MAP(zeroteam_mem)
MCFG_CPU_VBLANK_INT("screen", raiden2_interrupt)
- MCFG_MACHINE_RESET(zeroteam)
+ MCFG_MACHINE_RESET_OVERRIDE(raiden2_state,zeroteam)
SEIBU_NEWZEROTEAM_SOUND_SYSTEM_CPU(XTAL_28_63636MHz/8)
@@ -1870,7 +1865,7 @@ static MACHINE_CONFIG_START( zeroteam, raiden2_state )
MCFG_GFXDECODE(raiden2)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(raiden2)
+ MCFG_VIDEO_START_OVERRIDE(raiden2_state,raiden2)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(XTAL_28_63636MHz/8, 1320000/* ? */)
diff --git a/src/mame/drivers/rainbow.c b/src/mame/drivers/rainbow.c
index 040aa84baee..b3f3acd33fe 100644
--- a/src/mame/drivers/rainbow.c
+++ b/src/mame/drivers/rainbow.c
@@ -662,14 +662,13 @@ static const tc0140syt_interface rbisland_tc0140syt_intf =
"maincpu", "audiocpu"
};
-static MACHINE_START( rbisland )
+void rbisland_state::machine_start()
{
- rbisland_state *state = machine.driver_data<rbisland_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_pc080sn = machine.device("pc080sn");
- state->m_pc090oj = machine.device("pc090oj");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_pc080sn = machine().device("pc080sn");
+ m_pc090oj = machine().device("pc090oj");
}
static MACHINE_CONFIG_START( rbisland, rbisland_state )
@@ -684,7 +683,6 @@ static MACHINE_CONFIG_START( rbisland, rbisland_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
- MCFG_MACHINE_START(rbisland)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -725,7 +723,6 @@ static MACHINE_CONFIG_START( jumping, rbisland_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough ? */
- MCFG_MACHINE_START(rbisland)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -738,7 +735,7 @@ static MACHINE_CONFIG_START( jumping, rbisland_state )
MCFG_GFXDECODE(jumping)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(jumping)
+ MCFG_VIDEO_START_OVERRIDE(rbisland_state,jumping)
MCFG_PC080SN_ADD("pc080sn", jumping_pc080sn_intf)
diff --git a/src/mame/drivers/rallyx.c b/src/mame/drivers/rallyx.c
index 9a623490741..2633fd454e8 100644
--- a/src/mame/drivers/rallyx.c
+++ b/src/mame/drivers/rallyx.c
@@ -871,23 +871,21 @@ static const samples_interface rallyx_samples_interface =
*
*************************************/
-static MACHINE_START( rallyx )
+MACHINE_START_MEMBER(rallyx_state,rallyx)
{
- rallyx_state *state = machine.driver_data<rallyx_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_samples = machine.device<samples_device>("samples");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_samples = machine().device<samples_device>("samples");
- state->save_item(NAME(state->m_last_bang));
- state->save_item(NAME(state->m_stars_enable));
+ save_item(NAME(m_last_bang));
+ save_item(NAME(m_stars_enable));
}
-static MACHINE_RESET( rallyx )
+MACHINE_RESET_MEMBER(rallyx_state,rallyx)
{
- rallyx_state *state = machine.driver_data<rallyx_state>();
- state->m_last_bang = 0;
- state->m_stars_enable = 0;
+ m_last_bang = 0;
+ m_stars_enable = 0;
}
static INTERRUPT_GEN( rallyx_vblank_irq )
@@ -914,8 +912,8 @@ static MACHINE_CONFIG_START( rallyx, rallyx_state )
MCFG_CPU_IO_MAP(io_map)
MCFG_CPU_VBLANK_INT("screen", rallyx_vblank_irq)
- MCFG_MACHINE_START(rallyx)
- MCFG_MACHINE_RESET(rallyx)
+ MCFG_MACHINE_START_OVERRIDE(rallyx_state,rallyx)
+ MCFG_MACHINE_RESET_OVERRIDE(rallyx_state,rallyx)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -930,8 +928,8 @@ static MACHINE_CONFIG_START( rallyx, rallyx_state )
MCFG_GFXDECODE(rallyx)
MCFG_PALETTE_LENGTH(64*4+4)
- MCFG_PALETTE_INIT(rallyx)
- MCFG_VIDEO_START(rallyx)
+ MCFG_PALETTE_INIT_OVERRIDE(rallyx_state,rallyx)
+ MCFG_VIDEO_START_OVERRIDE(rallyx_state,rallyx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -952,8 +950,8 @@ static MACHINE_CONFIG_START( jungler, rallyx_state )
MCFG_CPU_PROGRAM_MAP(jungler_map)
MCFG_CPU_VBLANK_INT("screen", jungler_vblank_irq)
- MCFG_MACHINE_START(rallyx)
- MCFG_MACHINE_RESET(rallyx)
+ MCFG_MACHINE_START_OVERRIDE(rallyx_state,rallyx)
+ MCFG_MACHINE_RESET_OVERRIDE(rallyx_state,rallyx)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -968,8 +966,8 @@ static MACHINE_CONFIG_START( jungler, rallyx_state )
MCFG_GFXDECODE(jungler)
MCFG_PALETTE_LENGTH(64*4+4+64)
- MCFG_PALETTE_INIT(jungler)
- MCFG_VIDEO_START(jungler)
+ MCFG_PALETTE_INIT_OVERRIDE(rallyx_state,jungler)
+ MCFG_VIDEO_START_OVERRIDE(rallyx_state,jungler)
/* sound hardware */
MCFG_FRAGMENT_ADD(locomotn_sound)
@@ -981,7 +979,7 @@ static MACHINE_CONFIG_DERIVED( tactcian, jungler )
/* basic machine hardware */
/* video hardware */
- MCFG_VIDEO_START(locomotn)
+ MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(locomotn)
MACHINE_CONFIG_END
@@ -995,7 +993,7 @@ static MACHINE_CONFIG_DERIVED( locomotn, jungler )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(locomotn)
- MCFG_VIDEO_START(locomotn)
+ MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn)
MACHINE_CONFIG_END
@@ -1007,7 +1005,7 @@ static MACHINE_CONFIG_DERIVED( commsega, jungler )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(locomotn)
- MCFG_VIDEO_START(commsega)
+ MCFG_VIDEO_START_OVERRIDE(rallyx_state,commsega)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/rampart.c b/src/mame/drivers/rampart.c
index 5fef8c3ceb4..0b81887cb84 100644
--- a/src/mame/drivers/rampart.c
+++ b/src/mame/drivers/rampart.c
@@ -61,20 +61,19 @@ static void scanline_update(screen_device &screen, int scanline)
*
*************************************/
-static MACHINE_START( rampart )
+MACHINE_START_MEMBER(rampart_state,rampart)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( rampart )
+MACHINE_RESET_MEMBER(rampart_state,rampart)
{
- rampart_state *state = machine.driver_data<rampart_state>();
- atarigen_eeprom_reset(state);
- atarigen_slapstic_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, scanline_update, 32);
+ atarigen_eeprom_reset(this);
+ atarigen_slapstic_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, scanline_update, 32);
}
@@ -349,8 +348,8 @@ static MACHINE_CONFIG_START( rampart, rampart_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
- MCFG_MACHINE_START(rampart)
- MCFG_MACHINE_RESET(rampart)
+ MCFG_MACHINE_START_OVERRIDE(rampart_state,rampart)
+ MCFG_MACHINE_RESET_OVERRIDE(rampart_state,rampart)
MCFG_NVRAM_ADD_1FILL("eeprom")
MCFG_WATCHDOG_VBLANK_INIT(8)
@@ -365,7 +364,7 @@ static MACHINE_CONFIG_START( rampart, rampart_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(rampart)
- MCFG_VIDEO_START(rampart)
+ MCFG_VIDEO_START_OVERRIDE(rampart_state,rampart)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/rastan.c b/src/mame/drivers/rastan.c
index b7094f2127d..b044b628c16 100644
--- a/src/mame/drivers/rastan.c
+++ b/src/mame/drivers/rastan.c
@@ -357,34 +357,32 @@ static const msm5205_interface msm5205_config =
MSM5205_S48_4B /* 8 kHz */
};
-static MACHINE_START( rastan )
+void rastan_state::machine_start()
{
- rastan_state *state = machine.driver_data<rastan_state>();
- UINT8 *ROM = state->memregion("audiocpu")->base();
+ UINT8 *ROM = memregion("audiocpu")->base();
- state->membank("bank1")->configure_entry(0, &ROM[0x00000]);
- state->membank("bank1")->configure_entries(1, 3, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entry(0, &ROM[0x00000]);
+ membank("bank1")->configure_entries(1, 3, &ROM[0x10000], 0x4000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_pc080sn = machine.device("pc080sn");
- state->m_pc090oj = machine.device("pc090oj");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_pc080sn = machine().device("pc080sn");
+ m_pc090oj = machine().device("pc090oj");
- state->save_item(NAME(state->m_sprite_ctrl));
- state->save_item(NAME(state->m_sprites_flipscreen));
+ save_item(NAME(m_sprite_ctrl));
+ save_item(NAME(m_sprites_flipscreen));
- state->save_item(NAME(state->m_adpcm_pos));
- state->save_item(NAME(state->m_adpcm_data));
+ save_item(NAME(m_adpcm_pos));
+ save_item(NAME(m_adpcm_data));
}
-static MACHINE_RESET( rastan )
+void rastan_state::machine_reset()
{
- rastan_state *state = machine.driver_data<rastan_state>();
- state->m_sprite_ctrl = 0;
- state->m_sprites_flipscreen = 0;
- state->m_adpcm_pos = 0;
- state->m_adpcm_data = -1;
+ m_sprite_ctrl = 0;
+ m_sprites_flipscreen = 0;
+ m_adpcm_pos = 0;
+ m_adpcm_data = -1;
}
@@ -416,8 +414,6 @@ static MACHINE_CONFIG_START( rastan, rastan_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
- MCFG_MACHINE_START(rastan)
- MCFG_MACHINE_RESET(rastan)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/rbmk.c b/src/mame/drivers/rbmk.c
index b3a054db364..c5716ed10b5 100644
--- a/src/mame/drivers/rbmk.c
+++ b/src/mame/drivers/rbmk.c
@@ -77,6 +77,7 @@ public:
DECLARE_WRITE8_MEMBER(rbmk_mcu_io_w);
DECLARE_WRITE8_MEMBER(mcu_io_mux_w);
DECLARE_WRITE16_MEMBER(eeprom_w);
+ virtual void video_start();
};
@@ -492,7 +493,7 @@ static GFXDECODE_START( rbmk )
GFXDECODE_ENTRY( "gfx2", 0, rbmk8_layout, 0x100, 16 )
GFXDECODE_END
-static VIDEO_START(rbmk)
+void rbmk_state::video_start()
{
}
@@ -553,7 +554,6 @@ static MACHINE_CONFIG_START( rbmk, rbmk_state )
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(rbmk)
MCFG_EEPROM_93C46_ADD("eeprom")
diff --git a/src/mame/drivers/realbrk.c b/src/mame/drivers/realbrk.c
index 31ebefc18be..94c651ee180 100644
--- a/src/mame/drivers/realbrk.c
+++ b/src/mame/drivers/realbrk.c
@@ -773,7 +773,6 @@ static MACHINE_CONFIG_START( realbrk, realbrk_state )
MCFG_GFXDECODE(realbrk)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_VIDEO_START(realbrk)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/redclash.c b/src/mame/drivers/redclash.c
index 1dcae5fdea6..edbf1aac9e6 100644
--- a/src/mame/drivers/redclash.c
+++ b/src/mame/drivers/redclash.c
@@ -324,32 +324,30 @@ GFXDECODE_END
-static MACHINE_START( redclash )
+MACHINE_START_MEMBER(ladybug_state,redclash)
{
- ladybug_state *state = machine.driver_data<ladybug_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_star_speed));
- state->save_item(NAME(state->m_gfxbank));
- state->save_item(NAME(state->m_stars_enable));
- state->save_item(NAME(state->m_stars_speed));
- state->save_item(NAME(state->m_stars_state));
- state->save_item(NAME(state->m_stars_offset));
- state->save_item(NAME(state->m_stars_count));
+ save_item(NAME(m_star_speed));
+ save_item(NAME(m_gfxbank));
+ save_item(NAME(m_stars_enable));
+ save_item(NAME(m_stars_speed));
+ save_item(NAME(m_stars_state));
+ save_item(NAME(m_stars_offset));
+ save_item(NAME(m_stars_count));
}
-static MACHINE_RESET( redclash )
+MACHINE_RESET_MEMBER(ladybug_state,redclash)
{
- ladybug_state *state = machine.driver_data<ladybug_state>();
-
- state->m_star_speed = 0;
- state->m_gfxbank = 0;
- state->m_stars_enable = 0;
- state->m_stars_speed = 0;
- state->m_stars_state = 0;
- state->m_stars_offset = 0;
- state->m_stars_count = 0;
+
+ m_star_speed = 0;
+ m_gfxbank = 0;
+ m_stars_enable = 0;
+ m_stars_speed = 0;
+ m_stars_state = 0;
+ m_stars_offset = 0;
+ m_stars_count = 0;
}
static MACHINE_CONFIG_START( zerohour, ladybug_state )
@@ -358,8 +356,8 @@ static MACHINE_CONFIG_START( zerohour, ladybug_state )
MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz */
MCFG_CPU_PROGRAM_MAP(zerohour_map)
- MCFG_MACHINE_START(redclash)
- MCFG_MACHINE_RESET(redclash)
+ MCFG_MACHINE_START_OVERRIDE(ladybug_state,redclash)
+ MCFG_MACHINE_RESET_OVERRIDE(ladybug_state,redclash)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -373,8 +371,8 @@ static MACHINE_CONFIG_START( zerohour, ladybug_state )
MCFG_GFXDECODE(redclash)
MCFG_PALETTE_LENGTH(4*8+4*16+32)
- MCFG_PALETTE_INIT(redclash)
- MCFG_VIDEO_START(redclash)
+ MCFG_PALETTE_INIT_OVERRIDE(ladybug_state,redclash)
+ MCFG_VIDEO_START_OVERRIDE(ladybug_state,redclash)
/* sound hardware */
MACHINE_CONFIG_END
@@ -386,8 +384,8 @@ static MACHINE_CONFIG_START( redclash, ladybug_state )
MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz */
MCFG_CPU_PROGRAM_MAP(redclash_map)
- MCFG_MACHINE_START(redclash)
- MCFG_MACHINE_RESET(redclash)
+ MCFG_MACHINE_START_OVERRIDE(ladybug_state,redclash)
+ MCFG_MACHINE_RESET_OVERRIDE(ladybug_state,redclash)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -401,8 +399,8 @@ static MACHINE_CONFIG_START( redclash, ladybug_state )
MCFG_GFXDECODE(redclash)
MCFG_PALETTE_LENGTH(4*8+4*16+32)
- MCFG_PALETTE_INIT(redclash)
- MCFG_VIDEO_START(redclash)
+ MCFG_PALETTE_INIT_OVERRIDE(ladybug_state,redclash)
+ MCFG_VIDEO_START_OVERRIDE(ladybug_state,redclash)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/relief.c b/src/mame/drivers/relief.c
index 005dad70899..ba554a764e5 100644
--- a/src/mame/drivers/relief.c
+++ b/src/mame/drivers/relief.c
@@ -65,24 +65,23 @@ WRITE16_MEMBER(relief_state::relief_atarivc_w)
*
*************************************/
-static MACHINE_START( relief )
+MACHINE_START_MEMBER(relief_state,relief)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( relief )
+MACHINE_RESET_MEMBER(relief_state,relief)
{
- relief_state *state = machine.driver_data<relief_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarivc_reset(*machine.primary_screen, state->m_atarivc_eof_data, 2);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarivc_reset(*machine().primary_screen, m_atarivc_eof_data, 2);
- machine.device<okim6295_device>("oki")->set_bank_base(0);
- state->m_ym2413_volume = 15;
- state->m_overall_volume = 127;
- state->m_adpcm_bank_base = 0;
+ machine().device<okim6295_device>("oki")->set_bank_base(0);
+ m_ym2413_volume = 15;
+ m_overall_volume = 127;
+ m_adpcm_bank_base = 0;
}
@@ -297,8 +296,8 @@ static MACHINE_CONFIG_START( relief, relief_state )
MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(relief)
- MCFG_MACHINE_RESET(relief)
+ MCFG_MACHINE_START_OVERRIDE(relief_state,relief)
+ MCFG_MACHINE_RESET_OVERRIDE(relief_state,relief)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -312,7 +311,7 @@ static MACHINE_CONFIG_START( relief, relief_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(relief)
- MCFG_VIDEO_START(relief)
+ MCFG_VIDEO_START_OVERRIDE(relief_state,relief)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c
index aad1fcd14d7..075e2fdc0f6 100644
--- a/src/mame/drivers/renegade.c
+++ b/src/mame/drivers/renegade.c
@@ -289,16 +289,15 @@ static void setbank(running_machine &machine)
state->membank("bank1")->set_base(&RAM[state->m_bank ? 0x10000 : 0x4000]);
}
-static MACHINE_START( renegade )
+void renegade_state::machine_start()
{
- renegade_state *state = machine.driver_data<renegade_state>();
- state_save_register_global_array(machine, state->m_mcu_buffer);
- state_save_register_global(machine, state->m_mcu_input_size);
- state_save_register_global(machine, state->m_mcu_output_byte);
- state_save_register_global(machine, state->m_mcu_key);
+ state_save_register_global_array(machine(), m_mcu_buffer);
+ state_save_register_global(machine(), m_mcu_input_size);
+ state_save_register_global(machine(), m_mcu_output_byte);
+ state_save_register_global(machine(), m_mcu_key);
- state_save_register_global(machine, state->m_bank);
- machine.save().register_postload(save_prepost_delegate(FUNC(setbank), &machine));
+ state_save_register_global(machine(), m_bank);
+ machine().save().register_postload(save_prepost_delegate(FUNC(setbank), &machine()));
}
DRIVER_INIT_MEMBER(renegade_state,renegade)
@@ -925,11 +924,10 @@ static const ym3526_interface ym3526_config =
};
-static MACHINE_RESET( renegade )
+void renegade_state::machine_reset()
{
- renegade_state *state = machine.driver_data<renegade_state>();
- state->m_bank = 0;
- setbank(machine);
+ m_bank = 0;
+ setbank(machine());
}
@@ -946,8 +944,6 @@ static MACHINE_CONFIG_START( renegade, renegade_state )
MCFG_CPU_ADD("mcu", M68705, 12000000/4) // ?
MCFG_CPU_PROGRAM_MAP(renegade_mcu_map)
- MCFG_MACHINE_START(renegade)
- MCFG_MACHINE_RESET(renegade)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -960,7 +956,6 @@ static MACHINE_CONFIG_START( renegade, renegade_state )
MCFG_GFXDECODE(renegade)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(renegade)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/retofinv.c b/src/mame/drivers/retofinv.c
index 585c3eccd92..4e216d39573 100644
--- a/src/mame/drivers/retofinv.c
+++ b/src/mame/drivers/retofinv.c
@@ -393,8 +393,6 @@ static MACHINE_CONFIG_START( retofinv, retofinv_state )
MCFG_GFXDECODE(retofinv)
MCFG_PALETTE_LENGTH(256*2+64*16+64*16)
- MCFG_PALETTE_INIT(retofinv)
- MCFG_VIDEO_START(retofinv)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/rgum.c b/src/mame/drivers/rgum.c
index d8cd6128dc3..2e2d1b2d1ed 100644
--- a/src/mame/drivers/rgum.c
+++ b/src/mame/drivers/rgum.c
@@ -31,10 +31,11 @@ public:
required_shared_ptr<UINT8> m_cram;
UINT8 m_hbeat;
DECLARE_CUSTOM_INPUT_MEMBER(rgum_heartbeat_r);
+ virtual void video_start();
};
-static VIDEO_START(royalgum)
+void rgum_state::video_start()
{
}
@@ -284,7 +285,6 @@ static MACHINE_CONFIG_START( rgum, rgum_state )
MCFG_GFXDECODE(rgum)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(royalgum)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/rltennis.c b/src/mame/drivers/rltennis.c
index 7f0f2005fca..df980cfda15 100644
--- a/src/mame/drivers/rltennis.c
+++ b/src/mame/drivers/rltennis.c
@@ -155,23 +155,21 @@ static INTERRUPT_GEN( rltennis_interrupt )
device->execute().set_input_line(1, HOLD_LINE); /* hack, to avoid dead loop */
}
-static MACHINE_START( rltennis )
+void rltennis_state::machine_start()
{
- rltennis_state *state = machine.driver_data<rltennis_state>();
- state->m_maincpu = machine.device<cpu_device>( "maincpu");
- state->m_screen = machine.device( "screen");
- state->m_dac_1 = machine.device<dac_device>("dac1");
- state->m_dac_2 = machine.device<dac_device>("dac2");
- state->m_samples_1 = state->memregion("samples1")->base();
- state->m_samples_2 = state->memregion("samples2")->base();
- state->m_gfx = state->memregion("gfx1")->base();
- state->m_timer = machine.scheduler().timer_alloc(FUNC(sample_player));
+ m_maincpu = machine().device<cpu_device>( "maincpu");
+ m_screen = machine().device( "screen");
+ m_dac_1 = machine().device<dac_device>("dac1");
+ m_dac_2 = machine().device<dac_device>("dac2");
+ m_samples_1 = memregion("samples1")->base();
+ m_samples_2 = memregion("samples2")->base();
+ m_gfx = memregion("gfx1")->base();
+ m_timer = machine().scheduler().timer_alloc(FUNC(sample_player));
}
-static MACHINE_RESET( rltennis )
+void rltennis_state::machine_reset()
{
- rltennis_state *state = machine.driver_data<rltennis_state>();
- state->m_timer->adjust(attotime::from_hz(RLT_TIMER_FREQ));
+ m_timer->adjust(attotime::from_hz(RLT_TIMER_FREQ));
}
static ADDRESS_MAP_START( ramdac_map, AS_0, 8, rltennis_state )
@@ -197,11 +195,8 @@ static MACHINE_CONFIG_START( rltennis, rltennis_state )
MCFG_SCREEN_UPDATE_STATIC(rltennis)
MCFG_PALETTE_LENGTH(256)
- MCFG_MACHINE_START( rltennis )
- MCFG_MACHINE_RESET( rltennis )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_VIDEO_START( rltennis )
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/rmhaihai.c b/src/mame/drivers/rmhaihai.c
index af889d2bf96..88f560f0304 100644
--- a/src/mame/drivers/rmhaihai.c
+++ b/src/mame/drivers/rmhaihai.c
@@ -57,6 +57,8 @@ public:
DECLARE_WRITE8_MEMBER(adpcm_w);
DECLARE_DRIVER_INIT(rmhaihai);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void video_start();
+ DECLARE_MACHINE_RESET(themj);
};
@@ -82,10 +84,9 @@ TILE_GET_INFO_MEMBER(rmhaihai_state::get_bg_tile_info)
SET_TILE_INFO_MEMBER(0, code, color, 0);
}
-static VIDEO_START( rmhaihai )
+void rmhaihai_state::video_start()
{
- rmhaihai_state *state = machine.driver_data<rmhaihai_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rmhaihai_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(rmhaihai_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
8, 8, 64, 32);
}
@@ -191,10 +192,9 @@ logerror("banksw %d\n",bank);
membank("bank2")->set_base(rom + bank*0x4000 + 0x2000);
}
-static MACHINE_RESET( themj )
+MACHINE_RESET_MEMBER(rmhaihai_state,themj)
{
- rmhaihai_state *state = machine.driver_data<rmhaihai_state>();
- state->themj_rombank_w(*machine.device("maincpu")->memory().space(AS_IO), 0, 0);
+ themj_rombank_w(*machine().device("maincpu")->memory().space(AS_IO), 0, 0);
}
@@ -483,7 +483,6 @@ static MACHINE_CONFIG_START( rmhaihai, rmhaihai_state )
MCFG_PALETTE_LENGTH(0x100)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(rmhaihai)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -514,7 +513,7 @@ static MACHINE_CONFIG_DERIVED( themj, rmhaihai )
MCFG_CPU_PROGRAM_MAP(themj_map)
MCFG_CPU_IO_MAP(themj_io_map)
- MCFG_MACHINE_RESET(themj)
+ MCFG_MACHINE_RESET_OVERRIDE(rmhaihai_state,themj)
/* video hardware */
MCFG_GFXDECODE(themj)
diff --git a/src/mame/drivers/rockrage.c b/src/mame/drivers/rockrage.c
index f35ccb0c635..494d85c72bd 100644
--- a/src/mame/drivers/rockrage.c
+++ b/src/mame/drivers/rockrage.c
@@ -236,28 +236,26 @@ static const k007420_interface rockrage_k007420_intf =
};
-static MACHINE_START( rockrage )
+void rockrage_state::machine_start()
{
- rockrage_state *state = machine.driver_data<rockrage_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x2000);
+ membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x2000);
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k007342 = machine.device("k007342");
- state->m_k007420 = machine.device("k007420");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k007342 = machine().device("k007342");
+ m_k007420 = machine().device("k007420");
- state->save_item(NAME(state->m_vreg));
- state->save_item(NAME(state->m_layer_colorbase));
+ save_item(NAME(m_vreg));
+ save_item(NAME(m_layer_colorbase));
}
-static MACHINE_RESET( rockrage )
+void rockrage_state::machine_reset()
{
- rockrage_state *state = machine.driver_data<rockrage_state>();
- state->m_vreg = 0;
- state->m_layer_colorbase[0] = 0x00;
- state->m_layer_colorbase[1] = 0x10;
+ m_vreg = 0;
+ m_layer_colorbase[0] = 0x00;
+ m_layer_colorbase[1] = 0x10;
}
static MACHINE_CONFIG_START( rockrage, rockrage_state )
@@ -270,8 +268,6 @@ static MACHINE_CONFIG_START( rockrage, rockrage_state )
MCFG_CPU_ADD("audiocpu", M6809, 1500000) /* 24MHz/16 */
MCFG_CPU_PROGRAM_MAP(rockrage_sound_map)
- MCFG_MACHINE_START(rockrage)
- MCFG_MACHINE_RESET(rockrage)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -287,7 +283,6 @@ static MACHINE_CONFIG_START( rockrage, rockrage_state )
MCFG_GFXDECODE(rockrage)
MCFG_PALETTE_LENGTH(64 + 2*16*16)
- MCFG_PALETTE_INIT(rockrage)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/rocnrope.c b/src/mame/drivers/rocnrope.c
index 58c80db5747..c847b810c40 100644
--- a/src/mame/drivers/rocnrope.c
+++ b/src/mame/drivers/rocnrope.c
@@ -213,8 +213,6 @@ static MACHINE_CONFIG_START( rocnrope, rocnrope_state )
MCFG_GFXDECODE(rocnrope)
MCFG_PALETTE_LENGTH(16*16+16*16)
- MCFG_PALETTE_INIT(rocnrope)
- MCFG_VIDEO_START(rocnrope)
/* sound hardware */
MCFG_FRAGMENT_ADD(timeplt_sound)
diff --git a/src/mame/drivers/rohga.c b/src/mame/drivers/rohga.c
index dbb775be72a..4537cd717a8 100644
--- a/src/mame/drivers/rohga.c
+++ b/src/mame/drivers/rohga.c
@@ -818,7 +818,7 @@ static MACHINE_CONFIG_START( rohga, rohga_state )
MCFG_GFXDECODE(rohga)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(rohga)
+ MCFG_VIDEO_START_OVERRIDE(rohga_state,rohga)
MCFG_DECOCOMN_ADD("deco_common", rohga_decocomn_intf)
@@ -880,7 +880,7 @@ static MACHINE_CONFIG_START( wizdfire, rohga_state )
MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 4);
- MCFG_VIDEO_START(wizdfire)
+ MCFG_VIDEO_START_OVERRIDE(rohga_state,wizdfire)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -934,7 +934,7 @@ static MACHINE_CONFIG_START( nitrobal, rohga_state )
MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 4);
- MCFG_VIDEO_START(wizdfire)
+ MCFG_VIDEO_START_OVERRIDE(rohga_state,wizdfire)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -976,7 +976,7 @@ static MACHINE_CONFIG_START( schmeisr, rohga_state )
MCFG_GFXDECODE(schmeisr)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(schmeisr)
+ MCFG_VIDEO_START_OVERRIDE(rohga_state,schmeisr)
MCFG_DECOCOMN_ADD("deco_common", rohga_decocomn_intf)
diff --git a/src/mame/drivers/rollerg.c b/src/mame/drivers/rollerg.c
index 0832f9f6374..9fa5a406624 100644
--- a/src/mame/drivers/rollerg.c
+++ b/src/mame/drivers/rollerg.c
@@ -247,31 +247,29 @@ static const k053252_interface rollerg_k053252_intf =
14*8, 2*8
};
-static MACHINE_START( rollerg )
+void rollerg_state::machine_start()
{
- rollerg_state *state = machine.driver_data<rollerg_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000);
- state->membank("bank1")->configure_entries(6, 2, &ROM[0x10000], 0x4000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000);
+ membank("bank1")->configure_entries(6, 2, &ROM[0x10000], 0x4000);
+ membank("bank1")->set_entry(0);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k053244 = machine.device("k053244");
- state->m_k051316 = machine.device("k051316");
- state->m_k053260 = machine.device("k053260");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k053244 = machine().device("k053244");
+ m_k051316 = machine().device("k051316");
+ m_k053260 = machine().device("k053260");
- state->save_item(NAME(state->m_readzoomroms));
+ save_item(NAME(m_readzoomroms));
}
-static MACHINE_RESET( rollerg )
+void rollerg_state::machine_reset()
{
- rollerg_state *state = machine.driver_data<rollerg_state>();
- konami_configure_set_lines(machine.device("maincpu"), rollerg_banking);
+ konami_configure_set_lines(machine().device("maincpu"), rollerg_banking);
- state->m_readzoomroms = 0;
+ m_readzoomroms = 0;
}
static MACHINE_CONFIG_START( rollerg, rollerg_state )
@@ -284,8 +282,6 @@ static MACHINE_CONFIG_START( rollerg, rollerg_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545)
MCFG_CPU_PROGRAM_MAP(rollerg_sound_map)
/* NMIs are generated by the 053260 */
- MCFG_MACHINE_START(rollerg)
- MCFG_MACHINE_RESET(rollerg)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -299,7 +295,6 @@ static MACHINE_CONFIG_START( rollerg, rollerg_state )
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(rollerg)
MCFG_K053244_ADD("k053244", rollerg_k05324x_intf)
MCFG_K051316_ADD("k051316", rollerg_k051316_intf)
diff --git a/src/mame/drivers/rollrace.c b/src/mame/drivers/rollrace.c
index 5f217f53969..cad90051fb8 100644
--- a/src/mame/drivers/rollrace.c
+++ b/src/mame/drivers/rollrace.c
@@ -246,7 +246,6 @@ static MACHINE_CONFIG_START( rollrace, rollrace_state )
MCFG_GFXDECODE(rollrace)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(rollrace)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/roul.c b/src/mame/drivers/roul.c
index b74f74cfd4a..ca111e422c5 100644
--- a/src/mame/drivers/roul.c
+++ b/src/mame/drivers/roul.c
@@ -80,15 +80,17 @@ public:
DECLARE_WRITE8_MEMBER(blitter_cmd_w);
DECLARE_WRITE8_MEMBER(sound_latch_w);
DECLARE_WRITE8_MEMBER(ball_w);
+ virtual void video_start();
+ virtual void palette_init();
};
#define VIDEOBUF_SIZE 256*256
-static PALETTE_INIT( roul )
+void roul_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int bit6, bit7, bit0, bit1, r, g, b;
int i;
@@ -107,7 +109,7 @@ static PALETTE_INIT( roul )
bit1 = (color_prom[0] >> 5) & 0x01;
r = 0x0e * bit6 + 0x1f * bit7 + 0x43 * bit0 + 0x8f * bit1;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
color_prom++;
}
}
@@ -207,10 +209,9 @@ static ADDRESS_MAP_START( sound_cpu_io_map, AS_IO, 8, roul_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
ADDRESS_MAP_END
-static VIDEO_START(roul)
+void roul_state::video_start()
{
- roul_state *state = machine.driver_data<roul_state>();
- state->m_videobuf = auto_alloc_array_clear(machine, UINT8, VIDEOBUF_SIZE);
+ m_videobuf = auto_alloc_array_clear(machine(), UINT8, VIDEOBUF_SIZE);
}
static SCREEN_UPDATE_IND16(roul)
@@ -286,7 +287,6 @@ static MACHINE_CONFIG_START( roul, roul_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_PALETTE_INIT(roul)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -298,7 +298,6 @@ static MACHINE_CONFIG_START( roul, roul_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(roul)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1000000)
diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c
index 6058cbd0299..a183f81c76e 100644
--- a/src/mame/drivers/royalmah.c
+++ b/src/mame/drivers/royalmah.c
@@ -194,16 +194,18 @@ public:
DECLARE_WRITE_LINE_MEMBER(mjtensin_rtc_irq);
DECLARE_DRIVER_INIT(janptr96);
DECLARE_DRIVER_INIT(ippatsu);
+ virtual void palette_init();
+ DECLARE_PALETTE_INIT(mjderngr);
};
-static PALETTE_INIT( royalmah )
+void royalmah_state::palette_init()
{
offs_t i;
- const UINT8 *prom = machine.root_device().memregion("proms")->base();
- int len = machine.root_device().memregion("proms")->bytes();
+ const UINT8 *prom = machine().root_device().memregion("proms")->base();
+ int len = machine().root_device().memregion("proms")->bytes();
for (i = 0; i < len; i++)
{
@@ -229,16 +231,16 @@ static PALETTE_INIT( royalmah )
bit2 = (data >> 7) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color_rgb(machine,i, r,g,b);
+ palette_set_color_rgb(machine(),i, r,g,b);
}
}
-static PALETTE_INIT( mjderngr )
+PALETTE_INIT_MEMBER(royalmah_state,mjderngr)
{
offs_t i;
- const UINT8 *prom = machine.root_device().memregion("proms")->base();
- int len = machine.root_device().memregion("proms")->bytes();
+ const UINT8 *prom = machine().root_device().memregion("proms")->base();
+ int len = machine().root_device().memregion("proms")->bytes();
for (i = 0; i < len / 2; i++)
{
@@ -249,7 +251,7 @@ static PALETTE_INIT( mjderngr )
UINT8 g = BITSWAP8((data >> 5) & 0x1f,7,6,5,0,1,2,3,4 );
UINT8 b = BITSWAP8((data >> 10) & 0x1f,7,6,5,0,1,2,3,4 );
- palette_set_color_rgb(machine,i, pal5bit(r), pal5bit(g), pal5bit(b));
+ palette_set_color_rgb(machine(),i, pal5bit(r), pal5bit(g), pal5bit(b));
}
}
@@ -3173,7 +3175,6 @@ static MACHINE_CONFIG_START( royalmah, royalmah_state )
/* video hardware */
MCFG_PALETTE_LENGTH(16*2)
- MCFG_PALETTE_INIT(royalmah)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_SIZE(256, 256)
@@ -3285,7 +3286,7 @@ static MACHINE_CONFIG_DERIVED( mjderngr, dondenmj )
/* video hardware */
MCFG_PALETTE_LENGTH(16*32)
- MCFG_PALETTE_INIT(mjderngr)
+ MCFG_PALETTE_INIT_OVERRIDE(royalmah_state,mjderngr)
MACHINE_CONFIG_END
/* It runs in IM 2, thus needs a vector on the data bus */
diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c
index 95cdf68d7e1..d5067abddea 100644
--- a/src/mame/drivers/rpunch.c
+++ b/src/mame/drivers/rpunch.c
@@ -130,9 +130,9 @@ static void ym2151_irq_gen(device_t *device, int state)
}
-static MACHINE_RESET( rpunch )
+void rpunch_state::machine_reset()
{
- UINT8 *snd = machine.root_device().memregion("upd")->base();
+ UINT8 *snd = machine().root_device().memregion("upd")->base();
memcpy(snd, snd + 0x20000, 0x20000);
}
@@ -470,7 +470,6 @@ static MACHINE_CONFIG_START( rpunch, rpunch_state )
MCFG_CPU_ADD("audiocpu", Z80, MASTER_CLOCK/4)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_RESET(rpunch)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -482,7 +481,6 @@ static MACHINE_CONFIG_START( rpunch, rpunch_state )
MCFG_GFXDECODE(rpunch)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(rpunch)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/runaway.c b/src/mame/drivers/runaway.c
index 497162073d9..fc19af335d2 100644
--- a/src/mame/drivers/runaway.c
+++ b/src/mame/drivers/runaway.c
@@ -33,16 +33,14 @@ static TIMER_CALLBACK( interrupt_callback )
state->m_interrupt_timer->adjust(machine.primary_screen->time_until_pos(scanline), scanline);
}
-static MACHINE_START( runaway )
+void runaway_state::machine_start()
{
- runaway_state *state = machine.driver_data<runaway_state>();
- state->m_interrupt_timer = machine.scheduler().timer_alloc(FUNC(interrupt_callback));
+ m_interrupt_timer = machine().scheduler().timer_alloc(FUNC(interrupt_callback));
}
-static MACHINE_RESET( runaway )
+void runaway_state::machine_reset()
{
- runaway_state *state = machine.driver_data<runaway_state>();
- state->m_interrupt_timer->adjust(machine.primary_screen->time_until_pos(16), 16);
+ m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(16), 16);
}
@@ -353,8 +351,6 @@ static MACHINE_CONFIG_START( runaway, runaway_state )
MCFG_CPU_ADD("maincpu", M6502, 12096000 / 8) /* ? */
MCFG_CPU_PROGRAM_MAP(runaway_map)
- MCFG_MACHINE_START(runaway)
- MCFG_MACHINE_RESET(runaway)
MCFG_ATARIVGEAROM_ADD("earom")
@@ -368,7 +364,6 @@ static MACHINE_CONFIG_START( runaway, runaway_state )
MCFG_GFXDECODE(runaway)
MCFG_PALETTE_LENGTH(16)
- MCFG_VIDEO_START(runaway)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -390,7 +385,7 @@ static MACHINE_CONFIG_DERIVED( qwak, runaway )
/* video hardware */
MCFG_GFXDECODE(qwak)
- MCFG_VIDEO_START(qwak)
+ MCFG_VIDEO_START_OVERRIDE(runaway_state,qwak)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(qwak)
diff --git a/src/mame/drivers/rungun.c b/src/mame/drivers/rungun.c
index c468e505105..b57dada2cc7 100644
--- a/src/mame/drivers/rungun.c
+++ b/src/mame/drivers/rungun.c
@@ -363,37 +363,35 @@ static const k053252_interface rng_k053252_intf =
9*8, 24
};
-static MACHINE_START( rng )
+void rungun_state::machine_start()
{
- rungun_state *state = machine.driver_data<rungun_state>();
- UINT8 *ROM = state->memregion("soundcpu")->base();
-
- state->membank("bank2")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("soundcpu");
- state->m_k053936 = machine.device("k053936");
- state->m_k055673 = machine.device("k055673");
- state->m_k053252 = machine.device("k053252");
- state->m_k054539_1 = machine.device("k054539_1");
- state->m_k054539_2 = machine.device("k054539_2");
-
- state->save_item(NAME(state->m_z80_control));
- state->save_item(NAME(state->m_sound_status));
- state->save_item(NAME(state->m_ttl_vram));
+ UINT8 *ROM = memregion("soundcpu")->base();
+
+ membank("bank2")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("soundcpu");
+ m_k053936 = machine().device("k053936");
+ m_k055673 = machine().device("k055673");
+ m_k053252 = machine().device("k053252");
+ m_k054539_1 = machine().device("k054539_1");
+ m_k054539_2 = machine().device("k054539_2");
+
+ save_item(NAME(m_z80_control));
+ save_item(NAME(m_sound_status));
+ save_item(NAME(m_ttl_vram));
}
-static MACHINE_RESET( rng )
+void rungun_state::machine_reset()
{
- rungun_state *state = machine.driver_data<rungun_state>();
- machine.device<k054539_device>("k054539_1")->init_flags(k054539_device::REVERSE_STEREO);
+ machine().device<k054539_device>("k054539_1")->init_flags(k054539_device::REVERSE_STEREO);
- memset(state->m_sysreg, 0, 0x20);
- memset(state->m_ttl_vram, 0, 0x1000 * sizeof(UINT16));
+ memset(m_sysreg, 0, 0x20);
+ memset(m_ttl_vram, 0, 0x1000 * sizeof(UINT16));
- state->m_z80_control = 0;
- state->m_sound_status = 0;
+ m_z80_control = 0;
+ m_sound_status = 0;
}
static MACHINE_CONFIG_START( rng, rungun_state )
@@ -411,8 +409,6 @@ static MACHINE_CONFIG_START( rng, rungun_state )
MCFG_GFXDECODE(rungun)
- MCFG_MACHINE_START(rng)
- MCFG_MACHINE_RESET(rng)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -428,7 +424,6 @@ static MACHINE_CONFIG_START( rng, rungun_state )
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(rng)
MCFG_K053936_ADD("k053936", rng_k053936_intf)
MCFG_K055673_ADD("k055673", rng_k055673_intf)
diff --git a/src/mame/drivers/safarir.c b/src/mame/drivers/safarir.c
index cd1778da5ba..941a405ca91 100644
--- a/src/mame/drivers/safarir.c
+++ b/src/mame/drivers/safarir.c
@@ -75,6 +75,9 @@ public:
DECLARE_WRITE8_MEMBER(safarir_audio_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ virtual void machine_start();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -137,14 +140,14 @@ static GFXDECODE_START( safarir )
GFXDECODE_END
-static PALETTE_INIT( safarir )
+void safarir_state::palette_init()
{
int i;
- for (i = 0; i < machine.total_colors() / 2; i++)
+ for (i = 0; i < machine().total_colors() / 2; i++)
{
- palette_set_color(machine, (i * 2) + 0, RGB_BLACK);
- palette_set_color(machine, (i * 2) + 1, MAKE_RGB(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0)));
+ palette_set_color(machine(), (i * 2) + 0, RGB_BLACK);
+ palette_set_color(machine(), (i * 2) + 1, MAKE_RGB(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0)));
}
}
@@ -187,14 +190,13 @@ TILE_GET_INFO_MEMBER(safarir_state::get_fg_tile_info)
}
-static VIDEO_START( safarir )
+void safarir_state::video_start()
{
- safarir_state *state = machine.driver_data<safarir_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(safarir_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(safarir_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(safarir_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(safarir_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_fg_tilemap->set_transparent_pen(0);
}
@@ -313,22 +315,21 @@ MACHINE_CONFIG_END
*
*************************************/
-static MACHINE_START( safarir )
+void safarir_state::machine_start()
{
- safarir_state *state = machine.driver_data<safarir_state>();
- state->m_ram_1 = auto_alloc_array(machine, UINT8, state->m_ram.bytes());
- state->m_ram_2 = auto_alloc_array(machine, UINT8, state->m_ram.bytes());
- state->m_port_last = 0;
- state->m_port_last2 = 0;
- state->m_samples = machine.device<samples_device>("samples");
+ m_ram_1 = auto_alloc_array(machine(), UINT8, m_ram.bytes());
+ m_ram_2 = auto_alloc_array(machine(), UINT8, m_ram.bytes());
+ m_port_last = 0;
+ m_port_last2 = 0;
+ m_samples = machine().device<samples_device>("samples");
/* setup for save states */
- state->save_pointer(NAME(state->m_ram_1), state->m_ram.bytes());
- state->save_pointer(NAME(state->m_ram_2), state->m_ram.bytes());
- state->save_item(NAME(state->m_ram_bank));
- state->save_item(NAME(state->m_port_last));
- state->save_item(NAME(state->m_port_last2));
+ save_pointer(NAME(m_ram_1), m_ram.bytes());
+ save_pointer(NAME(m_ram_2), m_ram.bytes());
+ save_item(NAME(m_ram_bank));
+ save_item(NAME(m_port_last));
+ save_item(NAME(m_port_last2));
}
@@ -405,11 +406,8 @@ static MACHINE_CONFIG_START( safarir, safarir_state )
MCFG_CPU_ADD("maincpu", I8080A, XTAL_18MHz/12) /* 1.5 MHz ? */
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(safarir)
/* video hardware */
- MCFG_VIDEO_START(safarir)
- MCFG_PALETTE_INIT(safarir)
MCFG_PALETTE_LENGTH(2*8)
MCFG_GFXDECODE(safarir)
diff --git a/src/mame/drivers/sandscrp.c b/src/mame/drivers/sandscrp.c
index 420ca967ff4..42e97c5a285 100644
--- a/src/mame/drivers/sandscrp.c
+++ b/src/mame/drivers/sandscrp.c
@@ -108,6 +108,7 @@ public:
DECLARE_READ8_MEMBER(sandscrp_latchstatus_r);
DECLARE_READ8_MEMBER(sandscrp_soundlatch_r);
DECLARE_WRITE8_MEMBER(sandscrp_soundlatch_w);
+ virtual void machine_reset();
};
@@ -137,9 +138,8 @@ SCREEN_UPDATE_IND16( sandscrp )
-static MACHINE_RESET( sandscrp )
+void sandscrp_state::machine_reset()
{
-// sandscrp_state *state = machine.driver_data<sandscrp_state>();
}
/* Sand Scorpion */
@@ -508,7 +508,6 @@ static MACHINE_CONFIG_START( sandscrp, sandscrp_state )
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */
- MCFG_MACHINE_RESET(sandscrp)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/sangho.c b/src/mame/drivers/sangho.c
index 4ee635d790b..4d4799535c4 100644
--- a/src/mame/drivers/sangho.c
+++ b/src/mame/drivers/sangho.c
@@ -65,6 +65,8 @@ public:
DECLARE_READ8_MEMBER(pzlestar_mem_bank_r);
DECLARE_WRITE8_MEMBER(sexyboom_bank_w);
DECLARE_DRIVER_INIT(sangho);
+ DECLARE_MACHINE_RESET(pzlestar);
+ DECLARE_MACHINE_RESET(sexyboom);
};
@@ -376,28 +378,26 @@ static INPUT_PORTS_START( pzlestar )
INPUT_PORTS_END
-static MACHINE_RESET(pzlestar)
+MACHINE_RESET_MEMBER(sangho_state,pzlestar)
{
- sangho_state *state = machine.driver_data<sangho_state>();
- state->m_pzlestar_mem_bank = 2;
- pzlestar_map_banks(machine);
+ m_pzlestar_mem_bank = 2;
+ pzlestar_map_banks(machine());
}
-static MACHINE_RESET(sexyboom)
+MACHINE_RESET_MEMBER(sangho_state,sexyboom)
{
- sangho_state *state = machine.driver_data<sangho_state>();
- state->m_sexyboom_bank[0] = 0x00;
- state->m_sexyboom_bank[1] = 0x00;
- state->m_sexyboom_bank[2] = 0x01;
- state->m_sexyboom_bank[3] = 0x00;
- state->m_sexyboom_bank[4] = 0x80;
- state->m_sexyboom_bank[5] = 0x00;
- state->m_sexyboom_bank[6] = 0x80;
- state->m_sexyboom_bank[7] = 0x01;
- sexyboom_map_bank(machine, 0);
- sexyboom_map_bank(machine, 1);
- sexyboom_map_bank(machine, 2);
- sexyboom_map_bank(machine, 3);
+ m_sexyboom_bank[0] = 0x00;
+ m_sexyboom_bank[1] = 0x00;
+ m_sexyboom_bank[2] = 0x01;
+ m_sexyboom_bank[3] = 0x00;
+ m_sexyboom_bank[4] = 0x80;
+ m_sexyboom_bank[5] = 0x00;
+ m_sexyboom_bank[6] = 0x80;
+ m_sexyboom_bank[7] = 0x01;
+ sexyboom_map_bank(machine(), 0);
+ sexyboom_map_bank(machine(), 1);
+ sexyboom_map_bank(machine(), 2);
+ sexyboom_map_bank(machine(), 3);
}
static void msx_vdp_interrupt(device_t *, v99x8_device &device, int i)
@@ -440,7 +440,7 @@ static MACHINE_CONFIG_START( pzlestar, sangho_state )
MCFG_PALETTE_LENGTH(19268)
- MCFG_MACHINE_RESET(pzlestar)
+ MCFG_MACHINE_RESET_OVERRIDE(sangho_state,pzlestar)
MCFG_PALETTE_INIT( v9958 )
@@ -472,9 +472,8 @@ static MACHINE_CONFIG_START( sexyboom, sangho_state )
MCFG_PALETTE_LENGTH(19268)
- MCFG_MACHINE_RESET(sexyboom)
+ MCFG_MACHINE_RESET_OVERRIDE(sangho_state,sexyboom)
- MCFG_PALETTE_INIT( v9958 )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, 3580000)
diff --git a/src/mame/drivers/saturn.c b/src/mame/drivers/saturn.c
index 833e7a9adcf..65295718489 100644
--- a/src/mame/drivers/saturn.c
+++ b/src/mame/drivers/saturn.c
@@ -1745,93 +1745,91 @@ static TIMER_CALLBACK(stv_rtc_increment)
//if((state->m_smpc.rtc_data[0] & 0xf0) >= 0xa0) { state->m_smpc.rtc_data[0] = 0; } //roll over
}
-static MACHINE_START( stv )
+MACHINE_START_MEMBER(saturn_state,stv)
{
- saturn_state *state = machine.driver_data<saturn_state>();
system_time systime;
- machine.base_datetime(systime);
+ machine().base_datetime(systime);
- state->m_maincpu = downcast<legacy_cpu_device*>( machine.device<cpu_device>("maincpu") );
- state->m_slave = downcast<legacy_cpu_device*>( machine.device("slave") );
- state->m_audiocpu = downcast<legacy_cpu_device*>( machine.device<cpu_device>("audiocpu") );
+ m_maincpu = downcast<legacy_cpu_device*>( machine().device<cpu_device>("maincpu") );
+ m_slave = downcast<legacy_cpu_device*>( machine().device("slave") );
+ m_audiocpu = downcast<legacy_cpu_device*>( machine().device<cpu_device>("audiocpu") );
- scsp_set_ram_base(machine.device("scsp"), state->m_sound_ram);
+ scsp_set_ram_base(machine().device("scsp"), m_sound_ram);
// save states
- state_save_register_global_pointer(machine, state->m_scu_regs, 0x100/4);
- state_save_register_global_pointer(machine, state->m_scsp_regs, 0x1000/2);
- state_save_register_global(machine, state->m_NMI_reset);
- state_save_register_global(machine, state->m_en_68k);
-// state_save_register_global(machine, scanline);
- state_save_register_global(machine, state->m_smpc.IOSEL1);
- state_save_register_global(machine, state->m_smpc.IOSEL2);
- state_save_register_global(machine, state->m_smpc.EXLE1);
- state_save_register_global(machine, state->m_smpc.EXLE2);
- state_save_register_global(machine, state->m_smpc.PDR1);
- state_save_register_global(machine, state->m_smpc.PDR2);
- state_save_register_global(machine, state->m_port_sel);
- state_save_register_global(machine, state->m_mux_data);
- state_save_register_global(machine, scsp_last_line);
-
- stv_register_protection_savestates(machine); // machine/stvprot.c
-
- machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(stvcd_exit), &machine));
-
- state->m_smpc.rtc_data[0] = DectoBCD(systime.local_time.year /100);
- state->m_smpc.rtc_data[1] = DectoBCD(systime.local_time.year %100);
- state->m_smpc.rtc_data[2] = (systime.local_time.weekday << 4) | (systime.local_time.month+1);
- state->m_smpc.rtc_data[3] = DectoBCD(systime.local_time.mday);
- state->m_smpc.rtc_data[4] = DectoBCD(systime.local_time.hour);
- state->m_smpc.rtc_data[5] = DectoBCD(systime.local_time.minute);
- state->m_smpc.rtc_data[6] = DectoBCD(systime.local_time.second);
-
- state->m_stv_rtc_timer = machine.scheduler().timer_alloc(FUNC(stv_rtc_increment));
+ state_save_register_global_pointer(machine(), m_scu_regs, 0x100/4);
+ state_save_register_global_pointer(machine(), m_scsp_regs, 0x1000/2);
+ state_save_register_global(machine(), m_NMI_reset);
+ state_save_register_global(machine(), m_en_68k);
+// state_save_register_global(machine(), scanline);
+ state_save_register_global(machine(), m_smpc.IOSEL1);
+ state_save_register_global(machine(), m_smpc.IOSEL2);
+ state_save_register_global(machine(), m_smpc.EXLE1);
+ state_save_register_global(machine(), m_smpc.EXLE2);
+ state_save_register_global(machine(), m_smpc.PDR1);
+ state_save_register_global(machine(), m_smpc.PDR2);
+ state_save_register_global(machine(), m_port_sel);
+ state_save_register_global(machine(), m_mux_data);
+ state_save_register_global(machine(), scsp_last_line);
+
+ stv_register_protection_savestates(machine()); // machine/stvprot.c
+
+ machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(stvcd_exit), &machine()));
+
+ m_smpc.rtc_data[0] = DectoBCD(systime.local_time.year /100);
+ m_smpc.rtc_data[1] = DectoBCD(systime.local_time.year %100);
+ m_smpc.rtc_data[2] = (systime.local_time.weekday << 4) | (systime.local_time.month+1);
+ m_smpc.rtc_data[3] = DectoBCD(systime.local_time.mday);
+ m_smpc.rtc_data[4] = DectoBCD(systime.local_time.hour);
+ m_smpc.rtc_data[5] = DectoBCD(systime.local_time.minute);
+ m_smpc.rtc_data[6] = DectoBCD(systime.local_time.second);
+
+ m_stv_rtc_timer = machine().scheduler().timer_alloc(FUNC(stv_rtc_increment));
}
-static MACHINE_START( saturn )
+MACHINE_START_MEMBER(saturn_state,saturn)
{
- saturn_state *state = machine.driver_data<saturn_state>();
system_time systime;
- machine.base_datetime(systime);
+ machine().base_datetime(systime);
- state->m_maincpu = downcast<legacy_cpu_device*>( machine.device<cpu_device>("maincpu") );
- state->m_slave = downcast<legacy_cpu_device*>( machine.device("slave") );
- state->m_audiocpu = downcast<legacy_cpu_device*>( machine.device<cpu_device>("audiocpu") );
+ m_maincpu = downcast<legacy_cpu_device*>( machine().device<cpu_device>("maincpu") );
+ m_slave = downcast<legacy_cpu_device*>( machine().device("slave") );
+ m_audiocpu = downcast<legacy_cpu_device*>( machine().device<cpu_device>("audiocpu") );
- scsp_set_ram_base(machine.device("scsp"), state->m_sound_ram);
+ scsp_set_ram_base(machine().device("scsp"), m_sound_ram);
// save states
- state_save_register_global_pointer(machine, state->m_scu_regs, 0x100/4);
- state_save_register_global_pointer(machine, state->m_scsp_regs, 0x1000/2);
- state_save_register_global(machine, state->m_NMI_reset);
- state_save_register_global(machine, state->m_en_68k);
- state_save_register_global(machine, state->m_smpc.IOSEL1);
- state_save_register_global(machine, state->m_smpc.IOSEL2);
- state_save_register_global(machine, state->m_smpc.EXLE1);
- state_save_register_global(machine, state->m_smpc.EXLE2);
- state_save_register_global(machine, state->m_smpc.PDR1);
- state_save_register_global(machine, state->m_smpc.PDR2);
-// state_save_register_global(machine, state->m_port_sel);
-// state_save_register_global(machine, mux_data);
- state_save_register_global(machine, scsp_last_line);
- state_save_register_global(machine, state->m_smpc.intback_stage);
- state_save_register_global(machine, state->m_smpc.pmode);
- state_save_register_global(machine, state->m_smpc.SR);
- state_save_register_global_array(machine, state->m_smpc.SMEM);
- state_save_register_global_pointer(machine, state->m_cart_dram, 0x400000/4);
-
- machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(stvcd_exit), &machine));
-
- state->m_smpc.rtc_data[0] = DectoBCD(systime.local_time.year /100);
- state->m_smpc.rtc_data[1] = DectoBCD(systime.local_time.year %100);
- state->m_smpc.rtc_data[2] = (systime.local_time.weekday << 4) | (systime.local_time.month+1);
- state->m_smpc.rtc_data[3] = DectoBCD(systime.local_time.mday);
- state->m_smpc.rtc_data[4] = DectoBCD(systime.local_time.hour);
- state->m_smpc.rtc_data[5] = DectoBCD(systime.local_time.minute);
- state->m_smpc.rtc_data[6] = DectoBCD(systime.local_time.second);
-
- state->m_stv_rtc_timer = machine.scheduler().timer_alloc(FUNC(stv_rtc_increment));
+ state_save_register_global_pointer(machine(), m_scu_regs, 0x100/4);
+ state_save_register_global_pointer(machine(), m_scsp_regs, 0x1000/2);
+ state_save_register_global(machine(), m_NMI_reset);
+ state_save_register_global(machine(), m_en_68k);
+ state_save_register_global(machine(), m_smpc.IOSEL1);
+ state_save_register_global(machine(), m_smpc.IOSEL2);
+ state_save_register_global(machine(), m_smpc.EXLE1);
+ state_save_register_global(machine(), m_smpc.EXLE2);
+ state_save_register_global(machine(), m_smpc.PDR1);
+ state_save_register_global(machine(), m_smpc.PDR2);
+// state_save_register_global(machine(), m_port_sel);
+// state_save_register_global(machine(), mux_data);
+ state_save_register_global(machine(), scsp_last_line);
+ state_save_register_global(machine(), m_smpc.intback_stage);
+ state_save_register_global(machine(), m_smpc.pmode);
+ state_save_register_global(machine(), m_smpc.SR);
+ state_save_register_global_array(machine(), m_smpc.SMEM);
+ state_save_register_global_pointer(machine(), m_cart_dram, 0x400000/4);
+
+ machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(stvcd_exit), &machine()));
+
+ m_smpc.rtc_data[0] = DectoBCD(systime.local_time.year /100);
+ m_smpc.rtc_data[1] = DectoBCD(systime.local_time.year %100);
+ m_smpc.rtc_data[2] = (systime.local_time.weekday << 4) | (systime.local_time.month+1);
+ m_smpc.rtc_data[3] = DectoBCD(systime.local_time.mday);
+ m_smpc.rtc_data[4] = DectoBCD(systime.local_time.hour);
+ m_smpc.rtc_data[5] = DectoBCD(systime.local_time.minute);
+ m_smpc.rtc_data[6] = DectoBCD(systime.local_time.second);
+
+ m_stv_rtc_timer = machine().scheduler().timer_alloc(FUNC(stv_rtc_increment));
}
@@ -2033,114 +2031,112 @@ static WRITE32_HANDLER( saturn_cs1_w )
state->m_cart_backupram[offset*2+1] = (data & 0x000000ff) >> 0;
}
-static MACHINE_RESET( saturn )
+MACHINE_RESET_MEMBER(saturn_state,saturn)
{
- saturn_state *state = machine.driver_data<saturn_state>();
// don't let the slave cpu and the 68k go anywhere
- machine.device("slave")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- machine.device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("slave")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- state->m_smpc.SR = 0x40; // this bit is always on according to docs
+ m_smpc.SR = 0x40; // this bit is always on according to docs
- state->m_en_68k = 0;
- state->m_NMI_reset = 0;
+ m_en_68k = 0;
+ m_NMI_reset = 0;
- DMA_STATUS = 0;
+ m_scu_regs[31] = 0; //DMA_STATUS = 0;
//memset(stv_m_workram_l, 0, 0x100000);
//memset(stv_m_workram_h, 0, 0x100000);
- machine.device("maincpu")->set_unscaled_clock(MASTER_CLOCK_320/2);
- machine.device("slave")->set_unscaled_clock(MASTER_CLOCK_320/2);
+ machine().device("maincpu")->set_unscaled_clock(MASTER_CLOCK_320/2);
+ machine().device("slave")->set_unscaled_clock(MASTER_CLOCK_320/2);
- stvcd_reset( machine );
+ stvcd_reset( machine() );
- state->m_cart_type = state->ioport("CART_AREA")->read() & 7;
+ m_cart_type = ioport("CART_AREA")->read() & 7;
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02400000, 0x027fffff, FUNC(saturn_null_ram_r), FUNC(saturn_null_ram_w));
- machine.device("slave")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02400000, 0x027fffff, FUNC(saturn_null_ram_r), FUNC(saturn_null_ram_w));
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02400000, 0x027fffff, FUNC(saturn_null_ram_r), FUNC(saturn_null_ram_w));
+ machine().device("slave")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02400000, 0x027fffff, FUNC(saturn_null_ram_r), FUNC(saturn_null_ram_w));
- if(state->m_cart_type == 5)
+ if(m_cart_type == 5)
{
// AM_RANGE(0x02400000, 0x027fffff) AM_RAM //cart RAM area, dynamically allocated
- machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_readwrite(0x02400000, 0x027fffff);
- machine.device("slave")->memory().space(AS_PROGRAM)->nop_readwrite(0x02400000, 0x027fffff);
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->nop_readwrite(0x02400000, 0x027fffff);
+ machine().device("slave")->memory().space(AS_PROGRAM)->nop_readwrite(0x02400000, 0x027fffff);
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02400000, 0x0247ffff, FUNC(saturn_cart_dram0_r), FUNC(saturn_cart_dram0_w));
- machine.device("slave")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02400000, 0x0247ffff, FUNC(saturn_cart_dram0_r), FUNC(saturn_cart_dram0_w));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02600000, 0x0267ffff, FUNC(saturn_cart_dram1_r), FUNC(saturn_cart_dram1_w));
- machine.device("slave")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02600000, 0x0267ffff, FUNC(saturn_cart_dram1_r), FUNC(saturn_cart_dram1_w));
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02400000, 0x0247ffff, FUNC(saturn_cart_dram0_r), FUNC(saturn_cart_dram0_w));
+ machine().device("slave")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02400000, 0x0247ffff, FUNC(saturn_cart_dram0_r), FUNC(saturn_cart_dram0_w));
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02600000, 0x0267ffff, FUNC(saturn_cart_dram1_r), FUNC(saturn_cart_dram1_w));
+ machine().device("slave")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02600000, 0x0267ffff, FUNC(saturn_cart_dram1_r), FUNC(saturn_cart_dram1_w));
}
- if(state->m_cart_type == 6)
+ if(m_cart_type == 6)
{
// AM_RANGE(0x02400000, 0x027fffff) AM_RAM //cart RAM area, dynamically allocated
- machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_readwrite(0x02400000, 0x027fffff);
- machine.device("slave")->memory().space(AS_PROGRAM)->nop_readwrite(0x02400000, 0x027fffff);
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->nop_readwrite(0x02400000, 0x027fffff);
+ machine().device("slave")->memory().space(AS_PROGRAM)->nop_readwrite(0x02400000, 0x027fffff);
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02400000, 0x025fffff, FUNC(saturn_cart_dram0_r), FUNC(saturn_cart_dram0_w));
- machine.device("slave")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02400000, 0x025fffff, FUNC(saturn_cart_dram0_r), FUNC(saturn_cart_dram0_w));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02600000, 0x027fffff, FUNC(saturn_cart_dram1_r), FUNC(saturn_cart_dram1_w));
- machine.device("slave")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02600000, 0x027fffff, FUNC(saturn_cart_dram1_r), FUNC(saturn_cart_dram1_w));
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02400000, 0x025fffff, FUNC(saturn_cart_dram0_r), FUNC(saturn_cart_dram0_w));
+ machine().device("slave")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02400000, 0x025fffff, FUNC(saturn_cart_dram0_r), FUNC(saturn_cart_dram0_w));
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02600000, 0x027fffff, FUNC(saturn_cart_dram1_r), FUNC(saturn_cart_dram1_w));
+ machine().device("slave")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x02600000, 0x027fffff, FUNC(saturn_cart_dram1_r), FUNC(saturn_cart_dram1_w));
}
- machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_readwrite(0x04000000, 0x047fffff);
- machine.device("slave")->memory().space(AS_PROGRAM)->nop_readwrite(0x04000000, 0x047fffff);
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->nop_readwrite(0x04000000, 0x047fffff);
+ machine().device("slave")->memory().space(AS_PROGRAM)->nop_readwrite(0x04000000, 0x047fffff);
- if(state->m_cart_type > 0 && state->m_cart_type < 5)
+ if(m_cart_type > 0 && m_cart_type < 5)
{
// AM_RANGE(0x04000000, 0x047fffff) AM_RAM //backup RAM area, dynamically allocated
UINT32 mask;
- mask = 0x7fffff >> (4-state->m_cart_type);
+ mask = 0x7fffff >> (4-m_cart_type);
//mask = 0x7fffff >> 4-4 = 0x7fffff 32mbit
//mask = 0x7fffff >> 4-3 = 0x3fffff 16mbit
//mask = 0x7fffff >> 4-2 = 0x1fffff 8mbit
//mask = 0x7fffff >> 4-1 = 0x0fffff 4mbit
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x04000000, 0x04000000 | mask, FUNC(saturn_cs1_r), FUNC(saturn_cs1_w));
- machine.device("slave")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x04000000, 0x04000000 | mask, FUNC(saturn_cs1_r), FUNC(saturn_cs1_w));
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x04000000, 0x04000000 | mask, FUNC(saturn_cs1_r), FUNC(saturn_cs1_w));
+ machine().device("slave")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x04000000, 0x04000000 | mask, FUNC(saturn_cs1_r), FUNC(saturn_cs1_w));
}
/* TODO: default value is probably 7 */
- state->m_scu.start_factor[0] = -1;
- state->m_scu.start_factor[1] = -1;
- state->m_scu.start_factor[2] = -1;
+ m_scu.start_factor[0] = -1;
+ m_scu.start_factor[1] = -1;
+ m_scu.start_factor[2] = -1;
- state->m_vdp2.old_crmd = -1;
- state->m_vdp2.old_tvmd = -1;
+ m_vdp2.old_crmd = -1;
+ m_vdp2.old_tvmd = -1;
- state->m_stv_rtc_timer->adjust(attotime::zero, 0, attotime::from_seconds(1));
+ m_stv_rtc_timer->adjust(attotime::zero, 0, attotime::from_seconds(1));
}
-static MACHINE_RESET( stv )
+MACHINE_RESET_MEMBER(saturn_state,stv)
{
- saturn_state *state = machine.driver_data<saturn_state>();
// don't let the slave cpu and the 68k go anywhere
- machine.device("slave")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- machine.device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("slave")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- state->m_en_68k = 0;
- state->m_NMI_reset = 0;
+ m_en_68k = 0;
+ m_NMI_reset = 0;
- state->m_port_sel = state->m_mux_data = 0;
+ m_port_sel = m_mux_data = 0;
- machine.device("maincpu")->set_unscaled_clock(MASTER_CLOCK_320/2);
- machine.device("slave")->set_unscaled_clock(MASTER_CLOCK_320/2);
+ machine().device("maincpu")->set_unscaled_clock(MASTER_CLOCK_320/2);
+ machine().device("slave")->set_unscaled_clock(MASTER_CLOCK_320/2);
- stvcd_reset(machine);
+ stvcd_reset(machine());
- state->m_stv_rtc_timer->adjust(attotime::zero, 0, attotime::from_seconds(1));
- state->m_prev_bankswitch = 0xff;
+ m_stv_rtc_timer->adjust(attotime::zero, 0, attotime::from_seconds(1));
+ m_prev_bankswitch = 0xff;
/* TODO: default value is probably 7 */
- state->m_scu.start_factor[0] = -1;
- state->m_scu.start_factor[1] = -1;
- state->m_scu.start_factor[2] = -1;
+ m_scu.start_factor[0] = -1;
+ m_scu.start_factor[1] = -1;
+ m_scu.start_factor[2] = -1;
- state->m_vdp2.old_crmd = -1;
- state->m_vdp2.old_tvmd = -1;
+ m_vdp2.old_crmd = -1;
+ m_vdp2.old_tvmd = -1;
}
struct cdrom_interface saturn_cdrom =
@@ -2199,8 +2195,8 @@ static MACHINE_CONFIG_START( saturn, saturn_state )
MCFG_CPU_ADD("audiocpu", M68000, 11289600) //256 x 44100 Hz = 11.2896 MHz
MCFG_CPU_PROGRAM_MAP(sound_mem)
- MCFG_MACHINE_START(saturn)
- MCFG_MACHINE_RESET(saturn)
+ MCFG_MACHINE_START_OVERRIDE(saturn_state,saturn)
+ MCFG_MACHINE_RESET_OVERRIDE(saturn_state,saturn)
MCFG_NVRAM_HANDLER(saturn)
@@ -2220,7 +2216,7 @@ static MACHINE_CONFIG_START( saturn, saturn_state )
MCFG_GFXDECODE(stv)
- MCFG_VIDEO_START(stv_vdp2)
+ MCFG_VIDEO_START_OVERRIDE(saturn_state,stv_vdp2)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2287,8 +2283,8 @@ static MACHINE_CONFIG_START( stv, saturn_state )
MCFG_CPU_ADD("audiocpu", M68000, 11289600) //11.2896 MHz
MCFG_CPU_PROGRAM_MAP(sound_mem)
- MCFG_MACHINE_START(stv)
- MCFG_MACHINE_RESET(stv)
+ MCFG_MACHINE_START_OVERRIDE(saturn_state,stv)
+ MCFG_MACHINE_RESET_OVERRIDE(saturn_state,stv)
MCFG_EEPROM_93C46_ADD("eeprom") /* Actually 93c45 */
@@ -2309,7 +2305,7 @@ static MACHINE_CONFIG_START( stv, saturn_state )
MCFG_GFXDECODE(stv)
- MCFG_VIDEO_START(stv_vdp2)
+ MCFG_VIDEO_START_OVERRIDE(saturn_state,stv_vdp2)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c
index e432f81b745..c148d469ec4 100644
--- a/src/mame/drivers/sauro.c
+++ b/src/mame/drivers/sauro.c
@@ -405,7 +405,7 @@ static MACHINE_CONFIG_DERIVED( trckydoc, tecfri )
MCFG_GFXDECODE(trckydoc)
- MCFG_VIDEO_START(trckydoc)
+ MCFG_VIDEO_START_OVERRIDE(sauro_state,trckydoc)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(trckydoc)
@@ -423,7 +423,7 @@ static MACHINE_CONFIG_DERIVED( sauro, tecfri )
MCFG_GFXDECODE(sauro)
- MCFG_VIDEO_START(sauro)
+ MCFG_VIDEO_START_OVERRIDE(sauro_state,sauro)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(sauro)
diff --git a/src/mame/drivers/savquest.c b/src/mame/drivers/savquest.c
index 4478637367b..6eb91074114 100644
--- a/src/mame/drivers/savquest.c
+++ b/src/mame/drivers/savquest.c
@@ -92,6 +92,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(pc_dack2_w);
DECLARE_WRITE_LINE_MEMBER(pc_dack3_w);
DECLARE_WRITE_LINE_MEMBER(savquest_pic8259_1_set_int_line);
+ virtual void machine_start();
+ virtual void machine_reset();
};
// Intel 82439TX System Controller (MXTC)
@@ -516,24 +518,23 @@ static void ide_interrupt(device_t *device, int state)
static READ8_HANDLER( vga_setting ) { return 0xff; } // hard-code to color
-static MACHINE_START( savquest )
+void savquest_state::machine_start()
{
- savquest_state *state = machine.driver_data<savquest_state>();
- state->m_bios_ram = auto_alloc_array(machine, UINT32, 0x20000/4);
+ m_bios_ram = auto_alloc_array(machine(), UINT32, 0x20000/4);
- init_pc_common(machine, PCCOMMON_KEYBOARD_AT, savquest_set_keyb_int);
+ init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, savquest_set_keyb_int);
- state->m_maincpu->set_irq_acknowledge_callback(irq_callback);
- intel82439tx_init(machine);
+ m_maincpu->set_irq_acknowledge_callback(irq_callback);
+ intel82439tx_init(machine());
- kbdc8042_init(machine, &at8042);
- pc_vga_init(machine, vga_setting, NULL);
- pc_vga_io_init(machine, machine.device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine.device("maincpu")->memory().space(AS_IO), 0x0000);
+ kbdc8042_init(machine(), &at8042);
+ pc_vga_init(machine(), vga_setting, NULL);
+ pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000);
}
-static MACHINE_RESET( savquest )
+void savquest_state::machine_reset()
{
- machine.root_device().membank("bank1")->set_base(machine.root_device().memregion("bios")->base() + 0x20000);
+ machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("bios")->base() + 0x20000);
}
static const ide_config ide_intf =
@@ -548,8 +549,6 @@ static MACHINE_CONFIG_START( savquest, savquest_state )
MCFG_CPU_PROGRAM_MAP(savquest_map)
MCFG_CPU_IO_MAP(savquest_io)
- MCFG_MACHINE_START(savquest)
- MCFG_MACHINE_RESET(savquest)
MCFG_PIT8254_ADD( "pit8254", savquest_pit8254_config )
MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
diff --git a/src/mame/drivers/sbasketb.c b/src/mame/drivers/sbasketb.c
index f444dedab2e..6cba6571c3b 100644
--- a/src/mame/drivers/sbasketb.c
+++ b/src/mame/drivers/sbasketb.c
@@ -215,8 +215,6 @@ static MACHINE_CONFIG_START( sbasketb, sbasketb_state )
MCFG_GFXDECODE(sbasketb)
MCFG_PALETTE_LENGTH(16*16+16*16*16)
- MCFG_PALETTE_INIT(sbasketb)
- MCFG_VIDEO_START(sbasketb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sbowling.c b/src/mame/drivers/sbowling.c
index a28c25a1190..d96dacd92e4 100644
--- a/src/mame/drivers/sbowling.c
+++ b/src/mame/drivers/sbowling.c
@@ -71,6 +71,8 @@ public:
DECLARE_WRITE8_MEMBER(graph_control_w);
DECLARE_READ8_MEMBER(controls_r);
TILE_GET_INFO_MEMBER(get_sb_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
TILE_GET_INFO_MEMBER(sbowling_state::get_sb_tile_info)
@@ -124,12 +126,11 @@ static SCREEN_UPDATE_IND16(sbowling)
return 0;
}
-static VIDEO_START(sbowling)
+void sbowling_state::video_start()
{
- sbowling_state *state = machine.driver_data<sbowling_state>();
- state->m_tmpbitmap = auto_bitmap_ind16_alloc(machine,32*8,32*8);
- state->m_sb_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sbowling_state::get_sb_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tmpbitmap = auto_bitmap_ind16_alloc(machine(),32*8,32*8);
+ m_sb_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sbowling_state::get_sb_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
WRITE8_MEMBER(sbowling_state::pix_shift_w)
@@ -340,9 +341,9 @@ static GFXDECODE_START( sbowling )
GFXDECODE_END
-static PALETTE_INIT( sbowling )
+void sbowling_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
static const int resistances_rg[3] = { 470, 270, 100 };
@@ -355,7 +356,7 @@ static PALETTE_INIT( sbowling )
3, resistances_rg, outputs_g, 0, 100,
2, resistances_b, outputs_b, 0, 100);
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0,bit1,bit2,r,g,b;
@@ -376,7 +377,7 @@ static PALETTE_INIT( sbowling )
bit2 = (color_prom[i+0x400] >> 3) & 0x01;
r = (int)(outputs_r[ (bit0<<0) | (bit1<<1) | (bit2<<2) ] + 0.5);
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
}
}
@@ -396,8 +397,6 @@ static MACHINE_CONFIG_START( sbowling, sbowling_state )
MCFG_GFXDECODE(sbowling)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_PALETTE_INIT(sbowling)
- MCFG_VIDEO_START(sbowling)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c
index cf2eec69962..12eec0a6b24 100644
--- a/src/mame/drivers/sbrkout.c
+++ b/src/mame/drivers/sbrkout.c
@@ -63,6 +63,9 @@ public:
DECLARE_READ8_MEMBER(sync2_r);
DECLARE_WRITE8_MEMBER(sbrkout_videoram_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -96,24 +99,22 @@ static TIMER_CALLBACK( pot_trigger_callback );
*
*************************************/
-static MACHINE_START( sbrkout )
+void sbrkout_state::machine_start()
{
- sbrkout_state *state = machine.driver_data<sbrkout_state>();
- UINT8 *videoram = state->m_videoram;
- state->membank("bank1")->set_base(&videoram[0x380]);
- state->m_scanline_timer = machine.scheduler().timer_alloc(FUNC(scanline_callback));
- state->m_pot_timer = machine.scheduler().timer_alloc(FUNC(pot_trigger_callback));
+ UINT8 *videoram = m_videoram;
+ membank("bank1")->set_base(&videoram[0x380]);
+ m_scanline_timer = machine().scheduler().timer_alloc(FUNC(scanline_callback));
+ m_pot_timer = machine().scheduler().timer_alloc(FUNC(pot_trigger_callback));
- state->save_item(NAME(state->m_sync2_value));
- state->save_item(NAME(state->m_pot_mask));
- state->save_item(NAME(state->m_pot_trigger));
+ save_item(NAME(m_sync2_value));
+ save_item(NAME(m_pot_mask));
+ save_item(NAME(m_pot_trigger));
}
-static MACHINE_RESET( sbrkout )
+void sbrkout_state::machine_reset()
{
- sbrkout_state *state = machine.driver_data<sbrkout_state>();
- state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(0));
+ m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0));
}
@@ -305,10 +306,9 @@ TILE_GET_INFO_MEMBER(sbrkout_state::get_bg_tile_info)
}
-static VIDEO_START( sbrkout )
+void sbrkout_state::video_start()
{
- sbrkout_state *state = machine.driver_data<sbrkout_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sbrkout_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sbrkout_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -506,8 +506,6 @@ static MACHINE_CONFIG_START( sbrkout, sbrkout_state )
MCFG_CPU_ADD("maincpu", M6502,MAIN_CLOCK/16) /* 375 KHz? Should be 750KHz? */
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(sbrkout)
- MCFG_MACHINE_RESET(sbrkout)
MCFG_WATCHDOG_VBLANK_INIT(8)
/* video hardware */
@@ -519,7 +517,6 @@ static MACHINE_CONFIG_START( sbrkout, sbrkout_state )
MCFG_SCREEN_UPDATE_STATIC(sbrkout)
MCFG_PALETTE_INIT(black_and_white)
- MCFG_VIDEO_START(sbrkout)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sbugger.c b/src/mame/drivers/sbugger.c
index ce583d9d4b5..9997b8348d6 100644
--- a/src/mame/drivers/sbugger.c
+++ b/src/mame/drivers/sbugger.c
@@ -258,8 +258,6 @@ static MACHINE_CONFIG_START( sbugger, sbugger_state )
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(sbugger)
- MCFG_VIDEO_START(sbugger)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/scobra.c b/src/mame/drivers/scobra.c
index e2f3be2c1ff..a4e4b60f213 100644
--- a/src/mame/drivers/scobra.c
+++ b/src/mame/drivers/scobra.c
@@ -665,7 +665,7 @@ static MACHINE_CONFIG_START( type1, scobra_state )
MCFG_7474_ADD("konami_7474", "konami_7474", NULL, scramble_sh_7474_q_callback)
- MCFG_MACHINE_RESET(scramble)
+ MCFG_MACHINE_RESET_OVERRIDE(scobra_state,scramble)
MCFG_I8255A_ADD( "ppi8255_0", scramble_ppi_0_intf )
MCFG_I8255A_ADD( "ppi8255_1", scramble_ppi_1_intf )
@@ -686,8 +686,8 @@ static MACHINE_CONFIG_START( type1, scobra_state )
MCFG_GFXDECODE(scobra)
MCFG_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 1 for background */
- MCFG_PALETTE_INIT(scrambold)
- MCFG_VIDEO_START(scrambold)
+ MCFG_PALETTE_INIT_OVERRIDE(scobra_state,scrambold)
+ MCFG_VIDEO_START_OVERRIDE(scobra_state,scrambold)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -711,8 +711,8 @@ static MACHINE_CONFIG_DERIVED( rescue, type1 )
MCFG_SCREEN_MODIFY("screen")
MCFG_PALETTE_LENGTH(32+64+2+128) /* 32 for characters, 64 for stars, 2 for bullets, 128 for background */
- MCFG_PALETTE_INIT(rescue)
- MCFG_VIDEO_START(rescue)
+ MCFG_PALETTE_INIT_OVERRIDE(scobra_state,rescue)
+ MCFG_VIDEO_START_OVERRIDE(scobra_state,rescue)
MACHINE_CONFIG_END
@@ -724,8 +724,8 @@ static MACHINE_CONFIG_DERIVED( minefld, type1 )
MCFG_SCREEN_MODIFY("screen")
MCFG_PALETTE_LENGTH(32+64+2+256) /* 32 for characters, 64 for stars, 2 for bullets, 256 for background */
- MCFG_PALETTE_INIT(minefld)
- MCFG_VIDEO_START(minefld)
+ MCFG_PALETTE_INIT_OVERRIDE(scobra_state,minefld)
+ MCFG_VIDEO_START_OVERRIDE(scobra_state,minefld)
MACHINE_CONFIG_END
@@ -736,7 +736,7 @@ static MACHINE_CONFIG_DERIVED( mimonkey, type1 )
MCFG_CPU_PROGRAM_MAP(mimonkey_map)
/* video hardware */
- MCFG_VIDEO_START(mimonkey)
+ MCFG_VIDEO_START_OVERRIDE(scobra_state,mimonkey)
MACHINE_CONFIG_END
@@ -758,8 +758,8 @@ static MACHINE_CONFIG_DERIVED( stratgyx, type2 )
/* video hardware */
MCFG_PALETTE_LENGTH(32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */
- MCFG_PALETTE_INIT(stratgyx)
- MCFG_VIDEO_START(stratgyx)
+ MCFG_PALETTE_INIT_OVERRIDE(scobra_state,stratgyx)
+ MCFG_VIDEO_START_OVERRIDE(scobra_state,stratgyx)
MACHINE_CONFIG_END
@@ -770,8 +770,8 @@ static MACHINE_CONFIG_DERIVED( darkplnt, type2 )
/* video hardware */
MCFG_PALETTE_LENGTH(32+64+2) /* 32 for characters, 64 (buffer) for stars, 2 for bullets */
- MCFG_PALETTE_INIT(darkplnt)
- MCFG_VIDEO_START(darkplnt)
+ MCFG_PALETTE_INIT_OVERRIDE(scobra_state,darkplnt)
+ MCFG_VIDEO_START_OVERRIDE(scobra_state,darkplnt)
MACHINE_CONFIG_END
@@ -787,7 +787,7 @@ static MACHINE_CONFIG_START( hustler, scobra_state )
MCFG_7474_ADD("konami_7474", "konami_7474", NULL, scramble_sh_7474_q_callback)
- MCFG_MACHINE_RESET(scramble)
+ MCFG_MACHINE_RESET_OVERRIDE(scobra_state,scramble)
MCFG_7474_ADD("7474_9m_1", "7474_9m_1", galaxold_7474_9m_1_callback, NULL)
MCFG_7474_ADD("7474_9m_2", "7474_9m_1", NULL, galaxold_7474_9m_2_q_callback)
@@ -809,8 +809,8 @@ static MACHINE_CONFIG_START( hustler, scobra_state )
MCFG_GFXDECODE(scobra)
MCFG_PALETTE_LENGTH(32+64+2) /* 32 for characters, 64 for stars, 2 for bullets */
- MCFG_PALETTE_INIT(galaxold)
- MCFG_VIDEO_START(scrambold)
+ MCFG_PALETTE_INIT_OVERRIDE(scobra_state,galaxold)
+ MCFG_VIDEO_START_OVERRIDE(scobra_state,scrambold)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/scotrsht.c b/src/mame/drivers/scotrsht.c
index 23349e64bcc..8139f024de6 100644
--- a/src/mame/drivers/scotrsht.c
+++ b/src/mame/drivers/scotrsht.c
@@ -202,8 +202,6 @@ static MACHINE_CONFIG_START( scotrsht, scotrsht_state )
MCFG_GFXDECODE(scotrsht)
MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
- MCFG_PALETTE_INIT(scotrsht)
- MCFG_VIDEO_START(scotrsht)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/scramble.c b/src/mame/drivers/scramble.c
index c598a5428e9..efa1498f515 100644
--- a/src/mame/drivers/scramble.c
+++ b/src/mame/drivers/scramble.c
@@ -1333,7 +1333,7 @@ static MACHINE_CONFIG_START( scramble, scramble_state )
MCFG_TIMER_ADD("int_timer", galaxold_interrupt_timer)
- MCFG_MACHINE_RESET(scramble)
+ MCFG_MACHINE_RESET_OVERRIDE(scramble_state,scramble)
MCFG_I8255A_ADD( "ppi8255_0", scramble_ppi_0_intf )
MCFG_I8255A_ADD( "ppi8255_1", scramble_ppi_1_intf )
@@ -1349,8 +1349,8 @@ static MACHINE_CONFIG_START( scramble, scramble_state )
MCFG_GFXDECODE(scramble)
MCFG_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
- MCFG_PALETTE_INIT(scrambold)
- MCFG_VIDEO_START(scrambold)
+ MCFG_PALETTE_INIT_OVERRIDE(scramble_state,scrambold)
+ MCFG_VIDEO_START_OVERRIDE(scramble_state,scrambold)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1370,7 +1370,7 @@ static MACHINE_CONFIG_DERIVED( mars, scramble )
/* video hardware */
MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
- MCFG_PALETTE_INIT(galaxold)
+ MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( devilfsh, scramble )
@@ -1382,7 +1382,7 @@ static MACHINE_CONFIG_DERIVED( devilfsh, scramble )
/* video hardware */
MCFG_GFXDECODE(devilfsh)
MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
- MCFG_PALETTE_INIT(galaxold)
+ MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( newsin7, scramble )
@@ -1394,8 +1394,8 @@ static MACHINE_CONFIG_DERIVED( newsin7, scramble )
/* video hardware */
MCFG_GFXDECODE(newsin7)
MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
- MCFG_PALETTE_INIT(galaxold)
- MCFG_VIDEO_START(scrambold)
+ MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold)
+ MCFG_VIDEO_START_OVERRIDE(scramble_state,scrambold)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mrkougar, scramble )
@@ -1410,7 +1410,7 @@ static MACHINE_CONFIG_DERIVED( mrkougar, scramble )
/* video hardware */
MCFG_GFXDECODE(mrkougar)
MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
- MCFG_PALETTE_INIT(galaxold)
+ MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mrkougb, scramble )
@@ -1424,7 +1424,7 @@ static MACHINE_CONFIG_DERIVED( mrkougb, scramble )
/* video hardware */
MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
- MCFG_PALETTE_INIT(galaxold)
+ MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( ckongs, scramble )
@@ -1435,8 +1435,8 @@ static MACHINE_CONFIG_DERIVED( ckongs, scramble )
/* video hardware */
MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
- MCFG_PALETTE_INIT(galaxold)
- MCFG_VIDEO_START(ckongs)
+ MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold)
+ MCFG_VIDEO_START_OVERRIDE(scramble_state,ckongs)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( hotshock, scramble )
@@ -1451,12 +1451,12 @@ static MACHINE_CONFIG_DERIVED( hotshock, scramble )
MCFG_CPU_MODIFY("audiocpu")
MCFG_CPU_IO_MAP(hotshock_sound_io_map)
- MCFG_MACHINE_RESET(galaxold)
+ MCFG_MACHINE_RESET_OVERRIDE(scramble_state,galaxold)
/* video hardware */
MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
- MCFG_PALETTE_INIT(galaxold)
- MCFG_VIDEO_START(pisces)
+ MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold)
+ MCFG_VIDEO_START_OVERRIDE(scramble_state,pisces)
MCFG_SOUND_MODIFY("8910.1")
MCFG_SOUND_ROUTES_RESET()
@@ -1474,8 +1474,8 @@ static MACHINE_CONFIG_DERIVED( cavelon, scramble )
/* video hardware */
MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
- MCFG_PALETTE_INIT(galaxold)
- MCFG_VIDEO_START(ckongs)
+ MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold)
+ MCFG_VIDEO_START_OVERRIDE(scramble_state,ckongs)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mimonscr, scramble )
@@ -1485,7 +1485,7 @@ static MACHINE_CONFIG_DERIVED( mimonscr, scramble )
MCFG_CPU_PROGRAM_MAP(mimonscr_map)
/* video hardware */
- MCFG_VIDEO_START(mimonkey)
+ MCFG_VIDEO_START_OVERRIDE(scramble_state,mimonkey)
MACHINE_CONFIG_END
/* Triple Punch and Mariner are different - only one CPU, one 8910 */
@@ -1503,7 +1503,7 @@ static MACHINE_CONFIG_DERIVED( triplep, scramble )
/* video hardware */
MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets */
- MCFG_PALETTE_INIT(galaxold)
+ MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold)
/* sound hardware */
MCFG_SOUND_MODIFY("8910.1")
@@ -1522,8 +1522,8 @@ static MACHINE_CONFIG_DERIVED( mariner, triplep )
/* video hardware */
MCFG_PALETTE_LENGTH(32+64+2+16) /* 32 for characters, 64 for stars, 2 for bullets, 16 for background */
- MCFG_PALETTE_INIT(mariner)
- MCFG_VIDEO_START(mariner)
+ MCFG_PALETTE_INIT_OVERRIDE(scramble_state,mariner)
+ MCFG_VIDEO_START_OVERRIDE(scramble_state,mariner)
MACHINE_CONFIG_END
/* Hunchback replaces the Z80 with a S2650 CPU */
@@ -1541,7 +1541,7 @@ static MACHINE_CONFIG_DERIVED( hunchbks, scramble )
/* video hardware */
MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets */
- MCFG_PALETTE_INIT(galaxold)
+ MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( hncholms, hunchbks )
@@ -1550,7 +1550,7 @@ static MACHINE_CONFIG_DERIVED( hncholms, hunchbks )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_CLOCK(18432000/6/2/2)
- MCFG_VIDEO_START(scorpion)
+ MCFG_VIDEO_START_OVERRIDE(scramble_state,scorpion)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( ad2083, scramble_state )
@@ -1564,7 +1564,7 @@ static MACHINE_CONFIG_START( ad2083, scramble_state )
MCFG_TIMER_ADD("int_timer", galaxold_interrupt_timer)
- MCFG_MACHINE_RESET(galaxold)
+ MCFG_MACHINE_RESET_OVERRIDE(scramble_state,galaxold)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1577,8 +1577,8 @@ static MACHINE_CONFIG_START( ad2083, scramble_state )
MCFG_GFXDECODE(ad2083)
MCFG_PALETTE_LENGTH(32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */
- MCFG_PALETTE_INIT(turtles)
- MCFG_VIDEO_START(ad2083)
+ MCFG_PALETTE_INIT_OVERRIDE(scramble_state,turtles)
+ MCFG_VIDEO_START_OVERRIDE(scramble_state,ad2083)
/* sound hardware */
diff --git a/src/mame/drivers/scregg.c b/src/mame/drivers/scregg.c
index 06557f776f6..76e38a277c2 100644
--- a/src/mame/drivers/scregg.c
+++ b/src/mame/drivers/scregg.c
@@ -64,6 +64,8 @@ public:
DECLARE_READ8_MEMBER(scregg_irqack_r);
DECLARE_DRIVER_INIT(rockduck);
+ DECLARE_MACHINE_START(scregg);
+ DECLARE_MACHINE_RESET(scregg);
};
@@ -231,30 +233,28 @@ GFXDECODE_END
-static MACHINE_START( scregg )
+MACHINE_START_MEMBER(scregg_state,scregg)
{
- scregg_state *state = machine.driver_data<scregg_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = NULL;
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = NULL;
- state->save_item(NAME(state->m_btime_palette));
- state->save_item(NAME(state->m_bnj_scroll1));
- state->save_item(NAME(state->m_bnj_scroll2));
- state->save_item(NAME(state->m_btime_tilemap));
+ save_item(NAME(m_btime_palette));
+ save_item(NAME(m_bnj_scroll1));
+ save_item(NAME(m_bnj_scroll2));
+ save_item(NAME(m_btime_tilemap));
}
-static MACHINE_RESET( scregg )
+MACHINE_RESET_MEMBER(scregg_state,scregg)
{
- scregg_state *state = machine.driver_data<scregg_state>();
-
- state->m_btime_palette = 0;
- state->m_bnj_scroll1 = 0;
- state->m_bnj_scroll2 = 0;
- state->m_btime_tilemap[0] = 0;
- state->m_btime_tilemap[1] = 0;
- state->m_btime_tilemap[2] = 0;
- state->m_btime_tilemap[3] = 0;
+
+ m_btime_palette = 0;
+ m_bnj_scroll1 = 0;
+ m_bnj_scroll2 = 0;
+ m_btime_tilemap[0] = 0;
+ m_btime_tilemap[1] = 0;
+ m_btime_tilemap[2] = 0;
+ m_btime_tilemap[3] = 0;
}
static MACHINE_CONFIG_START( dommy, scregg_state )
@@ -264,8 +264,8 @@ static MACHINE_CONFIG_START( dommy, scregg_state )
MCFG_CPU_PROGRAM_MAP(dommy_map)
MCFG_TIMER_ADD_SCANLINE("irq", scregg_interrupt, "screen", 0, 8)
- MCFG_MACHINE_START(scregg)
- MCFG_MACHINE_RESET(scregg)
+ MCFG_MACHINE_START_OVERRIDE(scregg_state,scregg)
+ MCFG_MACHINE_RESET_OVERRIDE(scregg_state,scregg)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -275,8 +275,8 @@ static MACHINE_CONFIG_START( dommy, scregg_state )
MCFG_GFXDECODE(scregg)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(btime)
- MCFG_VIDEO_START(btime)
+ MCFG_PALETTE_INIT_OVERRIDE(scregg_state,btime)
+ MCFG_VIDEO_START_OVERRIDE(scregg_state,btime)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -296,8 +296,8 @@ static MACHINE_CONFIG_START( scregg, scregg_state )
MCFG_CPU_PROGRAM_MAP(eggs_map)
MCFG_TIMER_ADD_SCANLINE("irq", scregg_interrupt, "screen", 0, 8)
- MCFG_MACHINE_START(scregg)
- MCFG_MACHINE_RESET(scregg)
+ MCFG_MACHINE_START_OVERRIDE(scregg_state,scregg)
+ MCFG_MACHINE_RESET_OVERRIDE(scregg_state,scregg)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -307,8 +307,8 @@ static MACHINE_CONFIG_START( scregg, scregg_state )
MCFG_GFXDECODE(scregg)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(btime)
- MCFG_VIDEO_START(btime)
+ MCFG_PALETTE_INIT_OVERRIDE(scregg_state,btime)
+ MCFG_VIDEO_START_OVERRIDE(scregg_state,btime)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sderby.c b/src/mame/drivers/sderby.c
index b126a408dd3..e88dbf820f4 100644
--- a/src/mame/drivers/sderby.c
+++ b/src/mame/drivers/sderby.c
@@ -510,7 +510,6 @@ static MACHINE_CONFIG_START( sderby, sderby_state )
MCFG_GFXDECODE(sderby)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(sderby)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -534,7 +533,6 @@ static MACHINE_CONFIG_START( luckboom, sderby_state )
MCFG_GFXDECODE(sderby)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(sderby)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -558,7 +556,6 @@ static MACHINE_CONFIG_START( spacewin, sderby_state )
MCFG_GFXDECODE(sderby)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(sderby)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -582,7 +579,6 @@ static MACHINE_CONFIG_START( pmroulet, sderby_state )
MCFG_GFXDECODE(sderby)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(sderby)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
diff --git a/src/mame/drivers/seattle.c b/src/mame/drivers/seattle.c
index 3f1c16d6868..82202aaf4a7 100644
--- a/src/mame/drivers/seattle.c
+++ b/src/mame/drivers/seattle.c
@@ -494,6 +494,8 @@ public:
DECLARE_DRIVER_INIT(wg3dh);
DECLARE_DRIVER_INIT(mace);
DECLARE_DRIVER_INIT(blitz99);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -534,83 +536,81 @@ static SCREEN_UPDATE_RGB32( seattle )
*
*************************************/
-static MACHINE_START( seattle )
+void seattle_state::machine_start()
{
- seattle_state *state = machine.driver_data<seattle_state>();
int index;
- state->m_voodoo = machine.device("voodoo");
+ m_voodoo = machine().device("voodoo");
/* allocate timers for the galileo */
- state->m_galileo.timer[0].timer = machine.scheduler().timer_alloc(FUNC(galileo_timer_callback));
- state->m_galileo.timer[1].timer = machine.scheduler().timer_alloc(FUNC(galileo_timer_callback));
- state->m_galileo.timer[2].timer = machine.scheduler().timer_alloc(FUNC(galileo_timer_callback));
- state->m_galileo.timer[3].timer = machine.scheduler().timer_alloc(FUNC(galileo_timer_callback));
+ m_galileo.timer[0].timer = machine().scheduler().timer_alloc(FUNC(galileo_timer_callback));
+ m_galileo.timer[1].timer = machine().scheduler().timer_alloc(FUNC(galileo_timer_callback));
+ m_galileo.timer[2].timer = machine().scheduler().timer_alloc(FUNC(galileo_timer_callback));
+ m_galileo.timer[3].timer = machine().scheduler().timer_alloc(FUNC(galileo_timer_callback));
/* set the fastest DRC options, but strict verification */
- mips3drc_set_options(machine.device("maincpu"), MIPS3DRC_FASTEST_OPTIONS + MIPS3DRC_STRICT_VERIFY);
+ mips3drc_set_options(machine().device("maincpu"), MIPS3DRC_FASTEST_OPTIONS + MIPS3DRC_STRICT_VERIFY);
/* configure fast RAM regions for DRC */
- mips3drc_add_fastram(machine.device("maincpu"), 0x00000000, 0x007fffff, FALSE, state->m_rambase);
- mips3drc_add_fastram(machine.device("maincpu"), 0x1fc00000, 0x1fc7ffff, TRUE, state->m_rombase);
+ mips3drc_add_fastram(machine().device("maincpu"), 0x00000000, 0x007fffff, FALSE, m_rambase);
+ mips3drc_add_fastram(machine().device("maincpu"), 0x1fc00000, 0x1fc7ffff, TRUE, m_rombase);
/* register for save states */
- state_save_register_global_array(machine, state->m_galileo.reg);
- state_save_register_global(machine, state->m_galileo.dma_active);
- state_save_register_global_array(machine, state->m_galileo.dma_stalled_on_voodoo);
- state_save_register_global_array(machine, state->m_galileo.pci_bridge_regs);
- state_save_register_global_array(machine, state->m_galileo.pci_3dfx_regs);
- state_save_register_global_array(machine, state->m_galileo.pci_ide_regs);
- for (index = 0; index < ARRAY_LENGTH(state->m_galileo.timer); index++)
+ state_save_register_global_array(machine(), m_galileo.reg);
+ state_save_register_global(machine(), m_galileo.dma_active);
+ state_save_register_global_array(machine(), m_galileo.dma_stalled_on_voodoo);
+ state_save_register_global_array(machine(), m_galileo.pci_bridge_regs);
+ state_save_register_global_array(machine(), m_galileo.pci_3dfx_regs);
+ state_save_register_global_array(machine(), m_galileo.pci_ide_regs);
+ for (index = 0; index < ARRAY_LENGTH(m_galileo.timer); index++)
{
- state_save_register_item(machine, "galileo", NULL, index, state->m_galileo.timer[index].count);
- state_save_register_item(machine, "galileo", NULL, index, state->m_galileo.timer[index].active);
+ state_save_register_item(machine(), "galileo", NULL, index, m_galileo.timer[index].count);
+ state_save_register_item(machine(), "galileo", NULL, index, m_galileo.timer[index].active);
}
- state_save_register_global(machine, state->m_widget.ethernet_addr);
- state_save_register_global(machine, state->m_widget.irq_num);
- state_save_register_global(machine, state->m_widget.irq_mask);
- state_save_register_global(machine, state->m_voodoo_stalled);
- state_save_register_global(machine, state->m_cpu_stalled_on_voodoo);
- state_save_register_global(machine, state->m_cpu_stalled_offset);
- state_save_register_global(machine, state->m_cpu_stalled_data);
- state_save_register_global(machine, state->m_cpu_stalled_mem_mask);
- state_save_register_global(machine, state->m_board_config);
- state_save_register_global(machine, state->m_ethernet_irq_num);
- state_save_register_global(machine, state->m_ethernet_irq_state);
- state_save_register_global(machine, state->m_vblank_irq_num);
- state_save_register_global(machine, state->m_vblank_latch);
- state_save_register_global(machine, state->m_vblank_state);
- state_save_register_global(machine, state->m_pending_analog_read);
- state_save_register_global(machine, state->m_status_leds);
- state_save_register_global(machine, state->m_cmos_write_enabled);
+ state_save_register_global(machine(), m_widget.ethernet_addr);
+ state_save_register_global(machine(), m_widget.irq_num);
+ state_save_register_global(machine(), m_widget.irq_mask);
+ state_save_register_global(machine(), m_voodoo_stalled);
+ state_save_register_global(machine(), m_cpu_stalled_on_voodoo);
+ state_save_register_global(machine(), m_cpu_stalled_offset);
+ state_save_register_global(machine(), m_cpu_stalled_data);
+ state_save_register_global(machine(), m_cpu_stalled_mem_mask);
+ state_save_register_global(machine(), m_board_config);
+ state_save_register_global(machine(), m_ethernet_irq_num);
+ state_save_register_global(machine(), m_ethernet_irq_state);
+ state_save_register_global(machine(), m_vblank_irq_num);
+ state_save_register_global(machine(), m_vblank_latch);
+ state_save_register_global(machine(), m_vblank_state);
+ state_save_register_global(machine(), m_pending_analog_read);
+ state_save_register_global(machine(), m_status_leds);
+ state_save_register_global(machine(), m_cmos_write_enabled);
}
-static MACHINE_RESET( seattle )
+void seattle_state::machine_reset()
{
- seattle_state *state = machine.driver_data<seattle_state>();
- state->m_galileo.dma_active = -1;
+ m_galileo.dma_active = -1;
- state->m_vblank_irq_num = 0;
- state->m_voodoo_stalled = FALSE;
- state->m_cpu_stalled_on_voodoo = FALSE;
+ m_vblank_irq_num = 0;
+ m_voodoo_stalled = FALSE;
+ m_cpu_stalled_on_voodoo = FALSE;
/* reset either the DCS2 board or the CAGE board */
- if (machine.device("dcs2") != NULL)
+ if (machine().device("dcs2") != NULL)
{
- dcs_reset_w(machine, 1);
- dcs_reset_w(machine, 0);
+ dcs_reset_w(machine(), 1);
+ dcs_reset_w(machine(), 0);
}
- else if (machine.device("cage") != NULL)
+ else if (machine().device("cage") != NULL)
{
- cage_control_w(machine, 0);
- cage_control_w(machine, 3);
+ cage_control_w(machine(), 0);
+ cage_control_w(machine(), 3);
}
/* reset the other devices */
- galileo_reset(machine);
- if (state->m_board_config == SEATTLE_WIDGET_CONFIG)
- widget_reset(machine);
+ galileo_reset(machine());
+ if (m_board_config == SEATTLE_WIDGET_CONFIG)
+ widget_reset(machine());
}
@@ -2548,8 +2548,6 @@ static MACHINE_CONFIG_START( seattle_common, seattle_state )
MCFG_CPU_CONFIG(r5000_config)
MCFG_CPU_PROGRAM_MAP(seattle_map)
- MCFG_MACHINE_START(seattle)
- MCFG_MACHINE_RESET(seattle)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_IDE_CONTROLLER_ADD("ide", ide_intf, ide_devices, "hdd", NULL, true)
diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c
index 41198e4a44c..bae76aacbba 100644
--- a/src/mame/drivers/segac2.c
+++ b/src/mame/drivers/segac2.c
@@ -102,23 +102,21 @@ static void recompute_palette_tables( running_machine &machine );
******************************************************************************/
-static MACHINE_START( segac2 )
+MACHINE_START_MEMBER(segac2_state,segac2)
{
- segac2_state *state = machine.driver_data<segac2_state>();
- state_save_register_global_array(machine, state->m_misc_io_data);
- state_save_register_global(machine, state->m_prot_write_buf);
- state_save_register_global(machine, state->m_prot_read_buf);
+ state_save_register_global_array(machine(), m_misc_io_data);
+ state_save_register_global(machine(), m_prot_write_buf);
+ state_save_register_global(machine(), m_prot_read_buf);
}
-static MACHINE_RESET( segac2 )
+MACHINE_RESET_MEMBER(segac2_state,segac2)
{
- segac2_state *state = machine.driver_data<segac2_state>();
// megadriv_framerate = 60;
-// megadriv_scanline_timer = machine.device<timer_device>("md_scan_timer");
+// megadriv_scanline_timer = machine().device<timer_device>("md_scan_timer");
// megadriv_scanline_timer->adjust(attotime::zero);
segac2_bg_pal_lookup[0] = 0x00;
segac2_bg_pal_lookup[1] = 0x10;
@@ -130,23 +128,23 @@ static MACHINE_RESET( segac2 )
segac2_sp_pal_lookup[2] = 0x20;
segac2_sp_pal_lookup[3] = 0x30;
- megadriv_reset_vdp(machine);
+ megadriv_reset_vdp(machine());
/* determine how many sound banks */
- state->m_sound_banks = 0;
- if (state->memregion("upd")->base())
- state->m_sound_banks = state->memregion("upd")->bytes() / 0x20000;
+ m_sound_banks = 0;
+ if (memregion("upd")->base())
+ m_sound_banks = memregion("upd")->bytes() / 0x20000;
/* reset the protection */
- state->m_prot_write_buf = 0;
- state->m_prot_read_buf = 0;
- state->m_segac2_alt_palette_mode = 0;
+ m_prot_write_buf = 0;
+ m_prot_read_buf = 0;
+ m_segac2_alt_palette_mode = 0;
- state->m_palbank = 0;
- state->m_bg_palbase = 0;
- state->m_sp_palbase = 0;
+ m_palbank = 0;
+ m_bg_palbase = 0;
+ m_sp_palbase = 0;
- recompute_palette_tables(machine);
+ recompute_palette_tables(machine());
}
@@ -1268,9 +1266,9 @@ static const ym3438_interface ym3438_intf =
******************************************************************************/
-static VIDEO_START(segac2_new)
+VIDEO_START_MEMBER(segac2_state,segac2_new)
{
- VIDEO_START_CALL(megadriv);
+ VIDEO_START_CALL_LEGACY(megadriv);
}
// C2 doesn't use the internal VDP CRAM, instead it uses the digital output of the chip
@@ -1375,8 +1373,8 @@ static MACHINE_CONFIG_START( segac, segac2_state )
MCFG_CPU_ADD("maincpu", M68000, XL2_CLOCK/6)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(segac2)
- MCFG_MACHINE_RESET(segac2)
+ MCFG_MACHINE_START_OVERRIDE(segac2_state,segac2)
+ MCFG_MACHINE_RESET_OVERRIDE(segac2_state,segac2)
MCFG_NVRAM_ADD_RANDOM_FILL("nvram")
// MCFG_FRAGMENT_ADD(megadriv_timers)
@@ -1401,7 +1399,7 @@ static MACHINE_CONFIG_START( segac, segac2_state )
MCFG_PALETTE_LENGTH(2048*3)
- MCFG_VIDEO_START(segac2_new)
+ MCFG_VIDEO_START_OVERRIDE(segac2_state,segac2_new)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c
index 632446bcdce..44e4419927a 100644
--- a/src/mame/drivers/segag80r.c
+++ b/src/mame/drivers/segag80r.c
@@ -153,7 +153,7 @@ INPUT_CHANGED_MEMBER(segag80r_state::service_switch)
}
-static MACHINE_START( g80r )
+void segag80r_state::machine_start()
{
/* register for save states */
}
@@ -845,7 +845,6 @@ static MACHINE_CONFIG_START( g80r_base, segag80r_state )
MCFG_CPU_IO_MAP(main_portmap)
MCFG_CPU_VBLANK_INT("screen", segag80r_vblank_start)
- MCFG_MACHINE_START(g80r)
/* video hardware */
MCFG_GFXDECODE(segag80r)
@@ -855,7 +854,6 @@ static MACHINE_CONFIG_START( g80r_base, segag80r_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(segag80r)
- MCFG_VIDEO_START(segag80r)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/segag80v.c b/src/mame/drivers/segag80v.c
index defbe1f5176..0c4f11d5bbb 100644
--- a/src/mame/drivers/segag80v.c
+++ b/src/mame/drivers/segag80v.c
@@ -166,15 +166,14 @@ INPUT_CHANGED_MEMBER(segag80v_state::service_switch)
}
-static MACHINE_START( g80v )
+void segag80v_state::machine_start()
{
- segag80v_state *state = machine.driver_data<segag80v_state>();
/* register for save states */
- state_save_register_global_array(machine, state->m_mult_data);
- state_save_register_global(machine, state->m_mult_result);
- state_save_register_global(machine, state->m_spinner_select);
- state_save_register_global(machine, state->m_spinner_sign);
- state_save_register_global(machine, state->m_spinner_count);
+ state_save_register_global_array(machine(), m_mult_data);
+ state_save_register_global(machine(), m_mult_result);
+ state_save_register_global(machine(), m_spinner_select);
+ state_save_register_global(machine(), m_spinner_sign);
+ state_save_register_global(machine(), m_spinner_count);
}
@@ -901,7 +900,6 @@ static MACHINE_CONFIG_START( g80v_base, segag80v_state )
MCFG_CPU_IO_MAP(main_portmap)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(g80v)
/* video hardware */
MCFG_SCREEN_ADD("screen", VECTOR)
@@ -910,7 +908,6 @@ static MACHINE_CONFIG_START( g80v_base, segag80v_state )
MCFG_SCREEN_VISIBLE_AREA(512, 1536, 640-32, 1408+32)
MCFG_SCREEN_UPDATE_STATIC(segag80v)
- MCFG_VIDEO_START(segag80v)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/segajw.c b/src/mame/drivers/segajw.c
index f3673e89f3b..fb54da8500e 100644
--- a/src/mame/drivers/segajw.c
+++ b/src/mame/drivers/segajw.c
@@ -43,6 +43,7 @@ protected:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ virtual void palette_init();
};
@@ -81,7 +82,7 @@ void segajw_state::machine_reset()
{
}
-static PALETTE_INIT( segajw )
+void segajw_state::palette_init()
{
}
@@ -100,7 +101,6 @@ static MACHINE_CONFIG_START( segajw, segajw_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_PALETTE_INIT(segajw)
MCFG_PALETTE_LENGTH(16)
/* sound hardware */
diff --git a/src/mame/drivers/segald.c b/src/mame/drivers/segald.c
index 9820b7ef6ee..fac1fb8c11e 100644
--- a/src/mame/drivers/segald.c
+++ b/src/mame/drivers/segald.c
@@ -57,6 +57,7 @@ public:
DECLARE_WRITE8_MEMBER(astron_FIX_write);
DECLARE_WRITE8_MEMBER(astron_io_bankswitch_w);
DECLARE_DRIVER_INIT(astron);
+ virtual void machine_start();
};
/* VIDEO GOODS */
@@ -359,7 +360,7 @@ static GFXDECODE_START( segald )
GFXDECODE_END
-static MACHINE_START( astron )
+void segald_state::machine_start()
{
}
@@ -373,7 +374,6 @@ static MACHINE_CONFIG_START( astron, segald_state )
MCFG_CPU_IO_MAP(mainport)
MCFG_CPU_PERIODIC_INT(nmi_line_pulse, 1000.0/59.94)
- MCFG_MACHINE_START(astron)
MCFG_LASERDISC_LDV1000_ADD("laserdisc")
MCFG_LASERDISC_OVERLAY_STATIC(256, 256, astron)
diff --git a/src/mame/drivers/segas24.c b/src/mame/drivers/segas24.c
index 83576fe0741..ad992df72be 100644
--- a/src/mame/drivers/segas24.c
+++ b/src/mame/drivers/segas24.c
@@ -1258,37 +1258,35 @@ ADDRESS_MAP_END
*
*************************************/
-static MACHINE_START( system24 )
+void segas24_state::machine_start()
{
- segas24_state *state = machine.driver_data<segas24_state>();
- if (state->track_size)
- machine.device<nvram_device>("floppy_nvram")->set_base(state->memregion("floppy")->base(), 2*state->track_size);
+ if (track_size)
+ machine().device<nvram_device>("floppy_nvram")->set_base(memregion("floppy")->base(), 2*track_size);
- UINT8 *usr1 = state->memregion("romboard")->base();
+ UINT8 *usr1 = memregion("romboard")->base();
if (usr1)
{
- state->membank("bank1")->configure_entries(0, 16, usr1, 0x40000);
- state->membank("bank2")->configure_entries(0, 16, usr1, 0x40000);
+ membank("bank1")->configure_entries(0, 16, usr1, 0x40000);
+ membank("bank2")->configure_entries(0, 16, usr1, 0x40000);
}
- state->vtile = machine.device<segas24_tile>("tile");
- state->vsprite = machine.device<segas24_sprite>("sprite");
- state->vmixer = machine.device<segas24_mixer>("mixer");
+ vtile = machine().device<segas24_tile>("tile");
+ vsprite = machine().device<segas24_sprite>("sprite");
+ vmixer = machine().device<segas24_mixer>("mixer");
}
-static MACHINE_RESET( system24 )
+void segas24_state::machine_reset()
{
- segas24_state *state = machine.driver_data<segas24_state>();
- machine.device("subcpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
- state->prev_resetcontrol = state->resetcontrol = 0x06;
- state->fdc_init();
- state->curbank = 0;
- state->reset_bank();
- state->irq_init();
- state->mlatch = 0x00;
- state->frc_mode = 0;
- state->frc_cnt_timer = machine.device<timer_device>("frc_timer");
- state->frc_cnt_timer->reset();
+ machine().device("subcpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+ prev_resetcontrol = resetcontrol = 0x06;
+ fdc_init();
+ curbank = 0;
+ reset_bank();
+ irq_init();
+ mlatch = 0x00;
+ frc_mode = 0;
+ frc_cnt_timer = machine().device<timer_device>("frc_timer");
+ frc_cnt_timer->reset();
}
/*************************************
@@ -1955,8 +1953,6 @@ static MACHINE_CONFIG_START( system24, segas24_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(system24)
- MCFG_MACHINE_RESET(system24)
MCFG_TIMER_ADD("irq_timer", irq_timer_cb)
MCFG_TIMER_ADD("irq_timer_clear", irq_timer_clear_cb)
diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c
index d5b9ab82e05..8ee1713e490 100644
--- a/src/mame/drivers/segas32.c
+++ b/src/mame/drivers/segas32.c
@@ -385,18 +385,17 @@ static void signal_sound_irq(running_machine &machine, int which);
*
*************************************/
-static MACHINE_RESET( system32 )
+MACHINE_RESET_MEMBER(segas32_state,system32)
{
- segas32_state *state = machine.driver_data<segas32_state>();
/* initialize the interrupt controller */
- memset(state->m_v60_irq_control, 0xff, sizeof(state->m_v60_irq_control));
+ memset(m_v60_irq_control, 0xff, sizeof(m_v60_irq_control));
/* allocate timers */
- state->m_v60_irq_timer[0] = machine.device<timer_device>("v60_irq0");
- state->m_v60_irq_timer[1] = machine.device<timer_device>("v60_irq1");
+ m_v60_irq_timer[0] = machine().device<timer_device>("v60_irq0");
+ m_v60_irq_timer[1] = machine().device<timer_device>("v60_irq1");
/* clear IRQ lines */
- machine.device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
+ machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
}
@@ -2200,7 +2199,7 @@ static MACHINE_CONFIG_START( system32, segas32_state )
MCFG_CPU_PROGRAM_MAP(system32_sound_map)
MCFG_CPU_IO_MAP(system32_sound_portmap)
- MCFG_MACHINE_RESET(system32)
+ MCFG_MACHINE_RESET_OVERRIDE(segas32_state,system32)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -2217,7 +2216,7 @@ static MACHINE_CONFIG_START( system32, segas32_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_STATIC(system32)
- MCFG_VIDEO_START(system32)
+ MCFG_VIDEO_START_OVERRIDE(segas32_state,system32)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2259,7 +2258,7 @@ static MACHINE_CONFIG_START( multi32, segas32_state )
MCFG_CPU_PROGRAM_MAP(multi32_sound_map)
MCFG_CPU_IO_MAP(multi32_sound_portmap)
- MCFG_MACHINE_RESET(system32)
+ MCFG_MACHINE_RESET_OVERRIDE(segas32_state,system32)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -2283,7 +2282,7 @@ static MACHINE_CONFIG_START( multi32, segas32_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_STATIC(multi32_right)
- MCFG_VIDEO_START(multi32)
+ MCFG_VIDEO_START_OVERRIDE(segas32_state,multi32)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/seibuspi.c b/src/mame/drivers/seibuspi.c
index 9c070a9f707..da8ea32daed 100644
--- a/src/mame/drivers/seibuspi.c
+++ b/src/mame/drivers/seibuspi.c
@@ -1801,46 +1801,44 @@ static IRQ_CALLBACK(spi_irq_callback)
/* SPI */
-static MACHINE_START( spi )
+MACHINE_START_MEMBER(seibuspi_state,spi)
{
- seibuspi_state *state = machine.driver_data<seibuspi_state>();
- state->m_z80_rom = auto_alloc_array(machine, UINT8, 0x40000);
+ m_z80_rom = auto_alloc_array(machine(), UINT8, 0x40000);
}
-static MACHINE_RESET( spi )
+MACHINE_RESET_MEMBER(seibuspi_state,spi)
{
- seibuspi_state *state = machine.driver_data<seibuspi_state>();
int i;
- UINT8 *sound = state->memregion("ymf")->base();
+ UINT8 *sound = memregion("ymf")->base();
- UINT8 *rombase = state->memregion("user1")->base();
+ UINT8 *rombase = memregion("user1")->base();
UINT8 flash_data = rombase[0x1ffffc];
- machine.device("soundcpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE );
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(spi_irq_callback);
+ machine().device("soundcpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE );
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(spi_irq_callback);
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x00000680, 0x00000683, read32_delegate(FUNC(seibuspi_state::sound_fifo_r),state));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x00000688, 0x0000068b, write32_delegate(FUNC(seibuspi_state::z80_prg_fifo_w),state));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x0000068c, 0x0000068f, write32_delegate(FUNC(seibuspi_state::z80_enable_w),state));
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x00000680, 0x00000683, read32_delegate(FUNC(seibuspi_state::sound_fifo_r),this));
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x00000688, 0x0000068b, write32_delegate(FUNC(seibuspi_state::z80_prg_fifo_w),this));
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x0000068c, 0x0000068f, write32_delegate(FUNC(seibuspi_state::z80_enable_w),this));
- state->membank("bank4")->set_base(state->m_z80_rom);
- state->membank("bank5")->set_base(state->m_z80_rom);
+ membank("bank4")->set_base(m_z80_rom);
+ membank("bank5")->set_base(m_z80_rom);
/* If the first value doesn't match, the game shows a checksum error */
/* If any of the other values are wrong, the game goes to update mode */
- state->m_flash[0]->write(0, 0xff);
- state->m_flash[0]->write(0, 0x10);
- state->m_flash[0]->write(0, flash_data); /* country code */
+ m_flash[0]->write(0, 0xff);
+ m_flash[0]->write(0, 0x10);
+ m_flash[0]->write(0, flash_data); /* country code */
for (i=0; i < 0x100000; i++)
{
- state->m_flash[0]->write(0, 0xff);
- sound[i] = state->m_flash[0]->read(i);
+ m_flash[0]->write(0, 0xff);
+ sound[i] = m_flash[0]->read(i);
}
for (i=0; i < 0x100000; i++)
{
- state->m_flash[1]->write(0, 0xff);
- sound[0x100000+i] = state->m_flash[1]->read(i);
+ m_flash[1]->write(0, 0xff);
+ sound[0x100000+i] = m_flash[1]->read(i);
}
}
@@ -1856,8 +1854,8 @@ static MACHINE_CONFIG_START( spi, seibuspi_state )
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
- MCFG_MACHINE_START(spi)
- MCFG_MACHINE_RESET(spi)
+ MCFG_MACHINE_START_OVERRIDE(seibuspi_state,spi)
+ MCFG_MACHINE_RESET_OVERRIDE(seibuspi_state,spi)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -1877,7 +1875,7 @@ static MACHINE_CONFIG_START( spi, seibuspi_state )
MCFG_GFXDECODE(spi)
MCFG_PALETTE_LENGTH(6144)
- MCFG_VIDEO_START(spi)
+ MCFG_VIDEO_START_OVERRIDE(seibuspi_state,spi)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1887,34 +1885,32 @@ static MACHINE_CONFIG_START( spi, seibuspi_state )
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
-static MACHINE_START( sxx2f )
+MACHINE_START_MEMBER(seibuspi_state,sxx2f)
{
- seibuspi_state *state = machine.driver_data<seibuspi_state>();
- state->m_z80_rom = auto_alloc_array(machine, UINT8, 0x40000);
+ m_z80_rom = auto_alloc_array(machine(), UINT8, 0x40000);
}
-static MACHINE_RESET( sxx2f )
+MACHINE_RESET_MEMBER(seibuspi_state,sxx2f)
{
- seibuspi_state *state = machine.driver_data<seibuspi_state>();
- UINT8 *rom = state->memregion("soundcpu")->base();
+ UINT8 *rom = memregion("soundcpu")->base();
- state->membank("bank4")->set_base(state->m_z80_rom);
- state->membank("bank5")->set_base(state->m_z80_rom);
+ membank("bank4")->set_base(m_z80_rom);
+ membank("bank5")->set_base(m_z80_rom);
- memcpy(state->m_z80_rom, rom, 0x40000);
+ memcpy(m_z80_rom, rom, 0x40000);
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x0000068c, 0x0000068f, write32_delegate(FUNC(seibuspi_state::eeprom_w),state));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x00000680, 0x00000683, read32_delegate(FUNC(seibuspi_state::sb_coin_r),state));
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x0000068c, 0x0000068f, write32_delegate(FUNC(seibuspi_state::eeprom_w),this));
+ machine().device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x00000680, 0x00000683, read32_delegate(FUNC(seibuspi_state::sb_coin_r),this));
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(spi_irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(spi_irq_callback);
- state->m_sb_coin_latch = 0;
+ m_sb_coin_latch = 0;
}
static MACHINE_CONFIG_DERIVED( sxx2f, spi ) /* Intel i386DX @ 25MHz, YMF271 @ 16.9344MHz, Z80 @ 7.159MHz(?) */
- MCFG_MACHINE_START(sxx2f)
- MCFG_MACHINE_RESET(sxx2f)
+ MCFG_MACHINE_START_OVERRIDE(seibuspi_state,sxx2f)
+ MCFG_MACHINE_RESET_OVERRIDE(seibuspi_state,sxx2f)
MCFG_DEVICE_REMOVE("flash0")
MCFG_DEVICE_REMOVE("flash1")
@@ -1935,8 +1931,8 @@ static MACHINE_CONFIG_DERIVED( sxx2g, spi ) /* single board version using measur
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
- MCFG_MACHINE_START(sxx2f)
- MCFG_MACHINE_RESET(sxx2f)
+ MCFG_MACHINE_START_OVERRIDE(seibuspi_state,sxx2f)
+ MCFG_MACHINE_RESET_OVERRIDE(seibuspi_state,sxx2f)
MCFG_DEVICE_REMOVE("flash0")
MCFG_DEVICE_REMOVE("flash1")
@@ -2187,9 +2183,9 @@ DRIVER_INIT_MEMBER(seibuspi_state,rfjet2k)
init_rfjet_common(machine());
}
-static MACHINE_RESET( seibu386 )
+MACHINE_RESET_MEMBER(seibuspi_state,seibu386)
{
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(spi_irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(spi_irq_callback);
}
static MACHINE_CONFIG_START( seibu386, seibuspi_state )
@@ -2199,7 +2195,7 @@ static MACHINE_CONFIG_START( seibu386, seibuspi_state )
MCFG_CPU_PROGRAM_MAP(seibu386_map)
MCFG_CPU_VBLANK_INT("screen", spi_interrupt)
- MCFG_MACHINE_RESET(seibu386)
+ MCFG_MACHINE_RESET_OVERRIDE(seibuspi_state,seibu386)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -2213,7 +2209,7 @@ static MACHINE_CONFIG_START( seibu386, seibuspi_state )
MCFG_GFXDECODE(spi)
MCFG_PALETTE_LENGTH(6144)
- MCFG_VIDEO_START(spi)
+ MCFG_VIDEO_START_OVERRIDE(seibuspi_state,spi)
MCFG_SCREEN_UPDATE_STATIC(spi)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2254,7 +2250,7 @@ static MACHINE_CONFIG_START( sys386f2, seibuspi_state )
/* no z80? */
- MCFG_MACHINE_RESET(seibu386)
+ MCFG_MACHINE_RESET_OVERRIDE(seibuspi_state,seibu386)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -2268,7 +2264,7 @@ static MACHINE_CONFIG_START( sys386f2, seibuspi_state )
MCFG_GFXDECODE(sys386f2)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(sys386f2)
+ MCFG_VIDEO_START_OVERRIDE(seibuspi_state,sys386f2)
MCFG_SCREEN_UPDATE_STATIC(sys386f2)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/seicross.c b/src/mame/drivers/seicross.c
index 61e6883bbad..ec0904ecd80 100644
--- a/src/mame/drivers/seicross.c
+++ b/src/mame/drivers/seicross.c
@@ -73,10 +73,10 @@ static NVRAM_HANDLER( seicross )
-static MACHINE_RESET( friskyt )
+void seicross_state::machine_reset()
{
/* start with the protection mcu halted */
- machine.device("mcu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+ machine().device("mcu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
}
@@ -411,7 +411,6 @@ static MACHINE_CONFIG_START( nvram, seicross_state )
MCFG_QUANTUM_TIME(attotime::from_hz(1200)) /* 20 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_RESET(friskyt)
MCFG_NVRAM_HANDLER(seicross)
/* video hardware */
@@ -425,8 +424,6 @@ static MACHINE_CONFIG_START( nvram, seicross_state )
MCFG_GFXDECODE(seicross)
MCFG_PALETTE_LENGTH(64)
- MCFG_PALETTE_INIT(seicross)
- MCFG_VIDEO_START(seicross)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/senjyo.c b/src/mame/drivers/senjyo.c
index 4448e683db6..a1c3b720192 100644
--- a/src/mame/drivers/senjyo.c
+++ b/src/mame/drivers/senjyo.c
@@ -78,15 +78,14 @@ I/O read/write
#include "machine/segacrpt.h"
#include "includes/senjyo.h"
-static MACHINE_RESET( senjyo )
+void senjyo_state::machine_reset()
{
- senjyo_state *state = machine.driver_data<senjyo_state>();
/* we must avoid generating interrupts for the first few frames otherwise */
/* Senjyo locks up. There must be an interrupt enable port somewhere, */
/* or maybe interrupts are genenrated by the CTC. */
/* Maybe a write to port d002 clears the IRQ line, but I'm not sure. */
- state->m_int_delay_kludge = 10;
+ m_int_delay_kludge = 10;
}
static INTERRUPT_GEN( senjyo_interrupt )
@@ -580,7 +579,6 @@ static MACHINE_CONFIG_START( senjyo, senjyo_state )
MCFG_CPU_PROGRAM_MAP(senjyo_sound_map)
MCFG_CPU_IO_MAP(senjyo_sound_io_map)
- MCFG_MACHINE_RESET(senjyo)
MCFG_Z80PIO_ADD( "z80pio", 2000000, senjyo_pio_intf )
MCFG_Z80CTC_ADD( "z80ctc", 2000000 /* same as "sub" */, senjyo_ctc_intf )
@@ -596,7 +594,6 @@ static MACHINE_CONFIG_START( senjyo, senjyo_state )
MCFG_GFXDECODE(senjyo)
MCFG_PALETTE_LENGTH(512+2) /* 512 real palette + 2 for the radar */
- MCFG_VIDEO_START(senjyo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c
index 1f729f05df4..fc4d9d0bf4f 100644
--- a/src/mame/drivers/seta.c
+++ b/src/mame/drivers/seta.c
@@ -2178,11 +2178,10 @@ static ADDRESS_MAP_START( keroppi_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0xe00600, 0xe00607) AM_RAM AM_DEVREADWRITE_LEGACY("spritegen", spritectrl_r16, spritectrl_w16)
ADDRESS_MAP_END
-static MACHINE_START( keroppi )
+MACHINE_START_MEMBER(seta_state,keroppi)
{
- seta_state *state = machine.driver_data<seta_state>();
- state->m_keroppi_prize_hop = 0;
- state->m_keroppi_protection_count = 0;
+ m_keroppi_prize_hop = 0;
+ m_keroppi_protection_count = 0;
}
/***************************************************************************
@@ -3176,11 +3175,10 @@ ADDRESS_MAP_END
Caliber 50 / U.S. Classic
***************************************************************************/
-static MACHINE_RESET(calibr50)
+MACHINE_RESET_MEMBER(seta_state,calibr50)
{
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- seta_state *state = machine.driver_data<seta_state>();
- state->sub_bankswitch_w(*space, 0, 0);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ sub_bankswitch_w(*space, 0, 0);
}
WRITE8_MEMBER(seta_state::calibr50_soundlatch2_w)
@@ -7506,7 +7504,7 @@ static MACHINE_CONFIG_START( tndrcade, seta_state )
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -7556,7 +7554,7 @@ static MACHINE_CONFIG_START( twineagl, seta_state )
MCFG_GFXDECODE(downtown)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(twineagl_1_layer)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,twineagl_1_layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -7598,7 +7596,7 @@ static MACHINE_CONFIG_START( downtown, seta_state )
MCFG_GFXDECODE(downtown)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(seta_1_layer)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -7642,7 +7640,7 @@ static MACHINE_CONFIG_START( usclssic, seta_state )
MCFG_CPU_PROGRAM_MAP(calibr50_sub_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold) /* NMI caused by main cpu when writing to the sound latch */
- MCFG_MACHINE_RESET(calibr50)
+ MCFG_MACHINE_RESET_OVERRIDE(seta_state,calibr50)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -7657,8 +7655,8 @@ static MACHINE_CONFIG_START( usclssic, seta_state )
MCFG_GFXDECODE(usclssic)
MCFG_PALETTE_LENGTH(16*32 + 64*32*2) /* sprites, layer */
- MCFG_PALETTE_INIT(usclssic) /* layer is 6 planes deep */
- MCFG_VIDEO_START(seta_1_layer)
+ MCFG_PALETTE_INIT_OVERRIDE(seta_state,usclssic) /* layer is 6 planes deep */
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -7691,7 +7689,7 @@ static MACHINE_CONFIG_START( calibr50, seta_state )
MCFG_CPU_PERIODIC_INT(irq0_line_hold,4*60) /* IRQ: 4/frame
NMI: when the 68k writes the sound latch */
- MCFG_MACHINE_RESET(calibr50)
+ MCFG_MACHINE_RESET_OVERRIDE(seta_state,calibr50)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -7706,7 +7704,7 @@ static MACHINE_CONFIG_START( calibr50, seta_state )
MCFG_GFXDECODE(downtown)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(seta_1_layer)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -7746,7 +7744,7 @@ static MACHINE_CONFIG_START( metafox, seta_state )
MCFG_GFXDECODE(downtown)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(seta_1_layer)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -7782,7 +7780,7 @@ static MACHINE_CONFIG_START( atehate, seta_state )
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -7825,8 +7823,8 @@ static MACHINE_CONFIG_START( blandia, seta_state )
MCFG_GFXDECODE(blandia)
MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */
- MCFG_PALETTE_INIT(blandia) /* layers 1&2 are 6 planes deep */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_PALETTE_INIT_OVERRIDE(seta_state,blandia) /* layers 1&2 are 6 planes deep */
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -7858,8 +7856,8 @@ static MACHINE_CONFIG_START( blandiap, seta_state )
MCFG_GFXDECODE(blandia)
MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */
- MCFG_PALETTE_INIT(blandia) /* layers 1&2 are 6 planes deep */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_PALETTE_INIT_OVERRIDE(seta_state,blandia) /* layers 1&2 are 6 planes deep */
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -7895,7 +7893,7 @@ static MACHINE_CONFIG_START( blockcar, seta_state )
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -7931,7 +7929,7 @@ static MACHINE_CONFIG_START( daioh, seta_state )
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -7973,7 +7971,7 @@ static MACHINE_CONFIG_START( drgnunit, seta_state )
MCFG_GFXDECODE(downtown)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(seta_1_layer)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8008,7 +8006,7 @@ static MACHINE_CONFIG_START( qzkklgy2, seta_state )
MCFG_GFXDECODE(qzkklgy2)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(seta_1_layer)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8058,9 +8056,9 @@ static MACHINE_CONFIG_START( setaroul, seta_state )
MCFG_GFXDECODE(setaroul)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(setaroul)
+ MCFG_PALETTE_INIT_OVERRIDE(seta_state,setaroul)
- MCFG_VIDEO_START(seta_1_layer)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8096,7 +8094,7 @@ static MACHINE_CONFIG_START( eightfrc, seta_state )
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8137,8 +8135,8 @@ static MACHINE_CONFIG_START( extdwnhl, seta_state )
MCFG_GFXDECODE(zingzip)
MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INIT(zingzip) /* layer 1 gfx is 6 planes deep */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_PALETTE_INIT_OVERRIDE(seta_state,zingzip) /* layer 1 gfx is 6 planes deep */
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8159,7 +8157,7 @@ static INTERRUPT_GEN( wrofaero_interrupt )
device->execute().set_input_line(2, HOLD_LINE );
}
-static MACHINE_START( wrofaero ) { uPD71054_timer_init(machine); }
+MACHINE_START_MEMBER(seta_state,wrofaero){ uPD71054_timer_init(machine()); }
#endif // __uPD71054_TIMER
@@ -8182,7 +8180,7 @@ static MACHINE_CONFIG_START( gundhara, seta_state )
#endif // __uPD71054_TIMER
#if __uPD71054_TIMER
- MCFG_MACHINE_START( wrofaero )
+ MCFG_MACHINE_START_OVERRIDE(seta_state, wrofaero )
#endif // __uPD71054_TIMER
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -8198,8 +8196,8 @@ static MACHINE_CONFIG_START( gundhara, seta_state )
MCFG_GFXDECODE(jjsquawk)
MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INIT(gundhara) /* layers are 6 planes deep (but have only 4 palettes) */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_PALETTE_INIT_OVERRIDE(seta_state,gundhara) /* layers are 6 planes deep (seta_state,but have only 4 palettes) */
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8239,8 +8237,8 @@ static MACHINE_CONFIG_START( jjsquawk, seta_state )
MCFG_GFXDECODE(jjsquawk)
MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INIT(jjsquawk) /* layers are 6 planes deep */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_PALETTE_INIT_OVERRIDE(seta_state,jjsquawk) /* layers are 6 planes deep */
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8271,8 +8269,8 @@ static MACHINE_CONFIG_START( jjsquawb, seta_state )
MCFG_GFXDECODE(jjsquawk)
MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INIT(jjsquawk) /* layers are 6 planes deep */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_PALETTE_INIT_OVERRIDE(seta_state,jjsquawk) /* layers are 6 planes deep */
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8296,7 +8294,7 @@ static MACHINE_CONFIG_START( kamenrid, seta_state )
MCFG_CPU_VBLANK_INT("screen", wrofaero_interrupt)
#if __uPD71054_TIMER
- MCFG_MACHINE_START( wrofaero )
+ MCFG_MACHINE_START_OVERRIDE(seta_state, wrofaero )
#endif // __uPD71054_TIMER
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -8312,7 +8310,7 @@ static MACHINE_CONFIG_START( kamenrid, seta_state )
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8349,7 +8347,7 @@ static MACHINE_CONFIG_START( orbs, seta_state )
MCFG_GFXDECODE(orbs)
MCFG_PALETTE_LENGTH(512) /* sprites only */
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8372,7 +8370,7 @@ static MACHINE_CONFIG_START( keroppi, seta_state )
MCFG_CPU_PROGRAM_MAP(keroppi_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", seta_interrupt_1_and_2, "screen", 0, 1)
- MCFG_MACHINE_START(keroppi)
+ MCFG_MACHINE_START_OVERRIDE(seta_state,keroppi)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -8387,7 +8385,7 @@ static MACHINE_CONFIG_START( keroppi, seta_state )
MCFG_GFXDECODE(orbs)
MCFG_PALETTE_LENGTH(512) /* sprites only */
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8423,7 +8421,7 @@ static MACHINE_CONFIG_START( krzybowl, seta_state )
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8448,7 +8446,7 @@ static MACHINE_CONFIG_START( madshark, seta_state )
MCFG_CPU_VBLANK_INT("screen", wrofaero_interrupt)
#if __uPD71054_TIMER
- MCFG_MACHINE_START( wrofaero )
+ MCFG_MACHINE_START_OVERRIDE(seta_state, wrofaero )
#endif // __uPD71054_TIMER
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -8464,9 +8462,9 @@ static MACHINE_CONFIG_START( madshark, seta_state )
MCFG_GFXDECODE(jjsquawk)
MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INIT(jjsquawk) /* layers are 6 planes deep */
+ MCFG_PALETTE_INIT_OVERRIDE(seta_state,jjsquawk) /* layers are 6 planes deep */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8490,7 +8488,7 @@ static MACHINE_CONFIG_START( magspeed, seta_state )
MCFG_CPU_VBLANK_INT("screen", wrofaero_interrupt)
#if __uPD71054_TIMER
- MCFG_MACHINE_START( wrofaero )
+ MCFG_MACHINE_START_OVERRIDE(seta_state, wrofaero )
#endif // __uPD71054_TIMER
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -8506,7 +8504,7 @@ static MACHINE_CONFIG_START( magspeed, seta_state )
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8536,7 +8534,7 @@ static MACHINE_CONFIG_START( msgundam, seta_state )
#endif // __uPD71054_TIMER
#if __uPD71054_TIMER
- MCFG_MACHINE_START( wrofaero )
+ MCFG_MACHINE_START_OVERRIDE(seta_state, wrofaero )
#endif // __uPD71054_TIMER
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -8553,7 +8551,7 @@ static MACHINE_CONFIG_START( msgundam, seta_state )
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8590,7 +8588,7 @@ static MACHINE_CONFIG_START( oisipuzl, seta_state )
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
- MCFG_VIDEO_START(oisipuzl_2_layers) // flip is inverted for the tilemaps
+ MCFG_VIDEO_START_OVERRIDE(seta_state,oisipuzl_2_layers) // flip is inverted for the tilemaps
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8627,7 +8625,7 @@ static MACHINE_CONFIG_START( triplfun, seta_state )
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
- MCFG_VIDEO_START(oisipuzl_2_layers) // flip is inverted for the tilemaps
+ MCFG_VIDEO_START_OVERRIDE(seta_state,oisipuzl_2_layers) // flip is inverted for the tilemaps
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8662,7 +8660,7 @@ static MACHINE_CONFIG_START( kiwame, seta_state )
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8701,7 +8699,7 @@ static MACHINE_CONFIG_START( rezon, seta_state )
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8740,7 +8738,7 @@ static MACHINE_CONFIG_START( thunderl, seta_state )
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8811,7 +8809,7 @@ static MACHINE_CONFIG_START( wiggie, seta_state )
MCFG_GFXDECODE(wiggie)
MCFG_PALETTE_LENGTH(512) /* sprites only */
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -8845,7 +8843,7 @@ static MACHINE_CONFIG_START( wits, seta_state )
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8881,7 +8879,7 @@ static MACHINE_CONFIG_START( umanclub, seta_state )
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8921,7 +8919,7 @@ static MACHINE_CONFIG_START( utoukond, seta_state )
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -8954,7 +8952,7 @@ static MACHINE_CONFIG_START( wrofaero, seta_state )
#endif // __uPD71054_TIMER
#if __uPD71054_TIMER
- MCFG_MACHINE_START( wrofaero )
+ MCFG_MACHINE_START_OVERRIDE(seta_state, wrofaero )
#endif // __uPD71054_TIMER
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -8970,7 +8968,7 @@ static MACHINE_CONFIG_START( wrofaero, seta_state )
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -9013,8 +9011,8 @@ static MACHINE_CONFIG_START( zingzip, seta_state )
MCFG_GFXDECODE(zingzip)
MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INIT(zingzip) /* layer 1 gfx is 6 planes deep */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_PALETTE_INIT_OVERRIDE(seta_state,zingzip) /* layer 1 gfx is 6 planes deep */
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -9066,7 +9064,7 @@ static MACHINE_CONFIG_START( pairlove, seta_state )
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(2048) /* sprites only */
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -9114,8 +9112,8 @@ static MACHINE_CONFIG_START( crazyfgt, seta_state )
MCFG_GFXDECODE(crazyfgt)
MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer1, layer2 */
- MCFG_PALETTE_INIT(gundhara) /* layers are 6 planes deep (but have only 4 palettes) */
- MCFG_VIDEO_START(seta_2_layers)
+ MCFG_PALETTE_INIT_OVERRIDE(seta_state,gundhara) /* layers are 6 planes deep (seta_state,but have only 4 palettes) */
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -9211,8 +9209,8 @@ static MACHINE_CONFIG_START( inttoote, seta_state )
MCFG_GFXDECODE(inttoote)
MCFG_PALETTE_LENGTH(512 * 1)
- MCFG_PALETTE_INIT(inttoote)
- MCFG_VIDEO_START(seta_1_layer)
+ MCFG_PALETTE_INIT_OVERRIDE(seta_state,inttoote)
+ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c
index 833a7eb570d..13a4b397f34 100644
--- a/src/mame/drivers/seta2.c
+++ b/src/mame/drivers/seta2.c
@@ -2042,7 +2042,7 @@ static MACHINE_CONFIG_START( seta2, seta2_state )
MCFG_GFXDECODE(seta2)
MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity
- MCFG_VIDEO_START(seta2)
+ MCFG_VIDEO_START_OVERRIDE(seta2_state,seta2)
// sound hardware
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2094,7 +2094,7 @@ static MACHINE_CONFIG_DERIVED( myangel, seta2 )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 0x178-1, 0x00, 0xf0-1)
- MCFG_VIDEO_START(seta2_yoffset)
+ MCFG_VIDEO_START_OVERRIDE(seta2_state,seta2_yoffset)
MACHINE_CONFIG_END
@@ -2106,7 +2106,7 @@ static MACHINE_CONFIG_DERIVED( myangel2, seta2 )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 0x178-1, 0x00, 0xf0-1)
- MCFG_VIDEO_START(seta2_yoffset)
+ MCFG_VIDEO_START_OVERRIDE(seta2_state,seta2_yoffset)
MACHINE_CONFIG_END
@@ -2141,7 +2141,7 @@ static MACHINE_CONFIG_DERIVED( reelquak, seta2 )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0x40, 0x180-1, 0x80, 0x170-1)
- MCFG_VIDEO_START(seta2_xoffset)
+ MCFG_VIDEO_START_OVERRIDE(seta2_state,seta2_xoffset)
MACHINE_CONFIG_END
@@ -2202,13 +2202,12 @@ static INTERRUPT_GEN( funcube_sub_timer_irq )
device->execute().set_input_line(H8_METRO_TIMER_HACK, HOLD_LINE);
}
-static MACHINE_RESET( funcube )
+MACHINE_RESET_MEMBER(seta2_state,funcube)
{
- seta2_state *state = machine.driver_data<seta2_state>();
- state->m_funcube_coin_start_cycles = 0;
- state->m_funcube_serial_count = 0;
- state->m_funcube_press = 0;
- state->m_funcube_hopper_motor = 0;
+ m_funcube_coin_start_cycles = 0;
+ m_funcube_serial_count = 0;
+ m_funcube_press = 0;
+ m_funcube_hopper_motor = 0;
}
static MACHINE_CONFIG_START( funcube, seta2_state )
@@ -2224,7 +2223,7 @@ static MACHINE_CONFIG_START( funcube, seta2_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_MACHINE_RESET( funcube )
+ MCFG_MACHINE_RESET_OVERRIDE(seta2_state, funcube )
// video hardware
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2238,7 +2237,7 @@ static MACHINE_CONFIG_START( funcube, seta2_state )
MCFG_GFXDECODE(funcube)
MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity
- MCFG_VIDEO_START(seta2)
+ MCFG_VIDEO_START_OVERRIDE(seta2_state,seta2)
// sound hardware
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2289,7 +2288,7 @@ static MACHINE_CONFIG_START( namcostr, seta2_state )
MCFG_GFXDECODE(funcube)
MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity
- MCFG_VIDEO_START(seta2)
+ MCFG_VIDEO_START_OVERRIDE(seta2_state,seta2)
// sound hardware
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/sf.c b/src/mame/drivers/sf.c
index c53306921b3..7a0d4f43b93 100644
--- a/src/mame/drivers/sf.c
+++ b/src/mame/drivers/sf.c
@@ -813,26 +813,24 @@ static const msm5205_interface msm5205_config =
MSM5205_SEX_4B /* 8KHz playback ? */
};
-static MACHINE_START( sf )
+void sf_state::machine_start()
{
- sf_state *state = machine.driver_data<sf_state>();
/* devices */
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_sf_active));
- state->save_item(NAME(state->m_bgscroll));
- state->save_item(NAME(state->m_fgscroll));
+ save_item(NAME(m_sf_active));
+ save_item(NAME(m_bgscroll));
+ save_item(NAME(m_fgscroll));
}
-static MACHINE_RESET( sf )
+void sf_state::machine_reset()
{
- sf_state *state = machine.driver_data<sf_state>();
- state->m_sf_active = 0;
- state->m_bgscroll = 0;
- state->m_fgscroll = 0;
+ m_sf_active = 0;
+ m_bgscroll = 0;
+ m_fgscroll = 0;
}
static MACHINE_CONFIG_START( sf, sf_state )
@@ -846,8 +844,6 @@ static MACHINE_CONFIG_START( sf, sf_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
/* NMIs are caused by the main CPU */
- MCFG_MACHINE_START(sf)
- MCFG_MACHINE_RESET(sf)
MCFG_CPU_ADD("audio2", Z80, 3579545) /* ? xtal is 3.579545MHz */
MCFG_CPU_PROGRAM_MAP(sound2_map)
@@ -865,7 +861,6 @@ static MACHINE_CONFIG_START( sf, sf_state )
MCFG_GFXDECODE(sf)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(sf)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/sfbonus.c b/src/mame/drivers/sfbonus.c
index d78d2437ed7..dce17be86a0 100644
--- a/src/mame/drivers/sfbonus.c
+++ b/src/mame/drivers/sfbonus.c
@@ -451,6 +451,8 @@ public:
TILE_GET_INFO_MEMBER(get_sfbonus_reel2_tile_info);
TILE_GET_INFO_MEMBER(get_sfbonus_reel3_tile_info);
TILE_GET_INFO_MEMBER(get_sfbonus_reel4_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -895,29 +897,28 @@ WRITE8_MEMBER(sfbonus_state::sfbonus_videoram_w)
-static VIDEO_START(sfbonus)
+void sfbonus_state::video_start()
{
- sfbonus_state *state = machine.driver_data<sfbonus_state>();
- state->m_temp_reel_bitmap = auto_bitmap_ind16_alloc(machine,1024,512);
+ m_temp_reel_bitmap = auto_bitmap_ind16_alloc(machine(),1024,512);
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_tile_info),state),TILEMAP_SCAN_ROWS,8,8, 128, 64);
- state->m_reel_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 16);
- state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 16);
- state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 16);
- state->m_reel4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel4_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 16);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 128, 64);
+ m_reel_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 16);
+ m_reel2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 16);
+ m_reel3_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 16);
+ m_reel4_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel4_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 16);
- state->m_tilemap->set_transparent_pen(0);
- state->m_reel_tilemap->set_transparent_pen(255);
- state->m_reel2_tilemap->set_transparent_pen(255);
- state->m_reel3_tilemap->set_transparent_pen(255);
- state->m_reel4_tilemap->set_transparent_pen(255);
+ m_tilemap->set_transparent_pen(0);
+ m_reel_tilemap->set_transparent_pen(255);
+ m_reel2_tilemap->set_transparent_pen(255);
+ m_reel3_tilemap->set_transparent_pen(255);
+ m_reel4_tilemap->set_transparent_pen(255);
- state->m_tilemap->set_scroll_rows(64);
+ m_tilemap->set_scroll_rows(64);
- state->m_reel_tilemap->set_scroll_cols(64);
- state->m_reel2_tilemap->set_scroll_cols(64);
- state->m_reel3_tilemap->set_scroll_cols(64);
- state->m_reel4_tilemap->set_scroll_cols(64);
+ m_reel_tilemap->set_scroll_cols(64);
+ m_reel2_tilemap->set_scroll_cols(64);
+ m_reel3_tilemap->set_scroll_cols(64);
+ m_reel4_tilemap->set_scroll_cols(64);
}
@@ -1336,11 +1337,11 @@ static GFXDECODE_START( sfbonus )
GFXDECODE_END
-static MACHINE_RESET( sfbonus )
+void sfbonus_state::machine_reset()
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->set_base(&ROM[0]);
+ machine().root_device().membank("bank1")->set_base(&ROM[0]);
}
@@ -1361,7 +1362,6 @@ static MACHINE_CONFIG_START( sfbonus, sfbonus_state )
MCFG_CPU_VBLANK_INT("screen",irq0_line_hold)
//MCFG_CPU_PERIODIC_INT(nmi_line_pulse,100)
- MCFG_MACHINE_RESET( sfbonus )
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -1378,7 +1378,6 @@ static MACHINE_CONFIG_START( sfbonus, sfbonus_state )
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
- MCFG_VIDEO_START(sfbonus)
/* Parrot 3 seems fine at 1 Mhz, but Double Challenge isn't? */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sfcbox.c b/src/mame/drivers/sfcbox.c
index 1fc3327e1c4..5d1a041a169 100644
--- a/src/mame/drivers/sfcbox.c
+++ b/src/mame/drivers/sfcbox.c
@@ -148,6 +148,8 @@ public:
DECLARE_WRITE8_MEMBER( port_83_w );
DECLARE_WRITE8_MEMBER( snes_map_0_w );
DECLARE_WRITE8_MEMBER( snes_map_1_w );
+ DECLARE_MACHINE_START(sfcbox);
+ DECLARE_MACHINE_RESET(sfcbox);
};
UINT32 sfcbox_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect )
@@ -462,24 +464,22 @@ static MACHINE_CONFIG_START( snes, sfcbox_state )
MACHINE_CONFIG_END
-static MACHINE_START( sfcbox )
+MACHINE_START_MEMBER(sfcbox_state,sfcbox)
{
- sfcbox_state *state = machine.driver_data<sfcbox_state>();
- MACHINE_START_CALL(snes);
+ MACHINE_START_CALL_LEGACY(snes);
- state->m_is_sfcbox = 1;
+ m_is_sfcbox = 1;
}
-static MACHINE_RESET( sfcbox )
+MACHINE_RESET_MEMBER(sfcbox_state,sfcbox)
{
- sfcbox_state *state = machine.driver_data<sfcbox_state>();
- MACHINE_RESET_CALL( snes );
+ MACHINE_RESET_CALL_LEGACY( snes );
/* start with both CPUs disabled */
- state->m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- state->m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
static MACHINE_CONFIG_DERIVED( sfcbox, snes )
@@ -491,8 +491,8 @@ static MACHINE_CONFIG_DERIVED( sfcbox, snes )
MCFG_MB90082_ADD("mb90082",XTAL_12MHz / 2) /* TODO: correct clock */
MCFG_S3520CF_ADD("s3520cf") /* RTC */
- MCFG_MACHINE_START( sfcbox )
- MCFG_MACHINE_RESET( sfcbox )
+ MCFG_MACHINE_START_OVERRIDE(sfcbox_state, sfcbox )
+ MCFG_MACHINE_RESET_OVERRIDE(sfcbox_state, sfcbox )
/* TODO: the screen should actually superimpose, but for the time being let's just separate outputs */
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
diff --git a/src/mame/drivers/sfkick.c b/src/mame/drivers/sfkick.c
index bfbe154cb9d..d192f4c4ba5 100644
--- a/src/mame/drivers/sfkick.c
+++ b/src/mame/drivers/sfkick.c
@@ -78,6 +78,7 @@ public:
DECLARE_WRITE8_MEMBER(ppi_port_a_w);
DECLARE_WRITE8_MEMBER(ppi_port_c_w);
DECLARE_DRIVER_INIT(sfkick);
+ virtual void machine_reset();
};
@@ -434,19 +435,18 @@ static void sfkick_vdp_interrupt(device_t *, v99x8_device &device, int i)
device.machine().device("maincpu")->execute().set_input_line(0, (i ? HOLD_LINE : CLEAR_LINE));
}
-static MACHINE_RESET(sfkick)
+void sfkick_state::machine_reset()
{
- sfkick_state *state = machine.driver_data<sfkick_state>();
- state->m_bank_cfg=0;
- state->m_bank[0]=0;
- state->m_bank[1]=0;
- state->m_bank[2]=0;
- state->m_bank[3]=0;
- state->m_bank[4]=0;
- state->m_bank[5]=0;
- state->m_bank[6]=0;
- state->m_bank[7]=0;
- sfkick_remap_banks(machine);
+ m_bank_cfg=0;
+ m_bank[0]=0;
+ m_bank[1]=0;
+ m_bank[2]=0;
+ m_bank[3]=0;
+ m_bank[4]=0;
+ m_bank[5]=0;
+ m_bank[6]=0;
+ m_bank[7]=0;
+ sfkick_remap_banks(machine());
}
static TIMER_DEVICE_CALLBACK( sfkick_interrupt )
@@ -497,7 +497,6 @@ static MACHINE_CONFIG_START( sfkick, sfkick_state )
MCFG_I8255A_ADD( "ppi8255", ppi8255_intf )
- MCFG_MACHINE_RESET(sfkick)
MCFG_PALETTE_INIT( v9938 )
diff --git a/src/mame/drivers/shadfrce.c b/src/mame/drivers/shadfrce.c
index 18333a8c057..fe304919b97 100644
--- a/src/mame/drivers/shadfrce.c
+++ b/src/mame/drivers/shadfrce.c
@@ -571,7 +571,6 @@ static MACHINE_CONFIG_START( shadfrce, shadfrce_state )
MCFG_GFXDECODE(shadfrce)
MCFG_PALETTE_LENGTH(0x4000)
- MCFG_VIDEO_START(shadfrce)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/shangha3.c b/src/mame/drivers/shangha3.c
index 557f7192c2c..a28e7d0492b 100644
--- a/src/mame/drivers/shangha3.c
+++ b/src/mame/drivers/shangha3.c
@@ -486,7 +486,6 @@ static MACHINE_CONFIG_START( shangha3, shangha3_state )
MCFG_GFXDECODE(shangha3)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(shangha3)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -524,7 +523,6 @@ static MACHINE_CONFIG_START( heberpop, shangha3_state )
MCFG_GFXDECODE(shangha3)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(shangha3)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -563,7 +561,6 @@ static MACHINE_CONFIG_START( blocken, shangha3_state )
MCFG_GFXDECODE(shangha3)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(shangha3)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/shanghai.c b/src/mame/drivers/shanghai.c
index e7e46e82537..69c782d0c3d 100644
--- a/src/mame/drivers/shanghai.c
+++ b/src/mame/drivers/shanghai.c
@@ -36,15 +36,17 @@ public:
DECLARE_WRITE16_MEMBER(shanghai_coin_w);
DECLARE_READ16_MEMBER(kothello_hd63484_status_r);
+ virtual void video_start();
+ DECLARE_PALETTE_INIT(shanghai);
};
-static PALETTE_INIT( shanghai )
+PALETTE_INIT_MEMBER(shanghai_state,shanghai)
{
int i;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0,bit1,bit2,r,g,b;
@@ -65,11 +67,11 @@ static PALETTE_INIT( shanghai )
bit2 = (i >> 1) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
}
}
-static VIDEO_START( shanghai )
+void shanghai_state::video_start()
{
}
@@ -453,8 +455,7 @@ static MACHINE_CONFIG_START( shanghai, shanghai_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(shanghai)
- MCFG_VIDEO_START(shanghai)
+ MCFG_PALETTE_INIT_OVERRIDE(shanghai_state,shanghai)
MCFG_HD63484_ADD("hd63484", shanghai_hd63484_intf)
@@ -487,7 +488,6 @@ static MACHINE_CONFIG_START( shangha2, shanghai_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(shanghai)
MCFG_HD63484_ADD("hd63484", shanghai_hd63484_intf)
@@ -525,7 +525,6 @@ static MACHINE_CONFIG_START( kothello, shanghai_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(shanghai)
MCFG_HD63484_ADD("hd63484", shanghai_hd63484_intf)
diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c
index a6f21f42961..e33ce38559c 100644
--- a/src/mame/drivers/shangkid.c
+++ b/src/mame/drivers/shangkid.c
@@ -135,17 +135,17 @@ DRIVER_INIT_MEMBER(shangkid_state,shangkid)
/***************************************************************************************/
-static MACHINE_RESET( chinhero )
+MACHINE_RESET_MEMBER(shangkid_state,chinhero)
{
- machine.device("bbx")->execute().set_input_line(INPUT_LINE_HALT, 1 );
+ machine().device("bbx")->execute().set_input_line(INPUT_LINE_HALT, 1 );
}
-static MACHINE_RESET( shangkid )
+MACHINE_RESET_MEMBER(shangkid_state,shangkid)
{
- machine.device("bbx")->execute().set_input_line(INPUT_LINE_HALT, 1 );
+ machine().device("bbx")->execute().set_input_line(INPUT_LINE_HALT, 1 );
- machine.root_device().membank("bank1")->set_entry(0);
- machine.root_device().membank("bank2")->set_entry(0);
+ machine().root_device().membank("bank1")->set_entry(0);
+ machine().root_device().membank("bank2")->set_entry(0);
}
/***************************************************************************************/
@@ -374,7 +374,7 @@ static MACHINE_CONFIG_START( chinhero, shangkid_state )
MCFG_CPU_PROGRAM_MAP(chinhero_sound_map)
MCFG_CPU_IO_MAP(sound_portmap)
- MCFG_MACHINE_RESET(chinhero)
+ MCFG_MACHINE_RESET_OVERRIDE(shangkid_state,chinhero)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
@@ -390,7 +390,7 @@ static MACHINE_CONFIG_START( chinhero, shangkid_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(shangkid)
+ MCFG_VIDEO_START_OVERRIDE(shangkid_state,shangkid)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -417,7 +417,7 @@ static MACHINE_CONFIG_DERIVED( shangkid, chinhero )
MCFG_CPU_MODIFY("audiocpu")
MCFG_CPU_PROGRAM_MAP(shangkid_sound_map)
- MCFG_MACHINE_RESET(shangkid)
+ MCFG_MACHINE_RESET_OVERRIDE(shangkid_state,shangkid)
/* video hardware */
MCFG_GFXDECODE(shangkid)
@@ -468,7 +468,7 @@ static MACHINE_CONFIG_START( dynamski, shangkid_state )
MCFG_GFXDECODE(dynamski)
MCFG_PALETTE_LENGTH(16*4+16*4)
- MCFG_PALETTE_INIT(dynamski)
+ MCFG_PALETTE_INIT_OVERRIDE(shangkid_state,dynamski)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/shaolins.c b/src/mame/drivers/shaolins.c
index e7e735a357e..755213a7d33 100644
--- a/src/mame/drivers/shaolins.c
+++ b/src/mame/drivers/shaolins.c
@@ -220,8 +220,6 @@ static MACHINE_CONFIG_START( shaolins, shaolins_state )
MCFG_GFXDECODE(shaolins)
MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
- MCFG_PALETTE_INIT(shaolins)
- MCFG_VIDEO_START(shaolins)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/shisen.c b/src/mame/drivers/shisen.c
index 1a398ddba02..0f30e42f8d7 100644
--- a/src/mame/drivers/shisen.c
+++ b/src/mame/drivers/shisen.c
@@ -233,7 +233,6 @@ static MACHINE_CONFIG_START( shisen, shisen_state )
MCFG_GFXDECODE(shisen)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(sichuan2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/shootout.c b/src/mame/drivers/shootout.c
index f0b407387ae..00810833463 100644
--- a/src/mame/drivers/shootout.c
+++ b/src/mame/drivers/shootout.c
@@ -281,8 +281,6 @@ static MACHINE_CONFIG_START( shootout, shootout_state )
MCFG_GFXDECODE(shootout)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(shootout)
- MCFG_VIDEO_START(shootout)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -310,8 +308,6 @@ static MACHINE_CONFIG_START( shootouj, shootout_state )
MCFG_GFXDECODE(shootout)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(shootout)
- MCFG_VIDEO_START(shootout)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/shougi.c b/src/mame/drivers/shougi.c
index 94bb6e9337b..8750846ecaf 100644
--- a/src/mame/drivers/shougi.c
+++ b/src/mame/drivers/shougi.c
@@ -110,6 +110,7 @@ public:
DECLARE_WRITE8_MEMBER(nmi_disable_and_clear_line_w);
DECLARE_WRITE8_MEMBER(nmi_enable_w);
DECLARE_READ8_MEMBER(dummy_r);
+ virtual void palette_init();
};
@@ -131,9 +132,9 @@ public:
***************************************************************************/
-static PALETTE_INIT( shougi )
+void shougi_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
static const int resistances_b[2] = { 470, 220 };
static const int resistances_rg[3] = { 1000, 470, 220 };
@@ -145,7 +146,7 @@ static PALETTE_INIT( shougi )
3, resistances_rg, weights_g, 1000, 0,
2, resistances_b, weights_b, 1000, 0);
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0,bit1,bit2,r,g,b;
@@ -166,7 +167,7 @@ static PALETTE_INIT( shougi )
bit1 = (color_prom[i] >> 7) & 0x01;
b = combine_2_weights(weights_b, bit0, bit1);
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
}
}
@@ -428,7 +429,6 @@ static MACHINE_CONFIG_START( shougi, shougi_state )
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(shougi)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/shtzone.c b/src/mame/drivers/shtzone.c
index 873af4d301a..5abce8b90eb 100644
--- a/src/mame/drivers/shtzone.c
+++ b/src/mame/drivers/shtzone.c
@@ -55,6 +55,9 @@ class shtzone_state : public driver_device
public:
shtzone_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
static ADDRESS_MAP_START( shtzone_map, AS_PROGRAM, 8, shtzone_state )
@@ -67,17 +70,17 @@ static INPUT_PORTS_START( shtzone )
INPUT_PORTS_END
-static MACHINE_START( shtzone )
+void shtzone_state::machine_start()
{
}
-static MACHINE_RESET( shtzone )
+void shtzone_state::machine_reset()
{
}
-VIDEO_START( shtzone )
+void shtzone_state::video_start()
{
}
@@ -98,8 +101,6 @@ static MACHINE_CONFIG_START( shtzone, shtzone_state )
/* + SMS CPU */
- MCFG_MACHINE_START(shtzone)
- MCFG_MACHINE_RESET(shtzone)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -111,7 +112,6 @@ static MACHINE_CONFIG_START( shtzone, shtzone_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(shtzone)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/shuuz.c b/src/mame/drivers/shuuz.c
index 529117ecb2e..3dc37b10902 100644
--- a/src/mame/drivers/shuuz.c
+++ b/src/mame/drivers/shuuz.c
@@ -64,19 +64,18 @@ WRITE16_MEMBER(shuuz_state::shuuz_atarivc_w)
*
*************************************/
-static MACHINE_START( shuuz )
+MACHINE_START_MEMBER(shuuz_state,shuuz)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( shuuz )
+MACHINE_RESET_MEMBER(shuuz_state,shuuz)
{
- shuuz_state *state = machine.driver_data<shuuz_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarivc_reset(*machine.primary_screen, state->m_atarivc_eof_data, 1);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarivc_reset(*machine().primary_screen, m_atarivc_eof_data, 1);
}
@@ -264,8 +263,8 @@ static MACHINE_CONFIG_START( shuuz, shuuz_state )
MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(shuuz)
- MCFG_MACHINE_RESET(shuuz)
+ MCFG_MACHINE_START_OVERRIDE(shuuz_state,shuuz)
+ MCFG_MACHINE_RESET_OVERRIDE(shuuz_state,shuuz)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -279,7 +278,7 @@ static MACHINE_CONFIG_START( shuuz, shuuz_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(shuuz)
- MCFG_VIDEO_START(shuuz)
+ MCFG_VIDEO_START_OVERRIDE(shuuz_state,shuuz)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c
index d7aedd8c023..bda44df88bb 100644
--- a/src/mame/drivers/sidearms.c
+++ b/src/mame/drivers/sidearms.c
@@ -676,7 +676,6 @@ static MACHINE_CONFIG_START( sidearms, sidearms_state )
MCFG_GFXDECODE(sidearms)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(sidearms)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -720,7 +719,6 @@ static MACHINE_CONFIG_START( turtship, sidearms_state )
MCFG_GFXDECODE(turtship)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(sidearms)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -767,7 +765,6 @@ static MACHINE_CONFIG_START( whizz, sidearms_state )
MCFG_GFXDECODE(turtship)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(sidearms)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sidepckt.c b/src/mame/drivers/sidepckt.c
index 69a5fb32b8e..8b78ab63a11 100644
--- a/src/mame/drivers/sidepckt.c
+++ b/src/mame/drivers/sidepckt.c
@@ -407,8 +407,6 @@ static MACHINE_CONFIG_START( sidepckt, sidepckt_state )
MCFG_GFXDECODE(sidepckt)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(sidepckt)
- MCFG_VIDEO_START(sidepckt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sigmab52.c b/src/mame/drivers/sigmab52.c
index fd47b804ab2..230d7634018 100644
--- a/src/mame/drivers/sigmab52.c
+++ b/src/mame/drivers/sigmab52.c
@@ -146,6 +146,9 @@ public:
DECLARE_WRITE8_MEMBER(unk_f710_w);
DECLARE_READ8_MEMBER(unk_f721_r);
DECLARE_DRIVER_INIT(jwildb52);
+ virtual void machine_start();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -156,7 +159,7 @@ public:
*************************/
-static VIDEO_START( jwildb52 )
+void sigmab52_state::video_start()
{
}
@@ -230,7 +233,7 @@ if (!screen.machine().input().code_pressed(KEYCODE_O))
}
-static PALETTE_INIT( jwildb52 )
+void sigmab52_state::palette_init()
{
}
@@ -541,13 +544,13 @@ static INTERRUPT_GEN( timer_irq )
* Machine Start *
*************************/
-static MACHINE_START(jwildb52)
+void sigmab52_state::machine_start()
{
- machine.root_device().membank("bank1")->set_base(&machine.root_device().memregion("maincpu")->base()[0x10000 + 0x0000]);
+ machine().root_device().membank("bank1")->set_base(&machine().root_device().memregion("maincpu")->base()[0x10000 + 0x0000]);
- machine.root_device().membank("bank2")->set_base(&machine.root_device().memregion("maincpu")->base()[0x10000 + 0xf800]);
+ machine().root_device().membank("bank2")->set_base(&machine().root_device().memregion("maincpu")->base()[0x10000 + 0xf800]);
- machine.root_device().membank("bank3")->set_base(&machine.root_device().memregion("maincpu")->base()[0x10000 + 0x8000]);
+ machine().root_device().membank("bank3")->set_base(&machine().root_device().memregion("maincpu")->base()[0x10000 + 0x8000]);
/*
@@ -561,10 +564,10 @@ static MACHINE_START(jwildb52)
*/
{
- UINT16 *rom = (UINT16*)machine.root_device().memregion("gfx1")->base();
+ UINT16 *rom = (UINT16*)machine().root_device().memregion("gfx1")->base();
int i;
- device_t *hd63484 = machine.device("hd63484");
+ device_t *hd63484 = machine().device("hd63484");
for(i = 0; i < 0x40000/2; ++i)
{
@@ -594,7 +597,6 @@ static MACHINE_CONFIG_START( jwildb52, sigmab52_state )
MCFG_CPU_PERIODIC_INT(timer_irq, 1000) /* Fix me */
#endif
- MCFG_MACHINE_START(jwildb52)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(30)
@@ -605,10 +607,8 @@ static MACHINE_CONFIG_START( jwildb52, sigmab52_state )
MCFG_HD63484_ADD("hd63484", jwildb52_hd63484_intf)
- MCFG_PALETTE_INIT(jwildb52)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(jwildb52)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c
index 9851970e46c..45a1e0be29b 100644
--- a/src/mame/drivers/sigmab98.c
+++ b/src/mame/drivers/sigmab98.c
@@ -174,6 +174,7 @@ public:
DECLARE_DRIVER_INIT(animalc);
DECLARE_DRIVER_INIT(ucytokyu);
DECLARE_DRIVER_INIT(haekaka);
+ DECLARE_MACHINE_RESET(sammymdl);
};
@@ -1741,9 +1742,9 @@ static const eeprom_interface eeprom_interface_93C46_8bit_delay =
// "*10010xxxx" // erase all 1 00 10xxxx
};
-static MACHINE_RESET( sammymdl )
+MACHINE_RESET_MEMBER(sigmab98_state,sammymdl)
{
- machine.device("maincpu")->state().set_state_int(Z80_PC, 0x400); // code starts at 400 ??? (000 = cart header)
+ machine().device("maincpu")->state().set_state_int(Z80_PC, 0x400); // code starts at 400 ??? (000 = cart header)
}
static MACHINE_CONFIG_START( sammymdl, sigmab98_state )
@@ -1751,7 +1752,7 @@ static MACHINE_CONFIG_START( sammymdl, sigmab98_state )
MCFG_CPU_PROGRAM_MAP( animalc_map )
MCFG_CPU_IO_MAP( animalc_io )
- MCFG_MACHINE_RESET( sammymdl )
+ MCFG_MACHINE_RESET_OVERRIDE(sigmab98_state, sammymdl )
MCFG_NVRAM_ADD_0FILL("nvram") // battery
MCFG_EEPROM_ADD("eeprom", eeprom_interface_93C46_8bit_delay)
diff --git a/src/mame/drivers/silkroad.c b/src/mame/drivers/silkroad.c
index aa0bc0abe02..8cfb8322d21 100644
--- a/src/mame/drivers/silkroad.c
+++ b/src/mame/drivers/silkroad.c
@@ -296,7 +296,6 @@ static MACHINE_CONFIG_START( silkroad, silkroad_state )
MCFG_GFXDECODE(silkroad)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(silkroad)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/silvmil.c b/src/mame/drivers/silvmil.c
index 8b62dc5193a..f6750e63438 100644
--- a/src/mame/drivers/silvmil.c
+++ b/src/mame/drivers/silvmil.c
@@ -108,6 +108,9 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILEMAP_MAPPER_MEMBER(deco16_scan_rows);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -137,13 +140,12 @@ TILEMAP_MAPPER_MEMBER(silvmil_state::deco16_scan_rows)
return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 5) + ((row & 0x20) << 6);
}
-VIDEO_START( silvmil )
+void silvmil_state::video_start()
{
- silvmil_state *state = machine.driver_data<silvmil_state>();
- state->m_bg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(silvmil_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(silvmil_state::deco16_scan_rows),state), 16, 16, 64, 32);
- state->m_fg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(silvmil_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(silvmil_state::deco16_scan_rows),state), 16, 16, 64, 32);
+ m_bg_layer = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(silvmil_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(silvmil_state::deco16_scan_rows),this), 16, 16, 64, 32);
+ m_fg_layer = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(silvmil_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(silvmil_state::deco16_scan_rows),this), 16, 16, 64, 32);
- state->m_fg_layer->set_transparent_pen(0);
+ m_fg_layer->set_transparent_pen(0);
}
SCREEN_UPDATE_IND16( silvmil )
@@ -273,19 +275,18 @@ static GFXDECODE_START( silvmil )
GFXDECODE_END
-static MACHINE_START( silvmil )
+void silvmil_state::machine_start()
{
}
-static MACHINE_RESET( silvmil )
+void silvmil_state::machine_reset()
{
- silvmil_state *state = machine.driver_data<silvmil_state>();
- state->m_silvmil_tilebank[0] = 0;
- state->m_silvmil_tilebank[1] = 0;
- state->m_silvmil_tilebank[2] = 0;
- state->m_silvmil_tilebank[3] = 0;
- state->m_whichbank = 0;
+ m_silvmil_tilebank[0] = 0;
+ m_silvmil_tilebank[1] = 0;
+ m_silvmil_tilebank[2] = 0;
+ m_silvmil_tilebank[3] = 0;
+ m_whichbank = 0;
}
@@ -322,8 +323,6 @@ static MACHINE_CONFIG_START( silvmil, silvmil_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_4_096MHz) // 4.096MHz or 3.579545MHz - Need to verify
MCFG_CPU_PROGRAM_MAP(silvmil_sound_map)
- MCFG_MACHINE_START(silvmil)
- MCFG_MACHINE_RESET(silvmil)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -336,7 +335,6 @@ static MACHINE_CONFIG_START( silvmil, silvmil_state )
MCFG_PALETTE_LENGTH(0x300)
MCFG_GFXDECODE(silvmil)
- MCFG_VIDEO_START(silvmil)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 0);
diff --git a/src/mame/drivers/simpl156.c b/src/mame/drivers/simpl156.c
index 8444b979717..6f8d5f671d7 100644
--- a/src/mame/drivers/simpl156.c
+++ b/src/mame/drivers/simpl156.c
@@ -439,7 +439,6 @@ static MACHINE_CONFIG_START( chainrec, simpl156_state )
MCFG_PALETTE_LENGTH(4096)
MCFG_GFXDECODE(simpl156)
- MCFG_VIDEO_START(simpl156)
MCFG_DECO16IC_ADD("tilegen1", simpl156_deco16ic_tilegen1_intf)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
diff --git a/src/mame/drivers/simpsons.c b/src/mame/drivers/simpsons.c
index 94acce240ce..6117be53195 100644
--- a/src/mame/drivers/simpsons.c
+++ b/src/mame/drivers/simpsons.c
@@ -315,8 +315,6 @@ static MACHINE_CONFIG_START( simpsons, simpsons_state )
MCFG_CPU_PROGRAM_MAP(z80_map)
/* NMIs are generated by the 053260 */
- MCFG_MACHINE_START(simpsons)
- MCFG_MACHINE_RESET(simpsons)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
diff --git a/src/mame/drivers/skeetsht.c b/src/mame/drivers/skeetsht.c
index 913eb226213..940aa1fcb8e 100644
--- a/src/mame/drivers/skeetsht.c
+++ b/src/mame/drivers/skeetsht.c
@@ -40,6 +40,8 @@ public:
DECLARE_READ8_MEMBER(hc11_porta_r);
DECLARE_WRITE8_MEMBER(hc11_porta_w);
DECLARE_WRITE8_MEMBER(ay8910_w);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -49,12 +51,11 @@ public:
*
*************************************/
-static MACHINE_RESET( skeetsht )
+void skeetsht_state::machine_reset()
{
- skeetsht_state *state = machine.driver_data<skeetsht_state>();
- state->m_ay = machine.device("aysnd");
- state->m_tms = machine.device("tms");
+ m_ay = machine().device("aysnd");
+ m_tms = machine().device("tms");
}
@@ -64,7 +65,7 @@ static MACHINE_RESET( skeetsht )
*
*************************************/
-static VIDEO_START ( skeetsht )
+void skeetsht_state::video_start()
{
}
@@ -263,7 +264,6 @@ static MACHINE_CONFIG_START( skeetsht, skeetsht_state )
MCFG_CPU_CONFIG(tms_config)
MCFG_CPU_PROGRAM_MAP(tms_program_map)
- MCFG_MACHINE_RESET(skeetsht)
MCFG_TLC34076_ADD("tlc34076", tlc34076_6_bit_intf)
@@ -271,7 +271,6 @@ static MACHINE_CONFIG_START( skeetsht, skeetsht_state )
MCFG_SCREEN_RAW_PARAMS(48000000 / 8, 156*4, 0, 100*4, 328, 0, 300) // FIXME
MCFG_SCREEN_UPDATE_STATIC(tms340x0_rgb32)
- MCFG_VIDEO_START(skeetsht)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/skimaxx.c b/src/mame/drivers/skimaxx.c
index 1af0fb80ce5..63a9164d9a3 100644
--- a/src/mame/drivers/skimaxx.c
+++ b/src/mame/drivers/skimaxx.c
@@ -71,6 +71,8 @@ public:
DECLARE_WRITE32_MEMBER(skimaxx_unk1_w);
DECLARE_WRITE32_MEMBER(skimaxx_sub_ctrl_w);
DECLARE_READ32_MEMBER(skimaxx_analog_r);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -135,17 +137,16 @@ READ32_MEMBER(skimaxx_state::skimaxx_blitter_r)
}
-static VIDEO_START( skimaxx )
+void skimaxx_state::video_start()
{
- skimaxx_state *state = machine.driver_data<skimaxx_state>();
- state->m_blitter_gfx = (UINT16 *) state->memregion( "blitter" )->base();
- state->m_blitter_gfx_len = state->memregion( "blitter" )->bytes() / 2;
-
- state->m_bg_buffer = auto_alloc_array(machine, UINT32, 0x400 * 0x100 * sizeof(UINT16) / sizeof(UINT32) * 2); // 2 buffers
- state->m_bg_buffer_back = state->m_bg_buffer + 0x400 * 0x100 * sizeof(UINT16) / sizeof(UINT32) * 0;
- state->m_bg_buffer_front = state->m_bg_buffer + 0x400 * 0x100 * sizeof(UINT16) / sizeof(UINT32) * 1;
- state->membank("bank1")->configure_entry(0, state->m_bg_buffer_back);
- state->membank("bank1")->configure_entry(1, state->m_bg_buffer_front);
+ m_blitter_gfx = (UINT16 *) memregion( "blitter" )->base();
+ m_blitter_gfx_len = memregion( "blitter" )->bytes() / 2;
+
+ m_bg_buffer = auto_alloc_array(machine(), UINT32, 0x400 * 0x100 * sizeof(UINT16) / sizeof(UINT32) * 2); // 2 buffers
+ m_bg_buffer_back = m_bg_buffer + 0x400 * 0x100 * sizeof(UINT16) / sizeof(UINT32) * 0;
+ m_bg_buffer_front = m_bg_buffer + 0x400 * 0x100 * sizeof(UINT16) / sizeof(UINT32) * 1;
+ membank("bank1")->configure_entry(0, m_bg_buffer_back);
+ membank("bank1")->configure_entry(1, m_bg_buffer_front);
}
static SCREEN_UPDATE_IND16( skimaxx )
@@ -509,7 +510,7 @@ static const tms34010_config tms_config =
*
*************************************/
-static MACHINE_RESET( skimaxx )
+void skimaxx_state::machine_reset()
{
}
@@ -528,7 +529,6 @@ static MACHINE_CONFIG_START( skimaxx, skimaxx_state )
MCFG_CPU_ADD("subcpu", M68EC030, XTAL_40MHz)
MCFG_CPU_PROGRAM_MAP(68030_2_map)
- MCFG_MACHINE_RESET(skimaxx)
/* video hardware */
MCFG_CPU_ADD("tms", TMS34010, XTAL_50MHz)
@@ -544,7 +544,6 @@ static MACHINE_CONFIG_START( skimaxx, skimaxx_state )
// MCFG_SCREEN_UPDATE_STATIC(tms340x0_ind16)
MCFG_SCREEN_UPDATE_STATIC(skimaxx)
- MCFG_VIDEO_START(skimaxx)
// MCFG_GFXDECODE( skimaxx )
diff --git a/src/mame/drivers/skullxbo.c b/src/mame/drivers/skullxbo.c
index d4ee54d807e..2aaaed51ac9 100644
--- a/src/mame/drivers/skullxbo.c
+++ b/src/mame/drivers/skullxbo.c
@@ -71,19 +71,18 @@ WRITE16_MEMBER(skullxbo_state::skullxbo_halt_until_hblank_0_w)
}
-static MACHINE_START( skullxbo )
+MACHINE_START_MEMBER(skullxbo_state,skullxbo)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( skullxbo )
+MACHINE_RESET_MEMBER(skullxbo_state,skullxbo)
{
- skullxbo_state *state = machine.driver_data<skullxbo_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, alpha_row_update, 8);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, alpha_row_update, 8);
atarijsa_reset();
}
@@ -260,8 +259,8 @@ static MACHINE_CONFIG_START( skullxbo, skullxbo_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
- MCFG_MACHINE_START(skullxbo)
- MCFG_MACHINE_RESET(skullxbo)
+ MCFG_MACHINE_START_OVERRIDE(skullxbo_state,skullxbo)
+ MCFG_MACHINE_RESET_OVERRIDE(skullxbo_state,skullxbo)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -275,7 +274,7 @@ static MACHINE_CONFIG_START( skullxbo, skullxbo_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(skullxbo)
- MCFG_VIDEO_START(skullxbo)
+ MCFG_VIDEO_START_OVERRIDE(skullxbo_state,skullxbo)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_ii_mono)
diff --git a/src/mame/drivers/skyarmy.c b/src/mame/drivers/skyarmy.c
index 3d5b1c36591..39092d25f0c 100644
--- a/src/mame/drivers/skyarmy.c
+++ b/src/mame/drivers/skyarmy.c
@@ -51,6 +51,8 @@ public:
DECLARE_WRITE8_MEMBER(skyarmy_colorram_w);
DECLARE_WRITE8_MEMBER(nmi_enable_w);
TILE_GET_INFO_MEMBER(get_skyarmy_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
WRITE8_MEMBER(skyarmy_state::skyarmy_flip_screen_x_w)
@@ -85,9 +87,9 @@ WRITE8_MEMBER(skyarmy_state::skyarmy_colorram_w)
m_tilemap->mark_tile_dirty(offset);
}
-static PALETTE_INIT( skyarmy )
+void skyarmy_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
for (i = 0;i < 32;i++)
@@ -109,17 +111,16 @@ static PALETTE_INIT( skyarmy )
bit2 = (*color_prom >> 7) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
color_prom++;
}
}
-static VIDEO_START( skyarmy )
+void skyarmy_state::video_start()
{
- skyarmy_state *state = machine.driver_data<skyarmy_state>();
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skyarmy_state::get_skyarmy_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_tilemap->set_scroll_cols(32);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(skyarmy_state::get_skyarmy_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap->set_scroll_cols(32);
}
@@ -297,8 +298,6 @@ static MACHINE_CONFIG_START( skyarmy, skyarmy_state )
MCFG_GFXDECODE(skyarmy)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(skyarmy)
- MCFG_VIDEO_START(skyarmy)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c
index 8ee983c60c9..fc374cd0c15 100644
--- a/src/mame/drivers/skydiver.c
+++ b/src/mame/drivers/skydiver.c
@@ -110,7 +110,7 @@ static const int colortable_source[] =
0x01, 0x02
};
-static PALETTE_INIT( skydiver )
+void skydiver_state::palette_init()
{
int i;
@@ -125,7 +125,7 @@ static PALETTE_INIT( skydiver )
default: color = MAKE_RGB(0xa0, 0xa0, 0xa0); break; /* grey */
}
- palette_set_color(machine, i, color);
+ palette_set_color(machine(), i, color);
}
}
@@ -380,7 +380,6 @@ static MACHINE_CONFIG_START( skydiver, skydiver_state )
MCFG_CPU_PERIODIC_INT(skydiver_interrupt, 5*60)
MCFG_WATCHDOG_VBLANK_INIT(8) // 128V clocks the same as VBLANK
- MCFG_MACHINE_RESET(skydiver)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -393,8 +392,6 @@ static MACHINE_CONFIG_START( skydiver, skydiver_state )
MCFG_GFXDECODE(skydiver)
MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0]))
- MCFG_PALETTE_INIT(skydiver)
- MCFG_VIDEO_START(skydiver)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/skyfox.c b/src/mame/drivers/skyfox.c
index 5ee9910cb7e..ba651450f51 100644
--- a/src/mame/drivers/skyfox.c
+++ b/src/mame/drivers/skyfox.c
@@ -219,22 +219,20 @@ static INTERRUPT_GEN( skyfox_interrupt )
state->m_bg_pos += (state->m_bg_ctrl >> 1) & 0x7; // maybe..
}
-static MACHINE_START( skyfox )
+void skyfox_state::machine_start()
{
- skyfox_state *state = machine.driver_data<skyfox_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_bg_pos));
- state->save_item(NAME(state->m_bg_ctrl));
+ save_item(NAME(m_bg_pos));
+ save_item(NAME(m_bg_ctrl));
}
-static MACHINE_RESET( skyfox )
+void skyfox_state::machine_reset()
{
- skyfox_state *state = machine.driver_data<skyfox_state>();
- state->m_bg_pos = 0;
- state->m_bg_ctrl = 0;
+ m_bg_pos = 0;
+ m_bg_ctrl = 0;
}
static MACHINE_CONFIG_START( skyfox, skyfox_state )
@@ -247,8 +245,6 @@ static MACHINE_CONFIG_START( skyfox, skyfox_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_14_31818MHz/8) /* Verified at 1.789772MHz */
MCFG_CPU_PROGRAM_MAP(skyfox_sound_map)
- MCFG_MACHINE_START(skyfox)
- MCFG_MACHINE_RESET(skyfox)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -261,7 +257,6 @@ static MACHINE_CONFIG_START( skyfox, skyfox_state )
MCFG_GFXDECODE(skyfox)
MCFG_PALETTE_LENGTH(256+256) /* 256 static colors (+256 for the background??) */
- MCFG_PALETTE_INIT(skyfox)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/skykid.c b/src/mame/drivers/skykid.c
index 79b7f0ce235..4d9488ae873 100644
--- a/src/mame/drivers/skykid.c
+++ b/src/mame/drivers/skykid.c
@@ -88,13 +88,12 @@ WRITE8_MEMBER(skykid_state::skykid_irq_2_ctrl_w)
machine().device("mcu")->execute().set_input_line(0, CLEAR_LINE);
}
-static MACHINE_START( skykid )
+void skykid_state::machine_start()
{
- skykid_state *state = machine.driver_data<skykid_state>();
/* configure the banks */
- state->membank("bank1")->configure_entries(0, 2, state->memregion("maincpu")->base() + 0x10000, 0x2000);
+ membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x2000);
- state_save_register_global(machine, state->m_inputport_selected);
+ state_save_register_global(machine(), m_inputport_selected);
}
@@ -455,7 +454,6 @@ static MACHINE_CONFIG_START( skykid, skykid_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* we need heavy synch */
- MCFG_MACHINE_START(skykid)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -468,8 +466,6 @@ static MACHINE_CONFIG_START( skykid, skykid_state )
MCFG_GFXDECODE(skykid)
MCFG_PALETTE_LENGTH(64*4+128*4+64*8)
- MCFG_PALETTE_INIT(skykid)
- MCFG_VIDEO_START(skykid)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c
index 2018e70114a..8acf1226370 100644
--- a/src/mame/drivers/skylncr.c
+++ b/src/mame/drivers/skylncr.c
@@ -107,6 +107,7 @@ public:
TILE_GET_INFO_MEMBER(get_reel_2_tile_info);
TILE_GET_INFO_MEMBER(get_reel_3_tile_info);
TILE_GET_INFO_MEMBER(get_reel_4_tile_info);
+ virtual void video_start();
};
@@ -158,27 +159,26 @@ TILE_GET_INFO_MEMBER(skylncr_state::get_reel_4_tile_info)
}
-static VIDEO_START( skylncr )
+void skylncr_state::video_start()
{
- skylncr_state *state = machine.driver_data<skylncr_state>();
- state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20 );
+ m_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20 );
- state->m_reel_1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
- state->m_reel_2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
- state->m_reel_3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_3_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
- state->m_reel_4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_4_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
+ m_reel_1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
+ m_reel_2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
+ m_reel_3_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_3_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
+ m_reel_4_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_4_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
- state->m_reel_2_tilemap->set_scroll_cols(0x40);
- state->m_reel_3_tilemap->set_scroll_cols(0x40);
- state->m_reel_4_tilemap->set_scroll_cols(0x40);
+ m_reel_2_tilemap->set_scroll_cols(0x40);
+ m_reel_3_tilemap->set_scroll_cols(0x40);
+ m_reel_4_tilemap->set_scroll_cols(0x40);
- state->m_reel_2_tilemap->set_transparent_pen(0);
- state->m_reel_3_tilemap->set_transparent_pen(0);
- state->m_reel_4_tilemap->set_transparent_pen(0);
+ m_reel_2_tilemap->set_transparent_pen(0);
+ m_reel_3_tilemap->set_transparent_pen(0);
+ m_reel_4_tilemap->set_transparent_pen(0);
- state->m_tmap->set_transparent_pen(0);
+ m_tmap->set_transparent_pen(0);
}
@@ -731,7 +731,6 @@ static MACHINE_CONFIG_START( skylncr, skylncr_state )
MCFG_GFXDECODE(skylncr)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_VIDEO_START(skylncr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/skyraid.c b/src/mame/drivers/skyraid.c
index 695adebd0b4..8c87c23aeca 100644
--- a/src/mame/drivers/skyraid.c
+++ b/src/mame/drivers/skyraid.c
@@ -10,28 +10,28 @@ Atari Sky Raider driver
-static PALETTE_INIT( skyraid )
+void skyraid_state::palette_init()
{
- palette_set_color(machine, 0, MAKE_RGB(0x00, 0x00, 0x00)); /* terrain */
- palette_set_color(machine, 1, MAKE_RGB(0x18, 0x18, 0x18));
- palette_set_color(machine, 2, MAKE_RGB(0x30, 0x30, 0x30));
- palette_set_color(machine, 3, MAKE_RGB(0x48, 0x48, 0x48));
- palette_set_color(machine, 4, MAKE_RGB(0x60, 0x60, 0x60));
- palette_set_color(machine, 5, MAKE_RGB(0x78, 0x78, 0x78));
- palette_set_color(machine, 6, MAKE_RGB(0x90, 0x90, 0x90));
- palette_set_color(machine, 7, MAKE_RGB(0xA8, 0xA8, 0xA8));
- palette_set_color(machine, 8, MAKE_RGB(0x10, 0x10, 0x10)); /* sprites */
- palette_set_color(machine, 9, MAKE_RGB(0xE0, 0xE0, 0xE0));
- palette_set_color(machine, 10, MAKE_RGB(0xA0, 0xA0, 0xA0));
- palette_set_color(machine, 11, MAKE_RGB(0x48, 0x48, 0x48));
- palette_set_color(machine, 12, MAKE_RGB(0x10, 0x10, 0x10));
- palette_set_color(machine, 13, MAKE_RGB(0x48, 0x48, 0x48));
- palette_set_color(machine, 14, MAKE_RGB(0xA0, 0xA0, 0xA0));
- palette_set_color(machine, 15, MAKE_RGB(0xE0, 0xE0, 0xE0));
- palette_set_color(machine, 16, MAKE_RGB(0x00, 0x00, 0x00)); /* missiles */
- palette_set_color(machine, 17, MAKE_RGB(0xFF, 0xFF, 0xFF));
- palette_set_color(machine, 18, MAKE_RGB(0x00, 0x00, 0x00)); /* text */
- palette_set_color(machine, 19, MAKE_RGB(0xE0, 0xE0, 0xE0));
+ palette_set_color(machine(), 0, MAKE_RGB(0x00, 0x00, 0x00)); /* terrain */
+ palette_set_color(machine(), 1, MAKE_RGB(0x18, 0x18, 0x18));
+ palette_set_color(machine(), 2, MAKE_RGB(0x30, 0x30, 0x30));
+ palette_set_color(machine(), 3, MAKE_RGB(0x48, 0x48, 0x48));
+ palette_set_color(machine(), 4, MAKE_RGB(0x60, 0x60, 0x60));
+ palette_set_color(machine(), 5, MAKE_RGB(0x78, 0x78, 0x78));
+ palette_set_color(machine(), 6, MAKE_RGB(0x90, 0x90, 0x90));
+ palette_set_color(machine(), 7, MAKE_RGB(0xA8, 0xA8, 0xA8));
+ palette_set_color(machine(), 8, MAKE_RGB(0x10, 0x10, 0x10)); /* sprites */
+ palette_set_color(machine(), 9, MAKE_RGB(0xE0, 0xE0, 0xE0));
+ palette_set_color(machine(), 10, MAKE_RGB(0xA0, 0xA0, 0xA0));
+ palette_set_color(machine(), 11, MAKE_RGB(0x48, 0x48, 0x48));
+ palette_set_color(machine(), 12, MAKE_RGB(0x10, 0x10, 0x10));
+ palette_set_color(machine(), 13, MAKE_RGB(0x48, 0x48, 0x48));
+ palette_set_color(machine(), 14, MAKE_RGB(0xA0, 0xA0, 0xA0));
+ palette_set_color(machine(), 15, MAKE_RGB(0xE0, 0xE0, 0xE0));
+ palette_set_color(machine(), 16, MAKE_RGB(0x00, 0x00, 0x00)); /* missiles */
+ palette_set_color(machine(), 17, MAKE_RGB(0xFF, 0xFF, 0xFF));
+ palette_set_color(machine(), 18, MAKE_RGB(0x00, 0x00, 0x00)); /* text */
+ palette_set_color(machine(), 19, MAKE_RGB(0xE0, 0xE0, 0xE0));
}
READ8_MEMBER(skyraid_state::skyraid_port_0_r)
@@ -233,10 +233,8 @@ static MACHINE_CONFIG_START( skyraid, skyraid_state )
MCFG_GFXDECODE(skyraid)
- MCFG_PALETTE_INIT(skyraid)
MCFG_PALETTE_LENGTH(20)
- MCFG_VIDEO_START(skyraid)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/slapfght.c b/src/mame/drivers/slapfght.c
index c1529195962..d1765c5cf7b 100644
--- a/src/mame/drivers/slapfght.c
+++ b/src/mame/drivers/slapfght.c
@@ -757,7 +757,7 @@ static MACHINE_CONFIG_START( perfrman, slapfght_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
- MCFG_MACHINE_RESET(slapfight)
+ MCFG_MACHINE_RESET_OVERRIDE(slapfght_state,slapfight)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -774,7 +774,7 @@ static MACHINE_CONFIG_START( perfrman, slapfght_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(perfrman)
+ MCFG_VIDEO_START_OVERRIDE(slapfght_state,perfrman)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -803,7 +803,7 @@ static MACHINE_CONFIG_START( tigerhb, slapfght_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
- MCFG_MACHINE_RESET(slapfight)
+ MCFG_MACHINE_RESET_OVERRIDE(slapfght_state,slapfight)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -820,7 +820,7 @@ static MACHINE_CONFIG_START( tigerhb, slapfght_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(slapfight)
+ MCFG_VIDEO_START_OVERRIDE(slapfght_state,slapfight)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -851,7 +851,7 @@ static MACHINE_CONFIG_START( tigerh, slapfght_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
- MCFG_MACHINE_RESET(slapfight)
+ MCFG_MACHINE_RESET_OVERRIDE(slapfght_state,slapfight)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -868,7 +868,7 @@ static MACHINE_CONFIG_START( tigerh, slapfght_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(slapfight)
+ MCFG_VIDEO_START_OVERRIDE(slapfght_state,slapfight)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -900,7 +900,7 @@ static MACHINE_CONFIG_START( slapfigh, slapfght_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
- MCFG_MACHINE_RESET(slapfight)
+ MCFG_MACHINE_RESET_OVERRIDE(slapfght_state,slapfight)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -917,7 +917,7 @@ static MACHINE_CONFIG_START( slapfigh, slapfght_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(slapfight)
+ MCFG_VIDEO_START_OVERRIDE(slapfght_state,slapfight)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c
index a6532decafb..7d263ed3a1c 100644
--- a/src/mame/drivers/slapshot.c
+++ b/src/mame/drivers/slapshot.c
@@ -520,22 +520,21 @@ static const tc0140syt_interface slapshot_tc0140syt_intf =
"maincpu", "audiocpu"
};
-static MACHINE_START( slapshot )
+void slapshot_state::machine_start()
{
- slapshot_state *state = machine.driver_data<slapshot_state>();
- state->membank("bank10")->configure_entries(0, 4, state->memregion("audiocpu")->base() + 0xc000, 0x4000);
+ membank("bank10")->configure_entries(0, 4, memregion("audiocpu")->base() + 0xc000, 0x4000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_tc0140syt = machine.device("tc0140syt");
- state->m_tc0480scp = machine.device("tc0480scp");
- state->m_tc0360pri = machine.device("tc0360pri");
- state->m_tc0640fio = machine.device("tc0640fio");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_tc0140syt = machine().device("tc0140syt");
+ m_tc0480scp = machine().device("tc0480scp");
+ m_tc0360pri = machine().device("tc0360pri");
+ m_tc0640fio = machine().device("tc0640fio");
- state->m_banknum = 0;
- state->save_item(NAME(state->m_banknum));
- machine.save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine));
+ m_banknum = 0;
+ save_item(NAME(m_banknum));
+ machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
}
@@ -551,7 +550,6 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(slapshot)
MCFG_TC0640FIO_ADD("tc0640fio", slapshot_io_intf)
@@ -567,7 +565,6 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state )
MCFG_GFXDECODE(slapshot)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(slapshot)
MCFG_TC0480SCP_ADD("tc0480scp", slapshot_tc0480scp_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -599,7 +596,6 @@ static MACHINE_CONFIG_START( opwolf3, slapshot_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(slapshot)
MCFG_TC0640FIO_ADD("tc0640fio", slapshot_io_intf)
@@ -615,7 +611,6 @@ static MACHINE_CONFIG_START( opwolf3, slapshot_state )
MCFG_GFXDECODE(slapshot)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(slapshot)
MCFG_TC0480SCP_ADD("tc0480scp", slapshot_tc0480scp_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
diff --git a/src/mame/drivers/sliver.c b/src/mame/drivers/sliver.c
index 3cbeaa66a7b..3120246abb1 100644
--- a/src/mame/drivers/sliver.c
+++ b/src/mame/drivers/sliver.c
@@ -112,6 +112,7 @@ public:
DECLARE_WRITE16_MEMBER(io_data_w);
DECLARE_WRITE16_MEMBER(sound_w);
DECLARE_WRITE8_MEMBER(oki_setbank);
+ virtual void video_start();
};
static void plot_pixel_rgb(sliver_state *state, int x, int y, UINT32 r, UINT32 g, UINT32 b)
@@ -365,12 +366,11 @@ static ADDRESS_MAP_START( soundmem_io, AS_IO, 8, sliver_state )
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE(oki_setbank )
ADDRESS_MAP_END
-static VIDEO_START(sliver)
+void sliver_state::video_start()
{
- sliver_state *state = machine.driver_data<sliver_state>();
- machine.primary_screen->register_screen_bitmap(state->m_bitmap_bg);
- machine.primary_screen->register_screen_bitmap(state->m_bitmap_fg);
+ machine().primary_screen->register_screen_bitmap(m_bitmap_bg);
+ machine().primary_screen->register_screen_bitmap(m_bitmap_fg);
}
static SCREEN_UPDATE_RGB32(sliver)
@@ -490,7 +490,6 @@ static MACHINE_CONFIG_START( sliver, sliver_state )
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
- MCFG_VIDEO_START(sliver)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/slotcarn.c b/src/mame/drivers/slotcarn.c
index 66f4715d9ba..beeca26bb3e 100644
--- a/src/mame/drivers/slotcarn.c
+++ b/src/mame/drivers/slotcarn.c
@@ -48,6 +48,7 @@ public:
DECLARE_WRITE8_MEMBER(palette_w);
DECLARE_WRITE_LINE_MEMBER(hsync_changed);
DECLARE_WRITE_LINE_MEMBER(vsync_changed);
+ virtual void machine_start();
};
@@ -540,11 +541,10 @@ GFXDECODE_END
-static MACHINE_START(merit)
+void slotcarn_state::machine_start()
{
- slotcarn_state *state = machine.driver_data<slotcarn_state>();
- state->m_ram_palette = auto_alloc_array(machine, UINT8, RAM_PALETTE_SIZE);
- state_save_register_global_pointer(machine, state->m_ram_palette, RAM_PALETTE_SIZE);
+ m_ram_palette = auto_alloc_array(machine(), UINT8, RAM_PALETTE_SIZE);
+ state_save_register_global_pointer(machine(), m_ram_palette, RAM_PALETTE_SIZE);
}
@@ -614,7 +614,6 @@ static MACHINE_CONFIG_START( slotcarn, slotcarn_state )
MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf )
MCFG_I8255A_ADD( "ppi8255_2", ppi8255_2_intf )
- MCFG_MACHINE_START(merit)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/sms.c b/src/mame/drivers/sms.c
index 7edc981a79f..20931533315 100644
--- a/src/mame/drivers/sms.c
+++ b/src/mame/drivers/sms.c
@@ -240,6 +240,11 @@ public:
DECLARE_READ8_MEMBER(ppi0_c_r);
DECLARE_WRITE8_MEMBER(ppi0_a_w);
DECLARE_WRITE8_MEMBER(ppi0_b_w);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
+ DECLARE_MACHINE_START(sureshot);
};
@@ -467,13 +472,12 @@ WRITE8_MEMBER(smsmfg_state::video_w)
}
}
-static VIDEO_START( sms )
+void smsmfg_state::video_start()
{
- smsmfg_state *state = machine.driver_data<smsmfg_state>();
- machine.primary_screen->register_screen_bitmap(state->m_bitmap);
+ machine().primary_screen->register_screen_bitmap(m_bitmap);
- state_save_register_global_array(machine, state->m_vid_regs);
- state_save_register_global_bitmap(machine, &state->m_bitmap);
+ state_save_register_global_array(machine(), m_vid_regs);
+ state_save_register_global_bitmap(machine(), &m_bitmap);
}
static SCREEN_UPDATE_IND16( sms )
@@ -483,13 +487,13 @@ static SCREEN_UPDATE_IND16( sms )
return 0;
}
-static PALETTE_INIT( sms )
+void smsmfg_state::palette_init()
{
int i;
for (i = 0; i < 8; i++ )
{
- palette_set_color(machine, i, MAKE_RGB(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i)));
+ palette_set_color(machine(), i, MAKE_RGB(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i)));
}
}
@@ -534,26 +538,23 @@ ADDRESS_MAP_END
*
*************************************/
-static MACHINE_START( sms )
+void smsmfg_state::machine_start()
{
- smsmfg_state *state = machine.driver_data<smsmfg_state>();
- state->membank("bank1")->configure_entries(0, 16, state->memregion("questions")->base(), 0x4000);
+ membank("bank1")->configure_entries(0, 16, memregion("questions")->base(), 0x4000);
- state_save_register_global(machine, state->m_communication_port_status);
- state_save_register_global_array(machine, state->m_communication_port);
+ state_save_register_global(machine(), m_communication_port_status);
+ state_save_register_global_array(machine(), m_communication_port);
}
-static MACHINE_START( sureshot )
+MACHINE_START_MEMBER(smsmfg_state,sureshot)
{
- smsmfg_state *state = machine.driver_data<smsmfg_state>();
- state_save_register_global(machine, state->m_communication_port_status);
- state_save_register_global_array(machine, state->m_communication_port);
+ state_save_register_global(machine(), m_communication_port_status);
+ state_save_register_global_array(machine(), m_communication_port);
}
-static MACHINE_RESET( sms )
+void smsmfg_state::machine_reset()
{
- smsmfg_state *state = machine.driver_data<smsmfg_state>();
- state->m_communication_port_status = 0;
+ m_communication_port_status = 0;
}
static MACHINE_CONFIG_START( sms, smsmfg_state )
@@ -565,8 +566,6 @@ static MACHINE_CONFIG_START( sms, smsmfg_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(sms)
- MCFG_MACHINE_RESET(sms)
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf )
MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf )
@@ -583,8 +582,6 @@ static MACHINE_CONFIG_START( sms, smsmfg_state )
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(sms)
- MCFG_VIDEO_START(sms)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -598,7 +595,7 @@ static MACHINE_CONFIG_DERIVED( sureshot, sms )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(sureshot_map)
- MCFG_MACHINE_START(sureshot)
+ MCFG_MACHINE_START_OVERRIDE(smsmfg_state,sureshot)
MACHINE_CONFIG_END
/*************************************
diff --git a/src/mame/drivers/snk.c b/src/mame/drivers/snk.c
index c3ed39bda35..e1056cfeef3 100644
--- a/src/mame/drivers/snk.c
+++ b/src/mame/drivers/snk.c
@@ -3650,8 +3650,8 @@ static MACHINE_CONFIG_START( marvins, snk_state )
MCFG_GFXDECODE(marvins)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_PALETTE_INIT(tnk3)
- MCFG_VIDEO_START(marvins)
+ MCFG_PALETTE_INIT_OVERRIDE(snk_state,tnk3)
+ MCFG_VIDEO_START_OVERRIDE(snk_state,marvins)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3719,8 +3719,8 @@ static MACHINE_CONFIG_START( jcross, snk_state )
MCFG_GFXDECODE(tnk3)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_PALETTE_INIT(tnk3)
- MCFG_VIDEO_START(jcross)
+ MCFG_PALETTE_INIT_OVERRIDE(snk_state,tnk3)
+ MCFG_VIDEO_START_OVERRIDE(snk_state,jcross)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3746,7 +3746,7 @@ static MACHINE_CONFIG_DERIVED( sgladiat, jcross )
/* visible area is correct. Debug info is shown in the black bars at the sides
of the screen when the Debug dip switch is on */
- MCFG_VIDEO_START(sgladiat)
+ MCFG_VIDEO_START_OVERRIDE(snk_state,sgladiat)
MACHINE_CONFIG_END
@@ -3765,7 +3765,7 @@ static MACHINE_CONFIG_DERIVED( hal21, jcross )
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 220) // music tempo, hand tuned
/* video hardware */
- MCFG_VIDEO_START(hal21)
+ MCFG_VIDEO_START_OVERRIDE(snk_state,hal21)
MACHINE_CONFIG_END
@@ -3797,8 +3797,8 @@ static MACHINE_CONFIG_START( tnk3, snk_state )
MCFG_GFXDECODE(tnk3)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_PALETTE_INIT(tnk3)
- MCFG_VIDEO_START(tnk3)
+ MCFG_PALETTE_INIT_OVERRIDE(snk_state,tnk3)
+ MCFG_VIDEO_START_OVERRIDE(snk_state,tnk3)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3822,7 +3822,7 @@ static MACHINE_CONFIG_DERIVED( aso, tnk3 )
MCFG_CPU_PROGRAM_MAP(aso_YM3526_sound_map)
/* video hardware */
- MCFG_VIDEO_START(aso)
+ MCFG_VIDEO_START_OVERRIDE(snk_state,aso)
MACHINE_CONFIG_END
@@ -3882,7 +3882,7 @@ static MACHINE_CONFIG_START( ikari, snk_state )
MCFG_PALETTE_LENGTH(0x400)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(ikari)
+ MCFG_VIDEO_START_OVERRIDE(snk_state,ikari)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3938,7 +3938,7 @@ static MACHINE_CONFIG_START( bermudat, snk_state )
MCFG_PALETTE_LENGTH(0x400)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(gwar)
+ MCFG_VIDEO_START_OVERRIDE(snk_state,gwar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3956,7 +3956,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( psychos, bermudat )
/* video hardware */
- MCFG_VIDEO_START(psychos)
+ MCFG_VIDEO_START_OVERRIDE(snk_state,psychos)
MACHINE_CONFIG_END
@@ -4042,7 +4042,7 @@ static MACHINE_CONFIG_START( tdfever, snk_state )
MCFG_PALETTE_LENGTH(0x400)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(tdfever)
+ MCFG_VIDEO_START_OVERRIDE(snk_state,tdfever)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/snk6502.c b/src/mame/drivers/snk6502.c
index 480e74ddf66..14a050ca783 100644
--- a/src/mame/drivers/snk6502.c
+++ b/src/mame/drivers/snk6502.c
@@ -781,35 +781,35 @@ static const mc6845_interface mc6845_intf =
*
*************************************/
-static MACHINE_RESET( sasuke )
+MACHINE_RESET_MEMBER(snk6502_state,sasuke)
{
- snk6502_set_music_clock(machine, M_LN2 * (RES_K(18) + RES_K(1)) * CAP_U(1));
+ snk6502_set_music_clock(machine(), M_LN2 * (RES_K(18) + RES_K(1)) * CAP_U(1));
// adjusted (measured through audio recording of pcb)
- snk6502_set_music_freq(machine, 35300);
+ snk6502_set_music_freq(machine(), 35300);
- sasuke_start_counter(machine);
+ sasuke_start_counter(machine());
}
-static MACHINE_RESET( satansat )
+MACHINE_RESET_MEMBER(snk6502_state,satansat)
{
// same as sasuke (assumption?)
// NOTE: this was set before sasuke was adjusted to a lower freq, please don't modify until measured/confirmed on pcb
- snk6502_set_music_freq(machine, 38000);
+ snk6502_set_music_freq(machine(), 38000);
- sasuke_start_counter(machine);
+ sasuke_start_counter(machine());
}
-static MACHINE_RESET( vanguard )
+MACHINE_RESET_MEMBER(snk6502_state,vanguard)
{
// 41.6 Hz update (measured)
- snk6502_set_music_clock(machine, 1 / 41.6);
+ snk6502_set_music_clock(machine(), 1 / 41.6);
}
-static MACHINE_RESET( pballoon )
+MACHINE_RESET_MEMBER(snk6502_state,pballoon)
{
// 40.3 Hz update (measured)
- snk6502_set_music_clock(machine, 1 / 40.3);
+ snk6502_set_music_clock(machine(), 1 / 40.3);
}
@@ -826,7 +826,7 @@ static MACHINE_CONFIG_START( sasuke, snk6502_state )
MCFG_CPU_PROGRAM_MAP(sasuke_map)
MCFG_CPU_VBLANK_INT("screen",satansat_interrupt)
- MCFG_MACHINE_RESET(sasuke)
+ MCFG_MACHINE_RESET_OVERRIDE(snk6502_state,sasuke)
// video hardware
@@ -840,8 +840,8 @@ static MACHINE_CONFIG_START( sasuke, snk6502_state )
MCFG_GFXDECODE(sasuke)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(satansat)
- MCFG_VIDEO_START(satansat)
+ MCFG_PALETTE_INIT_OVERRIDE(snk6502_state,satansat)
+ MCFG_VIDEO_START_OVERRIDE(snk6502_state,satansat)
MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK / 16, mc6845_intf)
@@ -874,7 +874,7 @@ static MACHINE_CONFIG_DERIVED( satansat, sasuke )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(satansat_map)
- MCFG_MACHINE_RESET(satansat)
+ MCFG_MACHINE_RESET_OVERRIDE(snk6502_state,satansat)
// video hardware
MCFG_GFXDECODE(satansat)
@@ -899,7 +899,7 @@ static MACHINE_CONFIG_START( vanguard, snk6502_state )
MCFG_CPU_PROGRAM_MAP(vanguard_map)
MCFG_CPU_VBLANK_INT("screen",snk6502_interrupt)
- MCFG_MACHINE_RESET(vanguard)
+ MCFG_MACHINE_RESET_OVERRIDE(snk6502_state,vanguard)
// video hardware
@@ -913,8 +913,8 @@ static MACHINE_CONFIG_START( vanguard, snk6502_state )
MCFG_GFXDECODE(vanguard)
MCFG_PALETTE_LENGTH(64)
- MCFG_PALETTE_INIT(snk6502)
- MCFG_VIDEO_START(snk6502)
+ MCFG_PALETTE_INIT_OVERRIDE(snk6502_state,snk6502)
+ MCFG_VIDEO_START_OVERRIDE(snk6502_state,snk6502)
MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK / 16, mc6845_intf)
@@ -967,9 +967,9 @@ static MACHINE_CONFIG_DERIVED( pballoon, nibbler )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(pballoon_map)
- MCFG_MACHINE_RESET(pballoon)
+ MCFG_MACHINE_RESET_OVERRIDE(snk6502_state,pballoon)
- MCFG_VIDEO_START( pballoon )
+ MCFG_VIDEO_START_OVERRIDE(snk6502_state, pballoon )
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c
index fe90f468924..051f1c9fe48 100644
--- a/src/mame/drivers/snk68.c
+++ b/src/mame/drivers/snk68.c
@@ -610,7 +610,6 @@ static MACHINE_CONFIG_START( pow, snk68_state )
MCFG_GFXDECODE(pow)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(pow)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -629,7 +628,7 @@ static MACHINE_CONFIG_DERIVED( searchar, pow )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(searchar_map)
- MCFG_VIDEO_START(searchar)
+ MCFG_VIDEO_START_OVERRIDE(snk68_state,searchar)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/snookr10.c b/src/mame/drivers/snookr10.c
index 0282c2618d3..762ba82a899 100644
--- a/src/mame/drivers/snookr10.c
+++ b/src/mame/drivers/snookr10.c
@@ -706,8 +706,6 @@ static MACHINE_CONFIG_START( snookr10, snookr10_state )
MCFG_GFXDECODE(snookr10)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(snookr10)
- MCFG_VIDEO_START(snookr10)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -722,8 +720,8 @@ static MACHINE_CONFIG_DERIVED( apple10, snookr10 )
MCFG_CPU_MODIFY("maincpu")
/* video hardware */
- MCFG_PALETTE_INIT(apple10)
- MCFG_VIDEO_START(apple10)
+ MCFG_PALETTE_INIT_OVERRIDE(snookr10_state,apple10)
+ MCFG_VIDEO_START_OVERRIDE(snookr10_state,apple10)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c
index 217df1a7469..c254e7a103c 100644
--- a/src/mame/drivers/snowbros.c
+++ b/src/mame/drivers/snowbros.c
@@ -1514,24 +1514,22 @@ static const ym2151_interface ym2151_config =
};
-static MACHINE_RESET (semiprot)
+MACHINE_RESET_MEMBER(snowbros_state,semiprot)
{
- snowbros_state *state = machine.driver_data<snowbros_state>();
- UINT16 *PROTDATA = (UINT16*)state->memregion("user1")->base();
+ UINT16 *PROTDATA = (UINT16*)memregion("user1")->base();
int i;
for (i = 0;i < 0x200/2;i++)
- state->m_hyperpac_ram[0xf000/2 + i] = PROTDATA[i];
+ m_hyperpac_ram[0xf000/2 + i] = PROTDATA[i];
}
-static MACHINE_RESET (finalttr)
+MACHINE_RESET_MEMBER(snowbros_state,finalttr)
{
- snowbros_state *state = machine.driver_data<snowbros_state>();
- UINT16 *PROTDATA = (UINT16*)state->memregion("user1")->base();
+ UINT16 *PROTDATA = (UINT16*)memregion("user1")->base();
int i;
for (i = 0;i < 0x200/2;i++)
- state->m_hyperpac_ram[0x2000/2 + i] = PROTDATA[i];
+ m_hyperpac_ram[0x2000/2 + i] = PROTDATA[i];
}
static const kaneko_pandora_interface snowbros_pandora_config =
@@ -1628,7 +1626,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( semiprot, semicom )
- MCFG_MACHINE_RESET ( semiprot )
+ MCFG_MACHINE_RESET_OVERRIDE (snowbros_state, semiprot )
MACHINE_CONFIG_END
/*
@@ -1746,7 +1744,7 @@ static MACHINE_CONFIG_DERIVED( finalttr, semicom )
MCFG_CPU_MODIFY("soundcpu")
MCFG_CPU_CLOCK(3578545)
- MCFG_MACHINE_RESET ( finalttr )
+ MCFG_MACHINE_RESET_OVERRIDE (snowbros_state, finalttr )
MCFG_SOUND_REPLACE("ymsnd", YM2151, 4000000)
MCFG_SOUND_CONFIG(ym2151_config)
diff --git a/src/mame/drivers/solomon.c b/src/mame/drivers/solomon.c
index b7704dfb3c4..d62e3b805b8 100644
--- a/src/mame/drivers/solomon.c
+++ b/src/mame/drivers/solomon.c
@@ -227,7 +227,6 @@ static MACHINE_CONFIG_START( solomon, solomon_state )
MCFG_GFXDECODE(solomon)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(solomon)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sonson.c b/src/mame/drivers/sonson.c
index 877bae873f4..3dc6604d0ec 100644
--- a/src/mame/drivers/sonson.c
+++ b/src/mame/drivers/sonson.c
@@ -225,20 +225,18 @@ GFXDECODE_END
-static MACHINE_START( sonson )
+void sonson_state::machine_start()
{
- sonson_state *state = machine.driver_data<sonson_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_last_irq));
+ save_item(NAME(m_last_irq));
}
-static MACHINE_RESET( sonson )
+void sonson_state::machine_reset()
{
- sonson_state *state = machine.driver_data<sonson_state>();
- state->m_last_irq = 0;
+ m_last_irq = 0;
}
static MACHINE_CONFIG_START( sonson, sonson_state )
@@ -252,8 +250,6 @@ static MACHINE_CONFIG_START( sonson, sonson_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,4*60) /* FIRQs are triggered by the main CPU */
- MCFG_MACHINE_START(sonson)
- MCFG_MACHINE_RESET(sonson)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -265,8 +261,6 @@ static MACHINE_CONFIG_START( sonson, sonson_state )
MCFG_GFXDECODE(sonson)
MCFG_PALETTE_LENGTH(64*4+32*8)
- MCFG_PALETTE_INIT(sonson)
- MCFG_VIDEO_START(sonson)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sothello.c b/src/mame/drivers/sothello.c
index c7590f354f1..4fdb7d6eb2d 100644
--- a/src/mame/drivers/sothello.c
+++ b/src/mame/drivers/sothello.c
@@ -65,6 +65,7 @@ public:
DECLARE_WRITE8_MEMBER(subcpu_status_w);
DECLARE_READ8_MEMBER(subcpu_status_r);
DECLARE_WRITE8_MEMBER(msm_cfg_w);
+ virtual void machine_reset();
};
@@ -342,7 +343,7 @@ static const msm5205_interface msm_interface =
MSM5205_S48_4B /* changed on the fly */
};
-static MACHINE_RESET(sothello)
+void sothello_state::machine_reset()
{
}
@@ -377,7 +378,6 @@ static MACHINE_CONFIG_START( sothello, sothello_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_RESET(sothello)
MCFG_V9938_ADD("v9938", "screen", VDP_MEM)
MCFG_V99X8_INTERRUPT_CALLBACK_STATIC(sothello_vdp_interrupt)
diff --git a/src/mame/drivers/spacefb.c b/src/mame/drivers/spacefb.c
index d2eb3ffddae..f62c319d35f 100644
--- a/src/mame/drivers/spacefb.c
+++ b/src/mame/drivers/spacefb.c
@@ -165,9 +165,9 @@ static void start_interrupt_timer(running_machine &machine)
*
*************************************/
-static MACHINE_START( spacefb )
+void spacefb_state::machine_start()
{
- create_interrupt_timer(machine);
+ create_interrupt_timer(machine());
}
@@ -178,16 +178,15 @@ static MACHINE_START( spacefb )
*
*************************************/
-static MACHINE_RESET( spacefb )
+void spacefb_state::machine_reset()
{
- address_space *space = machine.device("maincpu")->memory().space(AS_IO);
- spacefb_state *state = machine.driver_data<spacefb_state>();
+ address_space *space = machine().device("maincpu")->memory().space(AS_IO);
/* the 3 output ports are cleared on reset */
- state->spacefb_port_0_w(*space, 0, 0);
- state->spacefb_port_1_w(*space, 0, 0);
- state->spacefb_port_2_w(*space, 0, 0);
+ spacefb_port_0_w(*space, 0, 0);
+ spacefb_port_1_w(*space, 0, 0);
+ spacefb_port_2_w(*space, 0, 0);
- start_interrupt_timer(machine);
+ start_interrupt_timer(machine());
}
@@ -341,11 +340,8 @@ static MACHINE_CONFIG_START( spacefb, spacefb_state )
MCFG_QUANTUM_TIME(attotime::from_hz(180))
- MCFG_MACHINE_START(spacefb)
- MCFG_MACHINE_RESET(spacefb)
/* video hardware */
- MCFG_VIDEO_START(spacefb)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(SPACEFB_PIXEL_CLOCK, SPACEFB_HTOTAL, SPACEFB_HBEND, SPACEFB_HBSTART, SPACEFB_VTOTAL, SPACEFB_VBEND, SPACEFB_VBSTART)
diff --git a/src/mame/drivers/spaceg.c b/src/mame/drivers/spaceg.c
index ec1fab4f4fe..e552ee114fa 100644
--- a/src/mame/drivers/spaceg.c
+++ b/src/mame/drivers/spaceg.c
@@ -189,6 +189,7 @@ public:
required_shared_ptr<UINT8> m_io9401;
DECLARE_WRITE8_MEMBER(zvideoram_w);
DECLARE_READ8_MEMBER(spaceg_colorram_r);
+ virtual void palette_init();
};
/*************************************
@@ -197,31 +198,31 @@ public:
*
*************************************/
-static PALETTE_INIT( spaceg )
+void spaceg_state::palette_init()
{
int i;
for (i = 0; i < 128; i++)
- palette_set_color (machine, i, MAKE_RGB(0x00,0x00,0x00));
+ palette_set_color (machine(), i, MAKE_RGB(0x00,0x00,0x00));
// proms are currently undumped...
- palette_set_color (machine, 0, MAKE_RGB(0x00,0x00,0x00)); //ok czarny
- palette_set_color (machine, 1, MAKE_RGB(0x7f,0x00,0x00));//???
- palette_set_color (machine, 2, MAKE_RGB(0xff,0xff,0xff)); //ok+ bialy
- palette_set_color (machine, 3, MAKE_RGB(0xff,0x00,0x00)); //ok j.czerw.
- palette_set_color (machine, 4, MAKE_RGB(0x3f,0x3f,0xff)); //ok j.niebieski
- palette_set_color (machine, 5, MAKE_RGB(0x3f,0xff,0x3f)); //ok j.zielony
- palette_set_color (machine, 6, MAKE_RGB(0xff,0xbf,0xbf)); //ok+ 'majtki'
- palette_set_color (machine, 7, MAKE_RGB(0xff,0xff,0x00)); //ok+ zolty
-
- palette_set_color (machine, 8, MAKE_RGB(0xff,0x7f,0x00)); //ok+ pomaranczowy
- palette_set_color (machine, 9, MAKE_RGB(0x3f,0xbf,0xff)); //ok j.niebieski (ciemniejszy od 13)
- palette_set_color (machine, 10, MAKE_RGB(0x3f,0xbf,0x3f)); //ok+ c.zielony
- palette_set_color (machine, 11, MAKE_RGB(0x00,0xff,0x00)); //ok j.zielony
- palette_set_color (machine, 12, MAKE_RGB(0x7f,0x00,0x00)); //ok brazowy (c.czerw)
- palette_set_color (machine, 13, MAKE_RGB(0x7f,0xbf,0xff)); //ok j.niebieski (jasniejszy od 9)
- palette_set_color (machine, 14, MAKE_RGB(0x00,0xff,0xff));//???
- palette_set_color (machine, 15, MAKE_RGB(0x7f,0x7f,0x7f));//???
+ palette_set_color (machine(), 0, MAKE_RGB(0x00,0x00,0x00)); //ok czarny
+ palette_set_color (machine(), 1, MAKE_RGB(0x7f,0x00,0x00));//???
+ palette_set_color (machine(), 2, MAKE_RGB(0xff,0xff,0xff)); //ok+ bialy
+ palette_set_color (machine(), 3, MAKE_RGB(0xff,0x00,0x00)); //ok j.czerw.
+ palette_set_color (machine(), 4, MAKE_RGB(0x3f,0x3f,0xff)); //ok j.niebieski
+ palette_set_color (machine(), 5, MAKE_RGB(0x3f,0xff,0x3f)); //ok j.zielony
+ palette_set_color (machine(), 6, MAKE_RGB(0xff,0xbf,0xbf)); //ok+ 'majtki'
+ palette_set_color (machine(), 7, MAKE_RGB(0xff,0xff,0x00)); //ok+ zolty
+
+ palette_set_color (machine(), 8, MAKE_RGB(0xff,0x7f,0x00)); //ok+ pomaranczowy
+ palette_set_color (machine(), 9, MAKE_RGB(0x3f,0xbf,0xff)); //ok j.niebieski (ciemniejszy od 13)
+ palette_set_color (machine(), 10, MAKE_RGB(0x3f,0xbf,0x3f)); //ok+ c.zielony
+ palette_set_color (machine(), 11, MAKE_RGB(0x00,0xff,0x00)); //ok j.zielony
+ palette_set_color (machine(), 12, MAKE_RGB(0x7f,0x00,0x00)); //ok brazowy (c.czerw)
+ palette_set_color (machine(), 13, MAKE_RGB(0x7f,0xbf,0xff)); //ok j.niebieski (jasniejszy od 9)
+ palette_set_color (machine(), 14, MAKE_RGB(0x00,0xff,0xff));//???
+ palette_set_color (machine(), 15, MAKE_RGB(0x7f,0x7f,0x7f));//???
}
WRITE8_MEMBER(spaceg_state::zvideoram_w)
@@ -438,7 +439,6 @@ static MACHINE_CONFIG_START( spaceg, spaceg_state )
MCFG_SCREEN_UPDATE_STATIC( spaceg )
MCFG_PALETTE_LENGTH(16+128-16)
- MCFG_PALETTE_INIT( spaceg )
/* sound hardware */
// MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/spbactn.c b/src/mame/drivers/spbactn.c
index 02242bdd6ea..a26ce57ff4b 100644
--- a/src/mame/drivers/spbactn.c
+++ b/src/mame/drivers/spbactn.c
@@ -365,7 +365,6 @@ static MACHINE_CONFIG_START( spbactn, spbactn_state )
MCFG_GFXDECODE(spbactn)
MCFG_PALETTE_LENGTH(0x2800/2)
- MCFG_VIDEO_START(spbactn)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/spcforce.c b/src/mame/drivers/spcforce.c
index 713e6953d0f..f2bec69e55b 100644
--- a/src/mame/drivers/spcforce.c
+++ b/src/mame/drivers/spcforce.c
@@ -229,7 +229,7 @@ static const int colortable_source[] =
0, 2, 3, 4, 5, 6, 7, 0
};
-static PALETTE_INIT( spcforce )
+void spcforce_state::palette_init()
{
int i;
@@ -238,7 +238,7 @@ static PALETTE_INIT( spcforce )
int data = colortable_source[i];
rgb_t color = MAKE_RGB(pal1bit(data >> 0), pal1bit(data >> 1), pal1bit(data >> 2));
- palette_set_color(machine, i, color);
+ palette_set_color(machine(), i, color);
}
}
@@ -284,7 +284,6 @@ static MACHINE_CONFIG_START( spcforce, spcforce_state )
MCFG_GFXDECODE(spcforce)
MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0]))
- MCFG_PALETTE_INIT(spcforce)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/spdodgeb.c b/src/mame/drivers/spdodgeb.c
index 2dbef55b425..cd2150ea31a 100644
--- a/src/mame/drivers/spdodgeb.c
+++ b/src/mame/drivers/spdodgeb.c
@@ -394,19 +394,18 @@ static const msm5205_interface msm5205_config =
};
-static MACHINE_RESET( spdodgeb )
+void spdodgeb_state::machine_reset()
{
- spdodgeb_state *state = machine.driver_data<spdodgeb_state>();
- state->m_toggle = 0;
- state->m_adpcm_pos[0] = state->m_adpcm_pos[1] = 0;
- state->m_adpcm_end[0] = state->m_adpcm_end[1] = 0;
- state->m_adpcm_idle[0] = state->m_adpcm_data[1] = 0;
- state->m_adpcm_data[0] = state->m_adpcm_data[1] = -1;
- state->m_mcu63701_command = 0;
- memset(state->m_inputs, 0, sizeof(state->m_inputs));
- memset(state->m_tapc, 0, sizeof(state->m_tapc));
- state->m_last_port[0] = state->m_last_port[1] = 0;
- state->m_last_dash[0] = state->m_last_dash[1] = 0;
+ m_toggle = 0;
+ m_adpcm_pos[0] = m_adpcm_pos[1] = 0;
+ m_adpcm_end[0] = m_adpcm_end[1] = 0;
+ m_adpcm_idle[0] = m_adpcm_data[1] = 0;
+ m_adpcm_data[0] = m_adpcm_data[1] = -1;
+ m_mcu63701_command = 0;
+ memset(m_inputs, 0, sizeof(m_inputs));
+ memset(m_tapc, 0, sizeof(m_tapc));
+ m_last_port[0] = m_last_port[1] = 0;
+ m_last_dash[0] = m_last_dash[1] = 0;
}
static MACHINE_CONFIG_START( spdodgeb, spdodgeb_state )
@@ -427,10 +426,7 @@ static MACHINE_CONFIG_START( spdodgeb, spdodgeb_state )
MCFG_GFXDECODE(spdodgeb)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(spdodgeb)
- MCFG_VIDEO_START(spdodgeb)
- MCFG_MACHINE_RESET( spdodgeb )
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/speedatk.c b/src/mame/drivers/speedatk.c
index 52dddd0aef5..4a593880048 100644
--- a/src/mame/drivers/speedatk.c
+++ b/src/mame/drivers/speedatk.c
@@ -341,9 +341,7 @@ static MACHINE_CONFIG_START( speedatk, speedatk_state )
MCFG_GFXDECODE(speedatk)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT(speedatk)
- MCFG_VIDEO_START(speedatk)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/speedbal.c b/src/mame/drivers/speedbal.c
index d6aac768f9c..af77aa567d3 100644
--- a/src/mame/drivers/speedbal.c
+++ b/src/mame/drivers/speedbal.c
@@ -243,7 +243,6 @@ static MACHINE_CONFIG_START( speedbal, speedbal_state )
MCFG_GFXDECODE(speedbal)
MCFG_PALETTE_LENGTH(768)
- MCFG_VIDEO_START(speedbal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/speedspn.c b/src/mame/drivers/speedspn.c
index 792878038bf..293a9636e25 100644
--- a/src/mame/drivers/speedspn.c
+++ b/src/mame/drivers/speedspn.c
@@ -289,7 +289,6 @@ static MACHINE_CONFIG_START( speedspn, speedspn_state )
MCFG_GFXDECODE(speedspn)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(speedspn)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/speglsht.c b/src/mame/drivers/speglsht.c
index e85dbcb06c9..33f64131653 100644
--- a/src/mame/drivers/speglsht.c
+++ b/src/mame/drivers/speglsht.c
@@ -131,6 +131,8 @@ public:
DECLARE_READ32_MEMBER(cop_r);
DECLARE_READ32_MEMBER(irq_ack_clear);
DECLARE_DRIVER_INIT(speglsht);
+ DECLARE_MACHINE_RESET(speglsht);
+ DECLARE_VIDEO_START(speglsht);
};
@@ -330,17 +332,15 @@ static const r3000_cpu_core r3000_config =
2048 /* data cache size */
};
-static MACHINE_RESET(speglsht)
+MACHINE_RESET_MEMBER(speglsht_state,speglsht)
{
- speglsht_state *state = machine.driver_data<speglsht_state>();
- memset(state->m_shared,0,0x1000);
+ memset(m_shared,0,0x1000);
}
-static VIDEO_START(speglsht)
+VIDEO_START_MEMBER(speglsht_state,speglsht)
{
- speglsht_state *state = machine.driver_data<speglsht_state>();
- state->m_bitmap = auto_bitmap_ind16_alloc(machine, 512, 5122 );
- VIDEO_START_CALL(st0016);
+ m_bitmap = auto_bitmap_ind16_alloc(machine(), 512, 5122 );
+ VIDEO_START_CALL_MEMBER(st0016);
}
#define PLOT_PIXEL_RGB(x,y,r,g,b) if(y>=0 && x>=0 && x<512 && y<512) \
@@ -399,7 +399,7 @@ static MACHINE_CONFIG_START( speglsht, speglsht_state )
MCFG_CPU_VBLANK_INT("screen", irq4_line_assert)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_RESET(speglsht)
+ MCFG_MACHINE_RESET_OVERRIDE(speglsht_state,speglsht)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -412,7 +412,7 @@ static MACHINE_CONFIG_START( speglsht, speglsht_state )
MCFG_GFXDECODE(speglsht)
MCFG_PALETTE_LENGTH(16*16*4+1)
- MCFG_VIDEO_START(speglsht)
+ MCFG_VIDEO_START_OVERRIDE(speglsht_state,speglsht)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/spiders.c b/src/mame/drivers/spiders.c
index a93d0f849e2..0cc40425242 100644
--- a/src/mame/drivers/spiders.c
+++ b/src/mame/drivers/spiders.c
@@ -398,15 +398,14 @@ static const ttl74123_interface ic60_intf =
*
*************************************/
-static MACHINE_START( spiders )
+void spiders_state::machine_start()
{
- spiders_state *state = machine.driver_data<spiders_state>();
/* setup for save states */
- state_save_register_global(machine, state->m_flipscreen);
- state_save_register_global(machine, state->m_gfx_rom_address);
- state_save_register_global(machine, state->m_gfx_rom_ctrl_mode);
- state_save_register_global(machine, state->m_gfx_rom_ctrl_latch);
- state_save_register_global(machine, state->m_gfx_rom_ctrl_data);
+ state_save_register_global(machine(), m_flipscreen);
+ state_save_register_global(machine(), m_gfx_rom_address);
+ state_save_register_global(machine(), m_gfx_rom_ctrl_mode);
+ state_save_register_global(machine(), m_gfx_rom_ctrl_latch);
+ state_save_register_global(machine(), m_gfx_rom_ctrl_data);
}
@@ -698,7 +697,6 @@ static MACHINE_CONFIG_START( spiders, spiders_state )
MCFG_CPU_ADD("audiocpu", M6802, 3000000)
MCFG_CPU_PROGRAM_MAP(spiders_audio_map)
- MCFG_MACHINE_START(spiders)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
diff --git a/src/mame/drivers/splash.c b/src/mame/drivers/splash.c
index 95630f22204..9b03ef68d6d 100644
--- a/src/mame/drivers/splash.c
+++ b/src/mame/drivers/splash.c
@@ -291,12 +291,11 @@ static ADDRESS_MAP_START( funystrp_sound_io_map, AS_IO, 8, splash_state )
AM_RANGE(0x07, 0x07) AM_WRITE(msm2_interrupt_w)
ADDRESS_MAP_END
-static MACHINE_RESET( funystrp )
+MACHINE_RESET_MEMBER(splash_state,funystrp)
{
- splash_state *state = machine.driver_data<splash_state>();
- state->m_adpcm_data = 0;
- state->m_ret = 0x100;
+ m_adpcm_data = 0;
+ m_ret = 0x100;
}
@@ -485,12 +484,11 @@ static const msm5205_interface splash_msm5205_interface =
MSM5205_S48_4B /* 8KHz */
};
-static MACHINE_RESET( splash )
+MACHINE_RESET_MEMBER(splash_state,splash)
{
- splash_state *state = machine.driver_data<splash_state>();
- state->m_adpcm_data = 0;
- state->m_ret = 0x100;
+ m_adpcm_data = 0;
+ m_ret = 0x100;
}
static MACHINE_CONFIG_START( splash, splash_state )
@@ -515,9 +513,8 @@ static MACHINE_CONFIG_START( splash, splash_state )
MCFG_GFXDECODE(splash)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(splash)
- MCFG_MACHINE_RESET( splash )
+ MCFG_MACHINE_RESET_OVERRIDE(splash_state, splash )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -573,9 +570,8 @@ static MACHINE_CONFIG_START( roldfrog, splash_state )
MCFG_GFXDECODE(splash)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(splash)
- MCFG_MACHINE_RESET( splash )
+ MCFG_MACHINE_RESET_OVERRIDE(splash_state, splash )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -654,9 +650,8 @@ static MACHINE_CONFIG_START( funystrp, splash_state )
MCFG_GFXDECODE(splash)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(splash)
- MCFG_MACHINE_RESET( funystrp )
+ MCFG_MACHINE_RESET_OVERRIDE(splash_state, funystrp )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/spoker.c b/src/mame/drivers/spoker.c
index 63e79c241f1..18562595628 100644
--- a/src/mame/drivers/spoker.c
+++ b/src/mame/drivers/spoker.c
@@ -56,6 +56,8 @@ public:
DECLARE_DRIVER_INIT(3super8);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
};
WRITE8_MEMBER(spoker_state::bg_tile_w)
@@ -91,13 +93,12 @@ WRITE8_MEMBER(spoker_state::fg_color_w)
m_fg_tilemap->mark_tile_dirty(offset);
}
-static VIDEO_START(spoker)
+void spoker_state::video_start()
{
- spoker_state *state = machine.driver_data<spoker_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(spoker_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 128, 8);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(spoker_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(spoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 128, 8);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(spoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
+ m_fg_tilemap->set_transparent_pen(0);
}
static SCREEN_UPDATE_IND16(spoker)
@@ -510,13 +511,12 @@ GFXDECODE_END
Machine Drivers
***************************************************************************/
-static MACHINE_RESET( spoker )
+void spoker_state::machine_reset()
{
- spoker_state *state = machine.driver_data<spoker_state>();
- state->m_nmi_ack = 0;
- state->m_hopper = 0;
- state->m_video_enable = 1;
+ m_nmi_ack = 0;
+ m_hopper = 0;
+ m_video_enable = 1;
}
static INTERRUPT_GEN( spoker_interrupt )
@@ -534,7 +534,6 @@ static MACHINE_CONFIG_START( spoker, spoker_state )
MCFG_CPU_IO_MAP(spoker_portmap)
MCFG_CPU_VBLANK_INT("screen",spoker_interrupt)
- MCFG_MACHINE_RESET(spoker)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -549,7 +548,6 @@ static MACHINE_CONFIG_START( spoker, spoker_state )
MCFG_GFXDECODE(spoker)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(spoker)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/spool99.c b/src/mame/drivers/spool99.c
index d67355618a3..ea130b61147 100644
--- a/src/mame/drivers/spool99.c
+++ b/src/mame/drivers/spool99.c
@@ -116,6 +116,7 @@ public:
DECLARE_WRITE8_MEMBER(eeprom_dataline_w);
DECLARE_DRIVER_INIT(spool99);
TILE_GET_INFO_MEMBER(get_spool99_tile_info);
+ virtual void video_start();
};
TILE_GET_INFO_MEMBER(spool99_state::get_spool99_tile_info)
@@ -130,11 +131,10 @@ TILE_GET_INFO_MEMBER(spool99_state::get_spool99_tile_info)
0);
}
-static VIDEO_START(spool99)
+void spool99_state::video_start()
{
- spool99_state *state = machine.driver_data<spool99_state>();
- state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(spool99_state::get_spool99_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_sc0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(spool99_state::get_spool99_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
static SCREEN_UPDATE_IND16(spool99)
@@ -367,7 +367,6 @@ static MACHINE_CONFIG_START( spool99, spool99_state )
MCFG_EEPROM_93C46_ADD("eeprom")
- MCFG_VIDEO_START(spool99)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/sprcros2.c b/src/mame/drivers/sprcros2.c
index cd79f01b2c4..945007ca35b 100644
--- a/src/mame/drivers/sprcros2.c
+++ b/src/mame/drivers/sprcros2.c
@@ -270,12 +270,11 @@ static INTERRUPT_GEN( sprcros2_s_interrupt )
device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
-static MACHINE_START( sprcros2 )
+void sprcros2_state::machine_start()
{
- sprcros2_state *state = machine.driver_data<sprcros2_state>();
- state->save_item(NAME(state->m_port7));
- state->save_item(NAME(state->m_s_port3));
+ save_item(NAME(m_port7));
+ save_item(NAME(m_s_port3));
}
static MACHINE_CONFIG_START( sprcros2, sprcros2_state )
@@ -291,7 +290,6 @@ static MACHINE_CONFIG_START( sprcros2, sprcros2_state )
MCFG_CPU_IO_MAP(sprcros2_slave_io_map)
MCFG_CPU_PERIODIC_INT(sprcros2_s_interrupt,2*60) //2 nmis
- MCFG_MACHINE_START(sprcros2)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -304,8 +302,6 @@ static MACHINE_CONFIG_START( sprcros2, sprcros2_state )
MCFG_GFXDECODE(sprcros2)
MCFG_PALETTE_LENGTH(768)
- MCFG_PALETTE_INIT(sprcros2)
- MCFG_VIDEO_START(sprcros2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c
index 6d2532ef065..24d9c8c2019 100644
--- a/src/mame/drivers/sprint2.c
+++ b/src/mame/drivers/sprint2.c
@@ -512,8 +512,6 @@ static MACHINE_CONFIG_START( sprint2, sprint2_state )
MCFG_GFXDECODE(sprint2)
MCFG_PALETTE_LENGTH(12)
- MCFG_PALETTE_INIT(sprint2)
- MCFG_VIDEO_START(sprint2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c
index 68b7f11ed26..9e6dc99a7c2 100644
--- a/src/mame/drivers/sprint4.c
+++ b/src/mame/drivers/sprint4.c
@@ -108,20 +108,19 @@ static TIMER_CALLBACK( nmi_callback )
}
-static MACHINE_RESET( sprint4 )
+void sprint4_state::machine_reset()
{
- sprint4_state *state = machine.driver_data<sprint4_state>();
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(32), FUNC(nmi_callback), 32);
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(32), FUNC(nmi_callback), 32);
- memset(state->m_steer_FF1, 0, sizeof state->m_steer_FF1);
- memset(state->m_steer_FF2, 0, sizeof state->m_steer_FF2);
+ memset(m_steer_FF1, 0, sizeof m_steer_FF1);
+ memset(m_steer_FF2, 0, sizeof m_steer_FF2);
- state->m_gear[0] = 1;
- state->m_gear[1] = 1;
- state->m_gear[2] = 1;
- state->m_gear[3] = 1;
+ m_gear[0] = 1;
+ m_gear[1] = 1;
+ m_gear[2] = 1;
+ m_gear[3] = 1;
- state->m_da_latch = 0;
+ m_da_latch = 0;
}
@@ -401,7 +400,6 @@ static MACHINE_CONFIG_START( sprint4, sprint4_state )
MCFG_CPU_PROGRAM_MAP(sprint4_cpu_map)
MCFG_WATCHDOG_VBLANK_INIT(8)
- MCFG_MACHINE_RESET(sprint4)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -412,8 +410,6 @@ static MACHINE_CONFIG_START( sprint4, sprint4_state )
MCFG_GFXDECODE(sprint4)
MCFG_PALETTE_LENGTH(10)
- MCFG_PALETTE_INIT(sprint4)
- MCFG_VIDEO_START(sprint4)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/sprint8.c b/src/mame/drivers/sprint8.c
index 84b4598050a..81ad80c662b 100644
--- a/src/mame/drivers/sprint8.c
+++ b/src/mame/drivers/sprint8.c
@@ -52,11 +52,10 @@ static TIMER_DEVICE_CALLBACK( input_callback )
}
-static MACHINE_RESET( sprint8 )
+void sprint8_state::machine_reset()
{
- sprint8_state *state = machine.driver_data<sprint8_state>();
- state->m_collision_reset = 0;
- state->m_collision_index = 0;
+ m_collision_reset = 0;
+ m_collision_index = 0;
}
@@ -456,7 +455,6 @@ static MACHINE_CONFIG_START( sprint8, sprint8_state )
MCFG_CPU_ADD("maincpu", M6800, 11055000 / 11) /* ? */
MCFG_CPU_PROGRAM_MAP(sprint8_map)
- MCFG_MACHINE_RESET(sprint8)
MCFG_TIMER_ADD_PERIODIC("input_timer", input_callback, attotime::from_hz(60))
@@ -471,8 +469,6 @@ static MACHINE_CONFIG_START( sprint8, sprint8_state )
MCFG_GFXDECODE(sprint8)
MCFG_PALETTE_LENGTH(36)
- MCFG_PALETTE_INIT(sprint8)
- MCFG_VIDEO_START(sprint8)
/* sound hardware */
diff --git a/src/mame/drivers/spy.c b/src/mame/drivers/spy.c
index b67bde7472f..e06eacefb0c 100644
--- a/src/mame/drivers/spy.c
+++ b/src/mame/drivers/spy.c
@@ -495,38 +495,36 @@ static const k051960_interface spy_k051960_intf =
spy_sprite_callback
};
-static MACHINE_START( spy )
+void spy_state::machine_start()
{
- spy_state *state = machine.driver_data<spy_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x2000);
+ membank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x2000);
- state->m_generic_paletteram_8.allocate(0x800);
- memset(state->m_pmcram, 0, sizeof(state->m_pmcram));
+ m_generic_paletteram_8.allocate(0x800);
+ memset(m_pmcram, 0, sizeof(m_pmcram));
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k052109 = machine.device("k052109");
- state->m_k051960 = machine.device("k051960");
- state->m_k007232_1 = machine.device("k007232_1");
- state->m_k007232_2 = machine.device("k007232_2");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k052109 = machine().device("k052109");
+ m_k051960 = machine().device("k051960");
+ m_k007232_1 = machine().device("k007232_1");
+ m_k007232_2 = machine().device("k007232_2");
- state->save_item(NAME(state->m_rambank));
- state->save_item(NAME(state->m_pmcbank));
- state->save_item(NAME(state->m_video_enable));
- state->save_item(NAME(state->m_old_3f90));
- state->save_item(NAME(state->m_pmcram));
+ save_item(NAME(m_rambank));
+ save_item(NAME(m_pmcbank));
+ save_item(NAME(m_video_enable));
+ save_item(NAME(m_old_3f90));
+ save_item(NAME(m_pmcram));
}
-static MACHINE_RESET( spy )
+void spy_state::machine_reset()
{
- spy_state *state = machine.driver_data<spy_state>();
- state->m_rambank = 0;
- state->m_pmcbank = 0;
- state->m_video_enable = 0;
- state->m_old_3f90 = -1;
+ m_rambank = 0;
+ m_pmcbank = 0;
+ m_video_enable = 0;
+ m_old_3f90 = -1;
}
static MACHINE_CONFIG_START( spy, spy_state )
@@ -540,8 +538,6 @@ static MACHINE_CONFIG_START( spy, spy_state )
MCFG_CPU_PROGRAM_MAP(spy_sound_map)
/* nmi by the sound chip */
- MCFG_MACHINE_START(spy)
- MCFG_MACHINE_RESET(spy)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -555,7 +551,6 @@ static MACHINE_CONFIG_START( spy, spy_state )
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(spy)
MCFG_K052109_ADD("k052109", spy_k052109_intf)
MCFG_K051960_ADD("k051960", spy_k051960_intf)
diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c
index e3e79a0a5b2..5d9dd7b5786 100644
--- a/src/mame/drivers/srmp2.c
+++ b/src/mame/drivers/srmp2.c
@@ -70,10 +70,9 @@ Note:
***************************************************************************/
-static MACHINE_START( srmp2 )
+MACHINE_START_MEMBER(srmp2_state,srmp2)
{
- srmp2_state *state = machine.driver_data<srmp2_state>();
- iox_t &iox = state->m_iox;
+ iox_t &iox = m_iox;
iox.reset = 0x1f;
iox.ff_event = -1;
@@ -85,10 +84,9 @@ static MACHINE_START( srmp2 )
iox.protcheck[3] = -1; iox.protlatch[3] = -1;
}
-static MACHINE_START( srmp3 )
+MACHINE_START_MEMBER(srmp2_state,srmp3)
{
- srmp2_state *state = machine.driver_data<srmp2_state>();
- iox_t &iox = state->m_iox;
+ iox_t &iox = m_iox;
iox.reset = 0xc8;
iox.ff_event = 0xef;
@@ -99,10 +97,9 @@ static MACHINE_START( srmp3 )
iox.protcheck[3] = 0x45; iox.protlatch[3] = 0x00;
}
-static MACHINE_START( rmgoldyh )
+MACHINE_START_MEMBER(srmp2_state,rmgoldyh)
{
- srmp2_state *state = machine.driver_data<srmp2_state>();
- iox_t &iox = state->m_iox;
+ iox_t &iox = m_iox;
iox.reset = 0xc8;
iox.ff_event = 0xff;
@@ -1171,7 +1168,7 @@ static MACHINE_CONFIG_START( srmp2, srmp2_state )
MCFG_CPU_VBLANK_INT("screen",irq4_line_assert)
MCFG_CPU_PERIODIC_INT(irq2_line_assert,15*60) /* Interrupt times is not understood */
- MCFG_MACHINE_START(srmp2)
+ MCFG_MACHINE_START_OVERRIDE(srmp2_state,srmp2)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -1187,7 +1184,7 @@ static MACHINE_CONFIG_START( srmp2, srmp2_state )
MCFG_GFXDECODE(srmp2)
MCFG_PALETTE_LENGTH(1024) /* sprites only */
- MCFG_PALETTE_INIT(srmp2)
+ MCFG_PALETTE_INIT_OVERRIDE(srmp2_state,srmp2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1212,7 +1209,7 @@ static MACHINE_CONFIG_START( srmp3, srmp2_state )
MCFG_CPU_IO_MAP(srmp3_io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_assert)
- MCFG_MACHINE_START(srmp3)
+ MCFG_MACHINE_START_OVERRIDE(srmp2_state,srmp3)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -1228,7 +1225,7 @@ static MACHINE_CONFIG_START( srmp3, srmp2_state )
MCFG_GFXDECODE(srmp3)
MCFG_PALETTE_LENGTH(512) /* sprites only */
- MCFG_PALETTE_INIT(srmp3)
+ MCFG_PALETTE_INIT_OVERRIDE(srmp2_state,srmp3)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1248,7 +1245,7 @@ static MACHINE_CONFIG_DERIVED( rmgoldyh, srmp3 )
MCFG_CPU_PROGRAM_MAP(rmgoldyh_map)
MCFG_CPU_IO_MAP(rmgoldyh_io_map)
- MCFG_MACHINE_START(rmgoldyh)
+ MCFG_MACHINE_START_OVERRIDE(srmp2_state,rmgoldyh)
MCFG_GFXDECODE(rmgoldyh)
MACHINE_CONFIG_END
@@ -1261,7 +1258,7 @@ static MACHINE_CONFIG_START( mjyuugi, srmp2_state )
MCFG_CPU_VBLANK_INT("screen",irq4_line_assert)
MCFG_CPU_PERIODIC_INT(irq2_line_assert,15*60) /* Interrupt times is not understood */
- MCFG_MACHINE_START(srmp2)
+ MCFG_MACHINE_START_OVERRIDE(srmp2_state,srmp2)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/srmp5.c b/src/mame/drivers/srmp5.c
index b004c92c97b..86e53487180 100644
--- a/src/mame/drivers/srmp5.c
+++ b/src/mame/drivers/srmp5.c
@@ -579,7 +579,7 @@ static MACHINE_CONFIG_START( srmp5, srmp5_state )
#ifdef DEBUG_CHAR
MCFG_GFXDECODE( srmp5 )
#endif
- MCFG_VIDEO_START(st0016)
+ MCFG_VIDEO_START_OVERRIDE(st0016_state,st0016)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/srmp6.c b/src/mame/drivers/srmp6.c
index e489f8ae563..4de22ae59f4 100644
--- a/src/mame/drivers/srmp6.c
+++ b/src/mame/drivers/srmp6.c
@@ -104,6 +104,7 @@ public:
DECLARE_WRITE16_MEMBER(paletteram_w);
DECLARE_READ16_MEMBER(srmp6_irq_ack_r);
DECLARE_DRIVER_INIT(INIT);
+ virtual void video_start();
};
#define VERBOSE 0
@@ -153,19 +154,18 @@ static void update_palette(running_machine &machine)
}
}
-static VIDEO_START(srmp6)
+void srmp6_state::video_start()
{
- srmp6_state *state = machine.driver_data<srmp6_state>();
- state->m_tileram = auto_alloc_array_clear(machine, UINT16, 0x100000*16/2);
- state->m_dmaram.allocate(0x100/2);
- state->m_sprram_old = auto_alloc_array_clear(machine, UINT16, 0x80000/2);
+ m_tileram = auto_alloc_array_clear(machine(), UINT16, 0x100000*16/2);
+ m_dmaram.allocate(0x100/2);
+ m_sprram_old = auto_alloc_array_clear(machine(), UINT16, 0x80000/2);
/* create the char set (gfx will then be updated dynamically from RAM) */
- machine.gfx[0] = auto_alloc(machine, gfx_element(machine, tiles8x8_layout, (UINT8*)state->m_tileram, machine.total_colors() / 256, 0));
- machine.gfx[0]->set_granularity(256);
+ machine().gfx[0] = auto_alloc(machine(), gfx_element(machine(), tiles8x8_layout, (UINT8*)m_tileram, machine().total_colors() / 256, 0));
+ machine().gfx[0]->set_granularity(256);
- state->m_brightness = 0x60;
+ m_brightness = 0x60;
}
#if 0
@@ -685,7 +685,6 @@ static MACHINE_CONFIG_START( srmp6, srmp6_state )
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(srmp6)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/srumbler.c b/src/mame/drivers/srumbler.c
index 5e2141aa0c0..716f524eafd 100644
--- a/src/mame/drivers/srumbler.c
+++ b/src/mame/drivers/srumbler.c
@@ -43,12 +43,11 @@ WRITE8_MEMBER(srumbler_state::srumbler_bankswitch_w)
}
}
-static MACHINE_START( srumbler )
+void srumbler_state::machine_start()
{
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
/* initialize banked ROM pointers */
- srumbler_state *state = machine.driver_data<srumbler_state>();
- state->srumbler_bankswitch_w(*space,0,0);
+ srumbler_bankswitch_w(*space,0,0);
}
static TIMER_DEVICE_CALLBACK( srumbler_interrupt )
@@ -246,7 +245,6 @@ static MACHINE_CONFIG_START( srumbler, srumbler_state )
MCFG_CPU_PROGRAM_MAP(srumbler_sound_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,4*60)
- MCFG_MACHINE_START(srumbler)
/* video hardware */
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
@@ -262,7 +260,6 @@ static MACHINE_CONFIG_START( srumbler, srumbler_state )
MCFG_GFXDECODE(srumbler)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(srumbler)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ssfindo.c b/src/mame/drivers/ssfindo.c
index f868e0d28b0..c65f8acc035 100644
--- a/src/mame/drivers/ssfindo.c
+++ b/src/mame/drivers/ssfindo.c
@@ -245,6 +245,7 @@ public:
DECLARE_DRIVER_INIT(ssfindo);
DECLARE_DRIVER_INIT(ppcar);
DECLARE_DRIVER_INIT(tetfight);
+ virtual void machine_reset();
};
@@ -610,9 +611,9 @@ static ADDRESS_MAP_START( tetfight_map, AS_PROGRAM, 32, ssfindo_state )
AM_RANGE(0x10000000, 0x14ffffff) AM_RAM AM_SHARE("vram")
ADDRESS_MAP_END
-static MACHINE_RESET( ssfindo )
+void ssfindo_state::machine_reset()
{
- PS7500_reset(machine);
+ PS7500_reset(machine());
}
static INPUT_PORTS_START( ssfindo )
@@ -757,7 +758,6 @@ static MACHINE_CONFIG_START( ssfindo, ssfindo_state )
MCFG_CPU_PROGRAM_MAP(ssfindo_map)
MCFG_CPU_VBLANK_INT("screen", ssfindo_interrupt)
- MCFG_MACHINE_RESET(ssfindo)
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/sshangha.c b/src/mame/drivers/sshangha.c
index 7cbdfc2d686..3091e19dcd0 100644
--- a/src/mame/drivers/sshangha.c
+++ b/src/mame/drivers/sshangha.c
@@ -109,7 +109,7 @@ READ16_MEMBER(sshangha_state::deco_71_r)
/******************************************************************************/
-static MACHINE_RESET( sshangha )
+void sshangha_state::machine_reset()
{
}
@@ -402,7 +402,6 @@ static MACHINE_CONFIG_START( sshangha, sshangha_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_RESET(sshangha) /* init machine */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -423,7 +422,6 @@ static MACHINE_CONFIG_START( sshangha, sshangha_state )
decospr_device::set_gfx_region(*device, 2);
- MCFG_VIDEO_START(sshangha)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") /* sure it's stereo? */
diff --git a/src/mame/drivers/sshot.c b/src/mame/drivers/sshot.c
index 8ced29b4f35..fe78f4720e6 100644
--- a/src/mame/drivers/sshot.c
+++ b/src/mame/drivers/sshot.c
@@ -172,6 +172,8 @@ public:
DECLARE_WRITE8_MEMBER(supershot_output0_w);
DECLARE_WRITE8_MEMBER(supershot_output1_w);
TILE_GET_INFO_MEMBER(get_supershot_text_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
/*************************************
@@ -187,10 +189,9 @@ TILE_GET_INFO_MEMBER(supershot_state::get_supershot_text_tile_info)
SET_TILE_INFO_MEMBER(0, code, 0, 0);
}
-static VIDEO_START( supershot )
+void supershot_state::video_start()
{
- supershot_state *state = machine.driver_data<supershot_state>();
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supershot_state::get_supershot_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(supershot_state::get_supershot_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
static SCREEN_UPDATE_IND16( supershot )
@@ -320,10 +321,10 @@ static GFXDECODE_START( supershot )
GFXDECODE_ENTRY( "gfx", 0, supershot_charlayout, 0, 1 )
GFXDECODE_END
-static PALETTE_INIT( supershot )
+void supershot_state::palette_init()
{
- palette_set_color(machine,0,RGB_BLACK); /* black */
- palette_set_color(machine,1,RGB_WHITE); /* white */
+ palette_set_color(machine(),0,RGB_BLACK); /* black */
+ palette_set_color(machine(),1,RGB_WHITE); /* white */
}
static MACHINE_CONFIG_START( supershot, supershot_state )
@@ -339,12 +340,10 @@ static MACHINE_CONFIG_START( supershot, supershot_state )
MCFG_SCREEN_SIZE((32)*8, (32)*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_VIDEO_START(supershot)
MCFG_SCREEN_UPDATE_STATIC(supershot)
MCFG_GFXDECODE(supershot)
MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT(supershot)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ssingles.c b/src/mame/drivers/ssingles.c
index f3b261d95a5..7adb48c7350 100644
--- a/src/mame/drivers/ssingles.c
+++ b/src/mame/drivers/ssingles.c
@@ -172,6 +172,7 @@ public:
DECLARE_WRITE8_MEMBER(atamanot_prot_w);
DECLARE_CUSTOM_INPUT_MEMBER(controls_r);
DECLARE_DRIVER_INIT(ssingles);
+ virtual void video_start();
};
//fake palette
@@ -307,15 +308,14 @@ WRITE8_MEMBER(ssingles_state::ssingles_colorram_w)
}
-static VIDEO_START(ssingles)
+void ssingles_state::video_start()
{
- ssingles_state *state = machine.driver_data<ssingles_state>();
{
int i;
for(i=0;i<NUM_PENS;++i)
{
- state->m_pens[i]=MAKE_RGB(ssingles_colors[3*i], ssingles_colors[3*i+1], ssingles_colors[3*i+2]);
+ m_pens[i]=MAKE_RGB(ssingles_colors[3*i], ssingles_colors[3*i+1], ssingles_colors[3*i+2]);
}
}
}
@@ -578,7 +578,6 @@ static MACHINE_CONFIG_START( ssingles, ssingles_state )
MCFG_GFXDECODE(ssingles)
- MCFG_VIDEO_START(ssingles)
MCFG_MC6845_ADD("crtc", MC6845, 1000000 /* ? MHz */, ssingles_mc6845_intf)
diff --git a/src/mame/drivers/sslam.c b/src/mame/drivers/sslam.c
index cb741c67cba..4028a9ab7aa 100644
--- a/src/mame/drivers/sslam.c
+++ b/src/mame/drivers/sslam.c
@@ -723,7 +723,7 @@ static MACHINE_CONFIG_START( sslam, sslam_state )
MCFG_GFXDECODE(sslam)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(sslam)
+ MCFG_VIDEO_START_OVERRIDE(sslam_state,sslam)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -753,7 +753,7 @@ static MACHINE_CONFIG_START( powerbls, sslam_state )
MCFG_GFXDECODE(powerbls)
MCFG_PALETTE_LENGTH(0x200)
- MCFG_VIDEO_START(powerbls)
+ MCFG_VIDEO_START_OVERRIDE(sslam_state,powerbls)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ssozumo.c b/src/mame/drivers/ssozumo.c
index 9e28fb4225e..32ef4ff0931 100644
--- a/src/mame/drivers/ssozumo.c
+++ b/src/mame/drivers/ssozumo.c
@@ -210,8 +210,6 @@ static MACHINE_CONFIG_START( ssozumo, ssozumo_state )
MCFG_GFXDECODE(ssozumo)
MCFG_PALETTE_LENGTH(64 + 16)
- MCFG_PALETTE_INIT(ssozumo)
- MCFG_VIDEO_START(ssozumo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sspeedr.c b/src/mame/drivers/sspeedr.c
index af43648dce0..ad634b25afc 100644
--- a/src/mame/drivers/sspeedr.c
+++ b/src/mame/drivers/sspeedr.c
@@ -11,7 +11,7 @@ Taito Super Speed Race driver
-static PALETTE_INIT( sspeedr )
+void sspeedr_state::palette_init()
{
int i;
@@ -28,7 +28,7 @@ static PALETTE_INIT( sspeedr )
b += 0x4f;
}
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -204,8 +204,6 @@ static MACHINE_CONFIG_START( sspeedr, sspeedr_state )
MCFG_GFXDECODE(sspeedr)
MCFG_PALETTE_LENGTH(16)
- MCFG_PALETTE_INIT(sspeedr)
- MCFG_VIDEO_START(sspeedr)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ssrj.c b/src/mame/drivers/ssrj.c
index b57e5fb1368..b1a9b9de83d 100644
--- a/src/mame/drivers/ssrj.c
+++ b/src/mame/drivers/ssrj.c
@@ -34,13 +34,12 @@ HW info :
#include "sound/ay8910.h"
#include "includes/ssrj.h"
-static MACHINE_RESET(ssrj)
+void ssrj_state::machine_reset()
{
- ssrj_state *state = machine.driver_data<ssrj_state>();
- UINT8 *rom = state->memregion("maincpu")->base();
+ UINT8 *rom = memregion("maincpu")->base();
memset(&rom[0xc000], 0 ,0x3fff); /* req for some control types */
- state->m_oldport = 0x80;
+ m_oldport = 0x80;
}
READ8_MEMBER(ssrj_state::ssrj_wheel_r)
@@ -158,11 +157,8 @@ static MACHINE_CONFIG_START( ssrj, ssrj_state )
MCFG_GFXDECODE(ssrj)
MCFG_PALETTE_LENGTH(128)
- MCFG_PALETTE_INIT(ssrj)
- MCFG_VIDEO_START(ssrj)
- MCFG_MACHINE_RESET(ssrj)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c
index 7234105d4b7..00dc16110d5 100644
--- a/src/mame/drivers/ssv.c
+++ b/src/mame/drivers/ssv.c
@@ -321,12 +321,11 @@ WRITE16_MEMBER(ssv_state::ssv_lockout_inv_w)
}
}
-static MACHINE_RESET( ssv )
+void ssv_state::machine_reset()
{
- ssv_state *state = machine.driver_data<ssv_state>();
- state->m_requested_int = 0;
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(ssv_irq_callback);
- state->membank("bank1")->set_base(state->memregion("user1")->base());
+ m_requested_int = 0;
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(ssv_irq_callback);
+ membank("bank1")->set_base(memregion("user1")->base());
}
@@ -2605,7 +2604,6 @@ static MACHINE_CONFIG_START( ssv, ssv_state )
MCFG_CPU_ADD("maincpu", V60, 16000000) /* Based on STA-0001 & STA-0001B System boards */
MCFG_TIMER_ADD_SCANLINE("scantimer", ssv_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(ssv)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2616,7 +2614,6 @@ static MACHINE_CONFIG_START( ssv, ssv_state )
MCFG_GFXDECODE(ssv)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_VIDEO_START(ssv)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2666,7 +2663,7 @@ static MACHINE_CONFIG_DERIVED( gdfs, ssv )
MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0)
MCFG_GFXDECODE(gdfs)
- MCFG_VIDEO_START(gdfs)
+ MCFG_VIDEO_START_OVERRIDE(ssv_state,gdfs)
MACHINE_CONFIG_END
@@ -2844,7 +2841,7 @@ static MACHINE_CONFIG_DERIVED( eaglshot, ssv )
MCFG_SCREEN_UPDATE_STATIC(eaglshot)
MCFG_GFXDECODE(eaglshot)
- MCFG_VIDEO_START(eaglshot)
+ MCFG_VIDEO_START_OVERRIDE(ssv_state,eaglshot)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/st0016.c b/src/mame/drivers/st0016.c
index 902194651fd..b174b7bcac1 100644
--- a/src/mame/drivers/st0016.c
+++ b/src/mame/drivers/st0016.c
@@ -459,7 +459,7 @@ static MACHINE_CONFIG_START( st0016, st0016_state )
MCFG_GFXDECODE(st0016)
MCFG_PALETTE_LENGTH(16*16*4+1)
- MCFG_VIDEO_START(st0016)
+ MCFG_VIDEO_START_OVERRIDE(st0016_state,st0016)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/stactics.c b/src/mame/drivers/stactics.c
index a7275346712..fe75ab4bee5 100644
--- a/src/mame/drivers/stactics.c
+++ b/src/mame/drivers/stactics.c
@@ -282,13 +282,12 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_START( stactics )
+void stactics_state::machine_start()
{
- stactics_state *state = machine.driver_data<stactics_state>();
- state->m_vert_pos = 0;
- state->m_horiz_pos = 0;
- *state->m_motor_on = 0;
+ m_vert_pos = 0;
+ m_horiz_pos = 0;
+ *m_motor_on = 0;
}
@@ -306,7 +305,6 @@ static MACHINE_CONFIG_START( stactics, stactics_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", stactics_interrupt)
- MCFG_MACHINE_START(stactics)
/* video hardware */
MCFG_FRAGMENT_ADD(stactics_video)
diff --git a/src/mame/drivers/stadhero.c b/src/mame/drivers/stadhero.c
index 00c36c34291..f24e0e3921e 100644
--- a/src/mame/drivers/stadhero.c
+++ b/src/mame/drivers/stadhero.c
@@ -251,7 +251,6 @@ static MACHINE_CONFIG_START( stadhero, stadhero_state )
MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
deco_mxc06_device::set_gfx_region(*device, 2);
- MCFG_VIDEO_START(stadhero)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/starcrus.c b/src/mame/drivers/starcrus.c
index f8d9766c8e9..059e1a5111b 100644
--- a/src/mame/drivers/starcrus.c
+++ b/src/mame/drivers/starcrus.c
@@ -153,8 +153,6 @@ static MACHINE_CONFIG_START( starcrus, starcrus_state )
MCFG_GFXDECODE(starcrus)
MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT(black_and_white)
- MCFG_VIDEO_START(starcrus)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/starfire.c b/src/mame/drivers/starfire.c
index 3ff56aa3288..f0499e632be 100644
--- a/src/mame/drivers/starfire.c
+++ b/src/mame/drivers/starfire.c
@@ -270,7 +270,6 @@ static MACHINE_CONFIG_START( starfire, starfire_state )
MCFG_SCREEN_RAW_PARAMS(STARFIRE_PIXEL_CLOCK, STARFIRE_HTOTAL, STARFIRE_HBEND, STARFIRE_HBSTART, STARFIRE_VTOTAL, STARFIRE_VBEND, STARFIRE_VBSTART)
MCFG_SCREEN_UPDATE_STATIC(starfire)
- MCFG_VIDEO_START(starfire)
/* audio hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c
index fea7e76d84a..a6a92766c42 100644
--- a/src/mame/drivers/starshp1.c
+++ b/src/mame/drivers/starshp1.c
@@ -311,9 +311,7 @@ static MACHINE_CONFIG_START( starshp1, starshp1_state )
MCFG_GFXDECODE(starshp1)
MCFG_PALETTE_LENGTH(19)
- MCFG_PALETTE_INIT(starshp1)
- MCFG_VIDEO_START(starshp1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/starwars.c b/src/mame/drivers/starwars.c
index dac50b566a6..b122fe9b905 100644
--- a/src/mame/drivers/starwars.c
+++ b/src/mame/drivers/starwars.c
@@ -43,25 +43,24 @@
*
*************************************/
-static MACHINE_RESET( starwars )
+void starwars_state::machine_reset()
{
- starwars_state *state = machine.driver_data<starwars_state>();
/* ESB-specific */
- if (state->m_is_esb)
+ if (m_is_esb)
{
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
/* reset the slapstic */
slapstic_reset();
- state->m_slapstic_current_bank = slapstic_bank();
- memcpy(state->m_slapstic_base, &state->m_slapstic_source[state->m_slapstic_current_bank * 0x2000], 0x2000);
+ m_slapstic_current_bank = slapstic_bank();
+ memcpy(m_slapstic_base, &m_slapstic_source[m_slapstic_current_bank * 0x2000], 0x2000);
/* reset all the banks */
- state->starwars_out_w(*space, 4, 0);
+ starwars_out_w(*space, 4, 0);
}
/* reset the matrix processor */
- starwars_mproc_reset(machine);
+ starwars_mproc_reset(machine());
}
@@ -325,7 +324,6 @@ static MACHINE_CONFIG_START( starwars, starwars_state )
MCFG_CPU_ADD("audiocpu", M6809, MASTER_CLOCK / 8)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_RESET(starwars)
MCFG_RIOT6532_ADD("riot", MASTER_CLOCK / 8, starwars_riot6532_intf)
diff --git a/src/mame/drivers/statriv2.c b/src/mame/drivers/statriv2.c
index 3b734b79cbe..d73b8b482ed 100644
--- a/src/mame/drivers/statriv2.c
+++ b/src/mame/drivers/statriv2.c
@@ -106,6 +106,9 @@ public:
DECLARE_DRIVER_INIT(laserdisc);
TILE_GET_INFO_MEMBER(horizontal_tile_info);
TILE_GET_INFO_MEMBER(vertical_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
+ DECLARE_VIDEO_START(vertical);
};
@@ -144,27 +147,25 @@ TILE_GET_INFO_MEMBER(statriv2_state::vertical_tile_info)
*
*************************************/
-static PALETTE_INIT( statriv2 )
+void statriv2_state::palette_init()
{
int i;
for (i = 0; i < 64; i++)
{
- palette_set_color_rgb(machine, 2*i+0, pal1bit(i >> 2), pal1bit(i >> 0), pal1bit(i >> 1));
- palette_set_color_rgb(machine, 2*i+1, pal1bit(i >> 5), pal1bit(i >> 3), pal1bit(i >> 4));
+ palette_set_color_rgb(machine(), 2*i+0, pal1bit(i >> 2), pal1bit(i >> 0), pal1bit(i >> 1));
+ palette_set_color_rgb(machine(), 2*i+1, pal1bit(i >> 5), pal1bit(i >> 3), pal1bit(i >> 4));
}
}
-static VIDEO_START( horizontal )
+void statriv2_state::video_start()
{
- statriv2_state *state = machine.driver_data<statriv2_state>();
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(statriv2_state::horizontal_tile_info),state) ,TILEMAP_SCAN_ROWS, 8,15, 64,16);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(statriv2_state::horizontal_tile_info),this) ,TILEMAP_SCAN_ROWS, 8,15, 64,16);
}
-static VIDEO_START( vertical )
+VIDEO_START_MEMBER(statriv2_state,vertical)
{
- statriv2_state *state = machine.driver_data<statriv2_state>();
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(statriv2_state::vertical_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(statriv2_state::vertical_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
}
@@ -618,8 +619,6 @@ static MACHINE_CONFIG_START( statriv2, statriv2_state )
MCFG_GFXDECODE(horizontal)
MCFG_PALETTE_LENGTH(2*64)
- MCFG_PALETTE_INIT(statriv2)
- MCFG_VIDEO_START(horizontal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -635,7 +634,7 @@ static MACHINE_CONFIG_DERIVED( statriv2v, statriv2 )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 392, 0, 256, 262, 0, 256)
- MCFG_VIDEO_START(vertical)
+ MCFG_VIDEO_START_OVERRIDE(statriv2_state,vertical)
MCFG_GFXDECODE(vertical)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/stfight.c b/src/mame/drivers/stfight.c
index 5818c0ead59..841ea911e86 100644
--- a/src/mame/drivers/stfight.c
+++ b/src/mame/drivers/stfight.c
@@ -444,7 +444,6 @@ static MACHINE_CONFIG_START( stfight, stfight_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_RESET(stfight)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -457,8 +456,6 @@ static MACHINE_CONFIG_START( stfight, stfight_state )
MCFG_GFXDECODE(stfight)
MCFG_PALETTE_LENGTH(16*4+16*16+16*16+16*16)
- MCFG_PALETTE_INIT(stfight)
- MCFG_VIDEO_START(stfight)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/stlforce.c b/src/mame/drivers/stlforce.c
index 398e55d8827..40e0c00a2ec 100644
--- a/src/mame/drivers/stlforce.c
+++ b/src/mame/drivers/stlforce.c
@@ -206,7 +206,6 @@ static MACHINE_CONFIG_START( stlforce, stlforce_state )
MCFG_GFXDECODE(stlforce)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(stlforce)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/strnskil.c b/src/mame/drivers/strnskil.c
index 489c09b6ad2..e4b5ee0c14f 100644
--- a/src/mame/drivers/strnskil.c
+++ b/src/mame/drivers/strnskil.c
@@ -372,8 +372,6 @@ static MACHINE_CONFIG_START( strnskil, strnskil_state )
MCFG_GFXDECODE(strnskil)
MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT(strnskil)
- MCFG_VIDEO_START(strnskil)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/su2000.c b/src/mame/drivers/su2000.c
index b686cb555bd..5fd9c78558d 100644
--- a/src/mame/drivers/su2000.c
+++ b/src/mame/drivers/su2000.c
@@ -79,6 +79,8 @@ public:
UINT32 *m_pc_ram;
DECLARE_WRITE_LINE_MEMBER(su2000_pic8259_1_set_int_line);
DECLARE_READ8_MEMBER(get_slave_ack);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -256,40 +258,39 @@ static IRQ_CALLBACK( pc_irq_callback )
*
*************************************/
-static MACHINE_START( su2000 )
+void su2000_state::machine_start()
{
- su2000_state *state = machine.driver_data<su2000_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
- state->m_pit8254 = machine.device("pit8254");
- state->m_pic8259_1 = machine.device("pic8259_1");
- state->m_pic8259_2 = machine.device("pic8259_2");
- state->m_dma8237_1 = machine.device("dma8237_1");
- state->m_dma8237_2 = machine.device("dma8237_2");
+ m_pit8254 = machine().device("pit8254");
+ m_pic8259_1 = machine().device("pic8259_1");
+ m_pic8259_2 = machine().device("pic8259_2");
+ m_dma8237_1 = machine().device("dma8237_1");
+ m_dma8237_2 = machine().device("dma8237_2");
/* Configure RAM */
- state->m_pc_ram = auto_alloc_array_clear(machine, UINT32, PC_RAM_SIZE);
+ m_pc_ram = auto_alloc_array_clear(machine(), UINT32, PC_RAM_SIZE);
/* Conventional memory */
- state->membank("mem_bank")->set_base(state->m_pc_ram);
+ membank("mem_bank")->set_base(m_pc_ram);
/* HMA */
offs_t ram_limit = 0x100000 + PC_RAM_SIZE - 0x0a0000;
space->install_read_bank(0x100000, ram_limit - 1, "hma_bank");
space->install_write_bank(0x100000, ram_limit - 1, "hma_bank");
- state->membank("hma_bank")->set_base(state->m_pc_ram + 0xa0000);
+ membank("hma_bank")->set_base(m_pc_ram + 0xa0000);
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(pc_irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(pc_irq_callback);
- init_pc_common(machine, PCCOMMON_KEYBOARD_AT, su2000_set_keyb_int);
+ init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, su2000_set_keyb_int);
- kbdc8042_init(machine, &at8042);
+ kbdc8042_init(machine(), &at8042);
- pc_vga_init(machine, vga_setting, NULL);
- pc_vga_io_init(machine, machine.device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine.device("maincpu")->memory().space(AS_IO), 0x0000);
+ pc_vga_init(machine(), vga_setting, NULL);
+ pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000);
}
-static MACHINE_RESET( su2000 )
+void su2000_state::machine_reset()
{
}
@@ -327,8 +328,6 @@ static MACHINE_CONFIG_START( su2000, su2000_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // TODO
- MCFG_MACHINE_START(su2000)
- MCFG_MACHINE_RESET(su2000)
MCFG_FRAGMENT_ADD(pcat_common)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/sub.c b/src/mame/drivers/sub.c
index 7a31bae1bc2..be67bc11cc4 100644
--- a/src/mame/drivers/sub.c
+++ b/src/mame/drivers/sub.c
@@ -131,9 +131,11 @@ public:
UINT8 m_nmi_en;
DECLARE_WRITE8_MEMBER(subm_to_sound_w);
DECLARE_WRITE8_MEMBER(nmi_mask_w);
+ virtual void video_start();
+ virtual void palette_init();
};
-static VIDEO_START(sub)
+void sub_state::video_start()
{
}
@@ -384,14 +386,14 @@ static GFXDECODE_START( sub )
GFXDECODE_ENTRY( "gfx2", 0, tiles16x32_layout, 0, 0x80 )
GFXDECODE_END
-static PALETTE_INIT( sub )
+void sub_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
- UINT8* lookup = machine.root_device().memregion("proms2")->base();
+ UINT8* lookup = machine().root_device().memregion("proms2")->base();
/* allocate the colortable */
- machine.colortable = colortable_alloc(machine, 0x100);
+ machine().colortable = colortable_alloc(machine(), 0x100);
for (i = 0;i < 0x100;i++)
{
@@ -400,8 +402,8 @@ static PALETTE_INIT( sub )
g = (color_prom[0x100] >> 0);
b = (color_prom[0x200] >> 0);
- //colortable_palette_set_color(machine.colortable, i, MAKE_RGB(r, g, b));
- colortable_palette_set_color(machine.colortable, i, MAKE_RGB(pal4bit(r), pal4bit(g), pal4bit(b)));
+ //colortable_palette_set_color(machine().colortable, i, MAKE_RGB(r, g, b));
+ colortable_palette_set_color(machine().colortable, i, MAKE_RGB(pal4bit(r), pal4bit(g), pal4bit(b)));
color_prom++;
}
@@ -410,7 +412,7 @@ static PALETTE_INIT( sub )
for (i = 0;i < 0x400;i++)
{
UINT8 ctabentry = lookup[i+0x400] | (lookup[i+0x000] << 4);
- colortable_entry_set_value(machine.colortable, i, ctabentry);
+ colortable_entry_set_value(machine().colortable, i, ctabentry);
}
}
@@ -448,9 +450,7 @@ static MACHINE_CONFIG_START( sub, sub_state )
MCFG_GFXDECODE(sub)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_PALETTE_INIT(sub)
- MCFG_VIDEO_START(sub)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/subs.c b/src/mame/drivers/subs.c
index 299a51d6e83..2fb06c05a46 100644
--- a/src/mame/drivers/subs.c
+++ b/src/mame/drivers/subs.c
@@ -29,12 +29,12 @@
*
*************************************/
-static PALETTE_INIT( subs )
+void subs_state::palette_init()
{
- palette_set_color(machine,0,MAKE_RGB(0x00,0x00,0x00)); /* BLACK - modified on video invert */
- palette_set_color(machine,1,MAKE_RGB(0xff,0xff,0xff)); /* WHITE - modified on video invert */
- palette_set_color(machine,2,MAKE_RGB(0x00,0x00,0x00)); /* BLACK - modified on video invert */
- palette_set_color(machine,3,MAKE_RGB(0xff,0xff,0xff)); /* WHITE - modified on video invert*/
+ palette_set_color(machine(),0,MAKE_RGB(0x00,0x00,0x00)); /* BLACK - modified on video invert */
+ palette_set_color(machine(),1,MAKE_RGB(0xff,0xff,0xff)); /* WHITE - modified on video invert */
+ palette_set_color(machine(),2,MAKE_RGB(0x00,0x00,0x00)); /* BLACK - modified on video invert */
+ palette_set_color(machine(),3,MAKE_RGB(0xff,0xff,0xff)); /* WHITE - modified on video invert*/
}
@@ -181,7 +181,6 @@ static MACHINE_CONFIG_START( subs, subs_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_PERIODIC_INT(subs_interrupt,4*57)
- MCFG_MACHINE_RESET(subs)
/* video hardware */
MCFG_GFXDECODE(subs)
@@ -202,7 +201,6 @@ static MACHINE_CONFIG_START( subs, subs_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_STATIC(subs_right)
- MCFG_PALETTE_INIT(subs)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/subsino.c b/src/mame/drivers/subsino.c
index 328e1188f50..8f0c8a3b693 100644
--- a/src/mame/drivers/subsino.c
+++ b/src/mame/drivers/subsino.c
@@ -301,6 +301,11 @@ public:
TILE_GET_INFO_MEMBER(get_stisub_reel2_tile_info);
TILE_GET_INFO_MEMBER(get_subsino_reel3_tile_info);
TILE_GET_INFO_MEMBER(get_stisub_reel3_tile_info);
+ DECLARE_VIDEO_START(subsino);
+ DECLARE_PALETTE_INIT(subsino_2proms);
+ DECLARE_PALETTE_INIT(subsino_3proms);
+ DECLARE_VIDEO_START(subsino_reels);
+ DECLARE_VIDEO_START(stisub);
};
@@ -346,12 +351,11 @@ TILE_GET_INFO_MEMBER(subsino_state::get_stisub_tile_info)
}
-static VIDEO_START( subsino )
+VIDEO_START_MEMBER(subsino_state,subsino)
{
- subsino_state *state = machine.driver_data<subsino_state>();
- state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20 );
- state->m_tmap->set_transparent_pen(0 );
- state->m_tiles_offset = 0;
+ m_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20 );
+ m_tmap->set_transparent_pen(0 );
+ m_tiles_offset = 0;
}
@@ -448,36 +452,34 @@ TILE_GET_INFO_MEMBER(subsino_state::get_stisub_reel3_tile_info)
}
-static VIDEO_START( subsino_reels )
+VIDEO_START_MEMBER(subsino_state,subsino_reels)
{
- subsino_state *state = machine.driver_data<subsino_state>();
- VIDEO_START_CALL( subsino );
+ VIDEO_START_CALL_MEMBER( subsino );
- state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_subsino_reel1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_subsino_reel2_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_subsino_reel3_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_subsino_reel1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_subsino_reel2_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_subsino_reel3_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- state->m_reel1_tilemap->set_scroll_cols(64);
- state->m_reel2_tilemap->set_scroll_cols(64);
- state->m_reel3_tilemap->set_scroll_cols(64);
+ m_reel1_tilemap->set_scroll_cols(64);
+ m_reel2_tilemap->set_scroll_cols(64);
+ m_reel3_tilemap->set_scroll_cols(64);
}
-static VIDEO_START( stisub )
+VIDEO_START_MEMBER(subsino_state,stisub)
{
- subsino_state *state = machine.driver_data<subsino_state>();
- state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20 );
- state->m_tmap->set_transparent_pen(0 );
+ m_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20 );
+ m_tmap->set_transparent_pen(0 );
- state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_reel1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_reel2_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_reel3_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_reel1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_reel2_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_reel3_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- state->m_reel1_tilemap->set_scroll_cols(64);
- state->m_reel2_tilemap->set_scroll_cols(64);
- state->m_reel3_tilemap->set_scroll_cols(64);
+ m_reel1_tilemap->set_scroll_cols(64);
+ m_reel2_tilemap->set_scroll_cols(64);
+ m_reel3_tilemap->set_scroll_cols(64);
- state->m_out_c = 0x08;
+ m_out_c = 0x08;
}
@@ -557,9 +559,9 @@ static SCREEN_UPDATE_IND16( stisub_reels )
-static PALETTE_INIT( subsino_2proms )
+PALETTE_INIT_MEMBER(subsino_state,subsino_2proms)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i,r,g,b,val;
int bit0,bit1,bit2;
@@ -580,13 +582,13 @@ static PALETTE_INIT( subsino_2proms )
bit2 = (val >> 2) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
-static PALETTE_INIT( subsino_3proms )
+PALETTE_INIT_MEMBER(subsino_state,subsino_3proms)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i,r,g,b,val;
int bit0,bit1,bit2;
@@ -607,7 +609,7 @@ static PALETTE_INIT( subsino_3proms )
bit2 = (val >> 0) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
@@ -2660,9 +2662,9 @@ static MACHINE_CONFIG_START( victor21, subsino_state )
MCFG_GFXDECODE(subsino_depth3)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT(subsino_2proms)
+ MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_2proms)
- MCFG_VIDEO_START(subsino)
+ MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2700,9 +2702,9 @@ static MACHINE_CONFIG_START( crsbingo, subsino_state )
MCFG_GFXDECODE(subsino_depth4)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT(subsino_2proms)
+ MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_2proms)
- MCFG_VIDEO_START(subsino)
+ MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2729,9 +2731,9 @@ static MACHINE_CONFIG_START( srider, subsino_state )
MCFG_GFXDECODE(subsino_depth4)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT(subsino_3proms)
+ MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_3proms)
- MCFG_VIDEO_START(subsino)
+ MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2768,9 +2770,9 @@ static MACHINE_CONFIG_START( tisub, subsino_state )
MCFG_GFXDECODE(subsino_depth4_reels)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT(subsino_3proms)
+ MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_3proms)
- MCFG_VIDEO_START(subsino_reels)
+ MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino_reels)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2796,9 +2798,9 @@ static MACHINE_CONFIG_START( stisub, subsino_state )
MCFG_GFXDECODE(subsino_stisub)
MCFG_PALETTE_LENGTH(0x100)
- //MCFG_PALETTE_INIT(subsino_3proms)
+ //MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_3proms)
- MCFG_VIDEO_START(stisub)
+ MCFG_VIDEO_START_OVERRIDE(subsino_state,stisub)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/subsino2.c b/src/mame/drivers/subsino2.c
index 0e7e707108f..bda84f70a5b 100644
--- a/src/mame/drivers/subsino2.c
+++ b/src/mame/drivers/subsino2.c
@@ -161,6 +161,10 @@ public:
DECLARE_DRIVER_INIT(xplan);
TILE_GET_INFO_MEMBER(ss9601_get_tile_info_0);
TILE_GET_INFO_MEMBER(ss9601_get_tile_info_1);
+ DECLARE_VIDEO_START(subsino2);
+ DECLARE_VIDEO_START(mtrain);
+ DECLARE_MACHINE_RESET(am188em);
+ DECLARE_VIDEO_START(xtrain);
};
@@ -560,73 +564,71 @@ WRITE8_MEMBER(subsino2_state::ss9601_disable_w)
Video Update
***************************************************************************/
-static VIDEO_START( subsino2 )
+VIDEO_START_MEMBER(subsino2_state,subsino2)
{
- subsino2_state *state = machine.driver_data<subsino2_state>();
- state->m_hm86171_colorram = auto_alloc_array(machine, UINT8, 256*3);
+ m_hm86171_colorram = auto_alloc_array(machine(), UINT8, 256*3);
// SS9601 Regs:
- state->m_ss9601_tilesize = TILE_8x8;
- state->m_ss9601_scrollctrl = 0xfd; // not written by mtrain, default to reels on
- state->m_ss9601_disable = 0x00;
+ m_ss9601_tilesize = TILE_8x8;
+ m_ss9601_scrollctrl = 0xfd; // not written by mtrain, default to reels on
+ m_ss9601_disable = 0x00;
// SS9601 Layers:
for (int i = 0; i < 2; i++)
{
- layer_t *l = &state->m_layers[i];
+ layer_t *l = &m_layers[i];
- l->tmap = &machine.tilemap().create(i ? tilemap_get_info_delegate(FUNC(subsino2_state::ss9601_get_tile_info_1),state) : tilemap_get_info_delegate(FUNC(subsino2_state::ss9601_get_tile_info_0),state), TILEMAP_SCAN_ROWS, 8,8, 0x80,0x40);
+ l->tmap = &machine().tilemap().create(i ? tilemap_get_info_delegate(FUNC(subsino2_state::ss9601_get_tile_info_1),this) : tilemap_get_info_delegate(FUNC(subsino2_state::ss9601_get_tile_info_0),this), TILEMAP_SCAN_ROWS, 8,8, 0x80,0x40);
l->tmap->set_transparent_pen(0);
// line scroll
l->tmap->set_scroll_rows(0x200);
- l->videorams[VRAM_HI] = auto_alloc_array(machine, UINT8, 0x80 * 0x40);
- l->videorams[VRAM_LO] = auto_alloc_array(machine, UINT8, 0x80 * 0x40);
+ l->videorams[VRAM_HI] = auto_alloc_array(machine(), UINT8, 0x80 * 0x40);
+ l->videorams[VRAM_LO] = auto_alloc_array(machine(), UINT8, 0x80 * 0x40);
- l->scrollrams[VRAM_HI] = auto_alloc_array(machine, UINT8, 0x200);
- l->scrollrams[VRAM_LO] = auto_alloc_array(machine, UINT8, 0x200);
+ l->scrollrams[VRAM_HI] = auto_alloc_array(machine(), UINT8, 0x200);
+ l->scrollrams[VRAM_LO] = auto_alloc_array(machine(), UINT8, 0x200);
memset(l->scrollrams[VRAM_HI], 0, 0x200);
memset(l->scrollrams[VRAM_LO], 0, 0x200);
}
// SS9601 Reels:
- state->m_ss9601_reelrams[VRAM_HI] = auto_alloc_array(machine, UINT8, 0x2000);
- state->m_ss9601_reelrams[VRAM_LO] = auto_alloc_array(machine, UINT8, 0x2000);
- memset(state->m_ss9601_reelrams[VRAM_HI], 0, 0x2000);
- memset(state->m_ss9601_reelrams[VRAM_LO], 0, 0x2000);
- state->m_ss9601_reelrects[0].set(0, 0, 0x00*8, 0x09*8-1);
- state->m_ss9601_reelrects[1].set(0, 0, 0x09*8, 0x10*8-1);
- state->m_ss9601_reelrects[2].set(0, 0, 0x10*8, 256-16-1);
+ m_ss9601_reelrams[VRAM_HI] = auto_alloc_array(machine(), UINT8, 0x2000);
+ m_ss9601_reelrams[VRAM_LO] = auto_alloc_array(machine(), UINT8, 0x2000);
+ memset(m_ss9601_reelrams[VRAM_HI], 0, 0x2000);
+ memset(m_ss9601_reelrams[VRAM_LO], 0, 0x2000);
+ m_ss9601_reelrects[0].set(0, 0, 0x00*8, 0x09*8-1);
+ m_ss9601_reelrects[1].set(0, 0, 0x09*8, 0x10*8-1);
+ m_ss9601_reelrects[2].set(0, 0, 0x10*8, 256-16-1);
/*
- state_save_register_global_pointer(machine, state->m_ss9601_reelrams[VRAM_HI], 0x2000);
- state_save_register_global_pointer(machine, state->m_ss9601_reelrams[VRAM_LO], 0x2000);
+ state_save_register_global_pointer(machine(), m_ss9601_reelrams[VRAM_HI], 0x2000);
+ state_save_register_global_pointer(machine(), m_ss9601_reelrams[VRAM_LO], 0x2000);
- state_save_register_global_pointer(machine, state->m_layers[0].scrollrams[VRAM_HI], 0x200);
- state_save_register_global_pointer(machine, state->m_layers[0].scrollrams[VRAM_LO], 0x200);
+ state_save_register_global_pointer(machine(), m_layers[0].scrollrams[VRAM_HI], 0x200);
+ state_save_register_global_pointer(machine(), m_layers[0].scrollrams[VRAM_LO], 0x200);
- state_save_register_global_pointer(machine, state->m_layers[1].scrollrams[VRAM_HI], 0x200);
- state_save_register_global_pointer(machine, state->m_layers[1].scrollrams[VRAM_LO], 0x200);
+ state_save_register_global_pointer(machine(), m_layers[1].scrollrams[VRAM_HI], 0x200);
+ state_save_register_global_pointer(machine(), m_layers[1].scrollrams[VRAM_LO], 0x200);
*/
}
-static VIDEO_START( mtrain )
+VIDEO_START_MEMBER(subsino2_state,mtrain)
{
- VIDEO_START_CALL( subsino2 );
+ VIDEO_START_CALL_MEMBER( subsino2 );
}
-static VIDEO_START( xtrain )
+VIDEO_START_MEMBER(subsino2_state,xtrain)
{
- subsino2_state *state = machine.driver_data<subsino2_state>();
- VIDEO_START_CALL( subsino2 );
- state->m_ss9601_reelrects[0].set(0, 0, 0x00*8, 0x08*8-1);
- state->m_ss9601_reelrects[1].set(0, 0, 0x08*8, 0x18*8-1);
- state->m_ss9601_reelrects[2].set(0, 0, 0x18*8, 256-16-1);
+ VIDEO_START_CALL_MEMBER( subsino2 );
+ m_ss9601_reelrects[0].set(0, 0, 0x00*8, 0x08*8-1);
+ m_ss9601_reelrects[1].set(0, 0, 0x08*8, 0x18*8-1);
+ m_ss9601_reelrects[2].set(0, 0, 0x18*8, 256-16-1);
}
static SCREEN_UPDATE_IND16( subsino2 )
@@ -851,14 +853,13 @@ WRITE8_MEMBER(subsino2_state::am188em_regs_w)
m_am188em_regs[offset] = data;
}
-static MACHINE_RESET( am188em )
+MACHINE_RESET_MEMBER(subsino2_state,am188em)
{
- subsino2_state *state = machine.driver_data<subsino2_state>();
// start with masked interrupts
- state->m_am188em_regs[AM188EM_IMASK+0] = 0xfd;
- state->m_am188em_regs[AM188EM_IMASK+1] = 0x07;
- state->m_am188em_regs[AM188EM_I0CON+0] = 0x0f;
- state->m_am188em_regs[AM188EM_I0CON+1] = 0x00;
+ m_am188em_regs[AM188EM_IMASK+0] = 0xfd;
+ m_am188em_regs[AM188EM_IMASK+1] = 0x07;
+ m_am188em_regs[AM188EM_I0CON+0] = 0x0f;
+ m_am188em_regs[AM188EM_I0CON+1] = 0x00;
}
static INTERRUPT_GEN( am188em_int0_irq )
@@ -2192,7 +2193,7 @@ static MACHINE_CONFIG_START( bishjan, subsino2_state )
MCFG_GFXDECODE( ss9601 )
MCFG_PALETTE_LENGTH( 256 )
- MCFG_VIDEO_START( subsino2 )
+ MCFG_VIDEO_START_OVERRIDE(subsino2_state, subsino2 )
// sound hardware
// SS9904?
@@ -2220,7 +2221,7 @@ static MACHINE_CONFIG_START( mtrain, subsino2_state )
MCFG_GFXDECODE( ss9601 )
MCFG_PALETTE_LENGTH( 256 )
- MCFG_VIDEO_START( mtrain )
+ MCFG_VIDEO_START_OVERRIDE(subsino2_state, mtrain )
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2239,7 +2240,7 @@ static MACHINE_CONFIG_START( saklove, subsino2_state )
MCFG_CPU_IO_MAP( saklove_io )
MCFG_TIMER_ADD_PERIODIC("timer2", am188em_timer2_irq, attotime::from_hz(60)) // timer 2, ?? Hz
- MCFG_MACHINE_RESET(am188em)
+ MCFG_MACHINE_RESET_OVERRIDE(subsino2_state,am188em)
MCFG_NVRAM_ADD_0FILL("nvram")
// video hardware
@@ -2253,7 +2254,7 @@ static MACHINE_CONFIG_START( saklove, subsino2_state )
MCFG_GFXDECODE( ss9601 )
MCFG_PALETTE_LENGTH( 256 )
- MCFG_VIDEO_START( subsino2 )
+ MCFG_VIDEO_START_OVERRIDE(subsino2_state, subsino2 )
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2276,7 +2277,7 @@ static MACHINE_CONFIG_START( xplan, subsino2_state )
MCFG_CPU_VBLANK_INT( "screen", am188em_int0_irq )
MCFG_TIMER_ADD_PERIODIC("timer2", am188em_timer2_irq, attotime::from_hz(60)) // timer 2, ?? Hz
- MCFG_MACHINE_RESET(am188em)
+ MCFG_MACHINE_RESET_OVERRIDE(subsino2_state,am188em)
MCFG_NVRAM_ADD_0FILL("nvram")
// video hardware
@@ -2290,7 +2291,7 @@ static MACHINE_CONFIG_START( xplan, subsino2_state )
MCFG_GFXDECODE( ss9601 )
MCFG_PALETTE_LENGTH( 256 )
- MCFG_VIDEO_START( subsino2 )
+ MCFG_VIDEO_START_OVERRIDE(subsino2_state, subsino2 )
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2303,7 +2304,7 @@ static MACHINE_CONFIG_DERIVED( xtrain, xplan )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(xtrain_io)
- MCFG_VIDEO_START( xtrain )
+ MCFG_VIDEO_START_OVERRIDE(subsino2_state, xtrain )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( expcard, xplan )
diff --git a/src/mame/drivers/summit.c b/src/mame/drivers/summit.c
index c41617e9f61..dbdd5626013 100644
--- a/src/mame/drivers/summit.c
+++ b/src/mame/drivers/summit.c
@@ -30,10 +30,12 @@ public:
required_shared_ptr<UINT8> m_attr;
required_shared_ptr<UINT8> m_vram;
DECLARE_WRITE8_MEMBER(out_w);
+ virtual void video_start();
+ virtual void palette_init();
};
-static VIDEO_START(summit)
+void summit_state::video_start()
{
}
@@ -289,7 +291,7 @@ static GFXDECODE_START( summit )
GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 1 )
GFXDECODE_END
-PALETTE_INIT( summit )
+void summit_state::palette_init()
{
}
@@ -311,9 +313,7 @@ static MACHINE_CONFIG_START( summit, summit_state )
MCFG_GFXDECODE(summit)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(summit)
- MCFG_VIDEO_START(summit)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/suna16.c b/src/mame/drivers/suna16.c
index 5e668f603b6..9047b7b0125 100644
--- a/src/mame/drivers/suna16.c
+++ b/src/mame/drivers/suna16.c
@@ -359,11 +359,10 @@ static ADDRESS_MAP_START( uballoon_pcm_1_io_map, AS_IO, 8, suna16_state )
AM_RANGE(0x03, 0x03) AM_WRITE(uballoon_pcm_1_bankswitch_w) // Rom Bank
ADDRESS_MAP_END
-static MACHINE_RESET(uballoon)
+MACHINE_RESET_MEMBER(suna16_state,uballoon)
{
- suna16_state *state = machine.driver_data<suna16_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- state->uballoon_pcm_1_bankswitch_w(*space, 0, 0);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ uballoon_pcm_1_bankswitch_w(*space, 0, 0);
}
@@ -797,7 +796,6 @@ static MACHINE_CONFIG_START( bssoccer, suna16_state )
MCFG_GFXDECODE(suna16)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(suna16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -843,7 +841,7 @@ static MACHINE_CONFIG_START( uballoon, suna16_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_RESET(uballoon)
+ MCFG_MACHINE_RESET_OVERRIDE(suna16_state,uballoon)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -856,7 +854,6 @@ static MACHINE_CONFIG_START( uballoon, suna16_state )
MCFG_GFXDECODE(suna16)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(suna16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -905,7 +902,6 @@ static MACHINE_CONFIG_START( sunaq, suna16_state )
MCFG_GFXDECODE(suna16)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(suna16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -972,7 +968,6 @@ static MACHINE_CONFIG_START( bestbest, suna16_state )
MCFG_GFXDECODE(bestbest)
MCFG_PALETTE_LENGTH(256*8)
- MCFG_VIDEO_START(suna16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c
index c1fed0a566a..90c54115524 100644
--- a/src/mame/drivers/suna8.c
+++ b/src/mame/drivers/suna8.c
@@ -1642,7 +1642,7 @@ static MACHINE_CONFIG_START( hardhead, suna8_state )
MCFG_GFXDECODE(suna8)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(suna8_textdim12)
+ MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim12)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1706,7 +1706,7 @@ static MACHINE_CONFIG_START( rranger, suna8_state )
MCFG_GFXDECODE(suna8)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(suna8_textdim8)
+ MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim8)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1751,11 +1751,10 @@ static TIMER_DEVICE_CALLBACK( brickzn_interrupt )
}
-static MACHINE_RESET( brickzn )
+MACHINE_RESET_MEMBER(suna8_state,brickzn)
{
- suna8_state *state = machine.driver_data<suna8_state>();
- state->m_protection_val = state->m_prot2 = state->m_prot2_prev = 0xff;
- state->membank("bank1")->set_entry(0);
+ m_protection_val = m_prot2 = m_prot2_prev = 0xff;
+ membank("bank1")->set_entry(0);
}
static MACHINE_CONFIG_START( brickzn, suna8_state )
@@ -1773,7 +1772,7 @@ static MACHINE_CONFIG_START( brickzn, suna8_state )
MCFG_CPU_PROGRAM_MAP(brickzn_pcm_map)
MCFG_CPU_IO_MAP(brickzn_pcm_io_map)
- MCFG_MACHINE_RESET( brickzn )
+ MCFG_MACHINE_RESET_OVERRIDE(suna8_state, brickzn )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1786,7 +1785,7 @@ static MACHINE_CONFIG_START( brickzn, suna8_state )
MCFG_GFXDECODE(suna8)
MCFG_PALETTE_LENGTH(256 * 2) // 2 x Palette RAM
- MCFG_VIDEO_START(suna8_textdim0)
+ MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim0)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1831,11 +1830,10 @@ static TIMER_DEVICE_CALLBACK( hardhea2_interrupt )
if (state->m_nmi_enable) state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
-static MACHINE_RESET( hardhea2 )
+MACHINE_RESET_MEMBER(suna8_state,hardhea2)
{
- suna8_state *state = machine.driver_data<suna8_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- state->hardhea2_rambank_0_w(*space,0,0);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ hardhea2_rambank_0_w(*space,0,0);
}
static MACHINE_CONFIG_DERIVED( hardhea2, brickzn )
@@ -1845,7 +1843,7 @@ static MACHINE_CONFIG_DERIVED( hardhea2, brickzn )
MCFG_CPU_PROGRAM_MAP(hardhea2_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", hardhea2_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(hardhea2)
+ MCFG_MACHINE_RESET_OVERRIDE(suna8_state,hardhea2)
MCFG_PALETTE_LENGTH(256)
MACHINE_CONFIG_END
@@ -1888,7 +1886,7 @@ static MACHINE_CONFIG_START( starfigh, suna8_state )
MCFG_GFXDECODE(suna8)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(suna8_textdim0)
+ MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim0)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1935,7 +1933,7 @@ static MACHINE_CONFIG_START( sparkman, suna8_state )
MCFG_GFXDECODE(suna8)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(suna8_textdim0)
+ MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim0)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/supbtime.c b/src/mame/drivers/supbtime.c
index a2bfd6810ef..51fe59e5af3 100644
--- a/src/mame/drivers/supbtime.c
+++ b/src/mame/drivers/supbtime.c
@@ -330,13 +330,12 @@ static const deco16ic_interface supbtime_deco16ic_tilegen1_intf =
0,1
};
-static MACHINE_START( supbtime )
+void supbtime_state::machine_start()
{
- supbtime_state *state = machine.driver_data<supbtime_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_deco_tilegen1 = machine.device("tilegen1");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_deco_tilegen1 = machine().device("tilegen1");
}
static MACHINE_CONFIG_START( supbtime, supbtime_state )
@@ -349,7 +348,6 @@ static MACHINE_CONFIG_START( supbtime, supbtime_state )
MCFG_CPU_ADD("audiocpu", H6280, 32220000/8) /* Custom chip 45, audio section crystal is 32.220 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(supbtime)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -391,7 +389,6 @@ static MACHINE_CONFIG_START( chinatwn, supbtime_state )
MCFG_CPU_ADD("audiocpu", H6280, 32220000/8) /* Custom chip 45, audio section crystal is 32.220 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(supbtime)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/supdrapo.c b/src/mame/drivers/supdrapo.c
index 337978cff58..0a330f69f3b 100644
--- a/src/mame/drivers/supdrapo.c
+++ b/src/mame/drivers/supdrapo.c
@@ -86,6 +86,10 @@ public:
DECLARE_WRITE8_MEMBER(payout_w);
DECLARE_WRITE8_MEMBER(ay8910_outputa_w);
DECLARE_WRITE8_MEMBER(ay8910_outputb_w);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -93,7 +97,7 @@ public:
Video Hardware
**********************************************************************/
-static VIDEO_START( supdrapo )
+void supdrapo_state::video_start()
{
}
@@ -126,9 +130,9 @@ static SCREEN_UPDATE_IND16( supdrapo )
/*Maybe bit 2 & 3 of the second color prom are intensity bits? */
-static PALETTE_INIT( sdpoker )
+void supdrapo_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int bit0, bit1, bit2 , r, g, b;
int i;
@@ -149,7 +153,7 @@ static PALETTE_INIT( sdpoker )
bit2 = (color_prom[0x100] >> 1) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
color_prom++;
}
}
@@ -237,15 +241,14 @@ WRITE8_MEMBER(supdrapo_state::payout_w)
Machine Start & Reset
**********************************************************************/
-static MACHINE_START( supdrapo )
+void supdrapo_state::machine_start()
{
}
-static MACHINE_RESET( supdrapo )
+void supdrapo_state::machine_reset()
{
- supdrapo_state *state = machine.driver_data<supdrapo_state>();
- state->m_wdog = 1;
+ m_wdog = 1;
}
@@ -444,8 +447,6 @@ static MACHINE_CONFIG_START( supdrapo, supdrapo_state )
MCFG_CPU_PROGRAM_MAP(sdpoker_mem)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_START(supdrapo)
- MCFG_MACHINE_RESET(supdrapo)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -459,9 +460,7 @@ static MACHINE_CONFIG_START( supdrapo, supdrapo_state )
MCFG_GFXDECODE(supdrapo)
MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT(sdpoker)
- MCFG_VIDEO_START(supdrapo)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/superchs.c b/src/mame/drivers/superchs.c
index b82d3dcddee..cf9dbfc43a9 100644
--- a/src/mame/drivers/superchs.c
+++ b/src/mame/drivers/superchs.c
@@ -349,7 +349,6 @@ static MACHINE_CONFIG_START( superchs, superchs_state )
MCFG_GFXDECODE(superchs)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(superchs)
MCFG_TC0480SCP_ADD("tc0480scp", superchs_tc0480scp_intf)
diff --git a/src/mame/drivers/superdq.c b/src/mame/drivers/superdq.c
index cbf175663c7..ce3f39fccb1 100644
--- a/src/mame/drivers/superdq.c
+++ b/src/mame/drivers/superdq.c
@@ -47,6 +47,10 @@ public:
DECLARE_READ8_MEMBER(superdq_ld_r);
DECLARE_WRITE8_MEMBER(superdq_ld_w);
TILE_GET_INFO_MEMBER(get_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
TILE_GET_INFO_MEMBER(superdq_state::get_tile_info)
@@ -56,11 +60,10 @@ TILE_GET_INFO_MEMBER(superdq_state::get_tile_info)
SET_TILE_INFO_MEMBER(0, tile, m_color_bank, 0);
}
-static VIDEO_START( superdq )
+void superdq_state::video_start()
{
- superdq_state *state = machine.driver_data<superdq_state>();
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(superdq_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(superdq_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
static SCREEN_UPDATE_RGB32( superdq )
@@ -80,9 +83,9 @@ static SCREEN_UPDATE_RGB32( superdq )
*
*************************************/
-static PALETTE_INIT( superdq )
+void superdq_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
static const int resistances[3] = { 820, 390, 200 };
double rweights[3], gweights[3], bweights[2];
@@ -94,7 +97,7 @@ static PALETTE_INIT( superdq )
2, &resistances[1], bweights, 220, 0);
/* initialize the palette with these colors */
- for (i = 0; i < machine.total_colors(); i++)
+ for (i = 0; i < machine().total_colors(); i++)
{
int bit0, bit1, bit2;
int r, g, b;
@@ -116,17 +119,16 @@ static PALETTE_INIT( superdq )
bit1 = (color_prom[i] >> 0) & 0x01;
b = combine_2_weights(bweights, bit1, bit0);
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), i, MAKE_RGB(r, g, b));
}
}
-static MACHINE_RESET( superdq )
+void superdq_state::machine_reset()
{
- superdq_state *state = machine.driver_data<superdq_state>();
- state->m_ld_in_latch = 0;
- state->m_ld_out_latch = 0xff;
- state->m_color_bank = 0;
+ m_ld_in_latch = 0;
+ m_ld_out_latch = 0xff;
+ m_color_bank = 0;
}
static INTERRUPT_GEN( superdq_vblank )
@@ -332,7 +334,7 @@ static const sn76496_config psg_intf =
*
*************************************/
-static MACHINE_START( superdq )
+void superdq_state::machine_start()
{
}
@@ -345,8 +347,6 @@ static MACHINE_CONFIG_START( superdq, superdq_state )
MCFG_CPU_IO_MAP(superdq_io)
MCFG_CPU_VBLANK_INT("screen", superdq_vblank)
- MCFG_MACHINE_START(superdq)
- MCFG_MACHINE_RESET(superdq)
MCFG_LASERDISC_LDV1000_ADD("laserdisc")
MCFG_LASERDISC_OVERLAY_STATIC(256, 256, superdq)
@@ -357,8 +357,6 @@ static MACHINE_CONFIG_START( superdq, superdq_state )
MCFG_GFXDECODE(superdq)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(superdq)
- MCFG_VIDEO_START(superdq)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c
index cfb2d0775b3..323f8be1179 100644
--- a/src/mame/drivers/superqix.c
+++ b/src/mame/drivers/superqix.c
@@ -541,20 +541,20 @@ static void machine_init_common(running_machine &machine)
state->save_item(NAME(state->m_portC));
}
-static MACHINE_START( superqix )
+MACHINE_START_MEMBER(superqix_state,superqix)
{
/* configure the banks */
- machine.root_device().membank("bank1")->configure_entries(0, 4, machine.root_device().memregion("maincpu")->base() + 0x10000, 0x4000);
+ machine().root_device().membank("bank1")->configure_entries(0, 4, machine().root_device().memregion("maincpu")->base() + 0x10000, 0x4000);
- machine_init_common(machine);
+ machine_init_common(machine());
}
-static MACHINE_START( pbillian )
+MACHINE_START_MEMBER(superqix_state,pbillian)
{
/* configure the banks */
- machine.root_device().membank("bank1")->configure_entries(0, 2, machine.root_device().memregion("maincpu")->base() + 0x10000, 0x4000);
+ machine().root_device().membank("bank1")->configure_entries(0, 2, machine().root_device().memregion("maincpu")->base() + 0x10000, 0x4000);
- machine_init_common(machine);
+ machine_init_common(machine());
}
@@ -1006,7 +1006,7 @@ static MACHINE_CONFIG_START( pbillian, superqix_state )
MCFG_CPU_IO_MAP(pbillian_port_map)
MCFG_CPU_VBLANK_INT("screen", vblank_irq)
- MCFG_MACHINE_START(pbillian)
+ MCFG_MACHINE_START_OVERRIDE(superqix_state,pbillian)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1019,7 +1019,7 @@ static MACHINE_CONFIG_START( pbillian, superqix_state )
MCFG_GFXDECODE(pbillian)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(pbillian)
+ MCFG_VIDEO_START_OVERRIDE(superqix_state,pbillian)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1040,7 +1040,7 @@ static MACHINE_CONFIG_START( hotsmash, superqix_state )
MCFG_CPU_ADD("mcu", M68705, 4000000) /* ???? */
MCFG_CPU_PROGRAM_MAP(m68705_map)
- MCFG_MACHINE_START(pbillian)
+ MCFG_MACHINE_START_OVERRIDE(superqix_state,pbillian)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1053,7 +1053,7 @@ static MACHINE_CONFIG_START( hotsmash, superqix_state )
MCFG_GFXDECODE(pbillian)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(pbillian)
+ MCFG_VIDEO_START_OVERRIDE(superqix_state,pbillian)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1078,7 +1078,7 @@ static MACHINE_CONFIG_START( sqix, superqix_state )
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_START(superqix)
+ MCFG_MACHINE_START_OVERRIDE(superqix_state,superqix)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1091,7 +1091,7 @@ static MACHINE_CONFIG_START( sqix, superqix_state )
MCFG_GFXDECODE(sqix)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(superqix)
+ MCFG_VIDEO_START_OVERRIDE(superqix_state,superqix)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1121,7 +1121,7 @@ static MACHINE_CONFIG_START( sqixbl, superqix_state )
MCFG_CPU_IO_MAP(sqix_port_map)
MCFG_CPU_PERIODIC_INT(sqix_timer_irq, 4*60) /* ??? */
- MCFG_MACHINE_START(superqix)
+ MCFG_MACHINE_START_OVERRIDE(superqix_state,superqix)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1134,7 +1134,7 @@ static MACHINE_CONFIG_START( sqixbl, superqix_state )
MCFG_GFXDECODE(sqix)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(superqix)
+ MCFG_VIDEO_START_OVERRIDE(superqix_state,superqix)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/supertnk.c b/src/mame/drivers/supertnk.c
index 6257a0f8fe9..c6c23aeb7b9 100644
--- a/src/mame/drivers/supertnk.c
+++ b/src/mame/drivers/supertnk.c
@@ -123,6 +123,8 @@ public:
DECLARE_WRITE8_MEMBER(supertnk_bitplane_select_0_w);
DECLARE_WRITE8_MEMBER(supertnk_bitplane_select_1_w);
DECLARE_DRIVER_INIT(supertnk);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -184,22 +186,21 @@ WRITE8_MEMBER(supertnk_state::supertnk_interrupt_ack_w)
*
*************************************/
-static VIDEO_START( supertnk )
+void supertnk_state::video_start()
{
- supertnk_state *state = machine.driver_data<supertnk_state>();
offs_t i;
- const UINT8 *prom = state->memregion("proms")->base();
+ const UINT8 *prom = memregion("proms")->base();
for (i = 0; i < NUM_PENS; i++)
{
UINT8 data = prom[i];
- state->m_pens[i] = MAKE_RGB(pal1bit(data >> 2), pal1bit(data >> 5), pal1bit(data >> 6));
+ m_pens[i] = MAKE_RGB(pal1bit(data >> 2), pal1bit(data >> 5), pal1bit(data >> 6));
}
- state->m_videoram[0] = auto_alloc_array(machine, UINT8, 0x2000);
- state->m_videoram[1] = auto_alloc_array(machine, UINT8, 0x2000);
- state->m_videoram[2] = auto_alloc_array(machine, UINT8, 0x2000);
+ m_videoram[0] = auto_alloc_array(machine(), UINT8, 0x2000);
+ m_videoram[1] = auto_alloc_array(machine(), UINT8, 0x2000);
+ m_videoram[2] = auto_alloc_array(machine(), UINT8, 0x2000);
}
@@ -284,15 +285,14 @@ static SCREEN_UPDATE_RGB32( supertnk )
*
*************************************/
-static MACHINE_RESET( supertnk )
+void supertnk_state::machine_reset()
{
- supertnk_state *state = machine.driver_data<supertnk_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- state->supertnk_bankswitch_0_w(*space, 0, 0);
- state->supertnk_bankswitch_1_w(*space, 0, 0);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ supertnk_bankswitch_0_w(*space, 0, 0);
+ supertnk_bankswitch_1_w(*space, 0, 0);
- state->supertnk_bitplane_select_0_w(*space, 0, 0);
- state->supertnk_bitplane_select_1_w(*space, 0, 0);
+ supertnk_bitplane_select_0_w(*space, 0, 0);
+ supertnk_bitplane_select_1_w(*space, 0, 0);
}
@@ -431,10 +431,8 @@ static MACHINE_CONFIG_START( supertnk, supertnk_state )
MCFG_CPU_IO_MAP(supertnk_io_map)
MCFG_CPU_VBLANK_INT("screen", supertnk_interrupt)
- MCFG_MACHINE_RESET(supertnk)
/* video hardware */
- MCFG_VIDEO_START(supertnk)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_SIZE(32*8, 32*8)
diff --git a/src/mame/drivers/superwng.c b/src/mame/drivers/superwng.c
index aa37b42c02c..e54e73b2ae3 100644
--- a/src/mame/drivers/superwng.c
+++ b/src/mame/drivers/superwng.c
@@ -69,6 +69,10 @@ public:
DECLARE_READ8_MEMBER(superwng_sound_byte_r);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
TILE_GET_INFO_MEMBER(superwng_state::get_bg_tile_info)
@@ -100,13 +104,12 @@ TILE_GET_INFO_MEMBER(superwng_state::get_fg_tile_info)
SET_TILE_INFO_MEMBER(0, code, attr & 0xf, flipx|flipy);
}
-static VIDEO_START( superwng )
+void superwng_state::video_start()
{
- superwng_state *state = machine.driver_data<superwng_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(superwng_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(superwng_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(superwng_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(superwng_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_bg_tilemap->set_scrollx(0, 64);
+ m_bg_tilemap->set_scrollx(0, 64);
}
static SCREEN_UPDATE_IND16( superwng )
@@ -168,12 +171,12 @@ static const UINT8 superwng_colors[]= /* temporary */
0x00, 0xc0, 0x07, 0x3f, 0x00, 0x1f, 0x3f, 0xff, 0x00, 0x86, 0x05, 0xff, 0x00, 0xc0, 0xe8, 0xff
};
-PALETTE_INIT( superwng )
+void superwng_state::palette_init()
{
int i;
const UINT8 * ptr=superwng_colors;
- for (i = 0; i < machine.total_colors(); i++)
+ for (i = 0; i < machine().total_colors(); i++)
{
int bit0, bit1, bit2, r, g, b;
@@ -191,7 +194,7 @@ PALETTE_INIT( superwng )
bit1 = BIT(*ptr, 7);
b = 0x4f * bit0 + 0xa8 * bit1;
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
++ptr;
}
}
@@ -423,21 +426,19 @@ static GFXDECODE_START( superwng )
GFXDECODE_ENTRY( "gfx1", 0x0000, spritelayout, 0, 16 )
GFXDECODE_END
-static MACHINE_START( superwng )
+void superwng_state::machine_start()
{
- superwng_state *state = machine.driver_data<superwng_state>();
- state->save_item(NAME(state->m_tile_bank));
- state->save_item(NAME(state->m_sound_byte));
- state->save_item(NAME(state->m_nmi_enable));
+ save_item(NAME(m_tile_bank));
+ save_item(NAME(m_sound_byte));
+ save_item(NAME(m_nmi_enable));
}
-static MACHINE_RESET( superwng )
+void superwng_state::machine_reset()
{
- superwng_state *state = machine.driver_data<superwng_state>();
- state->m_sound_byte = 0;
- state->m_nmi_enable = 0;
+ m_sound_byte = 0;
+ m_nmi_enable = 0;
}
static const ay8910_interface ay8910_config_1 =
@@ -471,8 +472,6 @@ static MACHINE_CONFIG_START( superwng, superwng_state )
MCFG_CPU_PROGRAM_MAP(superwng_sound_map)
MCFG_CPU_PERIODIC_INT(superwng_sound_nmi_assert, 4*60)
- MCFG_MACHINE_START(superwng)
- MCFG_MACHINE_RESET(superwng)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -484,8 +483,6 @@ static MACHINE_CONFIG_START( superwng, superwng_state )
MCFG_GFXDECODE(superwng)
MCFG_PALETTE_LENGTH(0x40)
- MCFG_PALETTE_INIT(superwng)
- MCFG_VIDEO_START(superwng)
MCFG_SCREEN_UPDATE_STATIC(superwng)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c
index 86e503f5717..c821cbd771a 100644
--- a/src/mame/drivers/suprgolf.c
+++ b/src/mame/drivers/suprgolf.c
@@ -66,6 +66,8 @@ public:
DECLARE_WRITE8_MEMBER(suprgolf_writeB);
DECLARE_DRIVER_INIT(suprgolf);
TILE_GET_INFO_MEMBER(get_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
};
TILE_GET_INFO_MEMBER(suprgolf_state::get_tile_info)
@@ -80,17 +82,16 @@ TILE_GET_INFO_MEMBER(suprgolf_state::get_tile_info)
0);
}
-static VIDEO_START( suprgolf )
+void suprgolf_state::video_start()
{
- suprgolf_state *state = machine.driver_data<suprgolf_state>();
- state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(suprgolf_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32 );
- state->m_paletteram = auto_alloc_array(machine, UINT8, 0x1000);
- state->m_bg_vram = auto_alloc_array(machine, UINT8, 0x2000*0x20);
- state->m_bg_fb = auto_alloc_array(machine, UINT16, 0x2000*0x20);
- state->m_fg_fb = auto_alloc_array(machine, UINT16, 0x2000*0x20);
+ m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(suprgolf_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_paletteram = auto_alloc_array(machine(), UINT8, 0x1000);
+ m_bg_vram = auto_alloc_array(machine(), UINT8, 0x2000*0x20);
+ m_bg_fb = auto_alloc_array(machine(), UINT16, 0x2000*0x20);
+ m_fg_fb = auto_alloc_array(machine(), UINT16, 0x2000*0x20);
- state->m_tilemap->set_transparent_pen(15);
+ m_tilemap->set_transparent_pen(15);
}
static SCREEN_UPDATE_IND16( suprgolf )
@@ -479,11 +480,10 @@ static GFXDECODE_START( suprgolf )
GFXDECODE_ENTRY( "gfx1", 0, gfxlayout, 0, 0x80 )
GFXDECODE_END
-static MACHINE_RESET( suprgolf )
+void suprgolf_state::machine_reset()
{
- suprgolf_state *state = machine.driver_data<suprgolf_state>();
- state->m_msm_nmi_mask = 0;
+ m_msm_nmi_mask = 0;
}
static I8255A_INTERFACE( ppi8255_intf_0 )
@@ -517,9 +517,7 @@ static MACHINE_CONFIG_START( suprgolf, suprgolf_state )
MCFG_CPU_IO_MAP(io_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_VIDEO_START(suprgolf)
- MCFG_MACHINE_RESET(suprgolf)
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_intf_0 )
MCFG_I8255A_ADD( "ppi8255_1", ppi8255_intf_1 )
diff --git a/src/mame/drivers/suprloco.c b/src/mame/drivers/suprloco.c
index c585516c0d6..a40632767d7 100644
--- a/src/mame/drivers/suprloco.c
+++ b/src/mame/drivers/suprloco.c
@@ -188,8 +188,6 @@ static MACHINE_CONFIG_START( suprloco, suprloco_state )
MCFG_GFXDECODE(suprloco)
MCFG_PALETTE_LENGTH(512+256)
- MCFG_PALETTE_INIT(suprloco)
- MCFG_VIDEO_START(suprloco)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c
index 6bcdbc2e50e..8895d3aa05b 100644
--- a/src/mame/drivers/suprnova.c
+++ b/src/mame/drivers/suprnova.c
@@ -421,17 +421,16 @@ static TIMER_DEVICE_CALLBACK( interrupt_callback )
timer.machine().device("maincpu")->execute().set_input_line(param, HOLD_LINE);
}
-static MACHINE_RESET(skns)
+void skns_state::machine_reset()
{
- skns_state *state = machine.driver_data<skns_state>();
- hit_t &hit = state->m_hit;
+ hit_t &hit = m_hit;
- if (state->m_region != 'A')
+ if (m_region != 'A')
hit.disconnect= 1;
else
hit.disconnect= 0;
- state->membank("bank1")->set_base(state->memregion("user1")->base());
+ membank("bank1")->set_base(memregion("user1")->base());
}
@@ -762,7 +761,6 @@ static MACHINE_CONFIG_START( skns, skns_state )
MCFG_MSM6242_ADD("rtc", rtc_intf)
- MCFG_MACHINE_RESET(skns)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_TIMER_ADD_PERIODIC("int15_timer", interrupt_callback, attotime::from_msec(2))
@@ -787,8 +785,6 @@ static MACHINE_CONFIG_START( skns, skns_state )
MCFG_DEVICE_ADD("spritegen", SKNS_SPRITE, 0)
- MCFG_VIDEO_START(skns)
- MCFG_VIDEO_RESET(skns)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -799,60 +795,55 @@ static MACHINE_CONFIG_START( skns, skns_state )
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
-static MACHINE_RESET(sknsa)
+MACHINE_RESET_MEMBER(skns_state,sknsa)
{
- skns_state *state = machine.driver_data<skns_state>();
- state->m_region = 'A';
- MACHINE_RESET_CALL(skns);
+ m_region = 'A';
+ skns_state::machine_reset();
}
-static MACHINE_RESET(sknsj)
+MACHINE_RESET_MEMBER(skns_state,sknsj)
{
- skns_state *state = machine.driver_data<skns_state>();
- state->m_region = 'J';
- MACHINE_RESET_CALL(skns);
+ m_region = 'J';
+ skns_state::machine_reset();
}
-static MACHINE_RESET(sknsu)
+MACHINE_RESET_MEMBER(skns_state,sknsu)
{
- skns_state *state = machine.driver_data<skns_state>();
- state->m_region = 'U';
- MACHINE_RESET_CALL(skns);
+ m_region = 'U';
+ skns_state::machine_reset();
}
-static MACHINE_RESET(sknse)
+MACHINE_RESET_MEMBER(skns_state,sknse)
{
- skns_state *state = machine.driver_data<skns_state>();
- state->m_region = 'E';
- MACHINE_RESET_CALL(skns);
+ m_region = 'E';
+ skns_state::machine_reset();
}
-static MACHINE_RESET(sknsk)
+MACHINE_RESET_MEMBER(skns_state,sknsk)
{
- skns_state *state = machine.driver_data<skns_state>();
- state->m_region = 'K';
- MACHINE_RESET_CALL(skns);
+ m_region = 'K';
+ skns_state::machine_reset();
}
static MACHINE_CONFIG_DERIVED( sknsa, skns )
- MCFG_MACHINE_RESET(sknsa)
+ MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknsa)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( sknsj, skns )
- MCFG_MACHINE_RESET(sknsj)
+ MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknsj)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( sknsu, skns )
- MCFG_MACHINE_RESET(sknsu)
+ MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknsu)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( sknse, skns )
- MCFG_MACHINE_RESET(sknse)
+ MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknse)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( sknsk, skns )
- MCFG_MACHINE_RESET(sknsk)
+ MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknsk)
MACHINE_CONFIG_END
/***** IDLE SKIPPING *****/
diff --git a/src/mame/drivers/suprridr.c b/src/mame/drivers/suprridr.c
index bddf079b80c..6f05f011564 100644
--- a/src/mame/drivers/suprridr.c
+++ b/src/mame/drivers/suprridr.c
@@ -377,8 +377,6 @@ static MACHINE_CONFIG_START( suprridr, suprridr_state )
MCFG_GFXDECODE(suprridr)
MCFG_PALETTE_LENGTH(96)
- MCFG_PALETTE_INIT(suprridr)
- MCFG_VIDEO_START(suprridr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c
index 7d9c1315158..f548dd1e7e2 100644
--- a/src/mame/drivers/suprslam.c
+++ b/src/mame/drivers/suprslam.c
@@ -293,25 +293,23 @@ static const k053936_interface suprslam_k053936_intf =
1, -45, -21 /* wrap, xoff, yoff */
};
-static MACHINE_START( suprslam )
+void suprslam_state::machine_start()
{
- suprslam_state *state = machine.driver_data<suprslam_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k053936 = machine.device("k053936");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k053936 = machine().device("k053936");
- state->save_item(NAME(state->m_screen_bank));
- state->save_item(NAME(state->m_bg_bank));
- state->save_item(NAME(state->m_pending_command));
+ save_item(NAME(m_screen_bank));
+ save_item(NAME(m_bg_bank));
+ save_item(NAME(m_pending_command));
}
-static MACHINE_RESET( suprslam )
+void suprslam_state::machine_reset()
{
- suprslam_state *state = machine.driver_data<suprslam_state>();
- state->m_screen_bank = 0;
- state->m_bg_bank = 0;
- state->m_pending_command = 0;
+ m_screen_bank = 0;
+ m_bg_bank = 0;
+ m_pending_command = 0;
}
static MACHINE_CONFIG_START( suprslam, suprslam_state )
@@ -324,8 +322,6 @@ static MACHINE_CONFIG_START( suprslam, suprslam_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(sound_io_map)
- MCFG_MACHINE_START(suprslam)
- MCFG_MACHINE_RESET(suprslam)
MCFG_GFXDECODE(suprslam)
@@ -340,7 +336,6 @@ static MACHINE_CONFIG_START( suprslam, suprslam_state )
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(suprslam)
MCFG_K053936_ADD("k053936", suprslam_k053936_intf)
diff --git a/src/mame/drivers/surpratk.c b/src/mame/drivers/surpratk.c
index 92c7f2853ae..4a3ab4e5e28 100644
--- a/src/mame/drivers/surpratk.c
+++ b/src/mame/drivers/surpratk.c
@@ -188,43 +188,41 @@ static const k05324x_interface surpratk_k05324x_intf =
surpratk_sprite_callback
};
-static MACHINE_START( surpratk )
+void surpratk_state::machine_start()
{
- surpratk_state *state = machine.driver_data<surpratk_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 28, &ROM[0x10000], 0x2000);
- state->membank("bank1")->configure_entries(28, 4, &ROM[0x08000], 0x2000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 28, &ROM[0x10000], 0x2000);
+ membank("bank1")->configure_entries(28, 4, &ROM[0x08000], 0x2000);
+ membank("bank1")->set_entry(0);
- state->m_generic_paletteram_8.allocate(0x1000);
+ m_generic_paletteram_8.allocate(0x1000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_k053244 = machine.device("k053244");
- state->m_k053251 = machine.device("k053251");
- state->m_k052109 = machine.device("k052109");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_k053244 = machine().device("k053244");
+ m_k053251 = machine().device("k053251");
+ m_k052109 = machine().device("k052109");
- state->save_item(NAME(state->m_videobank));
- state->save_item(NAME(state->m_sprite_colorbase));
- state->save_item(NAME(state->m_layer_colorbase));
- state->save_item(NAME(state->m_layerpri));
+ save_item(NAME(m_videobank));
+ save_item(NAME(m_sprite_colorbase));
+ save_item(NAME(m_layer_colorbase));
+ save_item(NAME(m_layerpri));
}
-static MACHINE_RESET( surpratk )
+void surpratk_state::machine_reset()
{
- surpratk_state *state = machine.driver_data<surpratk_state>();
int i;
- konami_configure_set_lines(machine.device("maincpu"), surpratk_banking);
+ konami_configure_set_lines(machine().device("maincpu"), surpratk_banking);
for (i = 0; i < 3; i++)
{
- state->m_layerpri[i] = 0;
- state->m_layer_colorbase[i] = 0;
+ m_layerpri[i] = 0;
+ m_layer_colorbase[i] = 0;
}
- state->m_sprite_colorbase = 0;
- state->m_videobank = 0;
+ m_sprite_colorbase = 0;
+ m_videobank = 0;
}
static MACHINE_CONFIG_START( surpratk, surpratk_state )
@@ -234,8 +232,6 @@ static MACHINE_CONFIG_START( surpratk, surpratk_state )
MCFG_CPU_PROGRAM_MAP(surpratk_map)
MCFG_CPU_VBLANK_INT("screen", surpratk_interrupt)
- MCFG_MACHINE_START(surpratk)
- MCFG_MACHINE_RESET(surpratk)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c
index c0a2ed75e77..dd49d7bddde 100644
--- a/src/mame/drivers/system1.c
+++ b/src/mame/drivers/system1.c
@@ -353,40 +353,37 @@ static const UINT8 cc_ex[0x100] = {
};
-static MACHINE_START( system1 )
+void system1_state::machine_start()
{
- system1_state *state = machine.driver_data<system1_state>();
- UINT32 numbanks = (state->memregion("maincpu")->bytes() - 0x10000) / 0x4000;
+ UINT32 numbanks = (memregion("maincpu")->bytes() - 0x10000) / 0x4000;
if (numbanks > 0)
- state->membank("bank1")->configure_entries(0, numbanks, state->memregion("maincpu")->base() + 0x10000, 0x4000);
+ membank("bank1")->configure_entries(0, numbanks, memregion("maincpu")->base() + 0x10000, 0x4000);
else
- state->membank("bank1")->configure_entry(0, state->memregion("maincpu")->base() + 0x8000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entry(0, memregion("maincpu")->base() + 0x8000);
+ membank("bank1")->set_entry(0);
- z80_set_cycle_tables(machine.device("maincpu"), cc_op, cc_cb, cc_ed, cc_xy, cc_xycb, cc_ex);
+ z80_set_cycle_tables(machine().device("maincpu"), cc_op, cc_cb, cc_ed, cc_xy, cc_xycb, cc_ex);
- state->m_mute_xor = 0x00;
+ m_mute_xor = 0x00;
- state_save_register_global(machine, state->m_dakkochn_mux_data);
- state_save_register_global(machine, state->m_videomode_prev);
- state_save_register_global(machine, state->m_mcu_control);
- state_save_register_global(machine, state->m_nob_maincpu_latch);
+ state_save_register_global(machine(), m_dakkochn_mux_data);
+ state_save_register_global(machine(), m_videomode_prev);
+ state_save_register_global(machine(), m_mcu_control);
+ state_save_register_global(machine(), m_nob_maincpu_latch);
}
-static MACHINE_START( system2 )
+MACHINE_START_MEMBER(system1_state,system2)
{
- system1_state *state = machine.driver_data<system1_state>();
- MACHINE_START_CALL(system1);
- state->m_mute_xor = 0x01;
+ system1_state::machine_start();
+ m_mute_xor = 0x01;
}
-static MACHINE_RESET( system1 )
+void system1_state::machine_reset()
{
- system1_state *state = machine.driver_data<system1_state>();
- state->m_dakkochn_mux_data = 0;
+ m_dakkochn_mux_data = 0;
}
@@ -2158,8 +2155,6 @@ static MACHINE_CONFIG_START( sys1ppi, system1_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(system1)
- MCFG_MACHINE_RESET(system1)
MCFG_I8255A_ADD( "ppi8255", ppi8255_intf )
@@ -2173,7 +2168,6 @@ static MACHINE_CONFIG_START( sys1ppi, system1_state )
MCFG_GFXDECODE(system1)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(system1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2253,10 +2247,10 @@ MACHINE_CONFIG_END
/* system2 video */
static MACHINE_CONFIG_DERIVED( sys2, sys1ppi )
- MCFG_MACHINE_START(system2)
+ MCFG_MACHINE_START_OVERRIDE(system1_state,system2)
/* video hardware */
- MCFG_VIDEO_START(system2)
+ MCFG_VIDEO_START_OVERRIDE(system1_state,system2)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(system2)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c
index c110bc631df..a1592de7f51 100644
--- a/src/mame/drivers/system16.c
+++ b/src/mame/drivers/system16.c
@@ -2032,7 +2032,7 @@ static MACHINE_CONFIG_START( system16, segas1x_bootleg_state )
MCFG_GFXDECODE(sys16)
MCFG_PALETTE_LENGTH(2048*SHADOW_COLORS_MULTIPLIER)
- MCFG_VIDEO_START(system16)
+ MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state,system16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2106,7 +2106,7 @@ static MACHINE_CONFIG_DERIVED( shinobib, system16 )
MCFG_BOOTLEG_SYS16A_SPRITES_ADD("sprites")
MCFG_BOOTLEG_SYS16A_SPRITES_XORIGIN(189-117)
- MCFG_VIDEO_START( s16a_bootleg_shinobi )
+ MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_shinobi )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg )
MACHINE_CONFIG_END
@@ -2121,7 +2121,7 @@ static MACHINE_CONFIG_DERIVED( passshtb, system16_7759 )
MCFG_BOOTLEG_SYS16A_SPRITES_XORIGIN(189-117)
MCFG_BOOTLEG_SYS16A_SPRITES_REMAP(1,0,3,2,5,4,7,6)
- MCFG_VIDEO_START( s16a_bootleg_passsht )
+ MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_passsht )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg )
MACHINE_CONFIG_END
@@ -2138,7 +2138,7 @@ static MACHINE_CONFIG_DERIVED( passsht4b, system16_7759 )
MCFG_BOOTLEG_SYS16A_SPRITES_XORIGIN(189-117)
MCFG_BOOTLEG_SYS16A_SPRITES_REMAP(1,0,3,2,5,4,7,6)
- MCFG_VIDEO_START( s16a_bootleg_passsht )
+ MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_passsht )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg_passht4b )
MACHINE_CONFIG_END
@@ -2154,7 +2154,7 @@ static MACHINE_CONFIG_DERIVED( wb3bb, system16 )
MCFG_BOOTLEG_SYS16A_SPRITES_REMAP(4,0,5,1,6,2,7,3)
MCFG_BOOTLEG_SYS16A_SPRITES_YORIGIN(0)
- MCFG_VIDEO_START( s16a_bootleg_wb3bl )
+ MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_wb3bl )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg )
MACHINE_CONFIG_END
@@ -2183,7 +2183,7 @@ static MACHINE_CONFIG_START( goldnaxeb1, segas1x_bootleg_state )
MCFG_BOOTLEG_SYS16B_SPRITES_XORIGIN(189-121)
MCFG_PALETTE_INIT( all_black )
- MCFG_VIDEO_START(system16)
+ MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state,system16)
MACHINE_CONFIG_END
@@ -2312,7 +2312,7 @@ static MACHINE_CONFIG_START( system18, segas1x_bootleg_state )
MCFG_GFXDECODE(sys16)
MCFG_PALETTE_LENGTH((2048+2048)*SHADOW_COLORS_MULTIPLIER) // 64 extra colours for vdp (but we use 2048 so shadow mask works)
- MCFG_VIDEO_START(system18old)
+ MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state,system18old)
MCFG_BOOTLEG_SYS16B_SPRITES_ADD("sprites")
MCFG_BOOTLEG_SYS16B_SPRITES_XORIGIN(189-107)
diff --git a/src/mame/drivers/tagteam.c b/src/mame/drivers/tagteam.c
index f4677946861..d62fc9b3c11 100644
--- a/src/mame/drivers/tagteam.c
+++ b/src/mame/drivers/tagteam.c
@@ -226,8 +226,6 @@ static MACHINE_CONFIG_START( tagteam, tagteam_state )
MCFG_GFXDECODE(tagteam)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(tagteam)
- MCFG_VIDEO_START(tagteam)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c
index 55dbc951182..42398978087 100644
--- a/src/mame/drivers/tail2nos.c
+++ b/src/mame/drivers/tail2nos.c
@@ -205,34 +205,32 @@ static const k051316_interface tail2nos_k051316_intf =
tail2nos_zoom_callback
};
-static MACHINE_START( tail2nos )
+void tail2nos_state::machine_start()
{
- tail2nos_state *state = machine.driver_data<tail2nos_state>();
- UINT8 *ROM = state->memregion("audiocpu")->base();
+ UINT8 *ROM = memregion("audiocpu")->base();
- state->membank("bank3")->configure_entries(0, 2, &ROM[0x10000], 0x8000);
- state->membank("bank3")->set_entry(0);
+ membank("bank3")->configure_entries(0, 2, &ROM[0x10000], 0x8000);
+ membank("bank3")->set_entry(0);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k051316 = machine.device("k051316");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k051316 = machine().device("k051316");
- state->save_item(NAME(state->m_charbank));
- state->save_item(NAME(state->m_charpalette));
- state->save_item(NAME(state->m_video_enable));
+ save_item(NAME(m_charbank));
+ save_item(NAME(m_charpalette));
+ save_item(NAME(m_video_enable));
}
-static MACHINE_RESET( tail2nos )
+void tail2nos_state::machine_reset()
{
- tail2nos_state *state = machine.driver_data<tail2nos_state>();
/* point to the extra ROMs */
- state->membank("bank1")->set_base(state->memregion("user1")->base());
- state->membank("bank2")->set_base(state->memregion("user2")->base());
+ membank("bank1")->set_base(memregion("user1")->base());
+ membank("bank2")->set_base(memregion("user2")->base());
- state->m_charbank = 0;
- state->m_charpalette = 0;
- state->m_video_enable = 0;
+ m_charbank = 0;
+ m_charpalette = 0;
+ m_video_enable = 0;
}
static MACHINE_CONFIG_START( tail2nos, tail2nos_state )
@@ -246,8 +244,6 @@ static MACHINE_CONFIG_START( tail2nos, tail2nos_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(sound_port_map)
/* IRQs are triggered by the YM2608 */
- MCFG_MACHINE_START(tail2nos)
- MCFG_MACHINE_RESET(tail2nos)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -260,7 +256,6 @@ static MACHINE_CONFIG_START( tail2nos, tail2nos_state )
MCFG_GFXDECODE(tail2nos)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(tail2nos)
MCFG_K051316_ADD("k051316", tail2nos_k051316_intf)
diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c
index 7fe7a11c92a..9a754709cc0 100644
--- a/src/mame/drivers/taito_b.c
+++ b/src/mame/drivers/taito_b.c
@@ -2013,28 +2013,26 @@ static const tc0140syt_interface taitob_tc0140syt_intf =
"maincpu", "audiocpu"
};
-static MACHINE_START( taitob )
+void taitob_state::machine_start()
{
- taitob_state *state = machine.driver_data<taitob_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_mb87078 = machine.device("mb87078");
- state->m_ym = machine.device("ymsnd");
- state->m_tc0180vcu = machine.device("tc0180vcu");
- state->m_tc0640fio = machine.device("tc0640fio");
- state->m_tc0220ioc = machine.device("tc0220ioc");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_mb87078 = machine().device("mb87078");
+ m_ym = machine().device("ymsnd");
+ m_tc0180vcu = machine().device("tc0180vcu");
+ m_tc0640fio = machine().device("tc0640fio");
+ m_tc0220ioc = machine().device("tc0220ioc");
- state->save_item(NAME(state->m_eep_latch));
- state->save_item(NAME(state->m_coin_word));
+ save_item(NAME(m_eep_latch));
+ save_item(NAME(m_coin_word));
}
-static MACHINE_RESET( taitob )
+void taitob_state::machine_reset()
{
- taitob_state *state = machine.driver_data<taitob_state>();
- state->m_eep_latch = 0;
- state->m_coin_word = 0;
+ m_eep_latch = 0;
+ m_coin_word = 0;
}
static MACHINE_CONFIG_START( rastsag2, taitob_state )
@@ -2049,8 +2047,6 @@ static MACHINE_CONFIG_START( rastsag2, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2066,7 +2062,7 @@ static MACHINE_CONFIG_START( rastsag2, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order0)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order0)
MCFG_TC0180VCU_ADD("tc0180vcu", color0_tc0180vcu_intf)
@@ -2095,8 +2091,6 @@ static MACHINE_CONFIG_START( ashura, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2112,7 +2106,7 @@ static MACHINE_CONFIG_START( ashura, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order0)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order0)
MCFG_TC0180VCU_ADD("tc0180vcu", color0_tc0180vcu_intf)
@@ -2141,8 +2135,6 @@ static MACHINE_CONFIG_START( crimec, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2158,7 +2150,7 @@ static MACHINE_CONFIG_START( crimec, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order1)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order1)
MCFG_TC0180VCU_ADD("tc0180vcu", color1_tc0180vcu_intf)
@@ -2187,8 +2179,6 @@ static MACHINE_CONFIG_START( tetrist, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2204,7 +2194,7 @@ static MACHINE_CONFIG_START( tetrist, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order0)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order0)
MCFG_TC0180VCU_ADD("tc0180vcu", color0_tc0180vcu_intf)
@@ -2232,8 +2222,6 @@ static MACHINE_CONFIG_START( tetrista, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2249,7 +2237,7 @@ static MACHINE_CONFIG_START( tetrista, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order2)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
MCFG_TC0180VCU_ADD("tc0180vcu", color2_tc0180vcu_intf)
@@ -2278,8 +2266,6 @@ static MACHINE_CONFIG_START( hitice, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2295,8 +2281,8 @@ static MACHINE_CONFIG_START( hitice, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(hitice)
- MCFG_VIDEO_RESET(hitice)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,hitice)
+ MCFG_VIDEO_RESET_OVERRIDE(taitob_state,hitice)
MCFG_TC0180VCU_ADD("tc0180vcu", color0_tc0180vcu_intf)
@@ -2329,8 +2315,6 @@ static MACHINE_CONFIG_START( rambo3p, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2346,7 +2330,7 @@ static MACHINE_CONFIG_START( rambo3p, taitob_state )
MCFG_GFXDECODE(rambo3)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order0)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order0)
MCFG_TC0180VCU_ADD("tc0180vcu", color0_tc0180vcu_intf)
@@ -2375,8 +2359,6 @@ static MACHINE_CONFIG_START( rambo3, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2392,7 +2374,7 @@ static MACHINE_CONFIG_START( rambo3, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order2)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
MCFG_TC0180VCU_ADD("tc0180vcu", color2_tc0180vcu_intf)
@@ -2418,8 +2400,6 @@ static MACHINE_CONFIG_START( pbobble, taitob_state )
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* 4 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
@@ -2441,7 +2421,7 @@ static MACHINE_CONFIG_START( pbobble, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order1)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order1)
MCFG_TC0180VCU_ADD("tc0180vcu", color1_tc0180vcu_intf)
@@ -2470,8 +2450,6 @@ static MACHINE_CONFIG_START( spacedx, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_EEPROM_ADD("eeprom", taitob_eeprom_intf)
@@ -2491,7 +2469,7 @@ static MACHINE_CONFIG_START( spacedx, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order1)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order1)
MCFG_TC0180VCU_ADD("tc0180vcu", color1_tc0180vcu_intf)
@@ -2520,8 +2498,6 @@ static MACHINE_CONFIG_START( spacedxo, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2537,7 +2513,7 @@ static MACHINE_CONFIG_START( spacedxo, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order2)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
MCFG_TC0180VCU_ADD("tc0180vcu", color2_tc0180vcu_intf)
@@ -2566,8 +2542,6 @@ static MACHINE_CONFIG_START( qzshowby, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_EEPROM_ADD("eeprom", taitob_eeprom_intf)
@@ -2587,7 +2561,7 @@ static MACHINE_CONFIG_START( qzshowby, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order1)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order1)
MCFG_TC0180VCU_ADD("tc0180vcu", color1_tc0180vcu_intf)
@@ -2616,8 +2590,6 @@ static MACHINE_CONFIG_START( viofight, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2633,7 +2605,7 @@ static MACHINE_CONFIG_START( viofight, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order2)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
MCFG_TC0180VCU_ADD("tc0180vcu", color2_tc0180vcu_intf)
@@ -2665,8 +2637,6 @@ static MACHINE_CONFIG_START( masterw, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2682,7 +2652,7 @@ static MACHINE_CONFIG_START( masterw, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order2)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
MCFG_TC0180VCU_ADD("tc0180vcu", color2_tc0180vcu_intf)
@@ -2712,8 +2682,6 @@ static MACHINE_CONFIG_START( silentd, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2729,7 +2697,7 @@ static MACHINE_CONFIG_START( silentd, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order2)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
MCFG_TC0180VCU_ADD("tc0180vcu", color2_tc0180vcu_intf)
@@ -2758,8 +2726,6 @@ static MACHINE_CONFIG_START( selfeena, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2775,7 +2741,7 @@ static MACHINE_CONFIG_START( selfeena, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order2)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
MCFG_TC0180VCU_ADD("tc0180vcu", color2_tc0180vcu_intf)
@@ -2813,8 +2779,6 @@ static MACHINE_CONFIG_START( ryujin, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0220IOC_ADD("tc0220ioc", taitob_io_intf)
@@ -2830,7 +2794,7 @@ static MACHINE_CONFIG_START( ryujin, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order2)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
MCFG_TC0180VCU_ADD("tc0180vcu", color2_tc0180vcu_intf)
@@ -2866,8 +2830,6 @@ static MACHINE_CONFIG_START( sbm, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0510NIO_ADD("tc0510nio", sbm_io_intf)
@@ -2883,7 +2845,7 @@ static MACHINE_CONFIG_START( sbm, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitob_color_order0)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order0)
MCFG_TC0180VCU_ADD("tc0180vcu", color0_tc0180vcu_intf)
@@ -2917,8 +2879,6 @@ static MACHINE_CONFIG_START( realpunc, taitob_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(taitob)
- MCFG_MACHINE_RESET(taitob)
MCFG_TC0510NIO_ADD("tc0510nio", realpunc_io_intf)
@@ -2934,7 +2894,7 @@ static MACHINE_CONFIG_START( realpunc, taitob_state )
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(realpunc)
+ MCFG_VIDEO_START_OVERRIDE(taitob_state,realpunc)
MCFG_SCREEN_UPDATE_STATIC(realpunc)
MCFG_HD63484_ADD("hd63484", realpunc_hd63484_intf)
diff --git a/src/mame/drivers/taito_f2.c b/src/mame/drivers/taito_f2.c
index 7f3cf670cd7..a3bf1192b49 100644
--- a/src/mame/drivers/taito_f2.c
+++ b/src/mame/drivers/taito_f2.c
@@ -3016,25 +3016,24 @@ static const tc0140syt_interface taitof2_tc0140syt_intf =
"maincpu", "audiocpu"
};
-static MACHINE_START( common )
+MACHINE_START_MEMBER(taitof2_state,common)
{
- taitof2_state *state = machine.driver_data<taitof2_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");;
- state->m_tc0100scn = machine.device("tc0100scn");;
- state->m_tc0100scn_1 = machine.device("tc0100scn_1");;
- state->m_tc0100scn_2 = machine.device("tc0100scn_2");;
- state->m_tc0360pri = machine.device("tc0360pri");;
- state->m_tc0280grd = machine.device("tc0280grd");;
- state->m_tc0430grw = machine.device("tc0430grw");;
- state->m_tc0480scp = machine.device("tc0480scp");;
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");;
+ m_tc0100scn = machine().device("tc0100scn");;
+ m_tc0100scn_1 = machine().device("tc0100scn_1");;
+ m_tc0100scn_2 = machine().device("tc0100scn_2");;
+ m_tc0360pri = machine().device("tc0360pri");;
+ m_tc0280grd = machine().device("tc0280grd");;
+ m_tc0430grw = machine().device("tc0430grw");;
+ m_tc0480scp = machine().device("tc0480scp");;
}
-static MACHINE_START( f2 )
+MACHINE_START_MEMBER(taitof2_state,f2)
{
- MACHINE_START_CALL(common);
- machine.root_device().membank("bank2")->configure_entries(0, 8, machine.root_device().memregion("audiocpu")->base() + 0x10000, 0x4000);
+ MACHINE_START_CALL_MEMBER(common);
+ machine().root_device().membank("bank2")->configure_entries(0, 8, machine().root_device().memregion("audiocpu")->base() + 0x10000, 0x4000);
}
static MACHINE_CONFIG_START( taito_f2, taitof2_state )
@@ -3046,7 +3045,7 @@ static MACHINE_CONFIG_START( taito_f2, taitof2_state )
MCFG_CPU_ADD("audiocpu", Z80, 24000000/6) /* 4 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(f2)
+ MCFG_MACHINE_START_OVERRIDE(taitof2_state,f2)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3060,7 +3059,7 @@ static MACHINE_CONFIG_START( taito_f2, taitof2_state )
MCFG_GFXDECODE(taitof2)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitof2_default)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_default)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3098,7 +3097,7 @@ static MACHINE_CONFIG_DERIVED( finalb, taito_f2_tc0220ioc )
/* video hardware */
MCFG_GFXDECODE(finalb)
- MCFG_VIDEO_START(taitof2_finalb)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_finalb)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
@@ -3115,7 +3114,7 @@ static MACHINE_CONFIG_DERIVED( dondokod, taito_f2_tc0220ioc )
/* video hardware */
MCFG_GFXDECODE(pivot)
- MCFG_VIDEO_START(taitof2_dondokod)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
@@ -3133,7 +3132,7 @@ static MACHINE_CONFIG_DERIVED( megab, taito_f2_tc0220ioc )
MCFG_CPU_PROGRAM_MAP(megab_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_megab)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
@@ -3150,7 +3149,7 @@ static MACHINE_CONFIG_DERIVED( thundfox, taito_f2_tc0220ioc )
/* video hardware */
MCFG_GFXDECODE(thundfox)
- MCFG_VIDEO_START(taitof2_thundfox)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_thundfox)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_thundfox)
MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_thundfox)
@@ -3169,7 +3168,7 @@ static MACHINE_CONFIG_DERIVED( cameltry, taito_f2_tc0220ioc )
/* video hardware */
MCFG_GFXDECODE(pivot)
- MCFG_VIDEO_START(taitof2_dondokod)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
@@ -3202,7 +3201,7 @@ static MACHINE_CONFIG_DERIVED( liquidk, taito_f2_tc0220ioc )
MCFG_CPU_PROGRAM_MAP(liquidk_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_megab)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
@@ -3235,7 +3234,7 @@ static MACHINE_CONFIG_DERIVED( ssi, taito_f2_tc0510nio )
MCFG_CPU_PROGRAM_MAP(ssi_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_ssi)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_ssi)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_ssi)
MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_thundfox) // buffer_delayed_thundfox instead of buffer_delayed fixes the butterfly powerup
@@ -3251,7 +3250,7 @@ static MACHINE_CONFIG_DERIVED( gunfront, taito_f2_tc0510nio )
MCFG_CPU_PROGRAM_MAP(gunfront_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_gunfront)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_gunfront)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
@@ -3268,7 +3267,7 @@ static MACHINE_CONFIG_DERIVED( growl, taito_f2 )
MCFG_CPU_PROGRAM_MAP(growl_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_growl)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_growl)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
@@ -3284,7 +3283,7 @@ static MACHINE_CONFIG_DERIVED( mjnquest, taito_f2 )
MCFG_CPU_PROGRAM_MAP(mjnquest_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_mjnquest)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_mjnquest)
MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf)
MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf)
@@ -3299,7 +3298,7 @@ static MACHINE_CONFIG_DERIVED( footchmp, taito_f2 )
/* video hardware */
MCFG_GFXDECODE(deadconx)
- MCFG_VIDEO_START(taitof2_footchmp)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_footchmp)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx)
MCFG_SCREEN_VBLANK_STATIC(taitof2_full_buffer_delayed)
@@ -3323,7 +3322,7 @@ static MACHINE_CONFIG_DERIVED( hthero, taito_f2 )
/* video hardware */
MCFG_GFXDECODE(deadconx)
- MCFG_VIDEO_START(taitof2_hthero)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_hthero)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx)
MCFG_SCREEN_VBLANK_STATIC(taitof2_full_buffer_delayed)
@@ -3340,7 +3339,7 @@ static MACHINE_CONFIG_DERIVED( koshien, taito_f2_tc0510nio )
MCFG_CPU_PROGRAM_MAP(koshien_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_koshien)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_koshien)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
@@ -3357,7 +3356,7 @@ static MACHINE_CONFIG_DERIVED( yuyugogo, taito_f2_tc0510nio )
/* video hardware */
MCFG_GFXDECODE(yuyugogo)
- MCFG_VIDEO_START(taitof2_yuyugogo)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_yuyugogo)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_yesnoj)
@@ -3372,7 +3371,7 @@ static MACHINE_CONFIG_DERIVED( ninjak, taito_f2 )
MCFG_CPU_PROGRAM_MAP(ninjak_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_ninjak)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_ninjak)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
@@ -3388,7 +3387,7 @@ static MACHINE_CONFIG_DERIVED( solfigtr, taito_f2 )
MCFG_CPU_PROGRAM_MAP(solfigtr_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_solfigtr)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_solfigtr)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
@@ -3419,7 +3418,7 @@ static MACHINE_CONFIG_DERIVED( pulirula, taito_f2_tc0510nio )
/* video hardware */
MCFG_GFXDECODE(pivot)
- MCFG_VIDEO_START(taitof2_pulirula)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_pulirula)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
@@ -3438,7 +3437,7 @@ static MACHINE_CONFIG_DERIVED( metalb, taito_f2_tc0510nio )
/* video hardware */
MCFG_GFXDECODE(deadconx)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(taitof2_metalb)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_metalb)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_metalb)
@@ -3454,7 +3453,7 @@ static MACHINE_CONFIG_DERIVED( qzchikyu, taito_f2_tc0510nio )
MCFG_CPU_PROGRAM_MAP(qzchikyu_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_qzchikyu)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_qzchikyu)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_qzchikyu)
@@ -3470,7 +3469,7 @@ static MACHINE_CONFIG_DERIVED( yesnoj, taito_f2 )
/* video hardware */
MCFG_GFXDECODE(yuyugogo)
- MCFG_VIDEO_START(taitof2_yesnoj)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_yesnoj)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_yesnoj)
@@ -3486,7 +3485,7 @@ static MACHINE_CONFIG_DERIVED( deadconx, taito_f2 )
/* video hardware */
MCFG_GFXDECODE(deadconx)
- MCFG_VIDEO_START(taitof2_deadconx)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_deadconx)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx)
@@ -3503,7 +3502,7 @@ static MACHINE_CONFIG_DERIVED( deadconxj, taito_f2 )
/* video hardware */
MCFG_GFXDECODE(deadconx)
- MCFG_VIDEO_START(taitof2_deadconxj)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_deadconxj)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx)
@@ -3519,7 +3518,7 @@ static MACHINE_CONFIG_DERIVED( dinorex, taito_f2_tc0510nio )
MCFG_CPU_PROGRAM_MAP(dinorex_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_dinorex)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dinorex)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
@@ -3535,7 +3534,7 @@ static MACHINE_CONFIG_DERIVED( qjinsei, taito_f2_tc0510nio )
MCFG_CPU_PROGRAM_MAP(qjinsei_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_quiz)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
@@ -3551,7 +3550,7 @@ static MACHINE_CONFIG_DERIVED( qcrayon, taito_f2_tc0510nio )
MCFG_CPU_PROGRAM_MAP(qcrayon_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_quiz)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
@@ -3567,7 +3566,7 @@ static MACHINE_CONFIG_DERIVED( qcrayon2, taito_f2_tc0510nio )
MCFG_CPU_PROGRAM_MAP(qcrayon2_map)
/* video hardware */
- MCFG_VIDEO_START(taitof2_quiz)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
@@ -3584,7 +3583,7 @@ static MACHINE_CONFIG_DERIVED( driftout, taito_f2_tc0510nio )
/* video hardware */
MCFG_GFXDECODE(pivot)
- MCFG_VIDEO_START(taitof2_driftout)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_driftout)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
@@ -3604,7 +3603,7 @@ static MACHINE_CONFIG_START( cameltrya, taitof2_state )
MCFG_CPU_ADD("audiocpu", Z80,24000000/4) /* verifed on pcb */
MCFG_CPU_PROGRAM_MAP(cameltrya_sound_map)
- MCFG_MACHINE_START(common)
+ MCFG_MACHINE_START_OVERRIDE(taitof2_state,common)
MCFG_TC0220IOC_ADD("tc0220ioc", taitof2_io220_intf)
@@ -3620,7 +3619,7 @@ static MACHINE_CONFIG_START( cameltrya, taitof2_state )
MCFG_GFXDECODE(pivot)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitof2_dondokod)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod)
MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf)
MCFG_TC0430GRW_ADD("tc0280grd", taitof2_tc0280grd_intf)
@@ -3653,7 +3652,7 @@ static MACHINE_CONFIG_START( driveout, taitof2_state )
MCFG_CPU_ADD("audiocpu", Z80,24000000/6) /* 4 MHz */
MCFG_CPU_PROGRAM_MAP(driveout_sound_map)
- MCFG_MACHINE_START(common)
+ MCFG_MACHINE_START_OVERRIDE(taitof2_state,common)
MCFG_TC0510NIO_ADD("tc0510nio", taitof2_io510_intf)
@@ -3669,7 +3668,7 @@ static MACHINE_CONFIG_START( driveout, taitof2_state )
MCFG_GFXDECODE(pivot)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitof2_driftout)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_driftout)
MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf)
MCFG_TC0430GRW_ADD("tc0430grw", taitof2_tc0430grw_intf)
diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c
index 4584682f529..fb6f96517dd 100644
--- a/src/mame/drivers/taito_f3.c
+++ b/src/mame/drivers/taito_f3.c
@@ -419,10 +419,9 @@ static const UINT16 recalh_eeprom[64] = {
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
};
-static MACHINE_START(f3)
+MACHINE_START_MEMBER(taito_f3_state,f3)
{
- taito_f3_state *state = machine.driver_data<taito_f3_state>();
- state_save_register_global_array(machine, state->m_coin_word);
+ state_save_register_global_array(machine(), m_coin_word);
}
static MACHINE_CONFIG_START( f3, taito_f3_state )
@@ -432,7 +431,7 @@ static MACHINE_CONFIG_START( f3, taito_f3_state )
MCFG_CPU_PROGRAM_MAP(f3_map)
MCFG_CPU_VBLANK_INT("screen", f3_interrupt2)
- MCFG_MACHINE_START(f3)
+ MCFG_MACHINE_START_OVERRIDE(taito_f3_state,f3)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -448,7 +447,7 @@ static MACHINE_CONFIG_START( f3, taito_f3_state )
MCFG_GFXDECODE(taito_f3)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(f3)
+ MCFG_VIDEO_START_OVERRIDE(taito_f3_state,f3)
/* sound hardware */
MCFG_FRAGMENT_ADD(taito_en_sound)
@@ -526,7 +525,7 @@ static MACHINE_CONFIG_START( bubsympb, taito_f3_state )
MCFG_CPU_PROGRAM_MAP(f3_map)
MCFG_CPU_VBLANK_INT("screen", f3_interrupt2)
- MCFG_MACHINE_START(f3)
+ MCFG_MACHINE_START_OVERRIDE(taito_f3_state,f3)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -542,7 +541,7 @@ static MACHINE_CONFIG_START( bubsympb, taito_f3_state )
MCFG_GFXDECODE(bubsympb)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(f3)
+ MCFG_VIDEO_START_OVERRIDE(taito_f3_state,f3)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c
index cd8d620a09b..6e82ad8dca8 100644
--- a/src/mame/drivers/taito_h.c
+++ b/src/mame/drivers/taito_h.c
@@ -516,25 +516,23 @@ static GFXDECODE_START( dleague )
GFXDECODE_END
-static MACHINE_RESET( taitoh )
+void taitoh_state::machine_reset()
{
- taitoh_state *state = machine.driver_data<taitoh_state>();
- state->m_banknum = 0;
+ m_banknum = 0;
}
-static MACHINE_START( taitoh )
+void taitoh_state::machine_start()
{
- taitoh_state *state = machine.driver_data<taitoh_state>();
- UINT8 *ROM = state->memregion("audiocpu")->base();
+ UINT8 *ROM = memregion("audiocpu")->base();
- state->membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000);
+ membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000);
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_tc0220ioc = machine.device("tc0220ioc");
- state->m_tc0080vco = machine.device("tc0080vco");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_tc0220ioc = machine().device("tc0220ioc");
+ m_tc0080vco = machine().device("tc0080vco");
- state->save_item(NAME(state->m_banknum));
- machine.save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine));
+ save_item(NAME(m_banknum));
+ machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
}
@@ -573,8 +571,6 @@ static MACHINE_CONFIG_START( syvalion, taitoh_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz / 2) /* 4 MHz ??? */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(taitoh)
- MCFG_MACHINE_RESET(taitoh)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
@@ -616,8 +612,6 @@ static MACHINE_CONFIG_START( recordbr, taitoh_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz / 2) /* 4 MHz ??? */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(taitoh)
- MCFG_MACHINE_RESET(taitoh)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
@@ -659,8 +653,6 @@ static MACHINE_CONFIG_START( dleague, taitoh_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz / 2) /* 4 MHz ??? */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(taitoh)
- MCFG_MACHINE_RESET(taitoh)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c
index 70181420b9f..92235577d5b 100644
--- a/src/mame/drivers/taito_l.c
+++ b/src/mame/drivers/taito_l.c
@@ -140,21 +140,20 @@ static void state_register( running_machine &machine )
state->save_item(NAME(state->m_flipscreen));
}
-static MACHINE_START( taito_l )
+MACHINE_START_MEMBER(taitol_state,taito_l)
{
- taitol_state *state = machine.driver_data<taitol_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_rambanks));
- state->save_item(NAME(state->m_palette_ram));
- state->save_item(NAME(state->m_empty_ram));
+ save_item(NAME(m_rambanks));
+ save_item(NAME(m_palette_ram));
+ save_item(NAME(m_empty_ram));
- state_register(machine);
+ state_register(machine());
}
-static void machine_reset(running_machine &machine)
+static void taito_machine_reset(running_machine &machine)
{
taitol_state *state = machine.driver_data<taitol_state>();
int i;
@@ -200,105 +199,95 @@ static void machine_reset(running_machine &machine)
}
-static MACHINE_RESET( fhawk )
+MACHINE_RESET_MEMBER(taitol_state,fhawk)
{
- taitol_state *state = machine.driver_data<taitol_state>();
- machine_reset(machine);
- state->m_porte0_tag = NULL;
- state->m_porte1_tag = NULL;
- state->m_portf0_tag = NULL;
- state->m_portf1_tag = NULL;
+ taito_machine_reset(machine());
+ m_porte0_tag = NULL;
+ m_porte1_tag = NULL;
+ m_portf0_tag = NULL;
+ m_portf1_tag = NULL;
}
-static MACHINE_RESET( raimais )
+MACHINE_RESET_MEMBER(taitol_state,raimais)
{
- taitol_state *state = machine.driver_data<taitol_state>();
- machine_reset(machine);
- state->m_porte0_tag = NULL;
- state->m_porte1_tag = NULL;
- state->m_portf0_tag = NULL;
- state->m_portf1_tag = NULL;
+ taito_machine_reset(machine());
+ m_porte0_tag = NULL;
+ m_porte1_tag = NULL;
+ m_portf0_tag = NULL;
+ m_portf1_tag = NULL;
}
-static MACHINE_RESET( champwr )
+MACHINE_RESET_MEMBER(taitol_state,champwr)
{
- taitol_state *state = machine.driver_data<taitol_state>();
- machine_reset(machine);
- state->m_porte0_tag = NULL;
- state->m_porte1_tag = NULL;
- state->m_portf0_tag = NULL;
- state->m_portf1_tag = NULL;
+ taito_machine_reset(machine());
+ m_porte0_tag = NULL;
+ m_porte1_tag = NULL;
+ m_portf0_tag = NULL;
+ m_portf1_tag = NULL;
}
-static MACHINE_RESET( kurikint )
+MACHINE_RESET_MEMBER(taitol_state,kurikint)
{
- taitol_state *state = machine.driver_data<taitol_state>();
- machine_reset(machine);
- state->m_porte0_tag = NULL;
- state->m_porte1_tag = NULL;
- state->m_portf0_tag = NULL;
- state->m_portf1_tag = NULL;
+ taito_machine_reset(machine());
+ m_porte0_tag = NULL;
+ m_porte1_tag = NULL;
+ m_portf0_tag = NULL;
+ m_portf1_tag = NULL;
}
-static MACHINE_RESET( evilston )
+MACHINE_RESET_MEMBER(taitol_state,evilston)
{
- taitol_state *state = machine.driver_data<taitol_state>();
- machine_reset(machine);
- state->m_porte0_tag = NULL;
- state->m_porte1_tag = NULL;
- state->m_portf0_tag = NULL;
- state->m_portf1_tag = NULL;
+ taito_machine_reset(machine());
+ m_porte0_tag = NULL;
+ m_porte1_tag = NULL;
+ m_portf0_tag = NULL;
+ m_portf1_tag = NULL;
}
-static MACHINE_RESET( puzznic )
+MACHINE_RESET_MEMBER(taitol_state,puzznic)
{
- taitol_state *state = machine.driver_data<taitol_state>();
- machine_reset(machine);
- state->m_porte0_tag = "DSWA";
- state->m_porte1_tag = "DSWB";
- state->m_portf0_tag = "IN0";
- state->m_portf1_tag = "IN1";
+ taito_machine_reset(machine());
+ m_porte0_tag = "DSWA";
+ m_porte1_tag = "DSWB";
+ m_portf0_tag = "IN0";
+ m_portf1_tag = "IN1";
}
-static MACHINE_RESET( plotting )
+MACHINE_RESET_MEMBER(taitol_state,plotting)
{
- taitol_state *state = machine.driver_data<taitol_state>();
- machine_reset(machine);
- state->m_porte0_tag = "DSWA";
- state->m_porte1_tag = "DSWB";
- state->m_portf0_tag = "IN0";
- state->m_portf1_tag = "IN1";
+ taito_machine_reset(machine());
+ m_porte0_tag = "DSWA";
+ m_porte1_tag = "DSWB";
+ m_portf0_tag = "IN0";
+ m_portf1_tag = "IN1";
}
-static MACHINE_RESET( palamed )
+MACHINE_RESET_MEMBER(taitol_state,palamed)
{
- taitol_state *state = machine.driver_data<taitol_state>();
- machine_reset(machine);
- state->m_porte0_tag = "DSWA";
- state->m_porte1_tag = NULL;
- state->m_portf0_tag = "DSWB";
- state->m_portf1_tag = NULL;
+ taito_machine_reset(machine());
+ m_porte0_tag = "DSWA";
+ m_porte1_tag = NULL;
+ m_portf0_tag = "DSWB";
+ m_portf1_tag = NULL;
}
-static MACHINE_RESET( cachat )
+MACHINE_RESET_MEMBER(taitol_state,cachat)
{
- taitol_state *state = machine.driver_data<taitol_state>();
- machine_reset(machine);
- state->m_porte0_tag = "DSWA";
- state->m_porte1_tag = NULL;
- state->m_portf0_tag = "DSWB";
- state->m_portf1_tag = NULL;
+ taito_machine_reset(machine());
+ m_porte0_tag = "DSWA";
+ m_porte1_tag = NULL;
+ m_portf0_tag = "DSWB";
+ m_portf1_tag = NULL;
}
-static MACHINE_RESET( horshoes )
+MACHINE_RESET_MEMBER(taitol_state,horshoes)
{
- taitol_state *state = machine.driver_data<taitol_state>();
- machine_reset(machine);
- state->m_porte0_tag = "DSWA";
- state->m_porte1_tag = "DSWB";
- state->m_portf0_tag = "IN0";
- state->m_portf1_tag = "IN1";
+ taito_machine_reset(machine());
+ m_porte0_tag = "DSWA";
+ m_porte1_tag = "DSWB";
+ m_portf0_tag = "IN0";
+ m_portf1_tag = "IN1";
}
@@ -1866,8 +1855,8 @@ static MACHINE_CONFIG_START( fhawk, taitol_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(taito_l)
- MCFG_MACHINE_RESET(fhawk)
+ MCFG_MACHINE_START_OVERRIDE(taitol_state,taito_l)
+ MCFG_MACHINE_RESET_OVERRIDE(taitol_state,fhawk)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1881,7 +1870,7 @@ static MACHINE_CONFIG_START( fhawk, taitol_state )
MCFG_GFXDECODE(2)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(taitol)
+ MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1909,7 +1898,7 @@ static MACHINE_CONFIG_DERIVED( champwr, fhawk )
MCFG_CPU_MODIFY("slave")
MCFG_CPU_PROGRAM_MAP(champwr_2_map)
- MCFG_MACHINE_RESET(champwr)
+ MCFG_MACHINE_RESET_OVERRIDE(taitol_state,champwr)
/* sound hardware */
MCFG_SOUND_MODIFY("ymsnd")
@@ -1934,7 +1923,7 @@ static MACHINE_CONFIG_DERIVED( raimais, fhawk )
MCFG_CPU_MODIFY("slave")
MCFG_CPU_PROGRAM_MAP(raimais_2_map)
- MCFG_MACHINE_RESET(raimais)
+ MCFG_MACHINE_RESET_OVERRIDE(taitol_state,raimais)
/* sound hardware */
MCFG_SOUND_REPLACE("ymsnd", YM2610, XTAL_8MHz) /* verified on pcb (8Mhz OSC is also for the 2nd z80) */
@@ -1958,8 +1947,8 @@ static MACHINE_CONFIG_START( kurikint, taitol_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(taito_l)
- MCFG_MACHINE_RESET(kurikint)
+ MCFG_MACHINE_START_OVERRIDE(taitol_state,taito_l)
+ MCFG_MACHINE_RESET_OVERRIDE(taitol_state,kurikint)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1973,7 +1962,7 @@ static MACHINE_CONFIG_START( kurikint, taitol_state )
MCFG_GFXDECODE(2)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(taitol)
+ MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2004,8 +1993,8 @@ static MACHINE_CONFIG_START( plotting, taitol_state )
MCFG_CPU_PROGRAM_MAP(plotting_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", vbl_interrupt, "screen", 0, 1)
- MCFG_MACHINE_START(taito_l)
- MCFG_MACHINE_RESET(plotting)
+ MCFG_MACHINE_START_OVERRIDE(taitol_state,taito_l)
+ MCFG_MACHINE_RESET_OVERRIDE(taitol_state,plotting)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2019,7 +2008,7 @@ static MACHINE_CONFIG_START( plotting, taitol_state )
MCFG_GFXDECODE(1)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(taitol)
+ MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2041,7 +2030,7 @@ static MACHINE_CONFIG_DERIVED( puzznic, plotting )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(puzznic_map)
- MCFG_MACHINE_RESET(puzznic)
+ MCFG_MACHINE_RESET_OVERRIDE(taitol_state,puzznic)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( puzznici, plotting )
@@ -2050,7 +2039,7 @@ static MACHINE_CONFIG_DERIVED( puzznici, plotting )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(puzznici_map)
- MCFG_MACHINE_RESET(puzznic)
+ MCFG_MACHINE_RESET_OVERRIDE(taitol_state,puzznic)
MACHINE_CONFIG_END
@@ -2060,7 +2049,7 @@ static MACHINE_CONFIG_DERIVED( horshoes, plotting )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(horshoes_map)
- MCFG_MACHINE_RESET(horshoes)
+ MCFG_MACHINE_RESET_OVERRIDE(taitol_state,horshoes)
MACHINE_CONFIG_END
@@ -2070,7 +2059,7 @@ static MACHINE_CONFIG_DERIVED( palamed, plotting )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(palamed_map)
- MCFG_MACHINE_RESET(palamed)
+ MCFG_MACHINE_RESET_OVERRIDE(taitol_state,palamed)
MACHINE_CONFIG_END
@@ -2080,7 +2069,7 @@ static MACHINE_CONFIG_DERIVED( cachat, plotting )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(cachat_map)
- MCFG_MACHINE_RESET(cachat)
+ MCFG_MACHINE_RESET_OVERRIDE(taitol_state,cachat)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( evilston, taitol_state )
@@ -2097,8 +2086,8 @@ static MACHINE_CONFIG_START( evilston, taitol_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(taito_l)
- MCFG_MACHINE_RESET(evilston)
+ MCFG_MACHINE_START_OVERRIDE(taitol_state,taito_l)
+ MCFG_MACHINE_RESET_OVERRIDE(taitol_state,evilston)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2112,7 +2101,7 @@ static MACHINE_CONFIG_START( evilston, taitol_state )
MCFG_GFXDECODE(2)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(taitol)
+ MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2137,7 +2126,7 @@ static MACHINE_CONFIG_DERIVED( lagirl, plotting )
/* sound hardware */
MCFG_SOUND_REPLACE("ymsnd", YM2203, XTAL_27_2109MHz/8)
- MCFG_MACHINE_RESET(cachat)
+ MCFG_MACHINE_RESET_OVERRIDE(taitol_state,cachat)
MACHINE_CONFIG_END
#endif
diff --git a/src/mame/drivers/taito_o.c b/src/mame/drivers/taito_o.c
index bec0dee5cf4..94fd3227dba 100644
--- a/src/mame/drivers/taito_o.c
+++ b/src/mame/drivers/taito_o.c
@@ -242,12 +242,11 @@ static const tc0080vco_interface parentj_intf =
0
};
-static MACHINE_START( taitoo )
+void taitoo_state::machine_start()
{
- taitoo_state *state = machine.driver_data<taitoo_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_tc0080vco = machine.device("tc0080vco");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_tc0080vco = machine().device("tc0080vco");
}
static MACHINE_CONFIG_START( parentj, taitoo_state )
@@ -256,7 +255,6 @@ static MACHINE_CONFIG_START( parentj, taitoo_state )
MCFG_CPU_PROGRAM_MAP(parentj_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", parentj_interrupt, "screen", 0, 1)
- MCFG_MACHINE_START(taitoo)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
diff --git a/src/mame/drivers/taito_x.c b/src/mame/drivers/taito_x.c
index 463159a7af4..44c25e3a592 100644
--- a/src/mame/drivers/taito_x.c
+++ b/src/mame/drivers/taito_x.c
@@ -336,6 +336,7 @@ public:
DECLARE_WRITE16_MEMBER(kyustrkr_input_w);
DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
DECLARE_DRIVER_INIT(kyustrkr);
+ DECLARE_MACHINE_START(taitox);
};
READ16_MEMBER(taitox_state::superman_dsw_input_r)
@@ -807,13 +808,12 @@ static const ym2151_interface ym2151_config =
DEVCB_LINE(irqhandler)
};
-static MACHINE_START( taitox )
+MACHINE_START_MEMBER(taitox_state,taitox)
{
- taitox_state *state = machine.driver_data<taitox_state>();
- state->m_banknum = -1;
- state->save_item(NAME(state->m_banknum));
- machine.save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine));
+ m_banknum = -1;
+ save_item(NAME(m_banknum));
+ machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
}
static const tc0140syt_interface taitox_tc0140syt_intf =
@@ -836,7 +836,7 @@ static MACHINE_CONFIG_START( superman, taitox_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
- MCFG_MACHINE_START(taitox)
+ MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox)
MCFG_MACHINE_RESET(cchip1)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -852,7 +852,7 @@ static MACHINE_CONFIG_START( superman, taitox_state )
MCFG_GFXDECODE(superman)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(taitox_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -879,7 +879,7 @@ static MACHINE_CONFIG_START( daisenpu, taitox_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
- MCFG_MACHINE_START(taitox)
+ MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -894,7 +894,7 @@ static MACHINE_CONFIG_START( daisenpu, taitox_state )
MCFG_GFXDECODE(superman)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(taitox_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -919,7 +919,7 @@ static MACHINE_CONFIG_START( gigandes, taitox_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
- MCFG_MACHINE_START(taitox)
+ MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -934,7 +934,7 @@ static MACHINE_CONFIG_START( gigandes, taitox_state )
MCFG_GFXDECODE(superman)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(taitox_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -961,7 +961,7 @@ static MACHINE_CONFIG_START( ballbros, taitox_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
- MCFG_MACHINE_START(taitox)
+ MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -976,7 +976,7 @@ static MACHINE_CONFIG_START( ballbros, taitox_state )
MCFG_GFXDECODE(ballbros)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(taitox_state,seta_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c
index 37c445b0e50..59fe28c9ef3 100644
--- a/src/mame/drivers/taito_z.c
+++ b/src/mame/drivers/taito_z.c
@@ -3027,48 +3027,46 @@ static void taitoz_postload(running_machine &machine)
reset_sound_region(machine);
}
-static MACHINE_START( bshark )
+MACHINE_START_MEMBER(taitoz_state,bshark)
{
- taitoz_state *state = machine.driver_data<taitoz_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_eeprom = machine.device<eeprom_device>("eeprom");
- state->m_tc0100scn = machine.device("tc0100scn");
- state->m_tc0150rod = machine.device("tc0150rod");
- state->m_tc0480scp = machine.device("tc0480scp");
- state->m_tc0220ioc = machine.device("tc0220ioc");
- state->m_tc0140syt = machine.device("tc0140syt");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_subcpu = machine().device<cpu_device>("sub");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_eeprom = machine().device<eeprom_device>("eeprom");
+ m_tc0100scn = machine().device("tc0100scn");
+ m_tc0150rod = machine().device("tc0150rod");
+ m_tc0480scp = machine().device("tc0480scp");
+ m_tc0220ioc = machine().device("tc0220ioc");
+ m_tc0140syt = machine().device("tc0140syt");
- state->save_item(NAME(state->m_cpua_ctrl));
+ save_item(NAME(m_cpua_ctrl));
/* these are specific to various games: we ought to split the inits */
- state->save_item(NAME(state->m_sci_int6));
- state->save_item(NAME(state->m_ioc220_port));
+ save_item(NAME(m_sci_int6));
+ save_item(NAME(m_ioc220_port));
- state->save_item(NAME(state->m_banknum));
+ save_item(NAME(m_banknum));
}
-static MACHINE_START( taitoz )
+MACHINE_START_MEMBER(taitoz_state,taitoz)
{
- int banks = (machine.root_device().memregion("audiocpu")->bytes() - 0xc000) / 0x4000;
+ int banks = (machine().root_device().memregion("audiocpu")->bytes() - 0xc000) / 0x4000;
- machine.root_device().membank("bank10")->configure_entries(0, banks, machine.root_device().memregion("audiocpu")->base() + 0xc000, 0x4000);
+ machine().root_device().membank("bank10")->configure_entries(0, banks, machine().root_device().memregion("audiocpu")->base() + 0xc000, 0x4000);
- machine.save().register_postload(save_prepost_delegate(FUNC(taitoz_postload), &machine));
+ machine().save().register_postload(save_prepost_delegate(FUNC(taitoz_postload), &machine()));
- MACHINE_START_CALL(bshark);
+ MACHINE_START_CALL_MEMBER(bshark);
}
-static MACHINE_RESET( taitoz )
+MACHINE_RESET_MEMBER(taitoz_state,taitoz)
{
- taitoz_state *state = machine.driver_data<taitoz_state>();
- state->m_banknum = -1;
- state->m_cpua_ctrl = 0xff;
- state->m_sci_int6 = 0;
- state->m_ioc220_port = 0;
+ m_banknum = -1;
+ m_cpua_ctrl = 0xff;
+ m_sci_int6 = 0;
+ m_ioc220_port = 0;
}
/* Contcirc vis area seems narrower than the other games... */
@@ -3087,8 +3085,8 @@ static MACHINE_CONFIG_START( contcirc, taitoz_state )
MCFG_CPU_PROGRAM_MAP(contcirc_cpub_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)
- MCFG_MACHINE_START(taitoz)
- MCFG_MACHINE_RESET(taitoz)
+ MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz)
+ MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz)
MCFG_TC0220IOC_ADD("tc0220ioc", taitoz_io220_intf)
@@ -3103,7 +3101,7 @@ static MACHINE_CONFIG_START( contcirc, taitoz_state )
MCFG_GFXDECODE(taitoz)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitoz)
+ MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
MCFG_TC0100SCN_ADD("tc0100scn", taitoz_tc0100scn_intf)
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
@@ -3149,8 +3147,8 @@ static MACHINE_CONFIG_START( chasehq, taitoz_state )
MCFG_CPU_PROGRAM_MAP(chq_cpub_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
- MCFG_MACHINE_START(taitoz)
- MCFG_MACHINE_RESET(taitoz)
+ MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz)
+ MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz)
MCFG_TC0220IOC_ADD("tc0220ioc", taitoz_io220_intf)
@@ -3165,7 +3163,7 @@ static MACHINE_CONFIG_START( chasehq, taitoz_state )
MCFG_GFXDECODE(chasehq)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitoz)
+ MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
MCFG_TC0100SCN_ADD("tc0100scn", chasehq_tc0100scn_intf)
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
@@ -3211,8 +3209,8 @@ static MACHINE_CONFIG_START( enforce, taitoz_state )
MCFG_CPU_PROGRAM_MAP(enforce_cpub_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)
- MCFG_MACHINE_START(taitoz)
- MCFG_MACHINE_RESET(taitoz)
+ MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz)
+ MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
@@ -3229,7 +3227,7 @@ static MACHINE_CONFIG_START( enforce, taitoz_state )
MCFG_GFXDECODE(taitoz)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitoz)
+ MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
MCFG_TC0100SCN_ADD("tc0100scn", taitoz_tc0100scn_intf)
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
@@ -3271,8 +3269,8 @@ static MACHINE_CONFIG_START( bshark, taitoz_state )
MCFG_CPU_PROGRAM_MAP(bshark_cpub_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
- MCFG_MACHINE_START(bshark)
- MCFG_MACHINE_RESET(taitoz)
+ MCFG_MACHINE_START_OVERRIDE(taitoz_state,bshark)
+ MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
@@ -3289,7 +3287,7 @@ static MACHINE_CONFIG_START( bshark, taitoz_state )
MCFG_GFXDECODE(taitoz)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitoz)
+ MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
MCFG_TC0100SCN_ADD("tc0100scn", taitoz_tc0100scn_intf)
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
@@ -3342,8 +3340,8 @@ static MACHINE_CONFIG_START( sci, taitoz_state )
MCFG_CPU_PROGRAM_MAP(sci_cpub_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
- MCFG_MACHINE_START(taitoz)
- MCFG_MACHINE_RESET(taitoz)
+ MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz)
+ MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz)
MCFG_QUANTUM_TIME(attotime::from_hz(3000))
@@ -3360,7 +3358,7 @@ static MACHINE_CONFIG_START( sci, taitoz_state )
MCFG_GFXDECODE(taitoz)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitoz)
+ MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
MCFG_TC0100SCN_ADD("tc0100scn", taitoz_tc0100scn_intf)
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
@@ -3404,8 +3402,8 @@ static MACHINE_CONFIG_START( nightstr, taitoz_state )
MCFG_CPU_PROGRAM_MAP(nightstr_cpub_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
- MCFG_MACHINE_START(taitoz)
- MCFG_MACHINE_RESET(taitoz)
+ MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz)
+ MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
@@ -3422,7 +3420,7 @@ static MACHINE_CONFIG_START( nightstr, taitoz_state )
MCFG_GFXDECODE(chasehq)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitoz)
+ MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
MCFG_TC0100SCN_ADD("tc0100scn", chasehq_tc0100scn_intf)
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
@@ -3468,8 +3466,8 @@ static MACHINE_CONFIG_START( aquajack, taitoz_state )
MCFG_CPU_PROGRAM_MAP(aquajack_cpub_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
- MCFG_MACHINE_START(taitoz)
- MCFG_MACHINE_RESET(taitoz)
+ MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz)
+ MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz)
MCFG_QUANTUM_TIME(attotime::from_hz(30000))
@@ -3486,7 +3484,7 @@ static MACHINE_CONFIG_START( aquajack, taitoz_state )
MCFG_GFXDECODE(taitoz)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitoz)
+ MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
MCFG_TC0100SCN_ADD("tc0100scn", taitoz_tc0100scn_intf)
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
@@ -3528,8 +3526,8 @@ static MACHINE_CONFIG_START( spacegun, taitoz_state )
MCFG_CPU_PROGRAM_MAP(spacegun_cpub_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
- MCFG_MACHINE_START(bshark)
- MCFG_MACHINE_RESET(taitoz)
+ MCFG_MACHINE_START_OVERRIDE(taitoz_state,bshark)
+ MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz)
MCFG_EEPROM_ADD("eeprom", spacegun_eeprom_intf)
MCFG_EEPROM_DATA(spacegun_default_eeprom, 128)
@@ -3590,8 +3588,8 @@ static MACHINE_CONFIG_START( dblaxle, taitoz_state )
MCFG_CPU_PROGRAM_MAP(dblaxle_cpub_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
- MCFG_MACHINE_START(taitoz)
- MCFG_MACHINE_RESET(taitoz)
+ MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz)
+ MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
@@ -3608,7 +3606,7 @@ static MACHINE_CONFIG_START( dblaxle, taitoz_state )
MCFG_GFXDECODE(dblaxle)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitoz)
+ MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
MCFG_TC0480SCP_ADD("tc0480scp", taitoz_tc0480scp_intf)
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
@@ -3652,8 +3650,8 @@ static MACHINE_CONFIG_START( racingb, taitoz_state )
MCFG_CPU_PROGRAM_MAP(racingb_cpub_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
- MCFG_MACHINE_START(taitoz)
- MCFG_MACHINE_RESET(taitoz)
+ MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz)
+ MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
@@ -3670,7 +3668,7 @@ static MACHINE_CONFIG_START( racingb, taitoz_state )
MCFG_GFXDECODE(dblaxle)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(taitoz)
+ MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
MCFG_TC0480SCP_ADD("tc0480scp", taitoz_tc0480scp_intf)
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c
index 706852da8b6..9f3a252f02b 100644
--- a/src/mame/drivers/taitoair.c
+++ b/src/mame/drivers/taitoair.c
@@ -666,43 +666,41 @@ static const tc0140syt_interface airsys_tc0140syt_intf =
"maincpu", "audiocpu"
};
-static MACHINE_START( taitoair )
+void taitoair_state::machine_start()
{
- taitoair_state *state = machine.driver_data<taitoair_state>();
- UINT8 *ROM = state->memregion("audiocpu")->base();
+ UINT8 *ROM = memregion("audiocpu")->base();
int i;
- state->membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000);
+ membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000);
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_dsp = machine.device("dsp");
- state->m_tc0080vco = machine.device("tc0080vco");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_dsp = machine().device("dsp");
+ m_tc0080vco = machine().device("tc0080vco");
- state->save_item(NAME(state->m_banknum));
- state->save_item(NAME(state->m_q.col));
- state->save_item(NAME(state->m_q.pcount));
+ save_item(NAME(m_banknum));
+ save_item(NAME(m_q.col));
+ save_item(NAME(m_q.pcount));
for (i = 0; i < TAITOAIR_POLY_MAX_PT; i++)
{
- state_save_register_item(machine, "globals", NULL, i, state->m_q.p[i].x);
- state_save_register_item(machine, "globals", NULL, i, state->m_q.p[i].y);
+ state_save_register_item(machine(), "globals", NULL, i, m_q.p[i].x);
+ state_save_register_item(machine(), "globals", NULL, i, m_q.p[i].y);
}
- machine.save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine));
+ machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
}
-static MACHINE_RESET( taitoair )
+void taitoair_state::machine_reset()
{
- taitoair_state *state = machine.driver_data<taitoair_state>();
int i;
- state->m_dsp_hold_signal = ASSERT_LINE;
- state->m_banknum = 0;
+ m_dsp_hold_signal = ASSERT_LINE;
+ m_banknum = 0;
for (i = 0; i < TAITOAIR_POLY_MAX_PT; i++)
{
- state->m_q.p[i].x = 0;
- state->m_q.p[i].y = 0;
+ m_q.p[i].x = 0;
+ m_q.p[i].y = 0;
}
}
@@ -723,8 +721,6 @@ static MACHINE_CONFIG_START( airsys, taitoair_state )
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_START(taitoair)
- MCFG_MACHINE_RESET(taitoair)
MCFG_TC0220IOC_ADD("tc0220ioc", airsys_io_intf)
@@ -735,7 +731,6 @@ static MACHINE_CONFIG_START( airsys, taitoair_state )
MCFG_SCREEN_SIZE(64*16, 64*16)
MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 28*16-1)
MCFG_SCREEN_UPDATE_STATIC(taitoair)
- MCFG_VIDEO_START(taitoair);
MCFG_GFXDECODE(airsys)
MCFG_PALETTE_LENGTH(512*16+512*16)
diff --git a/src/mame/drivers/taitogn.c b/src/mame/drivers/taitogn.c
index 6d324275726..87a7b102163 100644
--- a/src/mame/drivers/taitogn.c
+++ b/src/mame/drivers/taitogn.c
@@ -387,6 +387,7 @@ public:
DECLARE_READ32_MEMBER(gnet_mahjong_panel_r);
DECLARE_DRIVER_INIT(coh3002t_mp);
DECLARE_DRIVER_INIT(coh3002t);
+ DECLARE_MACHINE_RESET(coh3002t);
};
@@ -881,19 +882,18 @@ DRIVER_INIT_MEMBER(taitogn_state,coh3002t_mp)
machine().device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x1fa10100, 0x1fa10103, read32_delegate(FUNC(taitogn_state::gnet_mahjong_panel_r),this));
}
-static MACHINE_RESET( coh3002t )
+MACHINE_RESET_MEMBER(taitogn_state,coh3002t)
{
- taitogn_state *state = machine.driver_data<taitogn_state>();
- state->m_b_lastclock = 1;
- state->m_locked = 0x1ff;
- install_handlers(machine, 0);
- state->m_control = 0;
- machine.device(":card")->reset();
- ide_set_gnet_readlock(machine.device(":card"), 1);
+ m_b_lastclock = 1;
+ m_locked = 0x1ff;
+ install_handlers(machine(), 0);
+ m_control = 0;
+ machine().device(":card")->reset();
+ ide_set_gnet_readlock(machine().device(":card"), 1);
// halt sound CPU since it has no valid program at start
- machine.device("mn10200")->execute().set_input_line(INPUT_LINE_RESET,ASSERT_LINE); /* MCU */
+ machine().device("mn10200")->execute().set_input_line(INPUT_LINE_RESET,ASSERT_LINE); /* MCU */
}
static ADDRESS_MAP_START( taitogn_map, AS_PROGRAM, 32, taitogn_state )
@@ -960,7 +960,7 @@ static MACHINE_CONFIG_START( coh3002t, taitogn_state )
MCFG_SOUND_ROUTE(0, "lspeaker", 0.35)
MCFG_SOUND_ROUTE(1, "rspeaker", 0.35)
- MCFG_MACHINE_RESET( coh3002t )
+ MCFG_MACHINE_RESET_OVERRIDE(taitogn_state, coh3002t )
MCFG_AT28C16_ADD( "at28c16", 0 )
MCFG_IDE_CONTROLLER_ADD( "card", ide_intf, ide_devices, "hdd", NULL, true)
diff --git a/src/mame/drivers/taitojc.c b/src/mame/drivers/taitojc.c
index a11a54dab5e..7c2b9565860 100644
--- a/src/mame/drivers/taitojc.c
+++ b/src/mame/drivers/taitojc.c
@@ -1191,31 +1191,30 @@ INPUT_PORTS_END
***************************************************************************/
-static MACHINE_RESET( taitojc )
+void taitojc_state::machine_reset()
{
- taitojc_state *state = machine.driver_data<taitojc_state>();
- state->m_first_dsp_reset = 1;
+ m_first_dsp_reset = 1;
- state->m_mcu_comm_main = 0;
- state->m_mcu_comm_hc11 = 0;
- state->m_mcu_data_main = 0;
- state->m_mcu_data_hc11 = 0;
+ m_mcu_comm_main = 0;
+ m_mcu_comm_hc11 = 0;
+ m_mcu_data_main = 0;
+ m_mcu_data_hc11 = 0;
- state->m_texture_x = 0;
- state->m_texture_y = 0;
+ m_texture_x = 0;
+ m_texture_y = 0;
- state->m_dsp_rom_pos = 0;
- state->m_dsp_tex_address = 0;
- state->m_dsp_tex_offset = 0;
- state->m_polygon_fifo_ptr = 0;
+ m_dsp_rom_pos = 0;
+ m_dsp_tex_address = 0;
+ m_dsp_tex_offset = 0;
+ m_polygon_fifo_ptr = 0;
- memset(state->m_viewport_data, 0, sizeof(state->m_viewport_data));
- memset(state->m_projection_data, 0, sizeof(state->m_projection_data));
- memset(state->m_intersection_data, 0, sizeof(state->m_intersection_data));
+ memset(m_viewport_data, 0, sizeof(m_viewport_data));
+ memset(m_projection_data, 0, sizeof(m_projection_data));
+ memset(m_intersection_data, 0, sizeof(m_intersection_data));
// hold the TMS in reset until we have code
- state->m_dsp->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ m_dsp->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
static INTERRUPT_GEN( taitojc_vblank )
@@ -1253,7 +1252,6 @@ static MACHINE_CONFIG_START( taitojc, taitojc_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_RESET(taitojc)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -1269,7 +1267,6 @@ static MACHINE_CONFIG_START( taitojc, taitojc_state )
MCFG_PALETTE_LENGTH(32768)
- MCFG_VIDEO_START(taitojc)
/* sound hardware */
MCFG_FRAGMENT_ADD(taito_en_sound)
diff --git a/src/mame/drivers/taitopjc.c b/src/mame/drivers/taitopjc.c
index 4a8791cbdfa..d4e16e8cd54 100644
--- a/src/mame/drivers/taitopjc.c
+++ b/src/mame/drivers/taitopjc.c
@@ -82,9 +82,10 @@ public:
DECLARE_WRITE8_MEMBER(tlcs_sound_w);
DECLARE_WRITE8_MEMBER(taitopjc_tlcs900_to1);
DECLARE_WRITE8_MEMBER(taitopjc_tlcs900_to3);
+ virtual void video_start();
};
-static VIDEO_START( taitopjc )
+void taitopjc_state::video_start()
{
}
@@ -433,7 +434,6 @@ static MACHINE_CONFIG_START( taitopjc, taitopjc_state )
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 767)
MCFG_SCREEN_UPDATE_STATIC(taitopjc)
- MCFG_VIDEO_START(taitopjc)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/taitosj.c b/src/mame/drivers/taitosj.c
index 50f60cbedae..d5e982fa9fc 100644
--- a/src/mame/drivers/taitosj.c
+++ b/src/mame/drivers/taitosj.c
@@ -1801,8 +1801,6 @@ static MACHINE_CONFIG_START( nomcu, taitosj_state )
/* - periodic IRQ, with frequency 6000000/(4*16*16*10*16) = 36.621 Hz, */
MCFG_CPU_PERIODIC_INT(irq0_line_hold, (double)6000000/(4*16*16*10*16))
- MCFG_MACHINE_START(taitosj)
- MCFG_MACHINE_RESET(taitosj)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1815,7 +1813,6 @@ static MACHINE_CONFIG_START( nomcu, taitosj_state )
MCFG_GFXDECODE(taitosj)
MCFG_PALETTE_LENGTH(64)
- MCFG_VIDEO_START(taitosj)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/taitotz.c b/src/mame/drivers/taitotz.c
index e401d94cdf8..b8a58ea8707 100644
--- a/src/mame/drivers/taitotz.c
+++ b/src/mame/drivers/taitotz.c
@@ -521,6 +521,9 @@ public:
DECLARE_DRIVER_INIT(pwrshovl);
DECLARE_DRIVER_INIT(batlgear);
DECLARE_DRIVER_INIT(landhigh);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -564,21 +567,20 @@ static void taitotz_exit(running_machine &machine)
*/
}
-static VIDEO_START( taitotz )
+void taitotz_state::video_start()
{
- taitotz_state *state = machine.driver_data<taitotz_state>();
- int width = machine.primary_screen->width();
- int height = machine.primary_screen->height();
+ int width = machine().primary_screen->width();
+ int height = machine().primary_screen->height();
- state->m_screen_ram = auto_alloc_array(machine, UINT32, 0x200000);
- state->m_frame_ram = auto_alloc_array(machine, UINT32, 0x80000);
- state->m_texture_ram = auto_alloc_array(machine, UINT32, 0x800000);
+ m_screen_ram = auto_alloc_array(machine(), UINT32, 0x200000);
+ m_frame_ram = auto_alloc_array(machine(), UINT32, 0x80000);
+ m_texture_ram = auto_alloc_array(machine(), UINT32, 0x800000);
/* create renderer */
- state->m_renderer = auto_alloc(machine, taitotz_renderer(machine, width, height, state->m_texture_ram));
+ m_renderer = auto_alloc(machine(), taitotz_renderer(machine(), width, height, m_texture_ram));
- machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(taitotz_exit), &machine));
+ machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(taitotz_exit), &machine()));
}
static const float dot3_tex_table[32] =
@@ -2422,26 +2424,24 @@ static void set_ide_drive_serial_number(device_t *device, int drive, const char
}
-static MACHINE_RESET( taitotz )
+void taitotz_state::machine_reset()
{
- taitotz_state *state = machine.driver_data<taitotz_state>();
- machine.device("ide")->reset();
+ machine().device("ide")->reset();
- if (state->m_hdd_serial_number != NULL)
+ if (m_hdd_serial_number != NULL)
{
- set_ide_drive_serial_number(machine.device("ide"), 0, state->m_hdd_serial_number);
+ set_ide_drive_serial_number(machine().device("ide"), 0, m_hdd_serial_number);
}
}
-static MACHINE_START( taitotz )
+void taitotz_state::machine_start()
{
- taitotz_state *state = machine.driver_data<taitotz_state>();
/* set conservative DRC options */
- ppcdrc_set_options(machine.device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
+ ppcdrc_set_options(machine().device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
/* configure fast RAM regions for DRC */
- ppcdrc_add_fastram(machine.device("maincpu"), 0x40000000, 0x40ffffff, FALSE, state->m_work_ram);
+ ppcdrc_add_fastram(machine().device("maincpu"), 0x40000000, 0x40ffffff, FALSE, m_work_ram);
}
@@ -2493,8 +2493,6 @@ static MACHINE_CONFIG_START( taitotz, taitotz_state )
MCFG_QUANTUM_TIME(attotime::from_hz(120))
- MCFG_MACHINE_START( taitotz )
- MCFG_MACHINE_RESET( taitotz )
MCFG_IDE_CONTROLLER_ADD("ide", ide_intf, ide_devices, "hdd", NULL, true)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -2506,7 +2504,6 @@ static MACHINE_CONFIG_START( taitotz, taitotz_state )
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
MCFG_SCREEN_UPDATE_STATIC(taitotz)
- MCFG_VIDEO_START(taitotz)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( landhigh, taitotz )
diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c
index 54837f49bf5..ff6a918f143 100644
--- a/src/mame/drivers/taitowlf.c
+++ b/src/mame/drivers/taitowlf.c
@@ -79,6 +79,9 @@ public:
DECLARE_WRITE_LINE_MEMBER(taitowlf_pic8259_1_set_int_line);
DECLARE_READ8_MEMBER(get_slave_ack);
DECLARE_DRIVER_INIT(taitowlf);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void palette_init();
};
#if !ENABLE_VGA
@@ -527,21 +530,20 @@ static IRQ_CALLBACK(irq_callback)
return pic8259_acknowledge( state->m_pic8259_1);
}
-static MACHINE_START(taitowlf)
+void taitowlf_state::machine_start()
{
- taitowlf_state *state = machine.driver_data<taitowlf_state>();
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
- state->m_pit8254 = machine.device( "pit8254" );
- state->m_pic8259_1 = machine.device( "pic8259_1" );
- state->m_pic8259_2 = machine.device( "pic8259_2" );
- state->m_dma8237_1 = machine.device( "dma8237_1" );
- state->m_dma8237_2 = machine.device( "dma8237_2" );
+ m_pit8254 = machine().device( "pit8254" );
+ m_pic8259_1 = machine().device( "pic8259_1" );
+ m_pic8259_2 = machine().device( "pic8259_2" );
+ m_dma8237_1 = machine().device( "dma8237_1" );
+ m_dma8237_2 = machine().device( "dma8237_2" );
}
-static MACHINE_RESET(taitowlf)
+void taitowlf_state::machine_reset()
{
- machine.root_device().membank("bank1")->set_base(machine.root_device().memregion("user1")->base() + 0x30000);
+ machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("user1")->base() + 0x30000);
}
@@ -606,13 +608,13 @@ static const struct pit8253_config taitowlf_pit8254_config =
#if !ENABLE_VGA
/* debug purpose*/
-static PALETTE_INIT( taitowlf )
+void taitowlf_state::palette_init()
{
- palette_set_color(machine,0x70,MAKE_RGB(0xff,0xff,0xff));
- palette_set_color(machine,0x71,MAKE_RGB(0xff,0xff,0xff));
- palette_set_color(machine,0x01,MAKE_RGB(0x55,0x00,0x00));
- palette_set_color(machine,0x10,MAKE_RGB(0xaa,0x00,0x00));
- palette_set_color(machine,0x00,MAKE_RGB(0x00,0x00,0x00));
+ palette_set_color(machine(),0x70,MAKE_RGB(0xff,0xff,0xff));
+ palette_set_color(machine(),0x71,MAKE_RGB(0xff,0xff,0xff));
+ palette_set_color(machine(),0x01,MAKE_RGB(0x55,0x00,0x00));
+ palette_set_color(machine(),0x10,MAKE_RGB(0xaa,0x00,0x00));
+ palette_set_color(machine(),0x00,MAKE_RGB(0x00,0x00,0x00));
}
#endif
@@ -630,8 +632,6 @@ static MACHINE_CONFIG_START( taitowlf, taitowlf_state )
MCFG_CPU_PROGRAM_MAP(taitowlf_map)
MCFG_CPU_IO_MAP(taitowlf_io)
- MCFG_MACHINE_START(taitowlf)
- MCFG_MACHINE_RESET(taitowlf)
MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0)
MCFG_PCI_BUS_LEGACY_DEVICE(0, NULL, intel82439tx_pci_r, intel82439tx_pci_w)
@@ -657,7 +657,6 @@ static MACHINE_CONFIG_START( taitowlf, taitowlf_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_PALETTE_LENGTH(256)
MCFG_SCREEN_UPDATE_STATIC(taitowlf)
- MCFG_PALETTE_INIT(taitowlf)
#endif
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c
index 70f050196b4..118adaa54e2 100644
--- a/src/mame/drivers/tank8.c
+++ b/src/mame/drivers/tank8.c
@@ -20,10 +20,9 @@ void tank8_set_collision(running_machine &machine, int index)
}
-static MACHINE_RESET( tank8 )
+void tank8_state::machine_reset()
{
- tank8_state *state = machine.driver_data<tank8_state>();
- state->m_collision_index = 0;
+ m_collision_index = 0;
}
@@ -337,7 +336,6 @@ static MACHINE_CONFIG_START( tank8, tank8_state )
MCFG_CPU_ADD("maincpu", M6800, 11055000 / 10) /* ? */
MCFG_CPU_PROGRAM_MAP(tank8_cpu_map)
- MCFG_MACHINE_RESET(tank8)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
@@ -353,8 +351,6 @@ static MACHINE_CONFIG_START( tank8, tank8_state )
MCFG_GFXDECODE(tank8)
MCFG_PALETTE_LENGTH(20)
- MCFG_PALETTE_INIT(tank8)
- MCFG_VIDEO_START(tank8)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tankbatt.c b/src/mame/drivers/tankbatt.c
index 8f603589d4b..c314b1d0525 100644
--- a/src/mame/drivers/tankbatt.c
+++ b/src/mame/drivers/tankbatt.c
@@ -300,8 +300,6 @@ static MACHINE_CONFIG_START( tankbatt, tankbatt_state )
MCFG_GFXDECODE(tankbatt)
MCFG_PALETTE_LENGTH(256*2)
- MCFG_PALETTE_INIT(tankbatt)
- MCFG_VIDEO_START(tankbatt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c
index 81ddc870d62..101faf7f6dc 100644
--- a/src/mame/drivers/tankbust.c
+++ b/src/mame/drivers/tankbust.c
@@ -111,9 +111,9 @@ READ8_MEMBER(tankbust_state::debug_output_area_r)
-static PALETTE_INIT( tankbust )
+void tankbust_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
for (i = 0; i < 128; i++)
@@ -156,7 +156,7 @@ static PALETTE_INIT( tankbust )
bit1 = (color_prom[i] >> 7) & 0x01;
r = 0x55 * bit0 + 0xaa * bit1;
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
}
}
@@ -312,10 +312,9 @@ static const ay8910_interface ay8910_config =
DEVCB_NULL
};
-static MACHINE_RESET( tankbust )
+void tankbust_state::machine_reset()
{
- tankbust_state *state = machine.driver_data<tankbust_state>();
- state->m_variable_data = 0x11;
+ m_variable_data = 0x11;
}
static INTERRUPT_GEN( vblank_irq )
@@ -340,7 +339,6 @@ static MACHINE_CONFIG_START( tankbust, tankbust_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_RESET( tankbust )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -354,9 +352,7 @@ static MACHINE_CONFIG_START( tankbust, tankbust_state )
MCFG_GFXDECODE( tankbust )
MCFG_PALETTE_LENGTH( 128 )
- MCFG_PALETTE_INIT ( tankbust )
- MCFG_VIDEO_START ( tankbust )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c
index a8f3c8fbb55..e7922d9d389 100644
--- a/src/mame/drivers/taotaido.c
+++ b/src/mame/drivers/taotaido.c
@@ -351,7 +351,6 @@ static MACHINE_CONFIG_START( taotaido, taotaido_state )
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(taotaido)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/tapatune.c b/src/mame/drivers/tapatune.c
index 2f94ef45058..dae39a68b23 100644
--- a/src/mame/drivers/tapatune.c
+++ b/src/mame/drivers/tapatune.c
@@ -72,6 +72,7 @@ public:
DECLARE_WRITE8_MEMBER(bsmt_data_hi_w);
DECLARE_WRITE8_MEMBER(bsmt_reg_w);
DECLARE_WRITE_LINE_MEMBER(crtc_vsync);
+ virtual void video_start();
};
WRITE16_MEMBER(tapatune_state::palette_w)
@@ -352,7 +353,7 @@ static MC6845_UPDATE_ROW( update_row )
}
}
-static VIDEO_START( tapatune )
+void tapatune_state::video_start()
{
}
@@ -396,7 +397,6 @@ static MACHINE_CONFIG_START( tapatune, tapatune_state )
MCFG_PALETTE_LENGTH(16)
- MCFG_VIDEO_START(tapatune)
MCFG_MC6845_ADD("crtc", H46505, 24000000/16, h46505_intf) /* H46505 */
diff --git a/src/mame/drivers/targeth.c b/src/mame/drivers/targeth.c
index 95977691de9..ff4cb679b41 100644
--- a/src/mame/drivers/targeth.c
+++ b/src/mame/drivers/targeth.c
@@ -189,7 +189,6 @@ static MACHINE_CONFIG_START( targeth, targeth_state )
MCFG_GFXDECODE(0x080000)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(targeth)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tasman.c b/src/mame/drivers/tasman.c
index a04c3330bb3..7c37046c0c1 100644
--- a/src/mame/drivers/tasman.c
+++ b/src/mame/drivers/tasman.c
@@ -35,15 +35,16 @@ public:
DECLARE_WRITE32_MEMBER(eeprom_w);
DECLARE_WRITE8_MEMBER(kongambl_ff_w);
DECLARE_DRIVER_INIT(kingtut);
+ DECLARE_VIDEO_START(kongambl);
};
-static VIDEO_START(kongambl)
+VIDEO_START_MEMBER(kongambl_state,kongambl)
{
#if CUSTOM_DRAW
#else
- device_t *k056832 = machine.device("k056832");
+ device_t *k056832 = machine().device("k056832");
k056832_set_layer_association(k056832, 0);
k056832_set_layer_offs(k056832, 0, -2, 0);
@@ -610,7 +611,7 @@ static MACHINE_CONFIG_START( kongambl, kongambl_state )
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_VIDEO_START(kongambl)
+ MCFG_VIDEO_START_OVERRIDE(kongambl_state,kongambl)
MCFG_K053247_ADD("k053246", k053247_intf)
#if CUSTOM_DRAW
diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c
index e1f266a105c..18dd5213dce 100644
--- a/src/mame/drivers/tatsumi.c
+++ b/src/mame/drivers/tatsumi.c
@@ -859,12 +859,12 @@ static void apache3_68000_reset(device_t *device)
device->machine().device("sub2")->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE);
}
-static MACHINE_RESET( apache3 )
+MACHINE_RESET_MEMBER(tatsumi_state,apache3)
{
- machine.device("sub2")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); // TODO
+ machine().device("sub2")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); // TODO
/* Hook the RESET line, which resets the Z80 */
- m68k_set_reset_callback(machine.device("sub"), apache3_68000_reset);
+ m68k_set_reset_callback(machine().device("sub"), apache3_68000_reset);
}
@@ -888,7 +888,7 @@ static MACHINE_CONFIG_START( apache3, tatsumi_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_MACHINE_RESET(apache3)
+ MCFG_MACHINE_RESET_OVERRIDE(tatsumi_state,apache3)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -898,7 +898,7 @@ static MACHINE_CONFIG_START( apache3, tatsumi_state )
MCFG_GFXDECODE(apache3)
MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */
- MCFG_VIDEO_START(apache3)
+ MCFG_VIDEO_START_OVERRIDE(tatsumi_state,apache3)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -939,7 +939,7 @@ static MACHINE_CONFIG_START( roundup5, tatsumi_state )
MCFG_GFXDECODE(roundup5)
MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */
- MCFG_VIDEO_START(roundup5)
+ MCFG_VIDEO_START_OVERRIDE(tatsumi_state,roundup5)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -981,7 +981,7 @@ static MACHINE_CONFIG_START( cyclwarr, tatsumi_state )
MCFG_GFXDECODE(cyclwarr)
MCFG_PALETTE_LENGTH(8192 + 8192)
- MCFG_VIDEO_START(cyclwarr)
+ MCFG_VIDEO_START_OVERRIDE(tatsumi_state,cyclwarr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1023,7 +1023,7 @@ static MACHINE_CONFIG_START( bigfight, tatsumi_state )
MCFG_GFXDECODE(cyclwarr)
MCFG_PALETTE_LENGTH(8192 + 8192)
- MCFG_VIDEO_START(bigfight)
+ MCFG_VIDEO_START_OVERRIDE(tatsumi_state,bigfight)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/tattack.c b/src/mame/drivers/tattack.c
index c21b4cf6480..6ae2424485b 100644
--- a/src/mame/drivers/tattack.c
+++ b/src/mame/drivers/tattack.c
@@ -35,6 +35,8 @@ public:
tilemap_t *m_tmap;
DECLARE_DRIVER_INIT(tattack);
TILE_GET_INFO_MEMBER(get_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -64,10 +66,9 @@ static SCREEN_UPDATE_IND16( tattack )
return 0;
}
-static VIDEO_START( tattack )
+void tattack_state::video_start()
{
- tattack_state *state = machine.driver_data<tattack_state>();
- state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tattack_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tattack_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
}
static ADDRESS_MAP_START( mem, AS_PROGRAM, 8, tattack_state )
@@ -175,7 +176,7 @@ static GFXDECODE_START( tattack )
GFXDECODE_ENTRY( "gfx1", 0 , charlayout, 0, 1 )
GFXDECODE_END
-static PALETTE_INIT( tattack )
+void tattack_state::palette_init()
{
int i,r,g,b;
for(i=0;i<8;i++)
@@ -189,8 +190,8 @@ static PALETTE_INIT( tattack )
else
r=g=b=128;
- palette_set_color(machine,2*i,MAKE_RGB(0x00,0x00,0x00));
- palette_set_color(machine,2*i+1,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),2*i,MAKE_RGB(0x00,0x00,0x00));
+ palette_set_color(machine(),2*i+1,MAKE_RGB(r,g,b));
}
}
@@ -212,9 +213,7 @@ static MACHINE_CONFIG_START( tattack, tattack_state )
MCFG_GFXDECODE(tattack)
MCFG_PALETTE_LENGTH(16)
- MCFG_PALETTE_INIT(tattack )
- MCFG_VIDEO_START(tattack)
/* sound hardware */
/* Discrete ???? */
diff --git a/src/mame/drivers/tbowl.c b/src/mame/drivers/tbowl.c
index f5bb4ea79aa..4d40cf8bab9 100644
--- a/src/mame/drivers/tbowl.c
+++ b/src/mame/drivers/tbowl.c
@@ -447,12 +447,11 @@ The game is displayed on 2 monitors
***/
-static MACHINE_RESET( tbowl )
+void tbowl_state::machine_reset()
{
- tbowl_state *state = machine.driver_data<tbowl_state>();
- state->m_adpcm_pos[0] = state->m_adpcm_pos[1] = 0;
- state->m_adpcm_end[0] = state->m_adpcm_end[1] = 0;
- state->m_adpcm_data[0] = state->m_adpcm_data[1] = -1;
+ m_adpcm_pos[0] = m_adpcm_pos[1] = 0;
+ m_adpcm_end[0] = m_adpcm_end[1] = 0;
+ m_adpcm_data[0] = m_adpcm_data[1] = -1;
}
static MACHINE_CONFIG_START( tbowl, tbowl_state )
@@ -492,9 +491,7 @@ static MACHINE_CONFIG_START( tbowl, tbowl_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(tbowl_right)
- MCFG_VIDEO_START(tbowl)
- MCFG_MACHINE_RESET( tbowl )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tceptor.c b/src/mame/drivers/tceptor.c
index a96723c6d68..b9adde8e153 100644
--- a/src/mame/drivers/tceptor.c
+++ b/src/mame/drivers/tceptor.c
@@ -340,23 +340,21 @@ static const namco_interface namco_config =
/*******************************************************************/
-static MACHINE_START( tceptor )
+void tceptor_state::machine_start()
{
- tceptor_state *state = machine.driver_data<tceptor_state>();
- state_save_register_global(machine, state->m_m6809_irq_enable);
- state_save_register_global(machine, state->m_m68k_irq_enable);
- state_save_register_global(machine, state->m_mcu_irq_enable);
+ state_save_register_global(machine(), m_m6809_irq_enable);
+ state_save_register_global(machine(), m_m68k_irq_enable);
+ state_save_register_global(machine(), m_mcu_irq_enable);
}
/*******************************************************************/
-static MACHINE_RESET( tceptor )
+void tceptor_state::machine_reset()
{
- tceptor_state *state = machine.driver_data<tceptor_state>();
- state->m_m6809_irq_enable = 0;
- state->m_m68k_irq_enable = 0;
- state->m_mcu_irq_enable = 0;
+ m_m6809_irq_enable = 0;
+ m_m68k_irq_enable = 0;
+ m_mcu_irq_enable = 0;
}
/*******************************************************************/
@@ -387,8 +385,6 @@ static MACHINE_CONFIG_START( tceptor, tceptor_state )
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_MACHINE_START(tceptor)
- MCFG_MACHINE_RESET(tceptor)
/* video hardware */
MCFG_GFXDECODE(tceptor)
@@ -419,9 +415,7 @@ static MACHINE_CONFIG_START( tceptor, tceptor_state )
MCFG_SCREEN_UPDATE_STATIC(tceptor_3d_right)
MCFG_SCREEN_VBLANK_STATIC(tceptor)
- MCFG_PALETTE_INIT(tceptor)
- MCFG_VIDEO_START(tceptor)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/tcl.c b/src/mame/drivers/tcl.c
index 57aa9567b73..2664af310ae 100644
--- a/src/mame/drivers/tcl.c
+++ b/src/mame/drivers/tcl.c
@@ -53,10 +53,11 @@ public:
: driver_device(mconfig, type, tag) { }
DECLARE_DRIVER_INIT(tcl);
+ virtual void video_start();
};
-static VIDEO_START( tcl )
+void tcl_state::video_start()
{
}
static SCREEN_UPDATE_IND16( tcl )
@@ -139,7 +140,6 @@ static MACHINE_CONFIG_START( tcl, tcl_state )
MCFG_GFXDECODE(tcl)
MCFG_PALETTE_LENGTH(16*16)
- MCFG_VIDEO_START(tcl)
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf )
MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf )
diff --git a/src/mame/drivers/tecmo.c b/src/mame/drivers/tecmo.c
index 1e7a68682c3..3961b8fb4f1 100644
--- a/src/mame/drivers/tecmo.c
+++ b/src/mame/drivers/tecmo.c
@@ -621,12 +621,11 @@ static const msm5205_interface msm5205_config =
};
-static MACHINE_RESET( rygar )
+MACHINE_RESET_MEMBER(tecmo_state,rygar)
{
- tecmo_state *state = machine.driver_data<tecmo_state>();
- state->m_adpcm_pos = 0;
- state->m_adpcm_end = 0;
- state->m_adpcm_data = -1;
+ m_adpcm_pos = 0;
+ m_adpcm_end = 0;
+ m_adpcm_data = -1;
}
static MACHINE_CONFIG_START( rygar, tecmo_state )
@@ -650,9 +649,9 @@ static MACHINE_CONFIG_START( rygar, tecmo_state )
MCFG_GFXDECODE(tecmo)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(tecmo)
+ MCFG_VIDEO_START_OVERRIDE(tecmo_state,tecmo)
- MCFG_MACHINE_RESET( rygar )
+ MCFG_MACHINE_RESET_OVERRIDE(tecmo_state, rygar )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -709,9 +708,9 @@ static MACHINE_CONFIG_START( backfirt, tecmo_state )
MCFG_GFXDECODE(tecmo)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(tecmo)
+ MCFG_VIDEO_START_OVERRIDE(tecmo_state,tecmo)
- MCFG_MACHINE_RESET( rygar )
+ MCFG_MACHINE_RESET_OVERRIDE(tecmo_state, rygar )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tecmo16.c b/src/mame/drivers/tecmo16.c
index 141b3fb3c43..f5ae1357cbe 100644
--- a/src/mame/drivers/tecmo16.c
+++ b/src/mame/drivers/tecmo16.c
@@ -396,7 +396,6 @@ static MACHINE_CONFIG_START( fstarfrc, tecmo16_state )
MCFG_GFXDECODE(tecmo16)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(fstarfrc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -416,13 +415,13 @@ static MACHINE_CONFIG_DERIVED( ginkun, fstarfrc )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(ginkun_map)
- MCFG_VIDEO_START(ginkun)
+ MCFG_VIDEO_START_OVERRIDE(tecmo16_state,ginkun)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( riot, ginkun )
/* basic machine hardware */
- MCFG_VIDEO_START(riot)
+ MCFG_VIDEO_START_OVERRIDE(tecmo16_state,riot)
MACHINE_CONFIG_END
/******************************************************************************/
diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c
index 17c0ddc40a8..79f9bd09a6d 100644
--- a/src/mame/drivers/tecmosys.c
+++ b/src/mame/drivers/tecmosys.c
@@ -447,10 +447,9 @@ static const ymf262_interface tecmosys_ymf262_interface =
sound_irq /* irq */
};
-static MACHINE_START( tecmosys )
+void tecmosys_state::machine_start()
{
- tecmosys_state *state = machine.driver_data<tecmosys_state>();
- state->membank("bank1")->configure_entries(0, 16, state->memregion("audiocpu")->base(), 0x4000);
+ membank("bank1")->configure_entries(0, 16, memregion("audiocpu")->base(), 0x4000);
}
static MACHINE_CONFIG_START( deroon, tecmosys_state )
@@ -463,7 +462,6 @@ static MACHINE_CONFIG_START( deroon, tecmosys_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(io_map)
- MCFG_MACHINE_START(tecmosys)
MCFG_GFXDECODE(tecmosys)
@@ -480,7 +478,6 @@ static MACHINE_CONFIG_START( deroon, tecmosys_state )
MCFG_PALETTE_LENGTH(0x4000+0x800)
- MCFG_VIDEO_START(tecmosys)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/tehkanwc.c b/src/mame/drivers/tehkanwc.c
index 312e3ec5a78..53dc391b3b4 100644
--- a/src/mame/drivers/tehkanwc.c
+++ b/src/mame/drivers/tehkanwc.c
@@ -666,7 +666,6 @@ static MACHINE_CONFIG_START( tehkanwc, tehkanwc_state )
MCFG_GFXDECODE(tehkanwc)
MCFG_PALETTE_LENGTH(768)
- MCFG_VIDEO_START(tehkanwc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tempest.c b/src/mame/drivers/tempest.c
index 0681a9152ac..97fe6b65404 100644
--- a/src/mame/drivers/tempest.c
+++ b/src/mame/drivers/tempest.c
@@ -297,6 +297,7 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(clock_r);
DECLARE_READ8_MEMBER(input_port_1_bit_r);
DECLARE_READ8_MEMBER(input_port_2_bit_r);
+ virtual void machine_start();
};
@@ -310,10 +311,9 @@ public:
-static MACHINE_START( tempest )
+void tempest_state::machine_start()
{
- tempest_state *state = machine.driver_data<tempest_state>();
- state->save_item(NAME(state->m_player_select));
+ save_item(NAME(m_player_select));
}
/*************************************
@@ -593,7 +593,6 @@ static MACHINE_CONFIG_START( tempest, tempest_state )
MCFG_ATARIVGEAROM_ADD("earom")
- MCFG_MACHINE_START(tempest)
/* video hardware */
MCFG_SCREEN_ADD("screen", VECTOR)
diff --git a/src/mame/drivers/terracre.c b/src/mame/drivers/terracre.c
index 6fc7f960e6f..6ca648baebd 100644
--- a/src/mame/drivers/terracre.c
+++ b/src/mame/drivers/terracre.c
@@ -186,12 +186,11 @@ WRITE16_MEMBER(terracre_state::amazon_protection_w)
}
}
-static MACHINE_START( amazon )
+MACHINE_START_MEMBER(terracre_state,amazon)
{
- terracre_state *state = machine.driver_data<terracre_state>();
/* set up for save */
- state_save_register_global(machine, state->m_mAmazonProtCmd);
- state_save_register_global_array(machine, state->m_mAmazonProtReg);
+ state_save_register_global(machine(), m_mAmazonProtCmd);
+ state_save_register_global_array(machine(), m_mAmazonProtReg);
}
static ADDRESS_MAP_START( terracre_map, AS_PROGRAM, 16, terracre_state )
@@ -536,7 +535,7 @@ static MACHINE_CONFIG_START( amazon, terracre_state )
MCFG_CPU_IO_MAP(sound_3526_io_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, XTAL_16MHz/4/512) // ?
- MCFG_MACHINE_START(amazon)
+ MCFG_MACHINE_START_OVERRIDE(terracre_state,amazon)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE( 60 )
@@ -548,8 +547,6 @@ static MACHINE_CONFIG_START( amazon, terracre_state )
MCFG_GFXDECODE(terracre)
MCFG_PALETTE_LENGTH(1*16+16*16+16*256)
- MCFG_PALETTE_INIT(amazon)
- MCFG_VIDEO_START(amazon)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -583,8 +580,6 @@ static MACHINE_CONFIG_START( ym3526, terracre_state )
MCFG_GFXDECODE(terracre)
MCFG_PALETTE_LENGTH(1*16+16*16+16*256)
- MCFG_PALETTE_INIT(amazon)
- MCFG_VIDEO_START(amazon)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -618,8 +613,6 @@ static MACHINE_CONFIG_START( ym2203, terracre_state )
MCFG_GFXDECODE(terracre)
MCFG_PALETTE_LENGTH(1*16+16*16+16*256)
- MCFG_PALETTE_INIT(amazon)
- MCFG_VIDEO_START(amazon)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tetrisp2.c b/src/mame/drivers/tetrisp2.c
index 54826012e8a..7b9adf774ad 100644
--- a/src/mame/drivers/tetrisp2.c
+++ b/src/mame/drivers/tetrisp2.c
@@ -1345,7 +1345,7 @@ static MACHINE_CONFIG_START( tetrisp2, tetrisp2_state )
MCFG_GFXDECODE(tetrisp2)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_VIDEO_START(tetrisp2)
+ MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,tetrisp2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1376,7 +1376,7 @@ static MACHINE_CONFIG_START( nndmseal, tetrisp2_state )
MCFG_GFXDECODE(tetrisp2)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_VIDEO_START(nndmseal) // bg layer offset
+ MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,nndmseal) // bg layer offset
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1406,7 +1406,7 @@ static MACHINE_CONFIG_START( rockn, tetrisp2_state )
MCFG_GFXDECODE(tetrisp2)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_VIDEO_START(rockntread)
+ MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,rockntread)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1437,7 +1437,7 @@ static MACHINE_CONFIG_START( rockn2, tetrisp2_state )
MCFG_GFXDECODE(tetrisp2)
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_VIDEO_START(rockntread)
+ MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,rockntread)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1481,7 +1481,7 @@ static MACHINE_CONFIG_START( rocknms, tetrisp2_state )
MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
MCFG_SCREEN_UPDATE_STATIC(rocknms_right)
- MCFG_VIDEO_START(rocknms)
+ MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,rocknms)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1527,7 +1527,7 @@ static MACHINE_CONFIG_START( stepstag, stepstag_state )
MCFG_PALETTE_LENGTH(0x8000) // 0x8000 * 3 needed I guess, but it hits an assert
- MCFG_VIDEO_START( stepstag )
+ MCFG_VIDEO_START_OVERRIDE(stepstag_state, stepstag )
MCFG_GFXDECODE(stepstag)
MCFG_DEFAULT_LAYOUT(layout_stepstag)
diff --git a/src/mame/drivers/thayers.c b/src/mame/drivers/thayers.c
index a98ad0ace77..b6b5b473144 100644
--- a/src/mame/drivers/thayers.c
+++ b/src/mame/drivers/thayers.c
@@ -80,6 +80,8 @@ public:
DECLARE_READ8_MEMBER(ssi263_register_r);
DECLARE_CUSTOM_INPUT_MEMBER(laserdisc_enter_r);
DECLARE_CUSTOM_INPUT_MEMBER(laserdisc_ready_r);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -737,35 +739,33 @@ INPUT_PORTS_END
/* Machine Initialization */
-static MACHINE_START( thayers )
+void thayers_state::machine_start()
{
- thayers_state *state = machine.driver_data<thayers_state>();
- memset(&state->m_ssi263, 0, sizeof(state->m_ssi263));
+ memset(&m_ssi263, 0, sizeof(m_ssi263));
}
-static MACHINE_RESET( thayers )
+void thayers_state::machine_reset()
{
- thayers_state *state = machine.driver_data<thayers_state>();
- state->m_laserdisc_data = 0;
+ m_laserdisc_data = 0;
- state->m_rx_bit = 0;
- state->m_keylatch = 0;
+ m_rx_bit = 0;
+ m_keylatch = 0;
- state->m_cop_data_latch = 0;
- state->m_cop_data_latch_enable = 0;
- state->m_cop_l = 0;
- state->m_cop_cmd_latch = 0;
+ m_cop_data_latch = 0;
+ m_cop_data_latch_enable = 0;
+ m_cop_l = 0;
+ m_cop_cmd_latch = 0;
- state->m_timer_int = 1;
- state->m_data_rdy_int = 1;
- state->m_ssi_data_request = 1;
+ m_timer_int = 1;
+ m_data_rdy_int = 1;
+ m_ssi_data_request = 1;
- state->m_cart_present = 0;
- state->m_pr7820_enter = 0;
+ m_cart_present = 0;
+ m_pr7820_enter = 0;
-// newtype = (state->ioport("DSWB")->read() & 0x18) ? LASERDISC_TYPE_PIONEER_LDV1000 : LASERDISC_TYPE_PIONEER_PR7820;
-// laserdisc_set_type(state->m_laserdisc, newtype);
+// newtype = (ioport("DSWB")->read() & 0x18) ? LASERDISC_TYPE_PIONEER_LDV1000 : LASERDISC_TYPE_PIONEER_PR7820;
+// laserdisc_set_type(m_laserdisc, newtype);
}
/* COP400 Interface */
@@ -789,8 +789,6 @@ static MACHINE_CONFIG_START( thayers, thayers_state )
MCFG_CPU_IO_MAP(thayers_cop_io_map)
MCFG_CPU_CONFIG(thayers_cop_intf)
- MCFG_MACHINE_START(thayers)
- MCFG_MACHINE_RESET(thayers)
MCFG_LASERDISC_PR7820_ADD("laserdisc")
diff --git a/src/mame/drivers/thedeep.c b/src/mame/drivers/thedeep.c
index 4fc032d15af..3a921e0f9e1 100644
--- a/src/mame/drivers/thedeep.c
+++ b/src/mame/drivers/thedeep.c
@@ -50,18 +50,17 @@ WRITE8_MEMBER(thedeep_state::thedeep_sound_w)
}
-static MACHINE_RESET( thedeep )
+void thedeep_state::machine_reset()
{
- thedeep_state *state = machine.driver_data<thedeep_state>();
- state->membank("bank1")->set_base(state->memregion("maincpu")->base() + 0x10000 + 0 * 0x4000);
- state->m_scroll[0] = 0;
- state->m_scroll[1] = 0;
- state->m_scroll[2] = 0;
- state->m_scroll[3] = 0;
- state->m_protection_command = 0;
- state->m_protection_index = -1;
- state->m_protection_irq = 0;
- state->m_rombank = -1;
+ membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000 + 0 * 0x4000);
+ m_scroll[0] = 0;
+ m_scroll[1] = 0;
+ m_scroll[2] = 0;
+ m_scroll[3] = 0;
+ m_protection_command = 0;
+ m_protection_index = -1;
+ m_protection_irq = 0;
+ m_rombank = -1;
}
WRITE8_MEMBER(thedeep_state::thedeep_protection_w)
@@ -462,7 +461,6 @@ static MACHINE_CONFIG_START( thedeep, thedeep_state )
MCFG_CPU_VBLANK_INT("screen",thedeep_mcu_irq ) // unknown source, but presumably vblank
MCFG_DEVICE_DISABLE()
- MCFG_MACHINE_RESET(thedeep)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -475,8 +473,6 @@ static MACHINE_CONFIG_START( thedeep, thedeep_state )
MCFG_GFXDECODE(thedeep)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(thedeep)
- MCFG_VIDEO_START(thedeep)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/thepit.c b/src/mame/drivers/thepit.c
index 541d8c1fba3..ccc38c8e062 100644
--- a/src/mame/drivers/thepit.c
+++ b/src/mame/drivers/thepit.c
@@ -663,8 +663,6 @@ static MACHINE_CONFIG_START( thepit, thepit_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(thepit)
- MCFG_PALETTE_INIT(thepit)
- MCFG_VIDEO_START(thepit)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -694,7 +692,7 @@ static MACHINE_CONFIG_DERIVED( suprmous, intrepid )
/* basic machine hardware */
/* video hardware */
- MCFG_PALETTE_INIT(suprmous)
+ MCFG_PALETTE_INIT_OVERRIDE(thepit_state,suprmous)
MCFG_GFXDECODE(suprmous)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/thief.c b/src/mame/drivers/thief.c
index 4f74394b8a1..c197f17f49d 100644
--- a/src/mame/drivers/thief.c
+++ b/src/mame/drivers/thief.c
@@ -453,7 +453,6 @@ static MACHINE_CONFIG_START( sharkatt, thief_state )
MCFG_PALETTE_LENGTH(16)
- MCFG_VIDEO_START(thief)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -489,7 +488,6 @@ static MACHINE_CONFIG_START( thief, thief_state )
MCFG_PALETTE_LENGTH(16)
- MCFG_VIDEO_START(thief)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -525,7 +523,6 @@ static MACHINE_CONFIG_START( natodef, thief_state )
MCFG_PALETTE_LENGTH(16)
- MCFG_VIDEO_START(thief)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/thoop2.c b/src/mame/drivers/thoop2.c
index 476c19caf7a..61492c96cbb 100644
--- a/src/mame/drivers/thoop2.c
+++ b/src/mame/drivers/thoop2.c
@@ -204,7 +204,6 @@ static MACHINE_CONFIG_START( thoop2, thoop2_state )
MCFG_GFXDECODE(thoop2)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(thoop2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/thunderj.c b/src/mame/drivers/thunderj.c
index 4a9c80380b5..d4c5b32ecbc 100644
--- a/src/mame/drivers/thunderj.c
+++ b/src/mame/drivers/thunderj.c
@@ -41,22 +41,20 @@ static void update_interrupts(running_machine &machine)
}
-static MACHINE_START( thunderj )
+MACHINE_START_MEMBER(thunderj_state,thunderj)
{
- thunderj_state *state = machine.driver_data<thunderj_state>();
- atarigen_init(machine);
+ atarigen_init(machine());
- state->save_item(NAME(state->m_alpha_tile_bank));
+ save_item(NAME(m_alpha_tile_bank));
}
-static MACHINE_RESET( thunderj )
+MACHINE_RESET_MEMBER(thunderj_state,thunderj)
{
- thunderj_state *state = machine.driver_data<thunderj_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarivc_reset(*machine.primary_screen, state->m_atarivc_eof_data, 2);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarivc_reset(*machine().primary_screen, m_atarivc_eof_data, 2);
atarijsa_reset();
}
@@ -291,8 +289,8 @@ static MACHINE_CONFIG_START( thunderj, thunderj_state )
MCFG_CPU_ADD("extra", M68000, ATARI_CLOCK_14MHz/2)
MCFG_CPU_PROGRAM_MAP(extra_map)
- MCFG_MACHINE_START(thunderj)
- MCFG_MACHINE_RESET(thunderj)
+ MCFG_MACHINE_START_OVERRIDE(thunderj_state,thunderj)
+ MCFG_MACHINE_RESET_OVERRIDE(thunderj_state,thunderj)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* perfect synchronization due to shared RAM */
@@ -309,7 +307,7 @@ static MACHINE_CONFIG_START( thunderj, thunderj_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(thunderj)
- MCFG_VIDEO_START(thunderj)
+ MCFG_VIDEO_START_OVERRIDE(thunderj_state,thunderj)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_ii_mono)
diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c
index 452b1fb0ce2..455a1d6b296 100644
--- a/src/mame/drivers/thunderx.c
+++ b/src/mame/drivers/thunderx.c
@@ -603,57 +603,54 @@ static const k051960_interface thunderx_k051960_intf =
thunderx_sprite_callback
};
-static MACHINE_START( scontra )
+MACHINE_START_MEMBER(thunderx_state,scontra)
{
- thunderx_state *state = machine.driver_data<thunderx_state>();
- state->m_generic_paletteram_8.allocate(0x800);
+ m_generic_paletteram_8.allocate(0x800);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k007232 = machine.device("k007232");
- state->m_k052109 = machine.device("k052109");
- state->m_k051960 = machine.device("k051960");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k007232 = machine().device("k007232");
+ m_k052109 = machine().device("k052109");
+ m_k051960 = machine().device("k051960");
- state->save_item(NAME(state->m_priority));
- state->save_item(NAME(state->m_1f98_data));
- state->save_item(NAME(state->m_palette_selected));
- state->save_item(NAME(state->m_rambank));
- state->save_item(NAME(state->m_pmcbank));
+ save_item(NAME(m_priority));
+ save_item(NAME(m_1f98_data));
+ save_item(NAME(m_palette_selected));
+ save_item(NAME(m_rambank));
+ save_item(NAME(m_pmcbank));
}
-static MACHINE_START( thunderx )
+MACHINE_START_MEMBER(thunderx_state,thunderx)
{
- thunderx_state *state = machine.driver_data<thunderx_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x2000);
- state->membank("bank1")->configure_entries(12, 4, &ROM[0x08000], 0x2000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x2000);
+ membank("bank1")->configure_entries(12, 4, &ROM[0x08000], 0x2000);
+ membank("bank1")->set_entry(0);
- memset(state->m_pmcram, 0, sizeof(state->m_pmcram));
+ memset(m_pmcram, 0, sizeof(m_pmcram));
- MACHINE_START_CALL(scontra);
+ MACHINE_START_CALL_MEMBER(scontra);
- state->save_item(NAME(state->m_pmcram));
+ save_item(NAME(m_pmcram));
}
-static MACHINE_RESET( scontra )
+MACHINE_RESET_MEMBER(thunderx_state,scontra)
{
- thunderx_state *state = machine.driver_data<thunderx_state>();
- state->m_priority = 0;
- state->m_1f98_data = 0;
- state->m_palette_selected = 0;
- state->m_rambank = 0;
- state->m_pmcbank = 0;
+ m_priority = 0;
+ m_1f98_data = 0;
+ m_palette_selected = 0;
+ m_rambank = 0;
+ m_pmcbank = 0;
}
-static MACHINE_RESET( thunderx )
+MACHINE_RESET_MEMBER(thunderx_state,thunderx)
{
- konami_configure_set_lines(machine.device("maincpu"), thunderx_banking);
+ konami_configure_set_lines(machine().device("maincpu"), thunderx_banking);
- MACHINE_RESET_CALL(scontra);
+ MACHINE_RESET_CALL_MEMBER(scontra);
}
static MACHINE_CONFIG_START( scontra, thunderx_state )
@@ -666,8 +663,8 @@ static MACHINE_CONFIG_START( scontra, thunderx_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(scontra_sound_map)
- MCFG_MACHINE_START(scontra)
- MCFG_MACHINE_RESET(scontra)
+ MCFG_MACHINE_START_OVERRIDE(thunderx_state,scontra)
+ MCFG_MACHINE_RESET_OVERRIDE(thunderx_state,scontra)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -681,7 +678,6 @@ static MACHINE_CONFIG_START( scontra, thunderx_state )
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(scontra)
MCFG_K052109_ADD("k052109", thunderx_k052109_intf)
MCFG_K051960_ADD("k051960", thunderx_k051960_intf)
@@ -710,8 +706,8 @@ static MACHINE_CONFIG_START( thunderx, thunderx_state )
MCFG_CPU_ADD("audiocpu", Z80, 3579545) /* ? */
MCFG_CPU_PROGRAM_MAP(thunderx_sound_map)
- MCFG_MACHINE_START(thunderx)
- MCFG_MACHINE_RESET(thunderx)
+ MCFG_MACHINE_START_OVERRIDE(thunderx_state,thunderx)
+ MCFG_MACHINE_RESET_OVERRIDE(thunderx_state,thunderx)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -725,7 +721,6 @@ static MACHINE_CONFIG_START( thunderx, thunderx_state )
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(scontra)
MCFG_K052109_ADD("k052109", thunderx_k052109_intf)
MCFG_K051960_ADD("k051960", thunderx_k051960_intf)
diff --git a/src/mame/drivers/tiamc1.c b/src/mame/drivers/tiamc1.c
index db1bc229bfd..e7aab7be9f1 100644
--- a/src/mame/drivers/tiamc1.c
+++ b/src/mame/drivers/tiamc1.c
@@ -118,11 +118,10 @@
#include "cpu/i8085/i8085.h"
#include "includes/tiamc1.h"
-static MACHINE_RESET( tiamc1 )
+void tiamc1_state::machine_reset()
{
- tiamc1_state *state = machine.driver_data<tiamc1_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- state->tiamc1_bankswitch_w(*space, 0, 0);
+ address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ tiamc1_bankswitch_w(*space, 0, 0);
}
WRITE8_MEMBER(tiamc1_state::tiamc1_control_w)
@@ -227,7 +226,6 @@ static MACHINE_CONFIG_START( tiamc1, tiamc1_state )
MCFG_CPU_VBLANK_INT("screen", irq1_line_hold)
- MCFG_MACHINE_RESET(tiamc1)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -240,8 +238,6 @@ static MACHINE_CONFIG_START( tiamc1, tiamc1_state )
MCFG_GFXDECODE(tiamc1)
MCFG_PALETTE_LENGTH(16)
- MCFG_PALETTE_INIT(tiamc1)
- MCFG_VIDEO_START(tiamc1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tickee.c b/src/mame/drivers/tickee.c
index 3f85a782c8b..8106ac20e20 100644
--- a/src/mame/drivers/tickee.c
+++ b/src/mame/drivers/tickee.c
@@ -53,6 +53,9 @@ public:
DECLARE_WRITE16_MEMBER(ff7f_w);
DECLARE_WRITE16_MEMBER(rapidfir_control_w);
DECLARE_WRITE16_MEMBER(sound_bank_w);
+ DECLARE_MACHINE_RESET(tickee);
+ DECLARE_VIDEO_START(tickee);
+ DECLARE_MACHINE_RESET(rapidfir);
};
@@ -136,12 +139,11 @@ static TIMER_CALLBACK( setup_gun_interrupts )
*
*************************************/
-static VIDEO_START( tickee )
+VIDEO_START_MEMBER(tickee_state,tickee)
{
- tickee_state *state = machine.driver_data<tickee_state>();
/* start a timer going on the first scanline of every frame */
- state->m_setup_gun_timer = machine.scheduler().timer_alloc(FUNC(setup_gun_interrupts));
- state->m_setup_gun_timer->adjust(machine.primary_screen->time_until_pos(0));
+ m_setup_gun_timer = machine().scheduler().timer_alloc(FUNC(setup_gun_interrupts));
+ m_setup_gun_timer->adjust(machine().primary_screen->time_until_pos(0));
}
@@ -215,18 +217,16 @@ static void rapidfir_scanline_update(screen_device &screen, bitmap_rgb32 &bitmap
*
*************************************/
-static MACHINE_RESET( tickee )
+MACHINE_RESET_MEMBER(tickee_state,tickee)
{
- tickee_state *state = machine.driver_data<tickee_state>();
- state->m_beamxadd = 50;
- state->m_beamyadd = 0;
+ m_beamxadd = 50;
+ m_beamyadd = 0;
}
-static MACHINE_RESET( rapidfir )
+MACHINE_RESET_MEMBER(tickee_state,rapidfir)
{
- tickee_state *state = machine.driver_data<tickee_state>();
- state->m_beamxadd = 0;
- state->m_beamyadd = -5;
+ m_beamxadd = 0;
+ m_beamyadd = -5;
}
@@ -767,7 +767,7 @@ static MACHINE_CONFIG_START( tickee, tickee_state )
MCFG_CPU_CONFIG(tms_config)
MCFG_CPU_PROGRAM_MAP(tickee_map)
- MCFG_MACHINE_RESET(tickee)
+ MCFG_MACHINE_RESET_OVERRIDE(tickee_state,tickee)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_TICKET_DISPENSER_ADD("ticket1", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH)
@@ -776,7 +776,7 @@ static MACHINE_CONFIG_START( tickee, tickee_state )
/* video hardware */
MCFG_TLC34076_ADD("tlc34076", tlc34076_6_bit_intf)
- MCFG_VIDEO_START(tickee)
+ MCFG_VIDEO_START_OVERRIDE(tickee_state,tickee)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200)
@@ -810,13 +810,13 @@ static MACHINE_CONFIG_START( rapidfir, tickee_state )
MCFG_CPU_CONFIG(rapidfir_tms_config)
MCFG_CPU_PROGRAM_MAP(rapidfir_map)
- MCFG_MACHINE_RESET(rapidfir)
+ MCFG_MACHINE_RESET_OVERRIDE(tickee_state,rapidfir)
MCFG_NVRAM_ADD_1FILL("nvram")
/* video hardware */
MCFG_TLC34076_ADD("tlc34076", tlc34076_6_bit_intf)
- MCFG_VIDEO_START(tickee)
+ MCFG_VIDEO_START_OVERRIDE(tickee_state,tickee)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200)
@@ -837,7 +837,7 @@ static MACHINE_CONFIG_START( mouseatk, tickee_state )
MCFG_CPU_CONFIG(tms_config)
MCFG_CPU_PROGRAM_MAP(mouseatk_map)
- MCFG_MACHINE_RESET(tickee)
+ MCFG_MACHINE_RESET_OVERRIDE(tickee_state,tickee)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_TICKET_DISPENSER_ADD("ticket1", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH)
diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c
index a7b9cb6176b..c889774d138 100644
--- a/src/mame/drivers/tigeroad.c
+++ b/src/mame/drivers/tigeroad.c
@@ -542,7 +542,6 @@ static MACHINE_CONFIG_START( tigeroad, tigeroad_state )
MCFG_GFXDECODE(tigeroad)
MCFG_PALETTE_LENGTH(576)
- MCFG_VIDEO_START(tigeroad)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/timelimt.c b/src/mame/drivers/timelimt.c
index 1a6ef50329b..d28826cd056 100644
--- a/src/mame/drivers/timelimt.c
+++ b/src/mame/drivers/timelimt.c
@@ -19,15 +19,13 @@ Notes:
/***************************************************************************/
-static MACHINE_START( timelimt )
+void timelimt_state::machine_start()
{
- machine.driver_data<timelimt_state>()->soundlatch_setclearedvalue( 0 );
}
-static MACHINE_RESET( timelimt )
+void timelimt_state::machine_reset()
{
- timelimt_state *state = machine.driver_data<timelimt_state>();
- state->m_nmi_enabled = 0;
+ m_nmi_enabled = 0;
}
WRITE8_MEMBER(timelimt_state::nmi_enable_w)
@@ -240,8 +238,6 @@ static MACHINE_CONFIG_START( timelimt, timelimt_state )
MCFG_QUANTUM_TIME(attotime::from_hz(3000))
- MCFG_MACHINE_START(timelimt)
- MCFG_MACHINE_RESET(timelimt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -254,8 +250,6 @@ static MACHINE_CONFIG_START( timelimt, timelimt_state )
MCFG_GFXDECODE(timelimt)
MCFG_PALETTE_LENGTH(64+32)
- MCFG_PALETTE_INIT(timelimt)
- MCFG_VIDEO_START(timelimt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/timeplt.c b/src/mame/drivers/timeplt.c
index 1f245ee97e3..4b89fbe269b 100644
--- a/src/mame/drivers/timeplt.c
+++ b/src/mame/drivers/timeplt.c
@@ -453,18 +453,16 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_START( timeplt )
+void timeplt_state::machine_start()
{
- timeplt_state *state = machine.driver_data<timeplt_state>();
- state->save_item(NAME(state->m_nmi_enable));
+ save_item(NAME(m_nmi_enable));
}
-static MACHINE_RESET( timeplt )
+void timeplt_state::machine_reset()
{
- timeplt_state *state = machine.driver_data<timeplt_state>();
- state->m_nmi_enable = 0;
+ m_nmi_enable = 0;
}
static MACHINE_CONFIG_START( timeplt, timeplt_state )
@@ -474,8 +472,6 @@ static MACHINE_CONFIG_START( timeplt, timeplt_state )
MCFG_CPU_PROGRAM_MAP(timeplt_main_map)
MCFG_CPU_VBLANK_INT("screen", timeplt_interrupt)
- MCFG_MACHINE_START(timeplt)
- MCFG_MACHINE_RESET(timeplt)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
@@ -489,8 +485,6 @@ static MACHINE_CONFIG_START( timeplt, timeplt_state )
MCFG_GFXDECODE(timeplt)
MCFG_PALETTE_LENGTH(32*4+64*4)
- MCFG_PALETTE_INIT(timeplt)
- MCFG_VIDEO_START(timeplt)
/* sound hardware */
MCFG_FRAGMENT_ADD(timeplt_sound)
@@ -513,7 +507,7 @@ static MACHINE_CONFIG_DERIVED( bikkuric, timeplt )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(chkun_main_map)
- MCFG_VIDEO_START(chkun)
+ MCFG_VIDEO_START_OVERRIDE(timeplt_state,chkun)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( chkun, bikkuric )
diff --git a/src/mame/drivers/timetrv.c b/src/mame/drivers/timetrv.c
index 38eb20b83ec..4c54e7b8888 100644
--- a/src/mame/drivers/timetrv.c
+++ b/src/mame/drivers/timetrv.c
@@ -41,11 +41,12 @@ public:
DECLARE_READ8_MEMBER(test2_r);
DECLARE_READ8_MEMBER(in_r);
DECLARE_READ8_MEMBER(ld_r);
+ virtual void video_start();
};
-static VIDEO_START( timetrv )
+void timetrv_state::video_start()
{
}
@@ -162,7 +163,6 @@ static MACHINE_CONFIG_START( timetrv, timetrv_state )
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(timetrv)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c
index abcd804c2c5..e931fa46354 100644
--- a/src/mame/drivers/tmaster.c
+++ b/src/mame/drivers/tmaster.c
@@ -179,6 +179,10 @@ public:
DECLARE_DRIVER_INIT(tm4k);
DECLARE_DRIVER_INIT(tm5kca);
DECLARE_DRIVER_INIT(tm5k);
+ DECLARE_MACHINE_RESET(tmaster);
+ DECLARE_VIDEO_START(tmaster);
+ DECLARE_MACHINE_RESET(galgames);
+ DECLARE_VIDEO_START(galgames);
};
@@ -332,27 +336,25 @@ static int galgames_compute_addr(UINT16 reg_low, UINT16 reg_mid, UINT16 reg_high
return reg_low | (reg_mid << 16);
}
-static VIDEO_START( tmaster )
+VIDEO_START_MEMBER(tmaster_state,tmaster)
{
- tmaster_state *state = machine.driver_data<tmaster_state>();
int layer, buffer;
for (layer = 0; layer < 2; layer++)
{
for (buffer = 0; buffer < 2; buffer++)
{
- machine.primary_screen->register_screen_bitmap(state->m_bitmap[layer][buffer]);
- state->m_bitmap[layer][buffer].fill(0xff);
+ machine().primary_screen->register_screen_bitmap(m_bitmap[layer][buffer]);
+ m_bitmap[layer][buffer].fill(0xff);
}
}
- state->m_compute_addr = tmaster_compute_addr;
+ m_compute_addr = tmaster_compute_addr;
}
-static VIDEO_START( galgames )
+VIDEO_START_MEMBER(tmaster_state,galgames)
{
- tmaster_state *state = machine.driver_data<tmaster_state>();
- VIDEO_START_CALL( tmaster );
- state->m_compute_addr = galgames_compute_addr;
+ VIDEO_START_CALL_MEMBER( tmaster );
+ m_compute_addr = galgames_compute_addr;
}
static SCREEN_UPDATE_IND16( tmaster )
@@ -892,13 +894,12 @@ INPUT_PORTS_END
***************************************************************************/
-static MACHINE_RESET( tmaster )
+MACHINE_RESET_MEMBER(tmaster_state,tmaster)
{
- tmaster_state *state = machine.driver_data<tmaster_state>();
- state->m_gfx_offs = 0;
- state->m_gfx_size = state->memregion("blitter")->bytes();
+ m_gfx_offs = 0;
+ m_gfx_size = memregion("blitter")->bytes();
- state->m_duart68681 = machine.device( "duart68681" );
+ m_duart68681 = machine().device( "duart68681" );
}
static TIMER_DEVICE_CALLBACK( tm3k_interrupt )
@@ -928,7 +929,7 @@ static MACHINE_CONFIG_START( tm3k, tmaster_state )
MCFG_CPU_PROGRAM_MAP(tmaster_map)
MCFG_TIMER_ADD_SCANLINE("scantimer", tm3k_interrupt, "screen", 0, 1)
- MCFG_MACHINE_RESET(tmaster)
+ MCFG_MACHINE_RESET_OVERRIDE(tmaster_state,tmaster)
MCFG_DUART68681_ADD( "duart68681", XTAL_8_664MHz / 2 /*??*/, tmaster_duart68681_config )
MCFG_MICROTOUCH_ADD( "microtouch", tmaster_microtouch_config )
@@ -944,7 +945,7 @@ static MACHINE_CONFIG_START( tm3k, tmaster_state )
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(tmaster)
+ MCFG_VIDEO_START_OVERRIDE(tmaster_state,tmaster)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -959,23 +960,22 @@ static MACHINE_CONFIG_DERIVED( tm, tm3k )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
-static MACHINE_RESET( galgames )
+MACHINE_RESET_MEMBER(tmaster_state,galgames)
{
- tmaster_state *state = machine.driver_data<tmaster_state>();
- state->m_gfx_offs = 0;
- state->m_gfx_size = 0x200000;
+ m_gfx_offs = 0;
+ m_gfx_size = 0x200000;
- state->membank(GALGAMES_BANK_000000_R)->set_entry(GALGAMES_ROM0); // rom
- state->membank(GALGAMES_BANK_000000_W)->set_entry(GALGAMES_RAM); // ram
+ membank(GALGAMES_BANK_000000_R)->set_entry(GALGAMES_ROM0); // rom
+ membank(GALGAMES_BANK_000000_W)->set_entry(GALGAMES_RAM); // ram
- state->membank(GALGAMES_BANK_200000_R)->set_entry(GALGAMES_RAM); // ram
- state->membank(GALGAMES_BANK_200000_W)->set_entry(GALGAMES_RAM); // ram
+ membank(GALGAMES_BANK_200000_R)->set_entry(GALGAMES_RAM); // ram
+ membank(GALGAMES_BANK_200000_W)->set_entry(GALGAMES_RAM); // ram
- state->membank(GALGAMES_BANK_240000_R)->set_entry(GALGAMES_ROM0); // rom
+ membank(GALGAMES_BANK_240000_R)->set_entry(GALGAMES_ROM0); // rom
- galgames_update_rombank(machine, 0);
+ galgames_update_rombank(machine(), 0);
- machine.device("maincpu")->reset();
+ machine().device("maincpu")->reset();
}
static MACHINE_CONFIG_START( galgames, tmaster_state )
@@ -990,7 +990,7 @@ static MACHINE_CONFIG_START( galgames, tmaster_state )
MCFG_EEPROM_ADD(GALGAMES_EEPROM_CART3, galgames_eeprom_interface)
MCFG_EEPROM_ADD(GALGAMES_EEPROM_CART4, galgames_eeprom_interface)
- MCFG_MACHINE_RESET( galgames )
+ MCFG_MACHINE_RESET_OVERRIDE(tmaster_state, galgames )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1002,7 +1002,7 @@ static MACHINE_CONFIG_START( galgames, tmaster_state )
MCFG_PALETTE_LENGTH(0x1000) // only 0x100 used
- MCFG_VIDEO_START(galgames)
+ MCFG_VIDEO_START_OVERRIDE(tmaster_state,galgames)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tmmjprd.c b/src/mame/drivers/tmmjprd.c
index 5eeda37b302..51eb5bd627e 100644
--- a/src/mame/drivers/tmmjprd.c
+++ b/src/mame/drivers/tmmjprd.c
@@ -66,6 +66,7 @@ public:
DECLARE_WRITE32_MEMBER(tmmjprd_brt_1_w);
DECLARE_WRITE32_MEMBER(tmmjprd_brt_2_w);
DECLARE_WRITE32_MEMBER(tmmjprd_eeprom_write);
+ virtual void video_start();
};
@@ -337,15 +338,14 @@ static SCREEN_UPDATE_IND16( tmmjprd_right )
return 0;
}
-static VIDEO_START(tmmjprd)
+void tmmjprd_state::video_start()
{
- tmmjprd_state *state = machine.driver_data<tmmjprd_state>();
/* the tilemaps are bigger than the regions the cpu can see, need to allocate the ram here */
/* or maybe not for this game/hw .... */
- state->m_tilemap_ram[0] = auto_alloc_array_clear(machine, UINT32, 0x8000);
- state->m_tilemap_ram[1] = auto_alloc_array_clear(machine, UINT32, 0x8000);
- state->m_tilemap_ram[2] = auto_alloc_array_clear(machine, UINT32, 0x8000);
- state->m_tilemap_ram[3] = auto_alloc_array_clear(machine, UINT32, 0x8000);
+ m_tilemap_ram[0] = auto_alloc_array_clear(machine(), UINT32, 0x8000);
+ m_tilemap_ram[1] = auto_alloc_array_clear(machine(), UINT32, 0x8000);
+ m_tilemap_ram[2] = auto_alloc_array_clear(machine(), UINT32, 0x8000);
+ m_tilemap_ram[3] = auto_alloc_array_clear(machine(), UINT32, 0x8000);
}
READ32_MEMBER(tmmjprd_state::tmmjprd_tilemap0_r)
@@ -780,7 +780,6 @@ static MACHINE_CONFIG_START( tmmjprd, tmmjprd_state )
//MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1)
MCFG_SCREEN_UPDATE_STATIC(tmmjprd_right)
- MCFG_VIDEO_START(tmmjprd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c
index 4c4ccef1c18..b995f904356 100644
--- a/src/mame/drivers/tmnt.c
+++ b/src/mame/drivers/tmnt.c
@@ -2203,44 +2203,42 @@ static const k053936_interface prmrsocr_k053936_interface =
};
-static MACHINE_START( common )
+MACHINE_START_MEMBER(tmnt_state,common)
{
- tmnt_state *state = machine.driver_data<tmnt_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k007232 = machine.device("k007232");
- state->m_k053260 = machine.device("k053260");
- state->m_k054539 = machine.device("k054539");
- state->m_upd = machine.device("upd");
- state->m_samples = machine.device<samples_device>("samples");
- state->m_k052109 = machine.device("k052109");
- state->m_k051960 = machine.device("k051960");
- state->m_k053245 = machine.device("k053245");
- state->m_k053251 = machine.device("k053251");
- state->m_k053936 = machine.device("k053936");
- state->m_k054000 = machine.device("k054000");
-
- state->save_item(NAME(state->m_toggle));
- state->save_item(NAME(state->m_last));
- state->save_item(NAME(state->m_tmnt_soundlatch));
- state->save_item(NAME(state->m_cuebrick_snd_irqlatch));
- state->save_item(NAME(state->m_cuebrick_nvram_bank));
- state->save_item(NAME(state->m_sprite_colorbase));
- state->save_item(NAME(state->m_layer_colorbase));
- state->save_item(NAME(state->m_layerpri));
- state->save_item(NAME(state->m_sorted_layer));
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k007232 = machine().device("k007232");
+ m_k053260 = machine().device("k053260");
+ m_k054539 = machine().device("k054539");
+ m_upd = machine().device("upd");
+ m_samples = machine().device<samples_device>("samples");
+ m_k052109 = machine().device("k052109");
+ m_k051960 = machine().device("k051960");
+ m_k053245 = machine().device("k053245");
+ m_k053251 = machine().device("k053251");
+ m_k053936 = machine().device("k053936");
+ m_k054000 = machine().device("k054000");
+
+ save_item(NAME(m_toggle));
+ save_item(NAME(m_last));
+ save_item(NAME(m_tmnt_soundlatch));
+ save_item(NAME(m_cuebrick_snd_irqlatch));
+ save_item(NAME(m_cuebrick_nvram_bank));
+ save_item(NAME(m_sprite_colorbase));
+ save_item(NAME(m_layer_colorbase));
+ save_item(NAME(m_layerpri));
+ save_item(NAME(m_sorted_layer));
}
-static MACHINE_RESET( common )
+MACHINE_RESET_MEMBER(tmnt_state,common)
{
- tmnt_state *state = machine.driver_data<tmnt_state>();
- state->m_toggle = 0;
- state->m_last = 0;
- state->m_tmnt_soundlatch = 0;
- state->m_cuebrick_snd_irqlatch = 0;
- state->m_cuebrick_nvram_bank = 0;
+ m_toggle = 0;
+ m_last = 0;
+ m_tmnt_soundlatch = 0;
+ m_cuebrick_snd_irqlatch = 0;
+ m_cuebrick_nvram_bank = 0;
}
/* cuebrick, mia and tmnt */
@@ -2260,8 +2258,8 @@ static MACHINE_CONFIG_START( cuebrick, tmnt_state )
MCFG_CPU_PROGRAM_MAP(cuebrick_main_map)
MCFG_CPU_VBLANK_INT("screen",cuebrick_interrupt)
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
@@ -2276,7 +2274,7 @@ static MACHINE_CONFIG_START( cuebrick, tmnt_state )
MCFG_PALETTE_LENGTH(1024)
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_VIDEO_START(cuebrick)
+ MCFG_VIDEO_START_OVERRIDE(tmnt_state,cuebrick)
MCFG_K052109_ADD("k052109", cuebrick_k052109_intf)
MCFG_K051960_ADD("k051960", cuebrick_k051960_intf)
@@ -2301,8 +2299,8 @@ static MACHINE_CONFIG_START( mia, tmnt_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz)
MCFG_CPU_PROGRAM_MAP(mia_audio_map)
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS)
@@ -2316,7 +2314,7 @@ static MACHINE_CONFIG_START( mia, tmnt_state )
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(mia)
+ MCFG_VIDEO_START_OVERRIDE(tmnt_state,mia)
MCFG_K052109_ADD("k052109", mia_k052109_intf)
MCFG_K051960_ADD("k051960", mia_k051960_intf)
@@ -2335,13 +2333,12 @@ static MACHINE_CONFIG_START( mia, tmnt_state )
MACHINE_CONFIG_END
-static MACHINE_RESET( tmnt )
+MACHINE_RESET_MEMBER(tmnt_state,tmnt)
{
- tmnt_state *state = machine.driver_data<tmnt_state>();
/* the UPD7759 control flip-flops are cleared: /ST is 1, /RESET is 0 */
- upd7759_start_w(state->m_upd, 0);
- upd7759_reset_w(state->m_upd, 1);
+ upd7759_start_w(m_upd, 0);
+ upd7759_reset_w(m_upd, 1);
}
static MACHINE_CONFIG_START( tmnt, tmnt_state )
@@ -2354,8 +2351,8 @@ static MACHINE_CONFIG_START( tmnt, tmnt_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz)
MCFG_CPU_PROGRAM_MAP(tmnt_audio_map)
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(tmnt)
+ MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,tmnt)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS)
@@ -2371,7 +2368,7 @@ static MACHINE_CONFIG_START( tmnt, tmnt_state )
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(tmnt)
+ MCFG_VIDEO_START_OVERRIDE(tmnt_state,tmnt)
MCFG_K052109_ADD("k052109", tmnt_k052109_intf)
MCFG_K051960_ADD("k051960", tmnt_k051960_intf)
@@ -2407,8 +2404,8 @@ static MACHINE_CONFIG_START( punkshot, tmnt_state )
MCFG_CPU_PROGRAM_MAP(punkshot_audio_map)
/* NMIs are generated by the 053260 */
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
@@ -2448,8 +2445,8 @@ static MACHINE_CONFIG_START( lgtnfght, tmnt_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz)
MCFG_CPU_PROGRAM_MAP(lgtnfght_audio_map)
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
@@ -2463,7 +2460,7 @@ static MACHINE_CONFIG_START( lgtnfght, tmnt_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(lgtnfght)
+ MCFG_VIDEO_START_OVERRIDE(tmnt_state,lgtnfght)
MCFG_K052109_ADD("k052109", tmnt_k052109_intf)
MCFG_K053245_ADD("k053245", lgtnfght_k05324x_intf)
@@ -2493,8 +2490,8 @@ static MACHINE_CONFIG_START( blswhstl, tmnt_state )
MCFG_CPU_PROGRAM_MAP(ssriders_audio_map)
/* NMIs are generated by the 053260 */
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -2511,7 +2508,7 @@ static MACHINE_CONFIG_START( blswhstl, tmnt_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START( blswhstl )
+ MCFG_VIDEO_START_OVERRIDE(tmnt_state, blswhstl )
MCFG_K052109_ADD("k052109", blswhstl_k052109_intf)
MCFG_K053245_ADD("k053245", blswhstl_k05324x_intf)
@@ -2559,8 +2556,8 @@ static MACHINE_CONFIG_START( glfgreat, tmnt_state )
MCFG_CPU_PROGRAM_MAP(glfgreat_audio_map)
/* NMIs are generated by the 053260 */
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
@@ -2575,7 +2572,7 @@ static MACHINE_CONFIG_START( glfgreat, tmnt_state )
MCFG_GFXDECODE(glfgreat)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(glfgreat)
+ MCFG_VIDEO_START_OVERRIDE(tmnt_state,glfgreat)
MCFG_K052109_ADD("k052109", glfgreat_k052109_intf)
MCFG_K053245_ADD("k053245", glfgreat_k05324x_intf)
@@ -2604,11 +2601,11 @@ static const k054539_interface k054539_config =
sound_nmi
};
-static MACHINE_START( prmrsocr )
+MACHINE_START_MEMBER(tmnt_state,prmrsocr)
{
- MACHINE_START_CALL(common);
- UINT8 *ROM = machine.root_device().memregion("audiocpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+ MACHINE_START_CALL_MEMBER(common);
+ UINT8 *ROM = machine().root_device().memregion("audiocpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
}
static MACHINE_CONFIG_START( prmrsocr, tmnt_state )
@@ -2622,8 +2619,8 @@ static MACHINE_CONFIG_START( prmrsocr, tmnt_state )
MCFG_CPU_PROGRAM_MAP(prmrsocr_audio_map)
/* NMIs are generated by the 054539 */
- MCFG_MACHINE_START(prmrsocr)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(tmnt_state,prmrsocr)
+ MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
MCFG_EEPROM_ADD("eeprom", thndrx2_eeprom_intf)
@@ -2640,7 +2637,7 @@ static MACHINE_CONFIG_START( prmrsocr, tmnt_state )
MCFG_GFXDECODE(glfgreat)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(prmrsocr)
+ MCFG_VIDEO_START_OVERRIDE(tmnt_state,prmrsocr)
MCFG_K052109_ADD("k052109", glfgreat_k052109_intf)
MCFG_K053245_ADD("k053245", prmrsocr_k05324x_intf)
@@ -2671,8 +2668,8 @@ static MACHINE_CONFIG_START( tmnt2, tmnt_state )
MCFG_CPU_PROGRAM_MAP(ssriders_audio_map)
/* NMIs are generated by the 053260 */
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -2688,7 +2685,7 @@ static MACHINE_CONFIG_START( tmnt2, tmnt_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(lgtnfght)
+ MCFG_VIDEO_START_OVERRIDE(tmnt_state,lgtnfght)
MCFG_K052109_ADD("k052109", tmnt_k052109_intf)
MCFG_K053245_ADD("k053245", lgtnfght_k05324x_intf)
@@ -2718,8 +2715,8 @@ static MACHINE_CONFIG_START( ssriders, tmnt_state )
MCFG_CPU_PROGRAM_MAP(ssriders_audio_map)
/* NMIs are generated by the 053260 */
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -2735,7 +2732,7 @@ static MACHINE_CONFIG_START( ssriders, tmnt_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(lgtnfght)
+ MCFG_VIDEO_START_OVERRIDE(tmnt_state,lgtnfght)
MCFG_K052109_ADD("k052109", tmnt_k052109_intf)
MCFG_K053245_ADD("k053245", lgtnfght_k05324x_intf)
@@ -2761,8 +2758,8 @@ static MACHINE_CONFIG_START( sunsetbl, tmnt_state )
MCFG_CPU_PROGRAM_MAP(sunsetbl_main_map)
MCFG_CPU_VBLANK_INT("screen", irq4_line_hold)
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -2801,8 +2798,8 @@ static MACHINE_CONFIG_START( thndrx2, tmnt_state )
MCFG_CPU_PROGRAM_MAP(thndrx2_audio_map)
/* NMIs are generated by the 053260 */
- MCFG_MACHINE_START(common)
- MCFG_MACHINE_RESET(common)
+ MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
+ MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
MCFG_EEPROM_ADD("eeprom", thndrx2_eeprom_intf)
diff --git a/src/mame/drivers/tmspoker.c b/src/mame/drivers/tmspoker.c
index ee28c094b91..1c69ee2a22d 100644
--- a/src/mame/drivers/tmspoker.c
+++ b/src/mame/drivers/tmspoker.c
@@ -228,6 +228,10 @@ public:
DECLARE_READ8_MEMBER(unk_r);
DECLARE_DRIVER_INIT(bus);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -255,10 +259,9 @@ TILE_GET_INFO_MEMBER(tmspoker_state::get_bg_tile_info)
SET_TILE_INFO_MEMBER( 0 /* bank */, code, 0 /* color */, 0);
}
-static VIDEO_START( tmspoker )
+void tmspoker_state::video_start()
{
- tmspoker_state *state = machine.driver_data<tmspoker_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tmspoker_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tmspoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
static SCREEN_UPDATE_IND16( tmspoker )
@@ -268,7 +271,7 @@ static SCREEN_UPDATE_IND16( tmspoker )
return 0;
}
-static PALETTE_INIT( tmspoker )
+void tmspoker_state::palette_init()
{
}
@@ -292,20 +295,20 @@ static INTERRUPT_GEN( tmspoker_interrupt )
* Start & Reset *
************************/
-static MACHINE_START( tmspoker )
+void tmspoker_state::machine_start()
{
- UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
- machine.root_device().membank("bank1")->configure_entries(0, 2, &ROM[0], 0x1000);
+ UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
+ machine().root_device().membank("bank1")->configure_entries(0, 2, &ROM[0], 0x1000);
}
-static MACHINE_RESET( tmspoker )
+void tmspoker_state::machine_reset()
{
- UINT8 seldsw = (machine.root_device().ioport("SELDSW")->read() );
+ UINT8 seldsw = (machine().root_device().ioport("SELDSW")->read() );
popmessage("ROM Bank: %02X", seldsw);
- machine.root_device().membank("bank1")->set_entry(seldsw);
+ machine().root_device().membank("bank1")->set_entry(seldsw);
}
@@ -568,8 +571,6 @@ static MACHINE_CONFIG_START( tmspoker, tmspoker_state )
MCFG_CPU_VBLANK_INT("screen", tmspoker_interrupt)
// MCFG_NVRAM_HANDLER(generic_0fill)
- MCFG_MACHINE_START(tmspoker)
- MCFG_MACHINE_RESET(tmspoker)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -580,10 +581,8 @@ static MACHINE_CONFIG_START( tmspoker, tmspoker_state )
MCFG_GFXDECODE(tmspoker)
- MCFG_PALETTE_INIT(tmspoker)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(tmspoker)
MCFG_SCREEN_UPDATE_STATIC(tmspoker)
MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/4, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c
index 804911aa0e0..cbcfeab1006 100644
--- a/src/mame/drivers/tnzs.c
+++ b/src/mame/drivers/tnzs.c
@@ -1628,8 +1628,8 @@ static MACHINE_CONFIG_START( arknoid2, tnzs_state )
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_START(tnzs)
- MCFG_MACHINE_RESET(tnzs)
+ MCFG_MACHINE_START_OVERRIDE(tnzs_state,tnzs)
+ MCFG_MACHINE_RESET_OVERRIDE(tnzs_state,tnzs)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -1645,7 +1645,7 @@ static MACHINE_CONFIG_START( arknoid2, tnzs_state )
MCFG_GFXDECODE(tnzs)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(arknoid2)
+ MCFG_PALETTE_INIT_OVERRIDE(tnzs_state,arknoid2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1669,8 +1669,8 @@ static MACHINE_CONFIG_START( drtoppel, tnzs_state )
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_START(tnzs)
- MCFG_MACHINE_RESET(tnzs)
+ MCFG_MACHINE_START_OVERRIDE(tnzs_state,tnzs)
+ MCFG_MACHINE_RESET_OVERRIDE(tnzs_state,tnzs)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -1686,7 +1686,7 @@ static MACHINE_CONFIG_START( drtoppel, tnzs_state )
MCFG_GFXDECODE(tnzs)
MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT(arknoid2)
+ MCFG_PALETTE_INIT_OVERRIDE(tnzs_state,arknoid2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1713,8 +1713,8 @@ static MACHINE_CONFIG_START( tnzs, tnzs_state )
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_START(tnzs)
- MCFG_MACHINE_RESET(tnzs)
+ MCFG_MACHINE_START_OVERRIDE(tnzs_state,tnzs)
+ MCFG_MACHINE_RESET_OVERRIDE(tnzs_state,tnzs)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -1753,8 +1753,8 @@ static MACHINE_CONFIG_START( insectx, tnzs_state )
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_START(tnzs)
- MCFG_MACHINE_RESET(tnzs)
+ MCFG_MACHINE_START_OVERRIDE(tnzs_state,tnzs)
+ MCFG_MACHINE_RESET_OVERRIDE(tnzs_state,tnzs)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -1792,8 +1792,8 @@ static MACHINE_CONFIG_START( kageki, tnzs_state )
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_START(tnzs)
- MCFG_MACHINE_RESET(tnzs)
+ MCFG_MACHINE_START_OVERRIDE(tnzs_state,tnzs)
+ MCFG_MACHINE_RESET_OVERRIDE(tnzs_state,tnzs)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -1841,8 +1841,8 @@ static MACHINE_CONFIG_START( tnzsb, tnzs_state )
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_START(tnzs)
- MCFG_MACHINE_RESET(tnzs)
+ MCFG_MACHINE_START_OVERRIDE(tnzs_state,tnzs)
+ MCFG_MACHINE_RESET_OVERRIDE(tnzs_state,tnzs)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
@@ -1900,8 +1900,8 @@ static MACHINE_CONFIG_START( jpopnics, tnzs_state )
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_MACHINE_START(jpopnics)
- MCFG_MACHINE_RESET(jpopnics)
+ MCFG_MACHINE_START_OVERRIDE(tnzs_state,jpopnics)
+ MCFG_MACHINE_RESET_OVERRIDE(tnzs_state,jpopnics)
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
diff --git a/src/mame/drivers/toaplan1.c b/src/mame/drivers/toaplan1.c
index 5377534ed9c..24b7946dc98 100644
--- a/src/mame/drivers/toaplan1.c
+++ b/src/mame/drivers/toaplan1.c
@@ -1540,7 +1540,7 @@ static MACHINE_CONFIG_START( rallybik, toaplan1_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_RESET(toaplan1)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,toaplan1)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1553,7 +1553,7 @@ static MACHINE_CONFIG_START( rallybik, toaplan1_state )
MCFG_GFXDECODE(rallybik)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
- MCFG_VIDEO_START(rallybik)
+ MCFG_VIDEO_START_OVERRIDE(toaplan1_state,rallybik)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1577,7 +1577,7 @@ static MACHINE_CONFIG_START( truxton, toaplan1_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_RESET(toaplan1)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,toaplan1)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1590,7 +1590,7 @@ static MACHINE_CONFIG_START( truxton, toaplan1_state )
MCFG_GFXDECODE(toaplan1)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
- MCFG_VIDEO_START(toaplan1)
+ MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1614,7 +1614,7 @@ static MACHINE_CONFIG_START( hellfire, toaplan1_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_RESET(toaplan1)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,toaplan1)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1627,7 +1627,7 @@ static MACHINE_CONFIG_START( hellfire, toaplan1_state )
MCFG_GFXDECODE(toaplan1)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
- MCFG_VIDEO_START(toaplan1)
+ MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1651,7 +1651,7 @@ static MACHINE_CONFIG_START( zerowing, toaplan1_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_RESET(zerowing)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,zerowing)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1664,7 +1664,7 @@ static MACHINE_CONFIG_START( zerowing, toaplan1_state )
MCFG_GFXDECODE(toaplan1)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
- MCFG_VIDEO_START(toaplan1)
+ MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1692,7 +1692,7 @@ static MACHINE_CONFIG_START( demonwld, toaplan1_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_RESET(demonwld)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,demonwld)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1705,7 +1705,7 @@ static MACHINE_CONFIG_START( demonwld, toaplan1_state )
MCFG_GFXDECODE(toaplan1)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
- MCFG_VIDEO_START(toaplan1)
+ MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1727,7 +1727,7 @@ static MACHINE_CONFIG_START( samesame, toaplan1_state )
MCFG_CPU_PROGRAM_MAP(hd647180_mem_map)
MCFG_DEVICE_DISABLE() /* Internal code is not dumped */
- MCFG_MACHINE_RESET(toaplan1)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,toaplan1)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1740,7 +1740,7 @@ static MACHINE_CONFIG_START( samesame, toaplan1_state )
MCFG_GFXDECODE(toaplan1)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
- MCFG_VIDEO_START(toaplan1)
+ MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1764,7 +1764,7 @@ static MACHINE_CONFIG_START( outzone, toaplan1_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_RESET(zerowing)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,zerowing)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1777,7 +1777,7 @@ static MACHINE_CONFIG_START( outzone, toaplan1_state )
MCFG_GFXDECODE(outzone)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
- MCFG_VIDEO_START(toaplan1)
+ MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1799,7 +1799,7 @@ static MACHINE_CONFIG_START( vimana, toaplan1_state )
MCFG_CPU_PROGRAM_MAP(hd647180_mem_map)
MCFG_DEVICE_DISABLE() /* Internal code is not dumped */
- MCFG_MACHINE_RESET(vimana)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,vimana)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1812,7 +1812,7 @@ static MACHINE_CONFIG_START( vimana, toaplan1_state )
MCFG_GFXDECODE(vm)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
- MCFG_VIDEO_START(toaplan1)
+ MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c
index 5defb778dd2..d3ed361a3d5 100644
--- a/src/mame/drivers/toaplan2.c
+++ b/src/mame/drivers/toaplan2.c
@@ -367,18 +367,17 @@ To Do / Unknowns:
***************************************************************************/
-static MACHINE_START( toaplan2 )
+MACHINE_START_MEMBER(toaplan2_state,toaplan2)
{
- toaplan2_state *state = machine.driver_data<toaplan2_state>();
- state->m_main_cpu = machine.device("maincpu");
- state->m_sub_cpu = machine.device("audiocpu");
+ m_main_cpu = machine().device("maincpu");
+ m_sub_cpu = machine().device("audiocpu");
- state->save_item(NAME(state->m_mcu_data));
- state->save_item(NAME(state->m_video_status));
- state->save_item(NAME(state->m_old_p1_paddle_h));
- state->save_item(NAME(state->m_old_p2_paddle_h));
- state->save_item(NAME(state->m_z80_busreq));
+ save_item(NAME(m_mcu_data));
+ save_item(NAME(m_video_status));
+ save_item(NAME(m_old_p1_paddle_h));
+ save_item(NAME(m_old_p2_paddle_h));
+ save_item(NAME(m_z80_busreq));
}
@@ -391,26 +390,24 @@ static void toaplan2_reset(device_t *device)
}
-static MACHINE_RESET( toaplan2 )
+MACHINE_RESET_MEMBER(toaplan2_state,toaplan2)
{
- toaplan2_state *state = machine.driver_data<toaplan2_state>();
- state->m_mcu_data = 0x00;
+ m_mcu_data = 0x00;
// All games execute a RESET instruction on init, presumably to reset the sound CPU.
// This is important for games with common RAM; the RAM test will fail
// when leaving service mode if the sound CPU is not reset.
- m68k_set_reset_callback(state->m_main_cpu, toaplan2_reset);
+ m68k_set_reset_callback(m_main_cpu, toaplan2_reset);
}
-static MACHINE_RESET( ghox )
+MACHINE_RESET_MEMBER(toaplan2_state,ghox)
{
- toaplan2_state *state = machine.driver_data<toaplan2_state>();
- MACHINE_RESET_CALL(toaplan2);
- state->m_old_p1_paddle_h = 0;
- state->m_old_p2_paddle_h = 0;
+ MACHINE_RESET_CALL_MEMBER(toaplan2);
+ m_old_p1_paddle_h = 0;
+ m_old_p2_paddle_h = 0;
}
@@ -3038,8 +3035,8 @@ static MACHINE_CONFIG_START( tekipaki, toaplan2_state )
MCFG_CPU_PROGRAM_MAP(hd647180_mem)
#endif
- MCFG_MACHINE_START(toaplan2)
- MCFG_MACHINE_RESET(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3056,7 +3053,7 @@ static MACHINE_CONFIG_START( tekipaki, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(toaplan2)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3079,8 +3076,8 @@ static MACHINE_CONFIG_START( ghox, toaplan2_state )
MCFG_CPU_PROGRAM_MAP(hd647180_mem)
#endif
- MCFG_MACHINE_START(toaplan2)
- MCFG_MACHINE_RESET(ghox)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,ghox)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3097,7 +3094,7 @@ static MACHINE_CONFIG_START( ghox, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(toaplan2)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3170,7 +3167,7 @@ static MACHINE_CONFIG_START( dogyuun, toaplan2_state )
MCFG_CPU_IO_MAP(dogyuun_v25_port)
MCFG_CPU_CONFIG(nitro_config)
- MCFG_MACHINE_START(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3188,7 +3185,7 @@ static MACHINE_CONFIG_START( dogyuun, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
MCFG_DEVICE_ADD_VDP1
- MCFG_VIDEO_START(toaplan2)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3214,7 +3211,7 @@ static MACHINE_CONFIG_START( kbash, toaplan2_state )
MCFG_CPU_IO_MAP(v25_port)
MCFG_CPU_CONFIG(nitro_config)
- MCFG_MACHINE_START(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3231,7 +3228,7 @@ static MACHINE_CONFIG_START( kbash, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(toaplan2)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3251,7 +3248,7 @@ static MACHINE_CONFIG_START( kbash2, toaplan2_state )
MCFG_CPU_PROGRAM_MAP(kbash2_68k_mem)
MCFG_CPU_VBLANK_INT("screen", toaplan2_vblank_irq4)
- MCFG_MACHINE_START(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3268,7 +3265,7 @@ static MACHINE_CONFIG_START( kbash2, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(toaplan2)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3288,7 +3285,7 @@ static MACHINE_CONFIG_START( truxton2, toaplan2_state )
MCFG_CPU_PROGRAM_MAP(truxton2_68k_mem)
MCFG_CPU_VBLANK_INT("screen", toaplan2_vblank_irq2)
- MCFG_MACHINE_START(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3305,7 +3302,7 @@ static MACHINE_CONFIG_START( truxton2, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(truxton2)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,truxton2)
/* sound hardware */
#ifdef TRUXTON2_STEREO // music data is stereo...
@@ -3342,8 +3339,8 @@ static MACHINE_CONFIG_START( pipibibs, toaplan2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(toaplan2)
- MCFG_MACHINE_RESET(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3360,7 +3357,7 @@ static MACHINE_CONFIG_START( pipibibs, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(toaplan2)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3383,8 +3380,8 @@ static MACHINE_CONFIG_START( pipibibsbl, toaplan2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(toaplan2)
- MCFG_MACHINE_RESET(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3401,7 +3398,7 @@ static MACHINE_CONFIG_START( pipibibsbl, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(toaplan2)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3463,7 +3460,7 @@ static MACHINE_CONFIG_START( fixeight, toaplan2_state )
MCFG_CPU_IO_MAP(fixeight_v25_port)
MCFG_CPU_CONFIG(ts001turbo_config)
- MCFG_MACHINE_START(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
MCFG_EEPROM_93C46_ADD("eeprom")
@@ -3482,7 +3479,7 @@ static MACHINE_CONFIG_START( fixeight, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(truxton2)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,truxton2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3502,7 +3499,7 @@ static MACHINE_CONFIG_START( fixeightbl, toaplan2_state )
MCFG_CPU_PROGRAM_MAP(fixeightbl_68k_mem)
MCFG_CPU_VBLANK_INT("screen", toaplan2_vblank_irq2)
- MCFG_MACHINE_START(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3519,7 +3516,7 @@ static MACHINE_CONFIG_START( fixeightbl, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(fixeightbl)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,fixeightbl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3542,7 +3539,7 @@ static MACHINE_CONFIG_START( vfive, toaplan2_state )
MCFG_CPU_IO_MAP(v25_port)
MCFG_CPU_CONFIG(nitro_config)
- MCFG_MACHINE_START(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3559,7 +3556,7 @@ static MACHINE_CONFIG_START( vfive, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(toaplan2)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3580,7 +3577,7 @@ static MACHINE_CONFIG_START( batsugun, toaplan2_state )
MCFG_CPU_PROGRAM_MAP(v25_mem)
MCFG_CPU_IO_MAP(v25_port)
- MCFG_MACHINE_START(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3598,7 +3595,7 @@ static MACHINE_CONFIG_START( batsugun, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
MCFG_DEVICE_ADD_VDP1
- MCFG_VIDEO_START(toaplan2)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3618,7 +3615,7 @@ static MACHINE_CONFIG_START( snowbro2, toaplan2_state )
MCFG_CPU_PROGRAM_MAP(snowbro2_68k_mem)
MCFG_CPU_VBLANK_INT("screen", toaplan2_vblank_irq4)
- MCFG_MACHINE_START(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3635,7 +3632,7 @@ static MACHINE_CONFIG_START( snowbro2, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(toaplan2)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3660,8 +3657,8 @@ static MACHINE_CONFIG_START( mahoudai, toaplan2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(toaplan2)
- MCFG_MACHINE_RESET(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3678,7 +3675,7 @@ static MACHINE_CONFIG_START( mahoudai, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(bgaregga)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgaregga)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3703,8 +3700,8 @@ static MACHINE_CONFIG_START( shippumd, toaplan2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(toaplan2)
- MCFG_MACHINE_RESET(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3721,7 +3718,7 @@ static MACHINE_CONFIG_START( shippumd, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(bgaregga)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgaregga)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3757,8 +3754,8 @@ static MACHINE_CONFIG_START( bgaregga, toaplan2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(toaplan2)
- MCFG_MACHINE_RESET(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3775,7 +3772,7 @@ static MACHINE_CONFIG_START( bgaregga, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(bgaregga)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgaregga)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3791,7 +3788,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( bgareggabl, bgaregga )
- MCFG_VIDEO_START(bgareggabl)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgareggabl)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( batrider, toaplan2_state )
@@ -3807,8 +3804,8 @@ static MACHINE_CONFIG_START( batrider, toaplan2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(toaplan2)
- MCFG_MACHINE_RESET(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3824,7 +3821,7 @@ static MACHINE_CONFIG_START( batrider, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(batrider)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,batrider)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3856,8 +3853,8 @@ static MACHINE_CONFIG_START( bbakraid, toaplan2_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(toaplan2)
- MCFG_MACHINE_RESET(toaplan2)
+ MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
+ MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
MCFG_EEPROM_ADD("eeprom", bbakraid_93C66_intf)
@@ -3875,7 +3872,7 @@ static MACHINE_CONFIG_START( bbakraid, toaplan2_state )
MCFG_DEVICE_ADD_VDP0
- MCFG_VIDEO_START(batrider)
+ MCFG_VIDEO_START_OVERRIDE(toaplan2_state,batrider)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c
index 2724f16e8f5..5624f7927e3 100644
--- a/src/mame/drivers/toki.c
+++ b/src/mame/drivers/toki.c
@@ -437,7 +437,6 @@ static MACHINE_CONFIG_START( toki, toki_state ) /* KOYO 20.000MHz near the cpu *
MCFG_GFXDECODE(toki)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(toki)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM3812_RAIDEN_INTERFACE(XTAL_14_31818MHz/4,XTAL_12MHz/12) /* verifed on pcb */
@@ -467,7 +466,6 @@ static MACHINE_CONFIG_START( tokib, toki_state )
MCFG_GFXDECODE(tokib)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(toki)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tomcat.c b/src/mame/drivers/tomcat.c
index d5f554e9b9f..2ff6a9849de 100644
--- a/src/mame/drivers/tomcat.c
+++ b/src/mame/drivers/tomcat.c
@@ -76,6 +76,7 @@ public:
DECLARE_READ8_MEMBER(tomcat_nvram_r);
DECLARE_WRITE8_MEMBER(tomcat_nvram_w);
DECLARE_WRITE8_MEMBER(soundlatches_w);
+ virtual void machine_start();
};
@@ -355,22 +356,21 @@ static INPUT_PORTS_START( tomcat )
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(30)
INPUT_PORTS_END
-static MACHINE_START(tomcat)
+void tomcat_state::machine_start()
{
- tomcat_state *state = machine.driver_data<tomcat_state>();
- ((UINT16*)state->m_shared_ram)[0x0000] = 0xf600;
- ((UINT16*)state->m_shared_ram)[0x0001] = 0x0000;
- ((UINT16*)state->m_shared_ram)[0x0002] = 0xf600;
- ((UINT16*)state->m_shared_ram)[0x0003] = 0x0000;
+ ((UINT16*)m_shared_ram)[0x0000] = 0xf600;
+ ((UINT16*)m_shared_ram)[0x0001] = 0x0000;
+ ((UINT16*)m_shared_ram)[0x0002] = 0xf600;
+ ((UINT16*)m_shared_ram)[0x0003] = 0x0000;
- machine.device<nvram_device>("nvram")->set_base(state->m_nvram, 0x800);
+ machine().device<nvram_device>("nvram")->set_base(m_nvram, 0x800);
- state->save_item(NAME(state->m_nvram));
- state->save_item(NAME(state->m_control_num));
- state->save_item(NAME(state->m_dsp_BIO));
- state->save_item(NAME(state->m_dsp_idle));
+ save_item(NAME(m_nvram));
+ save_item(NAME(m_control_num));
+ save_item(NAME(m_dsp_BIO));
+ save_item(NAME(m_dsp_idle));
- state->m_dsp_BIO = 0;
+ m_dsp_BIO = 0;
}
static const riot6532_interface tomcat_riot6532_intf =
@@ -412,7 +412,6 @@ static MACHINE_CONFIG_START( tomcat, tomcat_state )
MCFG_QUANTUM_TIME(attotime::from_hz(4000))
- MCFG_MACHINE_START(tomcat)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/tonton.c b/src/mame/drivers/tonton.c
index c56603754d8..b7d199b4760 100644
--- a/src/mame/drivers/tonton.c
+++ b/src/mame/drivers/tonton.c
@@ -41,6 +41,8 @@ public:
DECLARE_WRITE8_MEMBER(tonton_outport_w);
DECLARE_WRITE8_MEMBER(ay_aout_w);
DECLARE_WRITE8_MEMBER(ay_bout_w);
+ virtual void machine_start();
+ virtual void machine_reset();
};
#define MAIN_CLOCK XTAL_21_4772MHz
@@ -187,11 +189,11 @@ INPUT_PORTS_END
* Machine Start & Reset Routines *
*************************************************/
-static MACHINE_START( tonton )
+void tonton_state::machine_start()
{
}
-static MACHINE_RESET( tonton )
+void tonton_state::machine_reset()
{
}
@@ -257,8 +259,6 @@ static MACHINE_CONFIG_START( tonton, tonton_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_MACHINE_START(tonton)
- MCFG_MACHINE_RESET(tonton)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/toobin.c b/src/mame/drivers/toobin.c
index 1f21823d1c8..099576096ed 100644
--- a/src/mame/drivers/toobin.c
+++ b/src/mame/drivers/toobin.c
@@ -43,18 +43,17 @@ static void update_interrupts(running_machine &machine)
}
-static MACHINE_START( toobin )
+MACHINE_START_MEMBER(toobin_state,toobin)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( toobin )
+MACHINE_RESET_MEMBER(toobin_state,toobin)
{
- toobin_state *state = machine.driver_data<toobin_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
atarijsa_reset();
}
@@ -228,8 +227,8 @@ static MACHINE_CONFIG_START( toobin, toobin_state )
MCFG_CPU_ADD("maincpu", M68010, MASTER_CLOCK/4)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(toobin)
- MCFG_MACHINE_RESET(toobin)
+ MCFG_MACHINE_START_OVERRIDE(toobin_state,toobin)
+ MCFG_MACHINE_RESET_OVERRIDE(toobin_state,toobin)
MCFG_NVRAM_ADD_1FILL("eeprom")
MCFG_WATCHDOG_VBLANK_INIT(8)
@@ -243,7 +242,7 @@ static MACHINE_CONFIG_START( toobin, toobin_state )
MCFG_GFXDECODE(toobin)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(toobin)
+ MCFG_VIDEO_START_OVERRIDE(toobin_state,toobin)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_i_stereo_pokey)
diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c
index 684dc8d4204..568abaee859 100644
--- a/src/mame/drivers/topspeed.c
+++ b/src/mame/drivers/topspeed.c
@@ -693,42 +693,40 @@ static void topspeed_postload(running_machine &machine)
reset_sound_region(machine);
}
-static MACHINE_START( topspeed )
+void topspeed_state::machine_start()
{
- topspeed_state *state = machine.driver_data<topspeed_state>();
- state->membank("bank10")->configure_entries(0, 4, state->memregion("audiocpu")->base() + 0xc000, 0x4000);
+ membank("bank10")->configure_entries(0, 4, memregion("audiocpu")->base() + 0xc000, 0x4000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_subcpu = machine.device<cpu_device>("subcpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_tc0220ioc = machine.device("tc0220ioc");
- state->m_pc080sn_1 = machine.device("pc080sn_1");
- state->m_pc080sn_2 = machine.device("pc080sn_2");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_subcpu = machine().device<cpu_device>("subcpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_tc0220ioc = machine().device("tc0220ioc");
+ m_pc080sn_1 = machine().device("pc080sn_1");
+ m_pc080sn_2 = machine().device("pc080sn_2");
- state->m_msm_chip[0] = machine.device("msm1");
- state->m_msm_chip[1] = machine.device("msm2");
- state->m_msm_rom[0] = state->memregion("adpcm")->base();
- state->m_msm_rom[1] = state->memregion("adpcm")->base() + 0x10000;
+ m_msm_chip[0] = machine().device("msm1");
+ m_msm_chip[1] = machine().device("msm2");
+ m_msm_rom[0] = memregion("adpcm")->base();
+ m_msm_rom[1] = memregion("adpcm")->base() + 0x10000;
- state->save_item(NAME(state->m_cpua_ctrl));
- state->save_item(NAME(state->m_ioc220_port));
- state->save_item(NAME(state->m_banknum));
- machine.save().register_postload(save_prepost_delegate(FUNC(topspeed_postload), &machine));
+ save_item(NAME(m_cpua_ctrl));
+ save_item(NAME(m_ioc220_port));
+ save_item(NAME(m_banknum));
+ machine().save().register_postload(save_prepost_delegate(FUNC(topspeed_postload), &machine()));
}
-static MACHINE_RESET( topspeed )
+void topspeed_state::machine_reset()
{
- topspeed_state *state = machine.driver_data<topspeed_state>();
- state->m_cpua_ctrl = 0xff;
- state->m_ioc220_port = 0;
- state->m_banknum = -1;
+ m_cpua_ctrl = 0xff;
+ m_ioc220_port = 0;
+ m_banknum = -1;
- msm5205_reset_w(state->m_msm_chip[0], 1);
- msm5205_reset_w(state->m_msm_chip[1], 1);
- state->m_msm_loop[0] = 0;
- state->m_msm_loop[1] = 0;
+ msm5205_reset_w(m_msm_chip[0], 1);
+ msm5205_reset_w(m_msm_chip[1], 1);
+ m_msm_loop[0] = 0;
+ m_msm_loop[1] = 0;
}
static const pc080sn_interface topspeed_pc080sn_intf =
@@ -762,8 +760,6 @@ static MACHINE_CONFIG_START( topspeed, topspeed_state )
MCFG_CPU_PROGRAM_MAP(topspeed_cpub_map)
MCFG_CPU_VBLANK_INT("screen", topspeed_cpub_interrupt)
- MCFG_MACHINE_START(topspeed)
- MCFG_MACHINE_RESET(topspeed)
MCFG_TC0220IOC_ADD("tc0220ioc", topspeed_io_intf)
diff --git a/src/mame/drivers/toratora.c b/src/mame/drivers/toratora.c
index db1ebe58738..613d1d99de4 100644
--- a/src/mame/drivers/toratora.c
+++ b/src/mame/drivers/toratora.c
@@ -55,6 +55,8 @@ public:
DECLARE_WRITE8_MEMBER(sn2_port_a_u2_u3_w);
DECLARE_WRITE8_MEMBER(sn2_port_b_u2_u3_w);
DECLARE_WRITE_LINE_MEMBER(sn2_ca2_u2_u3_w);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -421,27 +423,25 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_START( toratora )
+void toratora_state::machine_start()
{
- toratora_state *state = machine.driver_data<toratora_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_pia_u1 = machine.device<pia6821_device>("pia_u1");
- state->m_pia_u2 = machine.device<pia6821_device>("pia_u2");
- state->m_pia_u3 = machine.device<pia6821_device>("pia_u3");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_pia_u1 = machine().device<pia6821_device>("pia_u1");
+ m_pia_u2 = machine().device<pia6821_device>("pia_u2");
+ m_pia_u3 = machine().device<pia6821_device>("pia_u3");
- state->save_item(NAME(state->m_timer));
- state->save_item(NAME(state->m_last));
- state->save_item(NAME(state->m_clear_tv));
+ save_item(NAME(m_timer));
+ save_item(NAME(m_last));
+ save_item(NAME(m_clear_tv));
}
-static MACHINE_RESET( toratora )
+void toratora_state::machine_reset()
{
- toratora_state *state = machine.driver_data<toratora_state>();
- state->m_timer = 0xff;
- state->m_last = 0;
- state->m_clear_tv = 0;
+ m_timer = 0xff;
+ m_last = 0;
+ m_clear_tv = 0;
}
static MACHINE_CONFIG_START( toratora, toratora_state )
@@ -455,8 +455,6 @@ static MACHINE_CONFIG_START( toratora, toratora_state )
MCFG_PIA6821_ADD("pia_u2", pia_u2_intf)
MCFG_PIA6821_ADD("pia_u3", pia_u3_intf)
- MCFG_MACHINE_START(toratora)
- MCFG_MACHINE_RESET(toratora)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/toypop.c b/src/mame/drivers/toypop.c
index 9f1e2d2b32a..8181fd60618 100644
--- a/src/mame/drivers/toypop.c
+++ b/src/mame/drivers/toypop.c
@@ -148,17 +148,16 @@ WRITE8_MEMBER(toypop_state::toypop_m68000_assert_w)
machine().device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
-static MACHINE_RESET( toypop )
+void toypop_state::machine_reset()
{
- toypop_state *state = machine.driver_data<toypop_state>();
- state->m_main_irq_mask = 0;
- machine.device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
+ m_main_irq_mask = 0;
+ machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
- state->m_sound_irq_mask = 0;
- machine.device("audiocpu")->execute().set_input_line(0, CLEAR_LINE);
+ m_sound_irq_mask = 0;
+ machine().device("audiocpu")->execute().set_input_line(0, CLEAR_LINE);
- state->m_interrupt_enable_68k = 0;
+ m_interrupt_enable_68k = 0;
}
static INTERRUPT_GEN( toypop_m68000_interrupt )
@@ -562,7 +561,6 @@ static MACHINE_CONFIG_START( liblrabl, toypop_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_RESET(toypop)
MCFG_NAMCO58XX_ADD("58xx", intf0)
MCFG_NAMCO56XX_ADD("56xx_1", intf1)
@@ -579,8 +577,6 @@ static MACHINE_CONFIG_START( liblrabl, toypop_state )
MCFG_GFXDECODE(toypop)
MCFG_PALETTE_LENGTH(128*4+64*4+16*2)
- MCFG_PALETTE_INIT(toypop)
- MCFG_VIDEO_START(toypop)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tp84.c b/src/mame/drivers/tp84.c
index 31d107cceb2..6c7cb710f16 100644
--- a/src/mame/drivers/tp84.c
+++ b/src/mame/drivers/tp84.c
@@ -74,10 +74,9 @@ C004 76489 #4 trigger
-static MACHINE_START( tp84 )
+void tp84_state::machine_start()
{
- tp84_state *state = machine.driver_data<tp84_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
}
@@ -322,7 +321,6 @@ static MACHINE_CONFIG_START( tp84, tp84_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_START(tp84)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -335,8 +333,6 @@ static MACHINE_CONFIG_START( tp84, tp84_state )
MCFG_GFXDECODE(tp84)
MCFG_PALETTE_LENGTH(4096)
- MCFG_PALETTE_INIT(tp84)
- MCFG_VIDEO_START(tp84)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c
index 3f14f16271c..882b05bbcff 100644
--- a/src/mame/drivers/trackfld.c
+++ b/src/mame/drivers/trackfld.c
@@ -864,25 +864,23 @@ GFXDECODE_END
-static MACHINE_START( trackfld )
+MACHINE_START_MEMBER(trackfld_state,trackfld)
{
- trackfld_state *state = machine.driver_data<trackfld_state>();
/* video */
- state->save_item(NAME(state->m_bg_bank));
- state->save_item(NAME(state->m_sprite_bank1));
- state->save_item(NAME(state->m_sprite_bank2));
- state->save_item(NAME(state->m_old_gfx_bank));
+ save_item(NAME(m_bg_bank));
+ save_item(NAME(m_sprite_bank1));
+ save_item(NAME(m_sprite_bank2));
+ save_item(NAME(m_old_gfx_bank));
}
-static MACHINE_RESET( trackfld )
+MACHINE_RESET_MEMBER(trackfld_state,trackfld)
{
- trackfld_state *state = machine.driver_data<trackfld_state>();
- state->m_bg_bank = 0;
- state->m_sprite_bank1 = 0;
- state->m_sprite_bank2 = 0;
- state->m_old_gfx_bank = 0;
+ m_bg_bank = 0;
+ m_sprite_bank1 = 0;
+ m_sprite_bank2 = 0;
+ m_old_gfx_bank = 0;
}
static INTERRUPT_GEN( vblank_irq )
@@ -920,8 +918,8 @@ static MACHINE_CONFIG_START( trackfld, trackfld_state )
MCFG_CPU_ADD("audiocpu", Z80, SOUND_CLOCK/4)
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(trackfld)
- MCFG_MACHINE_RESET(trackfld)
+ MCFG_MACHINE_START_OVERRIDE(trackfld_state,trackfld)
+ MCFG_MACHINE_RESET_OVERRIDE(trackfld_state,trackfld)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -935,8 +933,8 @@ static MACHINE_CONFIG_START( trackfld, trackfld_state )
MCFG_GFXDECODE(trackfld)
MCFG_PALETTE_LENGTH(16*16+16*16)
- MCFG_PALETTE_INIT(trackfld)
- MCFG_VIDEO_START(trackfld)
+ MCFG_PALETTE_INIT_OVERRIDE(trackfld_state,trackfld)
+ MCFG_VIDEO_START_OVERRIDE(trackfld_state,trackfld)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -975,8 +973,8 @@ static MACHINE_CONFIG_START( yieartf, trackfld_state )
// MCFG_CPU_ADD("audiocpu", Z80, SOUND_CLOCK/4)
// MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(trackfld)
- MCFG_MACHINE_RESET(trackfld)
+ MCFG_MACHINE_START_OVERRIDE(trackfld_state,trackfld)
+ MCFG_MACHINE_RESET_OVERRIDE(trackfld_state,trackfld)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -990,8 +988,8 @@ static MACHINE_CONFIG_START( yieartf, trackfld_state )
MCFG_GFXDECODE(trackfld)
MCFG_PALETTE_LENGTH(16*16+16*16)
- MCFG_PALETTE_INIT(trackfld)
- MCFG_VIDEO_START(trackfld)
+ MCFG_PALETTE_INIT_OVERRIDE(trackfld_state,trackfld)
+ MCFG_VIDEO_START_OVERRIDE(trackfld_state,trackfld)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1016,8 +1014,8 @@ static MACHINE_CONFIG_DERIVED( hyprolyb, trackfld )
MCFG_CPU_MODIFY("audiocpu")
MCFG_CPU_PROGRAM_MAP(hyprolyb_sound_map)
- MCFG_MACHINE_START(trackfld)
- MCFG_MACHINE_RESET(trackfld)
+ MCFG_MACHINE_START_OVERRIDE(trackfld_state,trackfld)
+ MCFG_MACHINE_RESET_OVERRIDE(trackfld_state,trackfld)
/* sound hardware */
MCFG_DEVICE_REMOVE("vlm")
@@ -1026,7 +1024,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( atlantol, hyprolyb )
- MCFG_VIDEO_START(atlantol)
+ MCFG_VIDEO_START_OVERRIDE(trackfld_state,atlantol)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/travrusa.c b/src/mame/drivers/travrusa.c
index 13efc80e4d1..3673da60531 100644
--- a/src/mame/drivers/travrusa.c
+++ b/src/mame/drivers/travrusa.c
@@ -289,12 +289,11 @@ static GFXDECODE_START( shtrider )
GFXDECODE_ENTRY( "gfx2", 0, shtrider_spritelayout, 16*8, 16 )
GFXDECODE_END
-static MACHINE_RESET( travrusa )
+void travrusa_state::machine_reset()
{
- travrusa_state *state = machine.driver_data<travrusa_state>();
- state->m_scrollx[0] = 0;
- state->m_scrollx[1] = 0;
+ m_scrollx[0] = 0;
+ m_scrollx[1] = 0;
}
static MACHINE_CONFIG_START( travrusa, travrusa_state )
@@ -304,7 +303,6 @@ static MACHINE_CONFIG_START( travrusa, travrusa_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
- MCFG_MACHINE_RESET(travrusa)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -320,8 +318,6 @@ static MACHINE_CONFIG_START( travrusa, travrusa_state )
MCFG_PALETTE_LENGTH(16*8+16*8)
- MCFG_PALETTE_INIT(travrusa)
- MCFG_VIDEO_START(travrusa)
/* sound hardware */
MCFG_FRAGMENT_ADD(m52_sound_c_audio)
@@ -331,7 +327,7 @@ static MACHINE_CONFIG_DERIVED( shtrider, travrusa )
/* video hardware */
MCFG_GFXDECODE(shtrider)
- MCFG_PALETTE_INIT(shtrider)
+ MCFG_PALETTE_INIT_OVERRIDE(travrusa_state,shtrider)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/triforce.c b/src/mame/drivers/triforce.c
index 04dc157264e..df904ade008 100644
--- a/src/mame/drivers/triforce.c
+++ b/src/mame/drivers/triforce.c
@@ -419,6 +419,8 @@ public:
DECLARE_WRITE64_MEMBER(gc_pi_w);
DECLARE_READ64_MEMBER(gc_exi_r);
DECLARE_WRITE64_MEMBER(gc_exi_w);
+ virtual void machine_start();
+ virtual void video_start();
};
READ64_MEMBER(triforce_state::gc_pi_r)
@@ -449,7 +451,7 @@ static ADDRESS_MAP_START( gc_map, AS_PROGRAM, 64, triforce_state )
ADDRESS_MAP_END
-static VIDEO_START(triforce)
+void triforce_state::video_start()
{
}
@@ -516,12 +518,12 @@ static void descrambler(UINT8* data, UINT32 size)
}
}
-static MACHINE_START( triforce )
+void triforce_state::machine_start()
{
/* set conservative DRC options */
- ppcdrc_set_options(machine.device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
+ ppcdrc_set_options(machine().device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
- UINT8 *rom = (UINT8*)machine.root_device().memregion("maincpu")->base();
+ UINT8 *rom = (UINT8*)machine().root_device().memregion("maincpu")->base();
descrambler(&rom[0x100], 0x1afe00);
}
@@ -533,7 +535,6 @@ static MACHINE_CONFIG_START( triforce_base, triforce_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(triforce)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -544,7 +545,6 @@ static MACHINE_CONFIG_START( triforce_base, triforce_state )
MCFG_PALETTE_LENGTH(65536)
- MCFG_VIDEO_START(triforce)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( triforcegd, triforce_base )
diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c
index 60a861548fa..d72ef25b699 100644
--- a/src/mame/drivers/triplhnt.c
+++ b/src/mame/drivers/triplhnt.c
@@ -293,16 +293,16 @@ static GFXDECODE_START( triplhnt )
GFXDECODE_END
-static PALETTE_INIT( triplhnt )
+void triplhnt_state::palette_init()
{
- palette_set_color(machine, 0, MAKE_RGB(0xAF, 0xAF, 0xAF)); /* sprites */
- palette_set_color(machine, 1, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, 2, MAKE_RGB(0xFF, 0xFF, 0xFF));
- palette_set_color(machine, 3, MAKE_RGB(0x50, 0x50, 0x50));
- palette_set_color(machine, 4, MAKE_RGB(0x00, 0x00, 0x00)); /* tiles */
- palette_set_color(machine, 5, MAKE_RGB(0x3F, 0x3F, 0x3F));
- palette_set_color(machine, 6, MAKE_RGB(0x00, 0x00, 0x00));
- palette_set_color(machine, 7, MAKE_RGB(0x3F, 0x3F, 0x3F));
+ palette_set_color(machine(), 0, MAKE_RGB(0xAF, 0xAF, 0xAF)); /* sprites */
+ palette_set_color(machine(), 1, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), 2, MAKE_RGB(0xFF, 0xFF, 0xFF));
+ palette_set_color(machine(), 3, MAKE_RGB(0x50, 0x50, 0x50));
+ palette_set_color(machine(), 4, MAKE_RGB(0x00, 0x00, 0x00)); /* tiles */
+ palette_set_color(machine(), 5, MAKE_RGB(0x3F, 0x3F, 0x3F));
+ palette_set_color(machine(), 6, MAKE_RGB(0x00, 0x00, 0x00));
+ palette_set_color(machine(), 7, MAKE_RGB(0x3F, 0x3F, 0x3F));
}
@@ -324,8 +324,6 @@ static MACHINE_CONFIG_START( triplhnt, triplhnt_state )
MCFG_GFXDECODE(triplhnt)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(triplhnt)
- MCFG_VIDEO_START(triplhnt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/truco.c b/src/mame/drivers/truco.c
index a64026c4516..f66d32d3e97 100644
--- a/src/mame/drivers/truco.c
+++ b/src/mame/drivers/truco.c
@@ -359,35 +359,34 @@ INPUT_PORTS_END
* Machine Reset & Interrupts *
*******************************************/
-static MACHINE_RESET( truco )
+void truco_state::machine_reset()
{
- truco_state *state = machine.driver_data<truco_state>();
int a;
/* Setup the data on the battery backed RAM */
/* IRQ check */
- state->m_battery_ram[0x002] = 0x51;
- state->m_battery_ram[0x024] = 0x49;
- state->m_battery_ram[0x089] = 0x04;
- state->m_battery_ram[0x170] = 0x12;
- state->m_battery_ram[0x1a8] = 0xd5;
+ m_battery_ram[0x002] = 0x51;
+ m_battery_ram[0x024] = 0x49;
+ m_battery_ram[0x089] = 0x04;
+ m_battery_ram[0x170] = 0x12;
+ m_battery_ram[0x1a8] = 0xd5;
/* Mainloop check */
- state->m_battery_ram[0x005] = 0x04;
- state->m_battery_ram[0x22B] = 0x46;
- state->m_battery_ram[0x236] = 0xfb;
- state->m_battery_ram[0x2fe] = 0x1D;
- state->m_battery_ram[0x359] = 0x5A;
+ m_battery_ram[0x005] = 0x04;
+ m_battery_ram[0x22B] = 0x46;
+ m_battery_ram[0x236] = 0xfb;
+ m_battery_ram[0x2fe] = 0x1D;
+ m_battery_ram[0x359] = 0x5A;
/* Boot check */
- a = ( state->m_battery_ram[0x000] << 8 ) | state->m_battery_ram[0x001];
+ a = ( m_battery_ram[0x000] << 8 ) | m_battery_ram[0x001];
a += 0x4d2;
- state->m_battery_ram[0x01d] = ( a >> 8 ) & 0xff;
- state->m_battery_ram[0x01e] = a & 0xff;
- state->m_battery_ram[0x020] = state->m_battery_ram[0x011];
+ m_battery_ram[0x01d] = ( a >> 8 ) & 0xff;
+ m_battery_ram[0x01e] = a & 0xff;
+ m_battery_ram[0x020] = m_battery_ram[0x011];
}
static INTERRUPT_GEN( truco_interrupt )
@@ -463,7 +462,6 @@ static MACHINE_CONFIG_START( truco, truco_state )
MCFG_PIA6821_ADD("pia0", pia0_intf)
- MCFG_MACHINE_RESET(truco)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -474,7 +472,6 @@ static MACHINE_CONFIG_START( truco, truco_state )
MCFG_SCREEN_UPDATE_STATIC(truco)
MCFG_PALETTE_LENGTH(16)
- MCFG_PALETTE_INIT(truco)
MCFG_MC6845_ADD("crtc", MC6845, CRTC_CLOCK, mc6845_intf) /* Identified as UM6845 */
diff --git a/src/mame/drivers/trucocl.c b/src/mame/drivers/trucocl.c
index e89ce3b212f..4d0be1cd6d2 100644
--- a/src/mame/drivers/trucocl.c
+++ b/src/mame/drivers/trucocl.c
@@ -148,8 +148,6 @@ static MACHINE_CONFIG_START( trucocl, trucocl_state )
MCFG_GFXDECODE(trucocl)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(trucocl)
- MCFG_VIDEO_START(trucocl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/trvmadns.c b/src/mame/drivers/trvmadns.c
index 73be7f61d32..df3e04279ab 100644
--- a/src/mame/drivers/trvmadns.c
+++ b/src/mame/drivers/trvmadns.c
@@ -84,6 +84,8 @@ public:
DECLARE_WRITE8_MEMBER(w3);
DECLARE_WRITE8_MEMBER(trvmadns_tileram_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -280,14 +282,13 @@ TILE_GET_INFO_MEMBER(trvmadns_state::get_bg_tile_info)
tileinfo.category = (attr & 0x20)>>5;
}
-static VIDEO_START( trvmadns )
+void trvmadns_state::video_start()
{
- trvmadns_state *state = machine.driver_data<trvmadns_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(trvmadns_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(trvmadns_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// fg_tilemap->set_transparent_pen(1);
- machine.gfx[0]->set_source(state->m_gfxram);
+ machine().gfx[0]->set_source(m_gfxram);
}
static SCREEN_UPDATE_IND16( trvmadns )
@@ -337,10 +338,9 @@ static SCREEN_UPDATE_IND16( trvmadns )
return 0;
}
-static MACHINE_RESET( trvmadns )
+void trvmadns_state::machine_reset()
{
- trvmadns_state *state = machine.driver_data<trvmadns_state>();
- state->m_old_data = -1;
+ m_old_data = -1;
}
static MACHINE_CONFIG_START( trvmadns, trvmadns_state )
@@ -349,7 +349,6 @@ static MACHINE_CONFIG_START( trvmadns, trvmadns_state )
MCFG_CPU_IO_MAP(io_map)
MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse)
- MCFG_MACHINE_RESET(trvmadns)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -362,7 +361,6 @@ static MACHINE_CONFIG_START( trvmadns, trvmadns_state )
MCFG_GFXDECODE(trvmadns)
MCFG_PALETTE_LENGTH(16)
- MCFG_VIDEO_START(trvmadns)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/trvquest.c b/src/mame/drivers/trvquest.c
index f979a829604..9b5cea50246 100644
--- a/src/mame/drivers/trvquest.c
+++ b/src/mame/drivers/trvquest.c
@@ -183,27 +183,25 @@ static const via6522_interface via_2_interface =
};
-static MACHINE_START( trvquest )
+MACHINE_START_MEMBER(gameplan_state,trvquest)
{
- gameplan_state *state = machine.driver_data<gameplan_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
/* register for save states */
- state->save_item(NAME(state->m_video_x));
- state->save_item(NAME(state->m_video_y));
- state->save_item(NAME(state->m_video_command));
- state->save_item(NAME(state->m_video_data));
+ save_item(NAME(m_video_x));
+ save_item(NAME(m_video_y));
+ save_item(NAME(m_video_command));
+ save_item(NAME(m_video_data));
}
-static MACHINE_RESET( trvquest )
+MACHINE_RESET_MEMBER(gameplan_state,trvquest)
{
- gameplan_state *state = machine.driver_data<gameplan_state>();
- state->m_video_x = 0;
- state->m_video_y = 0;
- state->m_video_command = 0;
- state->m_video_data = 0;
+ m_video_x = 0;
+ m_video_y = 0;
+ m_video_command = 0;
+ m_video_data = 0;
}
static INTERRUPT_GEN( trvquest_interrupt )
@@ -220,8 +218,8 @@ static MACHINE_CONFIG_START( trvquest, gameplan_state )
MCFG_CPU_VBLANK_INT("screen", trvquest_interrupt)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_MACHINE_START(trvquest)
- MCFG_MACHINE_RESET(trvquest)
+ MCFG_MACHINE_START_OVERRIDE(gameplan_state,trvquest)
+ MCFG_MACHINE_RESET_OVERRIDE(gameplan_state,trvquest)
/* video hardware */
MCFG_FRAGMENT_ADD(trvquest_video)
diff --git a/src/mame/drivers/tryout.c b/src/mame/drivers/tryout.c
index 0416a881f87..dbeb1546b11 100644
--- a/src/mame/drivers/tryout.c
+++ b/src/mame/drivers/tryout.c
@@ -204,9 +204,7 @@ static MACHINE_CONFIG_START( tryout, tryout_state )
MCFG_GFXDECODE(tryout)
MCFG_PALETTE_LENGTH(0x20)
- MCFG_PALETTE_INIT(tryout)
- MCFG_VIDEO_START(tryout)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tsamurai.c b/src/mame/drivers/tsamurai.c
index 301bc9bbd38..261cd64c8c2 100644
--- a/src/mame/drivers/tsamurai.c
+++ b/src/mame/drivers/tsamurai.c
@@ -702,7 +702,7 @@ static MACHINE_CONFIG_START( tsamurai, tsamurai_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(tsamurai)
+ MCFG_VIDEO_START_OVERRIDE(tsamurai_state,tsamurai)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -741,8 +741,7 @@ static MACHINE_CONFIG_START( vsgongf, tsamurai_state )
MCFG_GFXDECODE(tsamurai)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(vsgongf)
+ MCFG_VIDEO_START_OVERRIDE(tsamurai_state,vsgongf)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -786,7 +785,7 @@ static MACHINE_CONFIG_START( m660, tsamurai_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(tsamurai)
+ MCFG_VIDEO_START_OVERRIDE(tsamurai_state,tsamurai)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ttchamp.c b/src/mame/drivers/ttchamp.c
index 30ee367e5bf..3ce896b7b2f 100644
--- a/src/mame/drivers/ttchamp.c
+++ b/src/mame/drivers/ttchamp.c
@@ -83,15 +83,15 @@ public:
+ virtual void video_start();
};
-static VIDEO_START(ttchamp)
+void ttchamp_state::video_start()
{
- ttchamp_state *state = machine.driver_data<ttchamp_state>();
- state->m_peno_vram = (UINT16*)auto_alloc_array_clear(machine, UINT16, 0x10000/2);
- state->m_peno_mainram = (UINT16*)auto_alloc_array_clear(machine, UINT16, 0x10000/2);
+ m_peno_vram = (UINT16*)auto_alloc_array_clear(machine(), UINT16, 0x10000/2);
+ m_peno_mainram = (UINT16*)auto_alloc_array_clear(machine(), UINT16, 0x10000/2);
@@ -291,7 +291,6 @@ static MACHINE_CONFIG_START( ttchamp, ttchamp_state )
MCFG_PALETTE_LENGTH(0x8000)
- MCFG_VIDEO_START(ttchamp)
MACHINE_CONFIG_END
ROM_START( ttchamp )
diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c
index 3a3e0eae2b5..781bffac627 100644
--- a/src/mame/drivers/tubep.c
+++ b/src/mame/drivers/tubep.c
@@ -335,20 +335,18 @@ static void tubep_setup_save_state(running_machine &machine)
-static MACHINE_START( tubep )
+MACHINE_START_MEMBER(tubep_state,tubep)
{
- tubep_state *state = machine.driver_data<tubep_state>();
/* Create interrupt timer */
- state->m_interrupt_timer = machine.scheduler().timer_alloc(FUNC(tubep_scanline_callback));
+ m_interrupt_timer = machine().scheduler().timer_alloc(FUNC(tubep_scanline_callback));
- tubep_setup_save_state(machine);
+ tubep_setup_save_state(machine());
}
-static MACHINE_RESET( tubep )
+MACHINE_RESET_MEMBER(tubep_state,tubep)
{
- tubep_state *state = machine.driver_data<tubep_state>();
- state->m_interrupt_timer->adjust(machine.primary_screen->time_until_pos(0));
+ m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(0));
}
@@ -501,19 +499,17 @@ static TIMER_CALLBACK( rjammer_scanline_callback )
}
-static MACHINE_START( rjammer )
+MACHINE_START_MEMBER(tubep_state,rjammer)
{
- tubep_state *state = machine.driver_data<tubep_state>();
/* Create interrupt timer */
- state->m_interrupt_timer = machine.scheduler().timer_alloc(FUNC(rjammer_scanline_callback));
+ m_interrupt_timer = machine().scheduler().timer_alloc(FUNC(rjammer_scanline_callback));
- tubep_setup_save_state(machine);
+ tubep_setup_save_state(machine());
}
-static MACHINE_RESET( rjammer )
+MACHINE_RESET_MEMBER(tubep_state,rjammer)
{
- tubep_state *state = machine.driver_data<tubep_state>();
- state->m_interrupt_timer->adjust(machine.primary_screen->time_until_pos(0));
+ m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(0));
}
@@ -909,8 +905,8 @@ static MACHINE_CONFIG_START( tubep, tubep_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(tubep)
- MCFG_MACHINE_RESET(tubep)
+ MCFG_MACHINE_START_OVERRIDE(tubep_state,tubep)
+ MCFG_MACHINE_RESET_OVERRIDE(tubep_state,tubep)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -921,9 +917,9 @@ static MACHINE_CONFIG_START( tubep, tubep_state )
MCFG_PALETTE_LENGTH(32 + 256*64)
- MCFG_PALETTE_INIT(tubep)
- MCFG_VIDEO_START(tubep)
- MCFG_VIDEO_RESET(tubep)
+ MCFG_PALETTE_INIT_OVERRIDE(tubep_state,tubep)
+ MCFG_VIDEO_START_OVERRIDE(tubep_state,tubep)
+ MCFG_VIDEO_RESET_OVERRIDE(tubep_state,tubep)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -968,8 +964,8 @@ static MACHINE_CONFIG_START( rjammer, tubep_state )
MCFG_CPU_ADD("mcu",NSC8105,6000000) /* 6 MHz Xtal - divided internally ??? */
MCFG_CPU_PROGRAM_MAP(nsc_map)
- MCFG_MACHINE_START(rjammer)
- MCFG_MACHINE_RESET(rjammer)
+ MCFG_MACHINE_START_OVERRIDE(tubep_state,rjammer)
+ MCFG_MACHINE_RESET_OVERRIDE(tubep_state,rjammer)
/* video hardware */
@@ -981,9 +977,9 @@ static MACHINE_CONFIG_START( rjammer, tubep_state )
MCFG_PALETTE_LENGTH(64)
- MCFG_PALETTE_INIT(rjammer)
- MCFG_VIDEO_START(tubep)
- MCFG_VIDEO_RESET(tubep)
+ MCFG_PALETTE_INIT_OVERRIDE(tubep_state,rjammer)
+ MCFG_VIDEO_START_OVERRIDE(tubep_state,tubep)
+ MCFG_VIDEO_RESET_OVERRIDE(tubep_state,tubep)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tugboat.c b/src/mame/drivers/tugboat.c
index 0e9ec25278e..2a9db2f2e47 100644
--- a/src/mame/drivers/tugboat.c
+++ b/src/mame/drivers/tugboat.c
@@ -47,18 +47,20 @@ public:
DECLARE_READ8_MEMBER(tugboat_input_r);
DECLARE_READ8_MEMBER(tugboat_ctrl_r);
DECLARE_WRITE8_MEMBER(tugboat_ctrl_w);
+ virtual void machine_reset();
+ virtual void palette_init();
};
/* there isn't the usual resistor array anywhere near the color prom,
just four 1k resistors. */
-static PALETTE_INIT( tugboat )
+void tugboat_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int r,g,b,brt;
@@ -69,7 +71,7 @@ static PALETTE_INIT( tugboat )
g = brt * ((color_prom[i] >> 1) & 0x01);
b = brt * ((color_prom[i] >> 2) & 0x01);
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
}
}
@@ -206,9 +208,9 @@ static TIMER_CALLBACK( interrupt_gen )
machine.scheduler().timer_set(machine.primary_screen->frame_period(), FUNC(interrupt_gen));
}
-static MACHINE_RESET( tugboat )
+void tugboat_state::machine_reset()
{
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(30*8+4), FUNC(interrupt_gen));
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(30*8+4), FUNC(interrupt_gen));
}
@@ -333,7 +335,6 @@ static MACHINE_CONFIG_START( tugboat, tugboat_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse)
- MCFG_MACHINE_RESET(tugboat)
MCFG_PIA6821_ADD("pia0", pia0_intf)
MCFG_PIA6821_ADD("pia1", pia1_intf)
@@ -347,7 +348,6 @@ static MACHINE_CONFIG_START( tugboat, tugboat_state )
MCFG_GFXDECODE(tugboat)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(tugboat)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tumbleb.c b/src/mame/drivers/tumbleb.c
index 58f0e6fe1fe..d897cd84894 100644
--- a/src/mame/drivers/tumbleb.c
+++ b/src/mame/drivers/tumbleb.c
@@ -1863,33 +1863,31 @@ GFXDECODE_END
/******************************************************************************/
-static MACHINE_START( tumbleb )
+MACHINE_START_MEMBER(tumbleb_state,tumbleb)
{
- tumbleb_state *state = machine.driver_data<tumbleb_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_oki = machine.device("oki");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_oki = machine().device("oki");
- state->save_item(NAME(state->m_music_command));
- state->save_item(NAME(state->m_music_bank));
- state->save_item(NAME(state->m_music_is_playing));
+ save_item(NAME(m_music_command));
+ save_item(NAME(m_music_bank));
+ save_item(NAME(m_music_is_playing));
- state->save_item(NAME(state->m_control_0));
- state->save_item(NAME(state->m_flipscreen));
- state->save_item(NAME(state->m_tilebank));
+ save_item(NAME(m_control_0));
+ save_item(NAME(m_flipscreen));
+ save_item(NAME(m_tilebank));
}
-static MACHINE_RESET( tumbleb )
+MACHINE_RESET_MEMBER(tumbleb_state,tumbleb)
{
- tumbleb_state *state = machine.driver_data<tumbleb_state>();
-
- state->m_music_command = 0;
- state->m_music_bank = 0;
- state->m_music_is_playing = 0;
- state->m_flipscreen = 0;
- state->m_tilebank = 0;
- memset(state->m_control_0, 0, sizeof(state->m_control_0));
+
+ m_music_command = 0;
+ m_music_bank = 0;
+ m_music_is_playing = 0;
+ m_flipscreen = 0;
+ m_tilebank = 0;
+ memset(m_control_0, 0, sizeof(m_control_0));
}
static MACHINE_CONFIG_START( tumblepb, tumbleb_state )
@@ -1899,8 +1897,8 @@ static MACHINE_CONFIG_START( tumblepb, tumbleb_state )
MCFG_CPU_PROGRAM_MAP(tumblepopb_main_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)
- MCFG_MACHINE_START(tumbleb)
- MCFG_MACHINE_RESET(tumbleb)
+ MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
+ MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1917,7 +1915,7 @@ static MACHINE_CONFIG_START( tumblepb, tumbleb_state )
MCFG_GFXDECODE(tumbleb)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(tumblepb)
+ MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1934,8 +1932,8 @@ static MACHINE_CONFIG_START( tumbleb2, tumbleb_state )
MCFG_CPU_PROGRAM_MAP(tumblepopb_main_map)
MCFG_CPU_VBLANK_INT("screen", tumbleb2_interrupt)
- MCFG_MACHINE_START(tumbleb)
- MCFG_MACHINE_RESET(tumbleb)
+ MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
+ MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1952,7 +1950,7 @@ static MACHINE_CONFIG_START( tumbleb2, tumbleb_state )
MCFG_GFXDECODE(tumbleb)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(tumblepb)
+ MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1972,8 +1970,8 @@ static MACHINE_CONFIG_START( jumpkids, tumbleb_state )
MCFG_CPU_ADD("audiocpu", Z80, 8000000/2)
MCFG_CPU_PROGRAM_MAP(jumpkids_sound_map)
- MCFG_MACHINE_START(tumbleb)
- MCFG_MACHINE_RESET(tumbleb)
+ MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
+ MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1990,7 +1988,7 @@ static MACHINE_CONFIG_START( jumpkids, tumbleb_state )
MCFG_GFXDECODE(tumbleb)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(tumblepb)
+ MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2006,8 +2004,8 @@ static MACHINE_CONFIG_START( fncywld, tumbleb_state )
MCFG_CPU_PROGRAM_MAP(fncywld_main_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)
- MCFG_MACHINE_START(tumbleb)
- MCFG_MACHINE_RESET(tumbleb)
+ MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
+ MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2025,7 +2023,7 @@ static MACHINE_CONFIG_START( fncywld, tumbleb_state )
MCFG_GFXDECODE(fncywld)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(fncywld)
+ MCFG_VIDEO_START_OVERRIDE(tumbleb_state,fncywld)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2053,18 +2051,17 @@ static const ym2151_interface semicom_ym2151_interface =
DEVCB_LINE(semicom_irqhandler)
};
-static MACHINE_RESET (htchctch)
+MACHINE_RESET_MEMBER(tumbleb_state,htchctch)
{
- tumbleb_state *state = machine.driver_data<tumbleb_state>();
/* copy protection data every reset */
- UINT16 *PROTDATA = (UINT16*)state->memregion("user1")->base();
- int i, len = state->memregion("user1")->bytes();
+ UINT16 *PROTDATA = (UINT16*)memregion("user1")->base();
+ int i, len = memregion("user1")->bytes();
for (i = 0; i < len / 2; i++)
- state->m_mainram[0x000/2 + i] = PROTDATA[i];
+ m_mainram[0x000/2 + i] = PROTDATA[i];
- MACHINE_RESET_CALL(tumbleb);
+ MACHINE_RESET_CALL_MEMBER(tumbleb);
}
static MACHINE_CONFIG_START( htchctch, tumbleb_state )
@@ -2077,8 +2074,8 @@ static MACHINE_CONFIG_START( htchctch, tumbleb_state )
MCFG_CPU_ADD("audiocpu", Z80, 15000000/4) /* verified on dquizgo */
MCFG_CPU_PROGRAM_MAP(semicom_sound_map)
- MCFG_MACHINE_START(tumbleb)
- MCFG_MACHINE_RESET(htchctch)
+ MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
+ MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,htchctch)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2095,7 +2092,7 @@ static MACHINE_CONFIG_START( htchctch, tumbleb_state )
MCFG_GFXDECODE(tumbleb)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(tumblepb)
+ MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb)
/* sound hardware - same as hyperpac */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2143,7 +2140,7 @@ static MACHINE_CONFIG_DERIVED( semibase, bcstory )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( sdfight, bcstory )
- MCFG_VIDEO_START(sdfight)
+ MCFG_VIDEO_START_OVERRIDE(tumbleb_state,sdfight)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(sdfight)
MACHINE_CONFIG_END
@@ -2186,8 +2183,8 @@ static MACHINE_CONFIG_START( suprtrio, tumbleb_state )
MCFG_CPU_ADD("audiocpu", Z80, 8000000)
MCFG_CPU_PROGRAM_MAP(suprtrio_sound_map)
- MCFG_MACHINE_START(tumbleb)
- MCFG_MACHINE_RESET(tumbleb)
+ MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
+ MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2204,7 +2201,7 @@ static MACHINE_CONFIG_START( suprtrio, tumbleb_state )
MCFG_GFXDECODE(suprtrio)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(suprtrio)
+ MCFG_VIDEO_START_OVERRIDE(tumbleb_state,suprtrio)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2221,8 +2218,8 @@ static MACHINE_CONFIG_START( pangpang, tumbleb_state )
MCFG_CPU_PROGRAM_MAP(pangpang_main_map)
MCFG_CPU_VBLANK_INT("screen", tumbleb2_interrupt)
- MCFG_MACHINE_START(tumbleb)
- MCFG_MACHINE_RESET(tumbleb)
+ MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
+ MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2239,7 +2236,7 @@ static MACHINE_CONFIG_START( pangpang, tumbleb_state )
MCFG_GFXDECODE(tumbleb)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(pangpang)
+ MCFG_VIDEO_START_OVERRIDE(tumbleb_state,pangpang)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tumblep.c b/src/mame/drivers/tumblep.c
index 21bbf74369b..6eaa6639d60 100644
--- a/src/mame/drivers/tumblep.c
+++ b/src/mame/drivers/tumblep.c
@@ -294,13 +294,12 @@ static const deco16ic_interface tumblep_deco16ic_tilegen1_intf =
0,1
};
-static MACHINE_START( tumblep )
+void tumblep_state::machine_start()
{
- tumblep_state *state = machine.driver_data<tumblep_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_deco_tilegen1 = machine.device("tilegen1");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_deco_tilegen1 = machine().device("tilegen1");
}
static MACHINE_CONFIG_START( tumblep, tumblep_state )
@@ -313,7 +312,6 @@ static MACHINE_CONFIG_START( tumblep, tumblep_state )
MCFG_CPU_ADD("audiocpu", H6280, 32220000/8) /* Custom chip 45; Audio section crystal is 32.220 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(tumblep)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/tunhunt.c b/src/mame/drivers/tunhunt.c
index c6170f722db..34a54d94a05 100644
--- a/src/mame/drivers/tunhunt.c
+++ b/src/mame/drivers/tunhunt.c
@@ -310,8 +310,6 @@ static MACHINE_CONFIG_START( tunhunt, tunhunt_state )
MCFG_GFXDECODE(tunhunt)
MCFG_PALETTE_LENGTH(0x1a)
- MCFG_PALETTE_INIT(tunhunt)
- MCFG_VIDEO_START(tunhunt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c
index 2a72ee8cb1c..6198ed9ba49 100644
--- a/src/mame/drivers/turbo.c
+++ b/src/mame/drivers/turbo.c
@@ -186,10 +186,9 @@
*
*************************************/
-static MACHINE_RESET( buckrog )
+MACHINE_RESET_MEMBER(turbo_state,buckrog)
{
- turbo_state *state = machine.driver_data<turbo_state>();
- state->m_buckrog_command = 0x00;
+ m_buckrog_command = 0x00;
}
@@ -949,8 +948,8 @@ static MACHINE_CONFIG_START( turbo, turbo_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(turbo)
- MCFG_PALETTE_INIT(turbo)
- MCFG_VIDEO_START(turbo)
+ MCFG_PALETTE_INIT_OVERRIDE(turbo_state,turbo)
+ MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo)
/* sound hardware */
MCFG_FRAGMENT_ADD(turbo_samples)
@@ -978,8 +977,8 @@ static MACHINE_CONFIG_START( subroc3d, turbo_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(subroc3d)
- MCFG_PALETTE_INIT(subroc3d)
- MCFG_VIDEO_START(turbo)
+ MCFG_PALETTE_INIT_OVERRIDE(turbo_state,subroc3d)
+ MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo)
/* sound hardware */
MCFG_FRAGMENT_ADD(subroc3d_samples)
@@ -998,7 +997,7 @@ static MACHINE_CONFIG_START( buckrog, turbo_state )
MCFG_CPU_IO_MAP(buckrog_cpu2_portmap)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_RESET(buckrog)
+ MCFG_MACHINE_RESET_OVERRIDE(turbo_state,buckrog)
MCFG_I8255_ADD( "i8255_0", buckrog_8255_intf_0 )
MCFG_I8255_ADD( "i8255_1", buckrog_8255_intf_1 )
@@ -1014,8 +1013,8 @@ static MACHINE_CONFIG_START( buckrog, turbo_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(buckrog)
- MCFG_PALETTE_INIT(buckrog)
- MCFG_VIDEO_START(buckrog)
+ MCFG_PALETTE_INIT_OVERRIDE(turbo_state,buckrog)
+ MCFG_VIDEO_START_OVERRIDE(turbo_state,buckrog)
/* sound hardware */
MCFG_FRAGMENT_ADD(buckrog_samples)
diff --git a/src/mame/drivers/tutankhm.c b/src/mame/drivers/tutankhm.c
index 8018db7c77c..c5f25bb5388 100644
--- a/src/mame/drivers/tutankhm.c
+++ b/src/mame/drivers/tutankhm.c
@@ -194,28 +194,26 @@ INPUT_PORTS_END
*
*************************************/
-static MACHINE_START( tutankhm )
+MACHINE_START_MEMBER(tutankhm_state,tutankhm)
{
- tutankhm_state *state = machine.driver_data<tutankhm_state>();
- state->membank("bank1")->configure_entries(0, 16, state->memregion("maincpu")->base() + 0x10000, 0x1000);
+ membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x1000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
+ m_maincpu = machine().device<cpu_device>("maincpu");
- state->save_item(NAME(state->m_irq_toggle));
- state->save_item(NAME(state->m_irq_enable));
- state->save_item(NAME(state->m_flip_x));
- state->save_item(NAME(state->m_flip_y));
+ save_item(NAME(m_irq_toggle));
+ save_item(NAME(m_irq_enable));
+ save_item(NAME(m_flip_x));
+ save_item(NAME(m_flip_y));
}
-static MACHINE_RESET( tutankhm )
+MACHINE_RESET_MEMBER(tutankhm_state,tutankhm)
{
- tutankhm_state *state = machine.driver_data<tutankhm_state>();
- state->m_irq_toggle = 0;
- state->m_irq_enable = 0;
- state->m_flip_x = 0;
- state->m_flip_y = 0;
+ m_irq_toggle = 0;
+ m_irq_enable = 0;
+ m_flip_x = 0;
+ m_flip_y = 0;
}
static MACHINE_CONFIG_START( tutankhm, tutankhm_state )
@@ -225,8 +223,8 @@ static MACHINE_CONFIG_START( tutankhm, tutankhm_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", tutankhm_interrupt)
- MCFG_MACHINE_START(tutankhm)
- MCFG_MACHINE_RESET(tutankhm)
+ MCFG_MACHINE_START_OVERRIDE(tutankhm_state,tutankhm)
+ MCFG_MACHINE_RESET_OVERRIDE(tutankhm_state,tutankhm)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c
index 287de91d458..d243bfab69d 100644
--- a/src/mame/drivers/twin16.c
+++ b/src/mame/drivers/twin16.c
@@ -699,24 +699,23 @@ static INTERRUPT_GEN( CPUB_interrupt )
/* Machine Drivers */
-static MACHINE_RESET( twin16 )
+MACHINE_RESET_MEMBER(twin16_state,twin16)
{
;
}
-static MACHINE_START( twin16 )
+MACHINE_START_MEMBER(twin16_state,twin16)
{
- twin16_state *state = machine.driver_data<twin16_state>();
- state->m_CPUA_register=0;
- state->m_CPUB_register=0;
+ m_CPUA_register=0;
+ m_CPUB_register=0;
/* register for savestates */
- state_save_register_global(machine, state->m_CPUA_register);
- state_save_register_global(machine, state->m_CPUB_register);
+ state_save_register_global(machine(), m_CPUA_register);
+ state_save_register_global(machine(), m_CPUB_register);
- state_save_register_global(machine, state->m_sound_command);
- state_save_register_global(machine, state->m_cuebrickj_nvram_bank);
- state_save_register_global_array(machine, state->m_cuebrickj_nvram);
+ state_save_register_global(machine(), m_sound_command);
+ state_save_register_global(machine(), m_cuebrickj_nvram_bank);
+ state_save_register_global_array(machine(), m_cuebrickj_nvram);
}
static MACHINE_CONFIG_START( twin16, twin16_state )
@@ -734,8 +733,8 @@ static MACHINE_CONFIG_START( twin16, twin16_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(twin16)
- MCFG_MACHINE_RESET(twin16)
+ MCFG_MACHINE_START_OVERRIDE(twin16_state,twin16)
+ MCFG_MACHINE_RESET_OVERRIDE(twin16_state,twin16)
// video hardware
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -752,7 +751,7 @@ static MACHINE_CONFIG_START( twin16, twin16_state )
MCFG_GFXDECODE(twin16)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(twin16)
+ MCFG_VIDEO_START_OVERRIDE(twin16_state,twin16)
// sound hardware
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -788,8 +787,8 @@ static MACHINE_CONFIG_START( fround, twin16_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(twin16)
- MCFG_MACHINE_RESET(twin16)
+ MCFG_MACHINE_START_OVERRIDE(twin16_state,twin16)
+ MCFG_MACHINE_RESET_OVERRIDE(twin16_state,twin16)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -806,7 +805,7 @@ static MACHINE_CONFIG_START( fround, twin16_state )
MCFG_GFXDECODE(twin16)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(twin16)
+ MCFG_VIDEO_START_OVERRIDE(twin16_state,twin16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/twincobr.c b/src/mame/drivers/twincobr.c
index d72cf3616c2..81e706d87e7 100644
--- a/src/mame/drivers/twincobr.c
+++ b/src/mame/drivers/twincobr.c
@@ -577,7 +577,7 @@ static MACHINE_CONFIG_START( twincobr, twincobr_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_RESET(twincobr)
+ MCFG_MACHINE_RESET_OVERRIDE(twincobr_state,twincobr)
/* video hardware */
MCFG_MC6845_ADD("crtc", HD6845, XTAL_28MHz/8, twincobr_mc6845_intf) /* 3.5MHz measured on CLKin */
@@ -593,7 +593,7 @@ static MACHINE_CONFIG_START( twincobr, twincobr_state )
MCFG_GFXDECODE(twincobr)
MCFG_PALETTE_LENGTH(1792)
- MCFG_VIDEO_START(toaplan0)
+ MCFG_VIDEO_START_OVERRIDE(twincobr_state,toaplan0)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/twinkle.c b/src/mame/drivers/twinkle.c
index 44418e9ba9d..48173504381 100644
--- a/src/mame/drivers/twinkle.c
+++ b/src/mame/drivers/twinkle.c
@@ -272,6 +272,7 @@ public:
DECLARE_READ16_MEMBER(twinkle_ide_r);
DECLARE_WRITE16_MEMBER(twinkle_ide_w);
DECLARE_DRIVER_INIT(twinkle);
+ DECLARE_MACHINE_RESET(twinkle);
};
/* RTC */
@@ -870,13 +871,13 @@ DRIVER_INIT_MEMBER(twinkle_state,twinkle)
i2cmem_wc_write( i2cmem, 0 );
}
-static MACHINE_RESET( twinkle )
+MACHINE_RESET_MEMBER(twinkle_state,twinkle)
{
/* also hook up CDDA audio to the CD-ROM drive */
void *cdrom;
- scsidev_device *scsidev = machine.device<scsidev_device>("scsi:cdrom");
+ scsidev_device *scsidev = machine().device<scsidev_device>("scsi:cdrom");
scsidev->GetDevice( &cdrom );
- cdda_set_cdrom(machine.device("cdda"), cdrom);
+ cdda_set_cdrom(machine().device("cdda"), cdrom);
}
static void spu_irq(device_t *device, UINT32 data)
@@ -917,7 +918,7 @@ static MACHINE_CONFIG_START( twinkle, twinkle_state )
MCFG_WATCHDOG_TIME_INIT(attotime::from_msec(1200)) /* check TD pin on LTC1232 */
- MCFG_MACHINE_RESET( twinkle )
+ MCFG_MACHINE_RESET_OVERRIDE(twinkle_state, twinkle )
MCFG_I2CMEM_ADD("security",i2cmem_interface)
MCFG_SCSIBUS_ADD("scsi")
diff --git a/src/mame/drivers/twins.c b/src/mame/drivers/twins.c
index a15f99e3c43..ce79d1fd7b5 100644
--- a/src/mame/drivers/twins.c
+++ b/src/mame/drivers/twins.c
@@ -69,6 +69,8 @@ public:
DECLARE_WRITE16_MEMBER(porte_paloff0_w);
DECLARE_WRITE16_MEMBER(twinsa_port4_w);
DECLARE_READ16_MEMBER(twinsa_unk_r);
+ DECLARE_VIDEO_START(twins);
+ DECLARE_VIDEO_START(twinsa);
};
@@ -109,10 +111,9 @@ static ADDRESS_MAP_START( twins_io, AS_IO, 16, twins_state )
AM_RANGE(0x000e, 0x000f) AM_WRITE(porte_paloff0_w)
ADDRESS_MAP_END
-static VIDEO_START(twins)
+VIDEO_START_MEMBER(twins_state,twins)
{
- twins_state *state = machine.driver_data<twins_state>();
- state->m_pal = auto_alloc_array(machine, UINT16, 0x100);
+ m_pal = auto_alloc_array(machine(), UINT16, 0x100);
}
static SCREEN_UPDATE_IND16(twins)
@@ -203,7 +204,7 @@ static MACHINE_CONFIG_START( twins, twins_state )
MCFG_PALETTE_LENGTH(0x100)
- MCFG_VIDEO_START(twins)
+ MCFG_VIDEO_START_OVERRIDE(twins_state,twins)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -216,10 +217,9 @@ MACHINE_CONFIG_END
/* The second set has different palette hardware and a different port map */
-static VIDEO_START(twinsa)
+VIDEO_START_MEMBER(twins_state,twinsa)
{
- twins_state *state = machine.driver_data<twins_state>();
- state->m_pal = auto_alloc_array(machine, UINT16, 0x1000);
+ m_pal = auto_alloc_array(machine(), UINT16, 0x1000);
}
static SCREEN_UPDATE_IND16(twinsa)
@@ -293,7 +293,7 @@ static MACHINE_CONFIG_START( twinsa, twins_state )
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_VIDEO_START(twinsa)
+ MCFG_VIDEO_START_OVERRIDE(twins_state,twinsa)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c
index b954b9be81a..51d716e762e 100644
--- a/src/mame/drivers/tx1.c
+++ b/src/mame/drivers/tx1.c
@@ -703,13 +703,13 @@ static MACHINE_CONFIG_START( tx1, tx1_state )
MCFG_CPU_IO_MAP(tx1_sound_io)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, TX1_PIXEL_CLOCK / 4 / 2048 / 2)
- MCFG_MACHINE_RESET(tx1)
+ MCFG_MACHINE_RESET_OVERRIDE(tx1_state,tx1)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_I8255A_ADD("ppi8255", tx1_ppi8255_intf)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(tx1)
+ MCFG_PALETTE_INIT_OVERRIDE(tx1_state,tx1)
MCFG_DEFAULT_LAYOUT(layout_triphsxs)
@@ -726,7 +726,7 @@ static MACHINE_CONFIG_START( tx1, tx1_state )
MCFG_SCREEN_UPDATE_STATIC(tx1_right)
MCFG_SCREEN_VBLANK_STATIC(tx1)
- MCFG_VIDEO_START(tx1)
+ MCFG_VIDEO_START_OVERRIDE(tx1_state,tx1)
MCFG_SPEAKER_STANDARD_STEREO("frontleft", "frontright")
// MCFG_SPEAKER_STANDARD_STEREO("rearleft", "rearright") /* Atari TX-1 TM262 manual shows 4 speakers (TX-1 Audio PCB Assembly A042016-01 A) */
@@ -756,7 +756,7 @@ static MACHINE_CONFIG_START( buggyboy, tx1_state )
MCFG_CPU_PERIODIC_INT(z80_irq, BUGGYBOY_ZCLK / 2 / 4 / 2048)
MCFG_CPU_IO_MAP(buggyboy_sound_io)
- MCFG_MACHINE_RESET(buggyboy)
+ MCFG_MACHINE_RESET_OVERRIDE(tx1_state,buggyboy)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_I8255A_ADD("ppi8255", buggyboy_ppi8255_intf)
@@ -777,8 +777,8 @@ static MACHINE_CONFIG_START( buggyboy, tx1_state )
MCFG_SCREEN_VBLANK_STATIC(buggyboy)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(buggyboy)
- MCFG_VIDEO_START(buggyboy)
+ MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy)
+ MCFG_VIDEO_START_OVERRIDE(tx1_state,buggyboy)
MCFG_SPEAKER_STANDARD_STEREO("frontleft", "frontright")
// MCFG_SPEAKER_STANDARD_STEREO("rearleft", "rearright")
@@ -810,7 +810,7 @@ static MACHINE_CONFIG_START( buggybjr, tx1_state )
MCFG_CPU_IO_MAP(buggyboy_sound_io)
MCFG_CPU_PERIODIC_INT(z80_irq, BUGGYBOY_ZCLK / 2 / 4 / 2048)
- MCFG_MACHINE_RESET(buggyboy)
+ MCFG_MACHINE_RESET_OVERRIDE(tx1_state,buggyboy)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_SCREEN_ADD("screen", RASTER)
@@ -819,8 +819,8 @@ static MACHINE_CONFIG_START( buggybjr, tx1_state )
MCFG_SCREEN_VBLANK_STATIC(buggyboy)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(buggyboy)
- MCFG_VIDEO_START(buggybjr)
+ MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy)
+ MCFG_VIDEO_START_OVERRIDE(tx1_state,buggybjr)
MCFG_SPEAKER_STANDARD_STEREO("frontleft", "frontright")
// MCFG_SPEAKER_STANDARD_STEREO("rearleft", "rearright")
diff --git a/src/mame/drivers/uapce.c b/src/mame/drivers/uapce.c
index 847d4f2fba7..d6f045d7057 100644
--- a/src/mame/drivers/uapce.c
+++ b/src/mame/drivers/uapce.c
@@ -110,6 +110,7 @@ public:
DECLARE_READ8_MEMBER(jamma_if_control_latch_r);
DECLARE_READ8_MEMBER(jamma_if_read_dsw);
DECLARE_DRIVER_INIT(uapce);
+ virtual void machine_reset();
};
#define UAPCE_SOUND_EN NODE_10
@@ -225,11 +226,10 @@ static UINT8 jamma_if_read_joystick( running_machine &machine )
}
}
-static MACHINE_RESET( uapce )
+void uapce_state::machine_reset()
{
- uapce_state *state = machine.driver_data<uapce_state>();
pce_set_joystick_readinputport_callback( jamma_if_read_joystick );
- state->m_jamma_if_control_latch = 0;
+ m_jamma_if_control_latch = 0;
}
static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, uapce_state )
@@ -315,7 +315,6 @@ static MACHINE_CONFIG_START( uapce, uapce_state )
MCFG_QUANTUM_TIME(attotime::from_hz(60))
- MCFG_MACHINE_RESET( uapce )
/* video hardware */
diff --git a/src/mame/drivers/ultraman.c b/src/mame/drivers/ultraman.c
index e05e77097cf..4c2ff67faa6 100644
--- a/src/mame/drivers/ultraman.c
+++ b/src/mame/drivers/ultraman.c
@@ -190,29 +190,27 @@ static const k051316_interface ultraman_k051316_intf_2 =
ultraman_zoom_callback_2
};
-static MACHINE_START( ultraman )
+void ultraman_state::machine_start()
{
- ultraman_state *state = machine.driver_data<ultraman_state>();
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k051960 = machine.device("k051960");
- state->m_k051316_1 = machine.device("k051316_1");
- state->m_k051316_2 = machine.device("k051316_2");
- state->m_k051316_3 = machine.device("k051316_3");
-
- state->save_item(NAME(state->m_bank0));
- state->save_item(NAME(state->m_bank1));
- state->save_item(NAME(state->m_bank2));
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k051960 = machine().device("k051960");
+ m_k051316_1 = machine().device("k051316_1");
+ m_k051316_2 = machine().device("k051316_2");
+ m_k051316_3 = machine().device("k051316_3");
+
+ save_item(NAME(m_bank0));
+ save_item(NAME(m_bank1));
+ save_item(NAME(m_bank2));
}
-static MACHINE_RESET( ultraman )
+void ultraman_state::machine_reset()
{
- ultraman_state *state = machine.driver_data<ultraman_state>();
- state->m_bank0 = -1;
- state->m_bank1 = -1;
- state->m_bank2 = -1;
+ m_bank0 = -1;
+ m_bank1 = -1;
+ m_bank2 = -1;
}
static MACHINE_CONFIG_START( ultraman, ultraman_state )
@@ -228,8 +226,6 @@ static MACHINE_CONFIG_START( ultraman, ultraman_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_MACHINE_START(ultraman)
- MCFG_MACHINE_RESET(ultraman)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
@@ -243,7 +239,6 @@ static MACHINE_CONFIG_START( ultraman, ultraman_state )
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(ultraman)
MCFG_K051960_ADD("k051960", ultraman_k051960_intf)
MCFG_K051316_ADD("k051316_1", ultraman_k051316_intf_0)
diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c
index 7b27bc8aea1..f24a4eb093a 100644
--- a/src/mame/drivers/ultratnk.c
+++ b/src/mame/drivers/ultratnk.c
@@ -59,9 +59,9 @@ static TIMER_CALLBACK( nmi_callback )
}
-static MACHINE_RESET( ultratnk )
+void ultratnk_state::machine_reset()
{
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(32), FUNC(nmi_callback), 32);
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(32), FUNC(nmi_callback), 32);
}
@@ -297,7 +297,6 @@ static MACHINE_CONFIG_START( ultratnk, ultratnk_state )
MCFG_CPU_PROGRAM_MAP(ultratnk_cpu_map)
MCFG_WATCHDOG_VBLANK_INIT(8)
- MCFG_MACHINE_RESET(ultratnk)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -308,8 +307,6 @@ static MACHINE_CONFIG_START( ultratnk, ultratnk_state )
MCFG_GFXDECODE(ultratnk)
MCFG_PALETTE_LENGTH(10)
- MCFG_PALETTE_INIT(ultratnk)
- MCFG_VIDEO_START(ultratnk)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ultrsprt.c b/src/mame/drivers/ultrsprt.c
index 47d462459e8..d528afd3ab3 100644
--- a/src/mame/drivers/ultrsprt.c
+++ b/src/mame/drivers/ultrsprt.c
@@ -34,6 +34,7 @@ public:
DECLARE_READ16_MEMBER(K056800_68k_r);
DECLARE_WRITE16_MEMBER(K056800_68k_w);
DECLARE_CUSTOM_INPUT_MEMBER(analog_ctrl_r);
+ virtual void machine_start();
};
@@ -100,15 +101,14 @@ WRITE32_MEMBER(ultrsprt_state::int_ack_w)
machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ1, CLEAR_LINE);
}
-static MACHINE_START( ultrsprt )
+void ultrsprt_state::machine_start()
{
- ultrsprt_state *state = machine.driver_data<ultrsprt_state>();
/* set conservative DRC options */
- ppcdrc_set_options(machine.device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
+ ppcdrc_set_options(machine().device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
/* configure fast RAM regions for DRC */
- ppcdrc_add_fastram(machine.device("maincpu"), 0x80000000, 0x8007ffff, FALSE, state->m_vram);
- ppcdrc_add_fastram(machine.device("maincpu"), 0xff000000, 0xff01ffff, FALSE, state->m_workram);
+ ppcdrc_add_fastram(machine().device("maincpu"), 0x80000000, 0x8007ffff, FALSE, m_vram);
+ ppcdrc_add_fastram(machine().device("maincpu"), 0xff000000, 0xff01ffff, FALSE, m_workram);
}
@@ -236,7 +236,6 @@ static MACHINE_CONFIG_START( ultrsprt, ultrsprt_state )
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
MCFG_EEPROM_93C46_ADD("eeprom")
- MCFG_MACHINE_START(ultrsprt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/umipoker.c b/src/mame/drivers/umipoker.c
index b3e6bbea4fd..e930307823f 100644
--- a/src/mame/drivers/umipoker.c
+++ b/src/mame/drivers/umipoker.c
@@ -64,6 +64,9 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_1);
TILE_GET_INFO_MEMBER(get_tile_info_2);
TILE_GET_INFO_MEMBER(get_tile_info_3);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
TILE_GET_INFO_MEMBER(umipoker_state::get_tile_info_0)
@@ -114,19 +117,18 @@ TILE_GET_INFO_MEMBER(umipoker_state::get_tile_info_3)
0);
}
-static VIDEO_START( umipoker )
+void umipoker_state::video_start()
{
- umipoker_state *state = machine.driver_data<umipoker_state>();
- state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_0),state),TILEMAP_SCAN_ROWS,8,8,64,32);
- state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_1),state),TILEMAP_SCAN_ROWS,8,8,64,32);
- state->m_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_2),state),TILEMAP_SCAN_ROWS,8,8,64,32);
- state->m_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_3),state),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap_0 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_0),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap_1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_1),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_2),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap_3 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_3),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- state->m_tilemap_0->set_transparent_pen(0);
- state->m_tilemap_1->set_transparent_pen(0);
- state->m_tilemap_2->set_transparent_pen(0);
- state->m_tilemap_3->set_transparent_pen(0);
+ m_tilemap_0->set_transparent_pen(0);
+ m_tilemap_1->set_transparent_pen(0);
+ m_tilemap_2->set_transparent_pen(0);
+ m_tilemap_3->set_transparent_pen(0);
}
@@ -645,15 +647,13 @@ static GFXDECODE_START( umipoker )
GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x4, 0, 0x40)
GFXDECODE_END
-static MACHINE_START( umipoker )
+void umipoker_state::machine_start()
{
- //umipoker_state *state = machine.driver_data<_umipoker_state>();
}
-static MACHINE_RESET( umipoker )
+void umipoker_state::machine_reset()
{
- //umipoker_state *state = machine.driver_data<_umipoker_state>();
}
// TODO: clocks
@@ -671,8 +671,6 @@ static MACHINE_CONFIG_START( umipoker, umipoker_state )
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_MACHINE_START(umipoker)
- MCFG_MACHINE_RESET(umipoker)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -686,7 +684,6 @@ static MACHINE_CONFIG_START( umipoker, umipoker_state )
MCFG_PALETTE_LENGTH(0x400)
- MCFG_VIDEO_START(umipoker)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c
index 98ee3646938..a72200d2d20 100644
--- a/src/mame/drivers/undrfire.c
+++ b/src/mame/drivers/undrfire.c
@@ -744,7 +744,6 @@ static MACHINE_CONFIG_START( undrfire, undrfire_state )
MCFG_GFXDECODE(undrfire)
MCFG_PALETTE_LENGTH(16384)
- MCFG_VIDEO_START(undrfire)
MCFG_TC0100SCN_ADD("tc0100scn", undrfire_tc0100scn_intf)
MCFG_TC0480SCP_ADD("tc0480scp", undrfire_tc0480scp_intf)
@@ -780,7 +779,6 @@ static MACHINE_CONFIG_START( cbombers, undrfire_state )
MCFG_GFXDECODE(cbombers)
MCFG_PALETTE_LENGTH(16384)
- MCFG_VIDEO_START(undrfire)
MCFG_TC0100SCN_ADD("tc0100scn", undrfire_tc0100scn_intf)
MCFG_TC0480SCP_ADD("tc0480scp", undrfire_tc0480scp_intf)
diff --git a/src/mame/drivers/unico.c b/src/mame/drivers/unico.c
index 60fb3ea6576..96f65fe0939 100644
--- a/src/mame/drivers/unico.c
+++ b/src/mame/drivers/unico.c
@@ -565,7 +565,7 @@ GFXDECODE_END
***************************************************************************/
-static MACHINE_RESET( unico )
+MACHINE_RESET_MEMBER(unico_state,unico)
{
}
@@ -595,7 +595,7 @@ static MACHINE_CONFIG_START( burglarx, unico_state )
MCFG_CPU_PROGRAM_MAP(burglarx_map)
MCFG_CPU_VBLANK_INT("screen", irq2_line_hold)
- MCFG_MACHINE_RESET(unico)
+ MCFG_MACHINE_RESET_OVERRIDE(unico_state,unico)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -608,7 +608,7 @@ static MACHINE_CONFIG_START( burglarx, unico_state )
MCFG_GFXDECODE(unico)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(unico)
+ MCFG_VIDEO_START_OVERRIDE(unico_state,unico)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -628,9 +628,9 @@ MACHINE_CONFIG_END
Zero Point
***************************************************************************/
-static MACHINE_RESET( zeropt )
+MACHINE_RESET_MEMBER(unico_state,zeropt)
{
- MACHINE_RESET_CALL(unico);
+ MACHINE_RESET_CALL_MEMBER(unico);
}
static MACHINE_CONFIG_START( zeropnt, unico_state )
@@ -640,7 +640,7 @@ static MACHINE_CONFIG_START( zeropnt, unico_state )
MCFG_CPU_PROGRAM_MAP(zeropnt_map)
MCFG_CPU_VBLANK_INT("screen", irq2_line_hold)
- MCFG_MACHINE_RESET(zeropt)
+ MCFG_MACHINE_RESET_OVERRIDE(unico_state,zeropt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -653,7 +653,7 @@ static MACHINE_CONFIG_START( zeropnt, unico_state )
MCFG_GFXDECODE(unico)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(unico)
+ MCFG_VIDEO_START_OVERRIDE(unico_state,unico)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -680,7 +680,7 @@ static MACHINE_CONFIG_START( zeropnt2, unico_state )
MCFG_CPU_PROGRAM_MAP(zeropnt2_map)
MCFG_CPU_VBLANK_INT("screen", irq2_line_hold)
- MCFG_MACHINE_RESET(zeropt)
+ MCFG_MACHINE_RESET_OVERRIDE(unico_state,zeropt)
MCFG_EEPROM_ADD("eeprom", zeropnt2_eeprom_interface)
@@ -695,7 +695,7 @@ static MACHINE_CONFIG_START( zeropnt2, unico_state )
MCFG_GFXDECODE(unico)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(zeropnt2)
+ MCFG_VIDEO_START_OVERRIDE(unico_state,zeropnt2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/unkhorse.c b/src/mame/drivers/unkhorse.c
index 56a3374bbb3..30369e322c9 100644
--- a/src/mame/drivers/unkhorse.c
+++ b/src/mame/drivers/unkhorse.c
@@ -38,6 +38,7 @@ public:
DECLARE_READ8_MEMBER(horse_input_r);
DECLARE_WRITE8_MEMBER(horse_output_w);
DECLARE_WRITE_LINE_MEMBER(horse_timer_out);
+ virtual void palette_init();
};
@@ -47,11 +48,11 @@ public:
***************************************************************************/
-PALETTE_INIT( horse )
+void horse_state::palette_init()
{
// palette is simply 3bpp
for (int i = 0; i < 8; i++)
- palette_set_color_rgb(machine, i, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
+ palette_set_color_rgb(machine(), i, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
}
static SCREEN_UPDATE_IND16( horse )
@@ -215,7 +216,6 @@ static MACHINE_CONFIG_START( horse, horse_state )
MCFG_SCREEN_UPDATE_STATIC(horse)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(horse)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/upscope.c b/src/mame/drivers/upscope.c
index d0b467128e8..dc4f97c04ca 100644
--- a/src/mame/drivers/upscope.c
+++ b/src/mame/drivers/upscope.c
@@ -313,7 +313,7 @@ static MACHINE_CONFIG_START( upscope, upscope_state )
MCFG_CPU_ADD("maincpu", M68000, AMIGA_68000_NTSC_CLOCK)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_RESET(amiga)
+ MCFG_MACHINE_RESET_OVERRIDE(upscope_state,amiga)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -327,9 +327,9 @@ static MACHINE_CONFIG_START( upscope, upscope_state )
MCFG_SCREEN_UPDATE_STATIC(amiga)
MCFG_PALETTE_LENGTH(4096)
- MCFG_PALETTE_INIT(amiga)
+ MCFG_PALETTE_INIT_OVERRIDE(upscope_state,amiga)
- MCFG_VIDEO_START(amiga)
+ MCFG_VIDEO_START_OVERRIDE(upscope_state,amiga)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/usgames.c b/src/mame/drivers/usgames.c
index d460ea35ecb..ee29336a8b3 100644
--- a/src/mame/drivers/usgames.c
+++ b/src/mame/drivers/usgames.c
@@ -249,8 +249,6 @@ static MACHINE_CONFIG_START( usg32, usgames_state )
MCFG_GFXDECODE(usgames)
MCFG_PALETTE_LENGTH(2*256)
- MCFG_PALETTE_INIT(usgames)
- MCFG_VIDEO_START(usgames)
MCFG_MC6845_ADD("crtc", MC6845, XTAL_18MHz / 16, mc6845_intf)
diff --git a/src/mame/drivers/vaportra.c b/src/mame/drivers/vaportra.c
index cdffee85f19..f0088ad350c 100644
--- a/src/mame/drivers/vaportra.c
+++ b/src/mame/drivers/vaportra.c
@@ -241,24 +241,22 @@ static const deco16ic_interface vaportra_deco16ic_tilegen2_intf =
2,3
};
-static MACHINE_START( vaportra )
+void vaportra_state::machine_start()
{
- vaportra_state *state = machine.driver_data<vaportra_state>();
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_deco_tilegen1 = machine.device("tilegen1");
- state->m_deco_tilegen2 = machine.device("tilegen2");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_deco_tilegen1 = machine().device("tilegen1");
+ m_deco_tilegen2 = machine().device("tilegen2");
- state->save_item(NAME(state->m_priority));
+ save_item(NAME(m_priority));
}
-static MACHINE_RESET( vaportra )
+void vaportra_state::machine_reset()
{
- vaportra_state *state = machine.driver_data<vaportra_state>();
- state->m_priority[0] = 0;
- state->m_priority[1] = 0;
+ m_priority[0] = 0;
+ m_priority[1] = 0;
}
static MACHINE_CONFIG_START( vaportra, vaportra_state )
@@ -271,8 +269,6 @@ static MACHINE_CONFIG_START( vaportra, vaportra_state )
MCFG_CPU_ADD("audiocpu", H6280, 32220000/4) /* Custom chip 45; Audio section crystal is 32.220 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(vaportra)
- MCFG_MACHINE_RESET(vaportra)
/* video hardware */
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
diff --git a/src/mame/drivers/vastar.c b/src/mame/drivers/vastar.c
index 978aff6af96..83502ae2261 100644
--- a/src/mame/drivers/vastar.c
+++ b/src/mame/drivers/vastar.c
@@ -66,10 +66,10 @@ write:
#include "sound/ay8910.h"
#include "includes/vastar.h"
-static MACHINE_RESET( vastar )
+void vastar_state::machine_reset()
{
/* we must start with the second CPU halted */
- machine.device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
WRITE8_MEMBER(vastar_state::vastar_hold_cpu2_w)
@@ -312,7 +312,6 @@ static MACHINE_CONFIG_START( vastar, vastar_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - seems enough to ensure proper */
/* synchronization of the CPUs */
- MCFG_MACHINE_RESET(vastar)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -326,7 +325,6 @@ static MACHINE_CONFIG_START( vastar, vastar_state )
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_VIDEO_START(vastar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c
index fdcbc2bf76b..e5ed264faf7 100644
--- a/src/mame/drivers/vball.c
+++ b/src/mame/drivers/vball.c
@@ -424,7 +424,6 @@ static MACHINE_CONFIG_START( vball, vball_state )
MCFG_GFXDECODE(vb)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(vb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/vcombat.c b/src/mame/drivers/vcombat.c
index c74891ebf62..5aac4f32f14 100644
--- a/src/mame/drivers/vcombat.c
+++ b/src/mame/drivers/vcombat.c
@@ -122,6 +122,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(sound_update);
DECLARE_DRIVER_INIT(shadfgtr);
DECLARE_DRIVER_INIT(vcombat);
+ DECLARE_MACHINE_RESET(vcombat);
+ DECLARE_MACHINE_RESET(shadfgtr);
};
static UINT32 update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int index)
@@ -402,21 +404,19 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, vcombat_state )
ADDRESS_MAP_END
-static MACHINE_RESET( vcombat )
+MACHINE_RESET_MEMBER(vcombat_state,vcombat)
{
- vcombat_state *state = machine.driver_data<vcombat_state>();
- i860_set_pin(machine.device("vid_0"), DEC_PIN_BUS_HOLD, 1);
- i860_set_pin(machine.device("vid_1"), DEC_PIN_BUS_HOLD, 1);
+ i860_set_pin(machine().device("vid_0"), DEC_PIN_BUS_HOLD, 1);
+ i860_set_pin(machine().device("vid_1"), DEC_PIN_BUS_HOLD, 1);
- state->m_crtc_select = 0;
+ m_crtc_select = 0;
}
-static MACHINE_RESET( shadfgtr )
+MACHINE_RESET_MEMBER(vcombat_state,shadfgtr)
{
- vcombat_state *state = machine.driver_data<vcombat_state>();
- i860_set_pin(machine.device("vid_0"), DEC_PIN_BUS_HOLD, 1);
+ i860_set_pin(machine().device("vid_0"), DEC_PIN_BUS_HOLD, 1);
- state->m_crtc_select = 0;
+ m_crtc_select = 0;
}
@@ -596,7 +596,7 @@ static MACHINE_CONFIG_START( vcombat, vcombat_state )
MCFG_CPU_PERIODIC_INT(irq1_line_hold, 15000) /* Remove this if MC6845 is enabled */
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_MACHINE_RESET(vcombat)
+ MCFG_MACHINE_RESET_OVERRIDE(vcombat_state,vcombat)
/* Temporary hack for experimenting with timing. */
#if 0
@@ -639,7 +639,7 @@ static MACHINE_CONFIG_START( shadfgtr, vcombat_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_MACHINE_RESET(shadfgtr)
+ MCFG_MACHINE_RESET_OVERRIDE(vcombat_state,shadfgtr)
MCFG_TLC34076_ADD("tlc34076", tlc34076_6_bit_intf)
diff --git a/src/mame/drivers/vectrex.c b/src/mame/drivers/vectrex.c
index 358da780f59..977e1f6b7c4 100644
--- a/src/mame/drivers/vectrex.c
+++ b/src/mame/drivers/vectrex.c
@@ -108,7 +108,6 @@ static MACHINE_CONFIG_START( vectrex, vectrex_state )
MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 299)
MCFG_SCREEN_UPDATE_STATIC(vectrex)
- MCFG_VIDEO_START(vectrex)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -206,7 +205,7 @@ static MACHINE_CONFIG_DERIVED( raaspec, vectrex )
MCFG_CPU_PROGRAM_MAP(raaspec_map)
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_VIDEO_START(raaspec)
+ MCFG_VIDEO_START_OVERRIDE(vectrex_state,raaspec)
/* via */
MCFG_DEVICE_REMOVE("via6522_0")
diff --git a/src/mame/drivers/vega.c b/src/mame/drivers/vega.c
index fc6f8997f5a..09da3fd90ff 100644
--- a/src/mame/drivers/vega.c
+++ b/src/mame/drivers/vega.c
@@ -145,6 +145,9 @@ public:
DECLARE_DRIVER_INIT(vega);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void palette_init();
};
WRITE8_MEMBER(vega_state::extern_w)
@@ -474,13 +477,13 @@ INPUT_PORTS_END
-static PALETTE_INIT( vega )
+void vega_state::palette_init()
{
int i;
for(i=0;i<8;++i)
{
- palette_set_color( machine,2*i, MAKE_RGB(0x00, 0x00, 0x00) );
- palette_set_color( machine,2*i+1, MAKE_RGB( (i&1)?0xff:0x00, (i&2)?0xff:0x00, (i&4)?0xff:0x00) );
+ palette_set_color( machine(),2*i, MAKE_RGB(0x00, 0x00, 0x00) );
+ palette_set_color( machine(),2*i+1, MAKE_RGB( (i&1)?0xff:0x00, (i&2)?0xff:0x00, (i&4)?0xff:0x00) );
}
}
@@ -709,10 +712,9 @@ static GFXDECODE_START( test_decode )
GFXDECODE_ENTRY( "gfx2", 0, tile_layoutzoom, 16, 1 )
GFXDECODE_END
-static MACHINE_RESET(vega)
+void vega_state::machine_reset()
{
- vega_state *state = machine.driver_data<vega_state>();
- state->membank("bank1")->set_entry(1);
+ membank("bank1")->set_entry(1);
}
WRITE8_MEMBER(vega_state::txtram_w)
@@ -828,7 +830,7 @@ static const ay8910_interface ay8910_inf =
DEVCB_DRIVER_MEMBER(vega_state, ay8910_pb_w)
};
-static MACHINE_START( vega )
+void vega_state::machine_start()
{
}
@@ -843,8 +845,6 @@ static MACHINE_CONFIG_START( vega, vega_state )
MCFG_CPU_VBLANK_INT("screen",irq0_line_hold)
- MCFG_MACHINE_START(vega)
- MCFG_MACHINE_RESET(vega)
MCFG_I8255A_ADD( "ppi8255", ppi8255_intf )
MCFG_INS8154_ADD( "ins8154", ins8154_intf)
@@ -860,7 +860,6 @@ static MACHINE_CONFIG_START( vega, vega_state )
MCFG_GFXDECODE(test_decode)
- MCFG_PALETTE_INIT(vega)
MCFG_SCREEN_UPDATE_STATIC(vega)
/* sound hardware */
diff --git a/src/mame/drivers/vegaeo.c b/src/mame/drivers/vegaeo.c
index 92236f15792..b474642df7a 100644
--- a/src/mame/drivers/vegaeo.c
+++ b/src/mame/drivers/vegaeo.c
@@ -40,6 +40,7 @@ public:
DECLARE_WRITE8_MEMBER(qs1000_p2_w);
DECLARE_WRITE8_MEMBER(qs1000_p3_w);
DECLARE_DRIVER_INIT(vegaeo);
+ DECLARE_VIDEO_START(vega);
};
READ8_MEMBER( vegaeo_state::qs1000_p1_r )
@@ -188,10 +189,9 @@ static INPUT_PORTS_START( crazywar )
INPUT_PORTS_END
-static VIDEO_START( vega )
+VIDEO_START_MEMBER(vegaeo_state,vega)
{
- vegaeo_state *state = machine.driver_data<vegaeo_state>();
- state->m_vega_vram = auto_alloc_array(machine, UINT32, 0x14000*2/4);
+ m_vega_vram = auto_alloc_array(machine(), UINT32, 0x14000*2/4);
}
static SCREEN_UPDATE_IND16( vega )
@@ -265,7 +265,7 @@ static MACHINE_CONFIG_START( vega, vegaeo_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(vega)
+ MCFG_VIDEO_START_OVERRIDE(vegaeo_state,vega)
/* sound hardware */
/* sound hardware */
diff --git a/src/mame/drivers/vegas.c b/src/mame/drivers/vegas.c
index 09cc82b211f..1fd6a6e8449 100644
--- a/src/mame/drivers/vegas.c
+++ b/src/mame/drivers/vegas.c
@@ -499,6 +499,8 @@ public:
DECLARE_DRIVER_INIT(nbanfl);
DECLARE_DRIVER_INIT(sf2049);
DECLARE_DRIVER_INIT(sf2049se);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -534,69 +536,67 @@ static SCREEN_UPDATE_RGB32( vegas )
*
*************************************/
-static MACHINE_START( vegas )
+void vegas_state::machine_start()
{
- vegas_state *state = machine.driver_data<vegas_state>();
- state->m_voodoo = machine.device("voodoo");
+ m_voodoo = machine().device("voodoo");
/* allocate timers for the NILE */
- state->m_timer[0] = machine.scheduler().timer_alloc(FUNC_NULL);
- state->m_timer[1] = machine.scheduler().timer_alloc(FUNC_NULL);
- state->m_timer[2] = machine.scheduler().timer_alloc(FUNC(nile_timer_callback));
- state->m_timer[3] = machine.scheduler().timer_alloc(FUNC(nile_timer_callback));
+ m_timer[0] = machine().scheduler().timer_alloc(FUNC_NULL);
+ m_timer[1] = machine().scheduler().timer_alloc(FUNC_NULL);
+ m_timer[2] = machine().scheduler().timer_alloc(FUNC(nile_timer_callback));
+ m_timer[3] = machine().scheduler().timer_alloc(FUNC(nile_timer_callback));
/* identify our sound board */
- if (machine.device("dsio") != NULL)
- state->m_dcs_idma_cs = 6;
- else if (machine.device("denver") != NULL)
- state->m_dcs_idma_cs = 7;
+ if (machine().device("dsio") != NULL)
+ m_dcs_idma_cs = 6;
+ else if (machine().device("denver") != NULL)
+ m_dcs_idma_cs = 7;
else
- state->m_dcs_idma_cs = 0;
+ m_dcs_idma_cs = 0;
/* set the fastest DRC options, but strict verification */
- mips3drc_set_options(machine.device("maincpu"), MIPS3DRC_FASTEST_OPTIONS + MIPS3DRC_STRICT_VERIFY + MIPS3DRC_FLUSH_PC);
+ mips3drc_set_options(machine().device("maincpu"), MIPS3DRC_FASTEST_OPTIONS + MIPS3DRC_STRICT_VERIFY + MIPS3DRC_FLUSH_PC);
/* configure fast RAM regions for DRC */
- mips3drc_add_fastram(machine.device("maincpu"), 0x00000000, state->m_rambase.bytes() - 1, FALSE, state->m_rambase);
- mips3drc_add_fastram(machine.device("maincpu"), 0x1fc00000, 0x1fc7ffff, TRUE, state->m_rombase);
+ mips3drc_add_fastram(machine().device("maincpu"), 0x00000000, m_rambase.bytes() - 1, FALSE, m_rambase);
+ mips3drc_add_fastram(machine().device("maincpu"), 0x1fc00000, 0x1fc7ffff, TRUE, m_rombase);
/* register for save states */
- state_save_register_global(machine, state->m_nile_irq_state);
- state_save_register_global(machine, state->m_ide_irq_state);
- state_save_register_global_array(machine, state->m_pci_bridge_regs);
- state_save_register_global_array(machine, state->m_pci_ide_regs);
- state_save_register_global_array(machine, state->m_pci_3dfx_regs);
- state_save_register_global(machine, state->m_vblank_state);
- state_save_register_global_array(machine, state->m_sio_data);
- state_save_register_global(machine, state->m_sio_irq_clear);
- state_save_register_global(machine, state->m_sio_irq_enable);
- state_save_register_global(machine, state->m_sio_irq_state);
- state_save_register_global(machine, state->m_sio_led_state);
- state_save_register_global(machine, state->m_pending_analog_read);
- state_save_register_global(machine, state->m_cmos_unlocked);
- machine.save().register_postload(save_prepost_delegate(FUNC(remap_dynamic_addresses), &machine));
+ state_save_register_global(machine(), m_nile_irq_state);
+ state_save_register_global(machine(), m_ide_irq_state);
+ state_save_register_global_array(machine(), m_pci_bridge_regs);
+ state_save_register_global_array(machine(), m_pci_ide_regs);
+ state_save_register_global_array(machine(), m_pci_3dfx_regs);
+ state_save_register_global(machine(), m_vblank_state);
+ state_save_register_global_array(machine(), m_sio_data);
+ state_save_register_global(machine(), m_sio_irq_clear);
+ state_save_register_global(machine(), m_sio_irq_enable);
+ state_save_register_global(machine(), m_sio_irq_state);
+ state_save_register_global(machine(), m_sio_led_state);
+ state_save_register_global(machine(), m_pending_analog_read);
+ state_save_register_global(machine(), m_cmos_unlocked);
+ machine().save().register_postload(save_prepost_delegate(FUNC(remap_dynamic_addresses), &machine()));
}
-static MACHINE_RESET( vegas )
+void vegas_state::machine_reset()
{
- vegas_state *state = machine.driver_data<vegas_state>();
/* reset dynamic addressing */
- memset(state->m_nile_regs, 0, 0x1000);
- memset(state->m_pci_ide_regs, 0, sizeof(state->m_pci_ide_regs));
- memset(state->m_pci_3dfx_regs, 0, sizeof(state->m_pci_3dfx_regs));
+ memset(m_nile_regs, 0, 0x1000);
+ memset(m_pci_ide_regs, 0, sizeof(m_pci_ide_regs));
+ memset(m_pci_3dfx_regs, 0, sizeof(m_pci_3dfx_regs));
/* reset the DCS system if we have one */
- if (machine.device("dcs2") != NULL || machine.device("dsio") != NULL || machine.device("denver") != NULL)
+ if (machine().device("dcs2") != NULL || machine().device("dsio") != NULL || machine().device("denver") != NULL)
{
- dcs_reset_w(machine, 1);
- dcs_reset_w(machine, 0);
+ dcs_reset_w(machine(), 1);
+ dcs_reset_w(machine(), 0);
}
/* initialize IRQ states */
- state->m_ide_irq_state = 0;
- state->m_nile_irq_state = 0;
- state->m_sio_irq_state = 0;
+ m_ide_irq_state = 0;
+ m_nile_irq_state = 0;
+ m_sio_irq_state = 0;
}
@@ -2252,8 +2252,6 @@ static MACHINE_CONFIG_START( vegascore, vegas_state )
MCFG_CPU_CONFIG(r5000_config)
MCFG_CPU_PROGRAM_MAP(vegas_map_8mb)
- MCFG_MACHINE_START(vegas)
- MCFG_MACHINE_RESET(vegas)
MCFG_M48T37_ADD("timekeeper")
MCFG_IDE_CONTROLLER_ADD("ide", ide_intf, ide_devices, "hdd", NULL, true)
diff --git a/src/mame/drivers/vendetta.c b/src/mame/drivers/vendetta.c
index 3636afc1e64..69687167433 100644
--- a/src/mame/drivers/vendetta.c
+++ b/src/mame/drivers/vendetta.c
@@ -457,48 +457,46 @@ static const k053252_interface esckids_k053252_intf =
12*8, 1*8
};
-static MACHINE_START( vendetta )
+void vendetta_state::machine_start()
{
- vendetta_state *state = machine.driver_data<vendetta_state>();
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
- state->membank("bank1")->configure_entries(0, 28, &ROM[0x10000], 0x2000);
- state->membank("bank1")->set_entry(0);
+ membank("bank1")->configure_entries(0, 28, &ROM[0x10000], 0x2000);
+ membank("bank1")->set_entry(0);
- state->m_generic_paletteram_8.allocate(0x1000);
+ m_generic_paletteram_8.allocate(0x1000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k053246 = machine.device("k053246");
- state->m_k053251 = machine.device("k053251");
- state->m_k052109 = machine.device("k052109");
- state->m_k054000 = machine.device("k054000");
- state->m_k053260 = machine.device("k053260");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k053246 = machine().device("k053246");
+ m_k053251 = machine().device("k053251");
+ m_k052109 = machine().device("k052109");
+ m_k054000 = machine().device("k054000");
+ m_k053260 = machine().device("k053260");
- state->save_item(NAME(state->m_irq_enabled));
- state->save_item(NAME(state->m_sprite_colorbase));
- state->save_item(NAME(state->m_layer_colorbase));
- state->save_item(NAME(state->m_layerpri));
+ save_item(NAME(m_irq_enabled));
+ save_item(NAME(m_sprite_colorbase));
+ save_item(NAME(m_layer_colorbase));
+ save_item(NAME(m_layerpri));
}
-static MACHINE_RESET( vendetta )
+void vendetta_state::machine_reset()
{
- vendetta_state *state = machine.driver_data<vendetta_state>();
int i;
- konami_configure_set_lines(machine.device("maincpu"), vendetta_banking);
+ konami_configure_set_lines(machine().device("maincpu"), vendetta_banking);
for (i = 0; i < 3; i++)
{
- state->m_layerpri[i] = 0;
- state->m_layer_colorbase[i] = 0;
+ m_layerpri[i] = 0;
+ m_layer_colorbase[i] = 0;
}
- state->m_sprite_colorbase = 0;
- state->m_irq_enabled = 0;
+ m_sprite_colorbase = 0;
+ m_irq_enabled = 0;
/* init banks */
- vendetta_video_banking(machine, 0);
+ vendetta_video_banking(machine(), 0);
}
static MACHINE_CONFIG_START( vendetta, vendetta_state )
@@ -512,8 +510,6 @@ static MACHINE_CONFIG_START( vendetta, vendetta_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
/* interrupts are triggered by the main CPU */
- MCFG_MACHINE_START(vendetta)
- MCFG_MACHINE_RESET(vendetta)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
diff --git a/src/mame/drivers/vertigo.c b/src/mame/drivers/vertigo.c
index 1653cc539a3..44ecb490624 100644
--- a/src/mame/drivers/vertigo.c
+++ b/src/mame/drivers/vertigo.c
@@ -126,8 +126,6 @@ static MACHINE_CONFIG_START( vertigo, vertigo_state )
MCFG_CPU_ADD("motor", M6805, 1000000)
MCFG_CPU_PROGRAM_MAP(vertigo_motor)
*/
- MCFG_MACHINE_START(vertigo)
- MCFG_MACHINE_RESET(vertigo)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
diff --git a/src/mame/drivers/vicdual.c b/src/mame/drivers/vicdual.c
index a68731cfb3c..f706548208d 100644
--- a/src/mame/drivers/vicdual.c
+++ b/src/mame/drivers/vicdual.c
@@ -482,7 +482,7 @@ static MACHINE_CONFIG_DERIVED( frogs, vicdual_root )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(frogs_map)
MCFG_CPU_IO_MAP(frogs_io_map)
- MCFG_MACHINE_START(frogs_audio)
+ MCFG_MACHINE_START_OVERRIDE(vicdual_state,frogs_audio)
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
diff --git a/src/mame/drivers/victory.c b/src/mame/drivers/victory.c
index aaaddbec3b0..5748e8d15e7 100644
--- a/src/mame/drivers/victory.c
+++ b/src/mame/drivers/victory.c
@@ -228,7 +228,6 @@ static MACHINE_CONFIG_START( victory, victory_state )
MCFG_PALETTE_LENGTH(64)
- MCFG_VIDEO_START(victory)
/* audio hardware */
MCFG_FRAGMENT_ADD(victory_audio)
diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c
index 747ea0f69d4..2752d8e2c67 100644
--- a/src/mame/drivers/videopin.c
+++ b/src/mame/drivers/videopin.c
@@ -61,16 +61,15 @@ static TIMER_CALLBACK( interrupt_callback )
}
-static MACHINE_RESET( videopin )
+void videopin_state::machine_reset()
{
- videopin_state *state = machine.driver_data<videopin_state>();
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(32), FUNC(interrupt_callback), 32);
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(32), FUNC(interrupt_callback), 32);
/* both output latches are cleared on reset */
- state->videopin_out1_w(*machine.memory().first_space(), 0, 0);
- state->videopin_out2_w(*machine.memory().first_space(), 0, 0);
+ videopin_out1_w(*machine().memory().first_space(), 0, 0);
+ videopin_out2_w(*machine().memory().first_space(), 0, 0);
}
@@ -328,7 +327,6 @@ static MACHINE_CONFIG_START( videopin, videopin_state )
MCFG_CPU_ADD("maincpu", M6502, 12096000 / 16)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_RESET(videopin)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -341,7 +339,6 @@ static MACHINE_CONFIG_START( videopin, videopin_state )
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
- MCFG_VIDEO_START(videopin)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c
index 09555e9692c..d53ee9cadee 100644
--- a/src/mame/drivers/videopkr.c
+++ b/src/mame/drivers/videopkr.c
@@ -357,6 +357,12 @@ public:
DECLARE_READ8_MEMBER(baby_sound_p3_r);
DECLARE_WRITE8_MEMBER(baby_sound_p3_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void machine_start();
+ virtual void video_start();
+ virtual void palette_init();
+ DECLARE_VIDEO_START(vidadcba);
+ DECLARE_PALETTE_INIT(babypkr);
+ DECLARE_PALETTE_INIT(fortune1);
};
@@ -402,12 +408,12 @@ static void count_7dig(unsigned long data, UINT8 index)
}
}
-static PALETTE_INIT( videopkr )
+void videopkr_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int j;
- for (j = 0; j < machine.total_colors(); j++)
+ for (j = 0; j < machine().total_colors(); j++)
{
int r, g, b, tr, tg, tb, i;
@@ -425,16 +431,16 @@ static PALETTE_INIT( videopkr )
tb = 0xf0 - (0xf0 * ((color_prom[j] >> 2) & 0x01));
b = tb - (i * (tb / 5));
- palette_set_color(machine, j, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), j, MAKE_RGB(r, g, b));
}
}
-static PALETTE_INIT( babypkr )
+PALETTE_INIT_MEMBER(videopkr_state,babypkr)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int j;
- for (j = 0; j < machine.total_colors(); j++)
+ for (j = 0; j < machine().total_colors(); j++)
{
int r, g, b, tr, tg, tb, i, top;
@@ -456,16 +462,16 @@ static PALETTE_INIT( babypkr )
tb = 0xdf * ((color_prom[j] >> 2) & 0x01);
b = top - ((tb * top) / 0x100);
- palette_set_color(machine, j, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), j, MAKE_RGB(r, g, b));
}
}
-static PALETTE_INIT( fortune1 )
+PALETTE_INIT_MEMBER(videopkr_state,fortune1)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int j;
- for (j = 0; j < machine.total_colors(); j++)
+ for (j = 0; j < machine().total_colors(); j++)
{
int r, g, b, tr, tg, tb, i, c;
@@ -489,7 +495,7 @@ static PALETTE_INIT( fortune1 )
if ((c % 4) == 1 || (c % 4) == 2)
c = ((int)(c / 4) * 4) + (3 - (c % 4));
- palette_set_color(machine, c, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), c, MAKE_RGB(r, g, b));
}
}
@@ -503,16 +509,14 @@ TILE_GET_INFO_MEMBER(videopkr_state::get_bg_tile_info)
}
-static VIDEO_START( videopkr )
+void videopkr_state::video_start()
{
- videopkr_state *state = machine.driver_data<videopkr_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(videopkr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(videopkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-static VIDEO_START( vidadcba )
+VIDEO_START_MEMBER(videopkr_state,vidadcba)
{
- videopkr_state *state = machine.driver_data<videopkr_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(videopkr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(videopkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
}
@@ -1199,17 +1203,16 @@ GFXDECODE_END
* Machine Start / Reset *
*******************************/
-static MACHINE_START(videopkr)
+void videopkr_state::machine_start()
{
- videopkr_state *state = machine.driver_data<videopkr_state>();
- state->m_vp_sound_p2 = 0xff; /* default P2 latch value */
- state->m_sound_latch = 0xff; /* default sound data latch value */
- state->m_p24_data = 0xff;
- state->m_p1 = 0xff;
- state->m_ant_cio = 0;
- state->m_count0 = 0;
-
- machine.device<nvram_device>("nvram")->set_base(state->m_data_ram, sizeof(state->m_data_ram));
+ m_vp_sound_p2 = 0xff; /* default P2 latch value */
+ m_sound_latch = 0xff; /* default sound data latch value */
+ m_p24_data = 0xff;
+ m_p1 = 0xff;
+ m_ant_cio = 0;
+ m_count0 = 0;
+
+ machine().device<nvram_device>("nvram")->set_base(m_data_ram, sizeof(m_data_ram));
}
static const ay8910_interface ay8910_config =
@@ -1239,7 +1242,6 @@ static MACHINE_CONFIG_START( videopkr, videopkr_state )
MCFG_CPU_ADD("soundcpu", I8039, SOUND_CLOCK)
MCFG_CPU_PROGRAM_MAP(i8039_sound_mem)
MCFG_CPU_IO_MAP(i8039_sound_port)
- MCFG_MACHINE_START(videopkr)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_TIMER_ADD_PERIODIC("t1_timer", sound_t1_callback, attotime::from_hz(50))
@@ -1255,9 +1257,7 @@ static MACHINE_CONFIG_START( videopkr, videopkr_state )
MCFG_SCREEN_UPDATE_STATIC(videopkr)
MCFG_GFXDECODE(videopkr)
- MCFG_PALETTE_INIT(videopkr)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(videopkr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1289,7 +1289,7 @@ static MACHINE_CONFIG_DERIVED( videodad, videopkr )
MCFG_SCREEN_VISIBLE_AREA(4*16, 31*16-1, 2*8, 30*8-1)
MCFG_GFXDECODE(videodad)
- MCFG_VIDEO_START(vidadcba)
+ MCFG_VIDEO_START_OVERRIDE(videopkr_state,vidadcba)
MACHINE_CONFIG_END
@@ -1308,9 +1308,9 @@ static MACHINE_CONFIG_DERIVED( babypkr, videopkr )
MCFG_SCREEN_SIZE(32*16, 32*8)
MCFG_SCREEN_VISIBLE_AREA(5*16, 31*16-1, 3*8, 29*8-1)
- MCFG_PALETTE_INIT(babypkr)
+ MCFG_PALETTE_INIT_OVERRIDE(videopkr_state,babypkr)
MCFG_GFXDECODE(videodad)
- MCFG_VIDEO_START(vidadcba)
+ MCFG_VIDEO_START_OVERRIDE(videopkr_state,vidadcba)
MCFG_SOUND_ADD("aysnd", AY8910, CPU_CLOCK / 6)
MCFG_SOUND_CONFIG(ay8910_config)
@@ -1323,7 +1323,7 @@ static MACHINE_CONFIG_DERIVED( fortune1, videopkr )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_CLOCK(CPU_CLOCK_ALT)
- MCFG_PALETTE_INIT(fortune1)
+ MCFG_PALETTE_INIT_OVERRIDE(videopkr_state,fortune1)
MACHINE_CONFIG_END
/*************************
diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c
index 236792cbdfc..8bee571540e 100644
--- a/src/mame/drivers/vigilant.c
+++ b/src/mame/drivers/vigilant.c
@@ -501,8 +501,6 @@ static MACHINE_CONFIG_START( vigilant, vigilant_state )
MCFG_GFXDECODE(vigilant)
MCFG_PALETTE_LENGTH(512+32) /* 512 real palette, 32 virtual palette */
- MCFG_VIDEO_START(vigilant)
- MCFG_VIDEO_RESET(vigilant)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -543,8 +541,6 @@ static MACHINE_CONFIG_START( buccanrs, vigilant_state )
MCFG_GFXDECODE(buccanrs)
MCFG_PALETTE_LENGTH(512+32) /* 512 real palette, 32 virtual palette */
- MCFG_VIDEO_START(vigilant)
- MCFG_VIDEO_RESET(vigilant)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -601,8 +597,6 @@ static MACHINE_CONFIG_START( kikcubic, vigilant_state )
MCFG_GFXDECODE(kikcubic)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(vigilant)
- MCFG_VIDEO_RESET(vigilant)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/vindictr.c b/src/mame/drivers/vindictr.c
index aefb5df83e4..a68d3ebbba6 100644
--- a/src/mame/drivers/vindictr.c
+++ b/src/mame/drivers/vindictr.c
@@ -39,19 +39,18 @@ static void update_interrupts(running_machine &machine)
}
-static MACHINE_START( vindictr )
+MACHINE_START_MEMBER(vindictr_state,vindictr)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( vindictr )
+MACHINE_RESET_MEMBER(vindictr_state,vindictr)
{
- vindictr_state *state = machine.driver_data<vindictr_state>();
- atarigen_eeprom_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
- atarigen_scanline_timer_reset(*machine.primary_screen, vindictr_scanline_update, 8);
+ atarigen_eeprom_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
+ atarigen_scanline_timer_reset(*machine().primary_screen, vindictr_scanline_update, 8);
atarijsa_reset();
}
@@ -199,8 +198,8 @@ static MACHINE_CONFIG_START( vindictr, vindictr_state )
MCFG_CPU_ADD("maincpu", M68010, ATARI_CLOCK_14MHz/2)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_MACHINE_START(vindictr)
- MCFG_MACHINE_RESET(vindictr)
+ MCFG_MACHINE_START_OVERRIDE(vindictr_state,vindictr)
+ MCFG_MACHINE_RESET_OVERRIDE(vindictr_state,vindictr)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -214,7 +213,7 @@ static MACHINE_CONFIG_START( vindictr, vindictr_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(vindictr)
- MCFG_VIDEO_START(vindictr)
+ MCFG_VIDEO_START_OVERRIDE(vindictr_state,vindictr)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_i_stereo_pokey)
diff --git a/src/mame/drivers/viper.c b/src/mame/drivers/viper.c
index 0e132c051fc..596c630c146 100644
--- a/src/mame/drivers/viper.c
+++ b/src/mame/drivers/viper.c
@@ -350,6 +350,8 @@ public:
DECLARE_WRITE64_MEMBER(ata_w);
DECLARE_DRIVER_INIT(viper);
DECLARE_DRIVER_INIT(vipercf);
+ virtual void machine_start();
+ virtual void machine_reset();
};
UINT32 m_mpc8240_regs[256/4];
@@ -1937,27 +1939,27 @@ static void ide_interrupt(device_t *device, int state)
{
}
-static MACHINE_START(viper)
+void viper_state::machine_start()
{
- ds2430_timer = machine.scheduler().timer_alloc(FUNC(ds2430_timer_callback));
- ds2430_bit_timer = machine.device<timer_device>("ds2430_timer2");
- mpc8240_epic_init(machine);
+ ds2430_timer = machine().scheduler().timer_alloc(FUNC(ds2430_timer_callback));
+ ds2430_bit_timer = machine().device<timer_device>("ds2430_timer2");
+ mpc8240_epic_init(machine());
/* set conservative DRC options */
- ppcdrc_set_options(machine.device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
+ ppcdrc_set_options(machine().device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
/* configure fast RAM regions for DRC */
- ppcdrc_add_fastram(machine.device("maincpu"), 0x00000000, 0x00ffffff, FALSE, workram);
+ ppcdrc_add_fastram(machine().device("maincpu"), 0x00000000, 0x00ffffff, FALSE, workram);
- ds2430_rom = (UINT8*)machine.root_device().memregion("ds2430")->base();
+ ds2430_rom = (UINT8*)machine().root_device().memregion("ds2430")->base();
}
-static MACHINE_RESET(viper)
+void viper_state::machine_reset()
{
- machine.device("ide")->reset();
+ machine().device("ide")->reset();
mpc8240_epic_reset();
- UINT8 *ide_features = ide_get_features(machine.device("ide"), 0);
+ UINT8 *ide_features = ide_get_features(machine().device("ide"), 0);
// Viper expects these settings or the BIOS fails
ide_features[51*2+0] = 0; /* 51: PIO data transfer cycle timing mode */
@@ -1992,8 +1994,6 @@ static MACHINE_CONFIG_START( viper, viper_state )
MCFG_CPU_PROGRAM_MAP(viper_map)
MCFG_CPU_VBLANK_INT("screen", viper_vblank)
- MCFG_MACHINE_START(viper)
- MCFG_MACHINE_RESET(viper)
MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0)
MCFG_PCI_BUS_LEGACY_DEVICE(0, "mpc8240", mpc8240_pci_r, mpc8240_pci_w)
diff --git a/src/mame/drivers/vmetal.c b/src/mame/drivers/vmetal.c
index 92c401e9519..e3ee8bda716 100644
--- a/src/mame/drivers/vmetal.c
+++ b/src/mame/drivers/vmetal.c
@@ -119,6 +119,7 @@ public:
TILE_GET_INFO_MEMBER(get_vmetal_texttilemap_tile_info);
TILE_GET_INFO_MEMBER(get_vmetal_mid1tilemap_tile_info);
TILE_GET_INFO_MEMBER(get_vmetal_mid2tilemap_tile_info);
+ DECLARE_VIDEO_START(varia);
};
@@ -441,19 +442,18 @@ static void expand_gfx1(running_machine &machine)
}
}
-static VIDEO_START(varia)
+VIDEO_START_MEMBER(vmetal_state,varia)
{
- vmetal_state *state = machine.driver_data<vmetal_state>();
- state->m_texttilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vmetal_state::get_vmetal_texttilemap_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 256);
- state->m_mid1tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vmetal_state::get_vmetal_mid1tilemap_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 256, 256);
- state->m_mid2tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vmetal_state::get_vmetal_mid2tilemap_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 256, 256);
+ m_texttilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(vmetal_state::get_vmetal_texttilemap_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 256, 256);
+ m_mid1tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(vmetal_state::get_vmetal_mid1tilemap_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 256, 256);
+ m_mid2tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(vmetal_state::get_vmetal_mid2tilemap_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 256, 256);
- state->m_texttilemap->set_transparent_pen(15);
- state->m_mid1tilemap->set_transparent_pen(15);
- state->m_mid2tilemap->set_transparent_pen(15);
+ m_texttilemap->set_transparent_pen(15);
+ m_mid1tilemap->set_transparent_pen(15);
+ m_mid2tilemap->set_transparent_pen(15);
- expand_gfx1(machine);
+ expand_gfx1(machine());
}
static SCREEN_UPDATE_IND16(varia)
@@ -497,7 +497,7 @@ static MACHINE_CONFIG_START( varia, vmetal_state )
MCFG_GFXDECODE(vmetal)
MCFG_PALETTE_LENGTH(0x4000)
- MCFG_VIDEO_START(varia)
+ MCFG_VIDEO_START_OVERRIDE(vmetal_state,varia)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/volfied.c b/src/mame/drivers/volfied.c
index a02c06604d9..57062e2bfe8 100644
--- a/src/mame/drivers/volfied.c
+++ b/src/mame/drivers/volfied.c
@@ -231,20 +231,19 @@ static const ym2203_interface ym2203_config =
MACHINE DRIVERS
***********************************************************/
-static MACHINE_START( volfied )
+void volfied_state::machine_start()
{
- volfied_state *state = machine.driver_data<volfied_state>();
- volfied_cchip_init(machine);
+ volfied_cchip_init(machine());
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_pc090oj = machine.device("pc090oj");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_pc090oj = machine().device("pc090oj");
}
-static MACHINE_RESET( volfied )
+void volfied_state::machine_reset()
{
- volfied_cchip_reset(machine);
+ volfied_cchip_reset(machine());
}
static const pc090oj_interface volfied_pc090oj_intf =
@@ -269,8 +268,6 @@ static MACHINE_CONFIG_START( volfied, volfied_state )
MCFG_QUANTUM_TIME(attotime::from_hz(1200))
- MCFG_MACHINE_START(volfied)
- MCFG_MACHINE_RESET(volfied)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -283,7 +280,6 @@ static MACHINE_CONFIG_START( volfied, volfied_state )
MCFG_GFXDECODE(volfied)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(volfied)
MCFG_PC090OJ_ADD("pc090oj", volfied_pc090oj_intf)
diff --git a/src/mame/drivers/voyager.c b/src/mame/drivers/voyager.c
index f0a761c41a5..4ba086990b4 100644
--- a/src/mame/drivers/voyager.c
+++ b/src/mame/drivers/voyager.c
@@ -67,6 +67,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(voyager_pic8259_1_set_int_line);
DECLARE_READ8_MEMBER(get_slave_ack);
DECLARE_DRIVER_INIT(voyager);
+ virtual void machine_start();
+ virtual void machine_reset();
};
@@ -650,16 +652,15 @@ static IRQ_CALLBACK(irq_callback)
static READ8_HANDLER( vga_setting ) { return 0xff; } // hard-code to color
-static MACHINE_START(voyager)
+void voyager_state::machine_start()
{
- voyager_state *state = machine.driver_data<voyager_state>();
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
- state->m_pit8254 = machine.device( "pit8254" );
- state->m_pic8259_1 = machine.device( "pic8259_1" );
- state->m_pic8259_2 = machine.device( "pic8259_2" );
- state->m_dma8237_1 = machine.device( "dma8237_1" );
- state->m_dma8237_2 = machine.device( "dma8237_2" );
+ m_pit8254 = machine().device( "pit8254" );
+ m_pic8259_1 = machine().device( "pic8259_1" );
+ m_pic8259_2 = machine().device( "pic8259_2" );
+ m_dma8237_1 = machine().device( "dma8237_1" );
+ m_dma8237_2 = machine().device( "dma8237_2" );
}
/*************************************************************
@@ -723,10 +724,10 @@ static const struct pit8253_config voyager_pit8254_config =
}
};
-static MACHINE_RESET(voyager)
+void voyager_state::machine_reset()
{
- //machine.root_device().membank("bank1")->set_base(machine.root_device().memregion("bios")->base() + 0x10000);
- machine.root_device().membank("bank1")->set_base(machine.root_device().memregion("bios")->base());
+ //machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("bios")->base() + 0x10000);
+ machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("bios")->base());
}
static void set_gate_a20(running_machine &machine, int a20)
@@ -775,8 +776,6 @@ static MACHINE_CONFIG_START( voyager, voyager_state )
MCFG_CPU_PROGRAM_MAP(voyager_map)
MCFG_CPU_IO_MAP(voyager_io)
- MCFG_MACHINE_START(voyager)
- MCFG_MACHINE_RESET(voyager)
MCFG_PIT8254_ADD( "pit8254", voyager_pit8254_config )
MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
diff --git a/src/mame/drivers/vpoker.c b/src/mame/drivers/vpoker.c
index 6880ee06bdd..a09bcdefc76 100644
--- a/src/mame/drivers/vpoker.c
+++ b/src/mame/drivers/vpoker.c
@@ -123,13 +123,14 @@ public:
DECLARE_READ8_MEMBER(blitter_r);
DECLARE_WRITE8_MEMBER(blitter_w);
DECLARE_WRITE_LINE_MEMBER(ptm_irq);
+ virtual void video_start();
+ virtual void palette_init();
};
-static VIDEO_START( vpoker )
+void vpoker_state::video_start()
{
- vpoker_state *state = machine.driver_data<vpoker_state>();
- state->m_videoram = auto_alloc_array(machine, UINT8, 0x200);
+ m_videoram = auto_alloc_array(machine(), UINT8, 0x200);
}
static SCREEN_UPDATE_IND16( vpoker )
@@ -623,7 +624,7 @@ static GFXDECODE_START( vpoker )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 )
GFXDECODE_END
-static PALETTE_INIT( vpoker )
+void vpoker_state::palette_init()
{
int i;
@@ -633,7 +634,7 @@ static PALETTE_INIT( vpoker )
color = MAKE_RGB(pal1bit((i & 4) >> 2),pal1bit(i & 1),pal1bit((i & 2) >> 1));
- palette_set_color(machine, i, color);
+ palette_set_color(machine(), i, color);
}
}
@@ -668,9 +669,7 @@ static MACHINE_CONFIG_START( vpoker, vpoker_state )
MCFG_GFXDECODE(vpoker)
MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT(vpoker)
- MCFG_VIDEO_START(vpoker)
/* 6840 PTM */
MCFG_PTM6840_ADD("6840ptm", ptm_intf)
diff --git a/src/mame/drivers/vroulet.c b/src/mame/drivers/vroulet.c
index 8c2ccc96c13..3ebd43aac38 100644
--- a/src/mame/drivers/vroulet.c
+++ b/src/mame/drivers/vroulet.c
@@ -61,6 +61,7 @@ public:
DECLARE_WRITE8_MEMBER(ppi8255_b_w);
DECLARE_WRITE8_MEMBER(ppi8255_c_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void video_start();
};
@@ -108,10 +109,9 @@ TILE_GET_INFO_MEMBER(vroulet_state::get_bg_tile_info)
SET_TILE_INFO_MEMBER(0, code, color, 0);
}
-static VIDEO_START(vroulet)
+void vroulet_state::video_start()
{
- vroulet_state *state = machine.driver_data<vroulet_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vroulet_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(vroulet_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
@@ -307,7 +307,6 @@ static MACHINE_CONFIG_START( vroulet, vroulet_state )
MCFG_GFXDECODE(vroulet)
MCFG_PALETTE_LENGTH(128*4)
- MCFG_VIDEO_START(vroulet)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/vsnes.c b/src/mame/drivers/vsnes.c
index e68db255d1b..aee6672ea25 100644
--- a/src/mame/drivers/vsnes.c
+++ b/src/mame/drivers/vsnes.c
@@ -1691,8 +1691,8 @@ static MACHINE_CONFIG_START( vsnes, vsnes_state )
MCFG_CPU_ADD("maincpu", N2A03,N2A03_DEFAULTCLOCK)
MCFG_CPU_PROGRAM_MAP(vsnes_cpu1_map)
/* some carts also trigger IRQs */
- MCFG_MACHINE_RESET(vsnes)
- MCFG_MACHINE_START(vsnes)
+ MCFG_MACHINE_RESET_OVERRIDE(vsnes_state,vsnes)
+ MCFG_MACHINE_START_OVERRIDE(vsnes_state,vsnes)
/* video hardware */
MCFG_SCREEN_ADD("screen1", RASTER)
@@ -1703,8 +1703,8 @@ static MACHINE_CONFIG_START( vsnes, vsnes_state )
MCFG_PALETTE_LENGTH(8*4*16)
- MCFG_PALETTE_INIT(vsnes)
- MCFG_VIDEO_START(vsnes)
+ MCFG_PALETTE_INIT_OVERRIDE(vsnes_state,vsnes)
+ MCFG_VIDEO_START_OVERRIDE(vsnes_state,vsnes)
MCFG_PPU2C04_ADD("ppu1", vsnes_ppu_interface_1)
@@ -1752,8 +1752,8 @@ static MACHINE_CONFIG_START( vsdual, vsnes_state )
MCFG_CPU_ADD("sub", N2A03,N2A03_DEFAULTCLOCK)
MCFG_CPU_PROGRAM_MAP(vsnes_cpu2_map)
/* some carts also trigger IRQs */
- MCFG_MACHINE_RESET(vsdual)
- MCFG_MACHINE_START(vsdual)
+ MCFG_MACHINE_RESET_OVERRIDE(vsnes_state,vsdual)
+ MCFG_MACHINE_START_OVERRIDE(vsnes_state,vsdual)
/* video hardware */
MCFG_PALETTE_LENGTH(2*8*4*16)
@@ -1771,8 +1771,8 @@ static MACHINE_CONFIG_START( vsdual, vsnes_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(vsnes_bottom)
- MCFG_PALETTE_INIT(vsdual)
- MCFG_VIDEO_START(vsdual)
+ MCFG_PALETTE_INIT_OVERRIDE(vsnes_state,vsdual)
+ MCFG_VIDEO_START_OVERRIDE(vsnes_state,vsdual)
MCFG_PPU2C04_ADD("ppu1", vsnes_ppu_interface_1)
MCFG_PPU2C04_ADD("ppu2", vsnes_ppu_interface_2)
diff --git a/src/mame/drivers/vulgus.c b/src/mame/drivers/vulgus.c
index 0a583536e07..c666d7fd8d4 100644
--- a/src/mame/drivers/vulgus.c
+++ b/src/mame/drivers/vulgus.c
@@ -230,8 +230,6 @@ static MACHINE_CONFIG_START( vulgus, vulgus_state )
MCFG_GFXDECODE(vulgus)
MCFG_PALETTE_LENGTH(64*4+16*16+4*32*8)
- MCFG_PALETTE_INIT(vulgus)
- MCFG_VIDEO_START(vulgus)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/wallc.c b/src/mame/drivers/wallc.c
index d30b3036b83..14a788b6042 100644
--- a/src/mame/drivers/wallc.c
+++ b/src/mame/drivers/wallc.c
@@ -67,6 +67,8 @@ public:
DECLARE_DRIVER_INIT(wallc);
DECLARE_DRIVER_INIT(wallca);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -95,9 +97,9 @@ public:
***************************************************************************/
-static PALETTE_INIT( wallc )
+void wallc_state::palette_init()
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
static const int resistances_rg[2] = { 330, 220 };
@@ -109,7 +111,7 @@ static PALETTE_INIT( wallc )
2, resistances_rg, weights_g, 330, 0,
3, resistances_b, weights_b, 330, 655+220);
- for (i = 0;i < machine.total_colors();i++)
+ for (i = 0;i < machine().total_colors();i++)
{
int bit0,bit1,bit7,r,g,b;
@@ -129,7 +131,7 @@ static PALETTE_INIT( wallc )
bit7 = (color_prom[i] >> 7) & 0x01;
b = combine_3_weights(weights_b, bit7, bit1, bit0);
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),i,MAKE_RGB(r,g,b));
}
}
@@ -146,10 +148,9 @@ TILE_GET_INFO_MEMBER(wallc_state::get_bg_tile_info)
SET_TILE_INFO_MEMBER(0, videoram[tile_index] + 0x100, 1, 0);
}
-static VIDEO_START( wallc )
+void wallc_state::video_start()
{
- wallc_state *state = machine.driver_data<wallc_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wallc_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wallc_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
}
static SCREEN_UPDATE_IND16( wallc )
@@ -314,8 +315,6 @@ static MACHINE_CONFIG_START( wallc, wallc_state )
MCFG_GFXDECODE(wallc)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(wallc)
- MCFG_VIDEO_START(wallc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/wardner.c b/src/mame/drivers/wardner.c
index 39bf6162d2e..948bc07d8e7 100644
--- a/src/mame/drivers/wardner.c
+++ b/src/mame/drivers/wardner.c
@@ -404,7 +404,7 @@ static MACHINE_CONFIG_START( wardner, wardner_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame */
- MCFG_MACHINE_RESET(wardner)
+ MCFG_MACHINE_RESET_OVERRIDE(wardner_state,wardner)
/* video hardware */
MCFG_MC6845_ADD("crtc", HD6845, XTAL_14MHz/4, twincobr_mc6845_intf) /* 3.5MHz measured on CLKin */
@@ -420,7 +420,7 @@ static MACHINE_CONFIG_START( wardner, wardner_state )
MCFG_GFXDECODE(wardner)
MCFG_PALETTE_LENGTH(1792)
- MCFG_VIDEO_START(toaplan0)
+ MCFG_VIDEO_START_OVERRIDE(wardner_state,toaplan0)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/warpsped.c b/src/mame/drivers/warpsped.c
index 830c4d9d7ed..ea718631fca 100644
--- a/src/mame/drivers/warpsped.c
+++ b/src/mame/drivers/warpsped.c
@@ -104,6 +104,8 @@ public:
DECLARE_DRIVER_INIT(warpspeed);
TILE_GET_INFO_MEMBER(get_warpspeed_text_tile_info);
TILE_GET_INFO_MEMBER(get_warpspeed_starfield_tile_info);
+ virtual void video_start();
+ virtual void palette_init();
};
WRITE8_MEMBER(warpspeed_state::warpspeed_hardware_w)
@@ -135,13 +137,12 @@ WRITE8_MEMBER(warpspeed_state::warpspeed_vidram_w)
m_text_tilemap->mark_tile_dirty(offset);
}
-static VIDEO_START( warpspeed )
+void warpspeed_state::video_start()
{
- warpspeed_state *state = machine.driver_data<warpspeed_state>();
- state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(warpspeed_state::get_warpspeed_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_text_tilemap->set_transparent_pen(0);
- state->m_starfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(warpspeed_state::get_warpspeed_starfield_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_starfield_tilemap->mark_all_dirty();
+ m_text_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(warpspeed_state::get_warpspeed_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_text_tilemap->set_transparent_pen(0);
+ m_starfield_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(warpspeed_state::get_warpspeed_starfield_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_starfield_tilemap->mark_all_dirty();
}
static void draw_circle_line(bitmap_ind16 &bitmap, int x, int y, int l, int color)
@@ -289,16 +290,16 @@ static GFXDECODE_START( warpspeed )
GFXDECODE_ENTRY( "gfx2", 0, warpspeed_charlayout, 0, 1 )
GFXDECODE_END
-static PALETTE_INIT( warpspeed )
+void warpspeed_state::palette_init()
{
// tilemaps
- palette_set_color(machine,0,RGB_BLACK); /* black */
- palette_set_color(machine,1,RGB_WHITE); /* white */
+ palette_set_color(machine(),0,RGB_BLACK); /* black */
+ palette_set_color(machine(),1,RGB_WHITE); /* white */
// circles
for ( int i = 0; i < 8; i++ )
{
- palette_set_color_rgb(machine, 2 + i, 0xff*BIT(i,0), 0xff*BIT(i,1), 0xff*BIT(i,2));
+ palette_set_color_rgb(machine(), 2 + i, 0xff*BIT(i,0), 0xff*BIT(i,1), 0xff*BIT(i,2));
}
}
@@ -317,12 +318,10 @@ static MACHINE_CONFIG_START( warpspeed, warpspeed_state )
MCFG_SCREEN_SIZE((32)*8, (32)*8)
MCFG_SCREEN_VISIBLE_AREA(4*8, 32*8-1, 8*8, 32*8-1)
- MCFG_VIDEO_START(warpspeed)
MCFG_SCREEN_UPDATE_STATIC(warpspeed)
MCFG_GFXDECODE(warpspeed)
MCFG_PALETTE_LENGTH(2+8)
- MCFG_PALETTE_INIT(warpspeed)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/warpwarp.c b/src/mame/drivers/warpwarp.c
index dc0762afb73..dbbc1680e8b 100644
--- a/src/mame/drivers/warpwarp.c
+++ b/src/mame/drivers/warpwarp.c
@@ -742,8 +742,8 @@ static MACHINE_CONFIG_START( geebee, warpwarp_state )
MCFG_GFXDECODE(1k)
MCFG_PALETTE_LENGTH(4*2)
- MCFG_PALETTE_INIT(geebee)
- MCFG_VIDEO_START(geebee)
+ MCFG_PALETTE_INIT_OVERRIDE(warpwarp_state,geebee)
+ MCFG_VIDEO_START_OVERRIDE(warpwarp_state,geebee)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -758,8 +758,8 @@ static MACHINE_CONFIG_DERIVED( navarone, geebee )
MCFG_GFXDECODE(2k)
MCFG_PALETTE_LENGTH(2*2)
- MCFG_PALETTE_INIT(navarone)
- MCFG_VIDEO_START(navarone)
+ MCFG_PALETTE_INIT_OVERRIDE(warpwarp_state,navarone)
+ MCFG_VIDEO_START_OVERRIDE(warpwarp_state,navarone)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( bombbee, warpwarp_state )
@@ -777,8 +777,8 @@ static MACHINE_CONFIG_START( bombbee, warpwarp_state )
MCFG_GFXDECODE(color)
MCFG_PALETTE_LENGTH(2*256+1)
- MCFG_PALETTE_INIT(warpwarp)
- MCFG_VIDEO_START(warpwarp)
+ MCFG_PALETTE_INIT_OVERRIDE(warpwarp_state,warpwarp)
+ MCFG_VIDEO_START_OVERRIDE(warpwarp_state,warpwarp)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c
index 6ede8645252..c1e2b40469f 100644
--- a/src/mame/drivers/warriorb.c
+++ b/src/mame/drivers/warriorb.c
@@ -155,8 +155,8 @@ Colscroll effects?
#include "includes/warriorb.h"
#include "includes/taitoipt.h"
-static MACHINE_START( warriorb );
-static MACHINE_RESET( taito_dualscreen );
+
+
@@ -508,39 +508,37 @@ static const tc0140syt_interface warriorb_tc0140syt_intf =
};
-static MACHINE_START( warriorb )
+void warriorb_state::machine_start()
{
- warriorb_state *state = machine.driver_data<warriorb_state>();
- state->membank("bank10")->configure_entries(0, 8, state->memregion("audiocpu")->base() + 0xc000, 0x4000);
+ membank("bank10")->configure_entries(0, 8, memregion("audiocpu")->base() + 0xc000, 0x4000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_tc0140syt = machine.device("tc0140syt");
- state->m_tc0100scn_1 = machine.device("tc0100scn_1");
- state->m_tc0100scn_2 = machine.device("tc0100scn_2");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_tc0140syt = machine().device("tc0140syt");
+ m_tc0100scn_1 = machine().device("tc0100scn_1");
+ m_tc0100scn_2 = machine().device("tc0100scn_2");
- state->m_lscreen = machine.device("lscreen");
- state->m_rscreen = machine.device("rscreen");
+ m_lscreen = machine().device("lscreen");
+ m_rscreen = machine().device("rscreen");
- state->m_2610_1l = machine.device("2610.1.l");
- state->m_2610_1r = machine.device("2610.1.r");
- state->m_2610_2l = machine.device("2610.2.l");
- state->m_2610_2r = machine.device("2610.2.r");
+ m_2610_1l = machine().device("2610.1.l");
+ m_2610_1r = machine().device("2610.1.r");
+ m_2610_2l = machine().device("2610.2.l");
+ m_2610_2r = machine().device("2610.2.r");
- state->save_item(NAME(state->m_banknum));
- state->save_item(NAME(state->m_pandata));
- machine.save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine));
+ save_item(NAME(m_banknum));
+ save_item(NAME(m_pandata));
+ machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
}
-static MACHINE_RESET( taito_dualscreen )
+void warriorb_state::machine_reset()
{
- warriorb_state *state = machine.driver_data<warriorb_state>();
- state->m_banknum = 0;
+ m_banknum = 0;
/**** mixer control enable ****/
- machine.sound().system_enable(true); /* mixer enabled */
+ machine().sound().system_enable(true); /* mixer enabled */
}
static MACHINE_CONFIG_START( darius2d, warriorb_state )
@@ -553,8 +551,6 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state )
MCFG_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ? */
MCFG_CPU_PROGRAM_MAP(z80_sound_map)
- MCFG_MACHINE_START( warriorb )
- MCFG_MACHINE_RESET( taito_dualscreen )
MCFG_TC0220IOC_ADD("tc0220ioc", darius2d_io_intf)
@@ -577,7 +573,6 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 32*8-1)
MCFG_SCREEN_UPDATE_STATIC(warriorb_right)
- MCFG_VIDEO_START(warriorb)
MCFG_TC0100SCN_ADD("tc0100scn_1", darius2d_tc0100scn_intf_l)
MCFG_TC0100SCN_ADD("tc0100scn_2", darius2d_tc0100scn_intf_r)
@@ -619,8 +614,6 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state )
MCFG_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ? */
MCFG_CPU_PROGRAM_MAP(z80_sound_map)
- MCFG_MACHINE_START( warriorb )
- MCFG_MACHINE_RESET( taito_dualscreen )
MCFG_TC0510NIO_ADD("tc0510nio", warriorb_io_intf)
@@ -643,7 +636,6 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
MCFG_SCREEN_UPDATE_STATIC(warriorb_right)
- MCFG_VIDEO_START(warriorb)
MCFG_TC0100SCN_ADD("tc0100scn_1", warriorb_tc0100scn_intf_l)
MCFG_TC0100SCN_ADD("tc0100scn_2", warriorb_tc0100scn_intf_r)
diff --git a/src/mame/drivers/wc90.c b/src/mame/drivers/wc90.c
index 472b6d372eb..2183ba674b3 100644
--- a/src/mame/drivers/wc90.c
+++ b/src/mame/drivers/wc90.c
@@ -331,7 +331,6 @@ static MACHINE_CONFIG_START( wc90, wc90_state )
MCFG_GFXDECODE(wc90)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(wc90)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -344,7 +343,7 @@ static MACHINE_CONFIG_START( wc90, wc90_state )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( wc90t, wc90 )
- MCFG_VIDEO_START( wc90t )
+ MCFG_VIDEO_START_OVERRIDE(wc90_state, wc90t )
MACHINE_CONFIG_END
ROM_START( wc90 )
diff --git a/src/mame/drivers/wc90b.c b/src/mame/drivers/wc90b.c
index 0f311974629..398767e3b07 100644
--- a/src/mame/drivers/wc90b.c
+++ b/src/mame/drivers/wc90b.c
@@ -386,7 +386,6 @@ static MACHINE_CONFIG_START( wc90b, wc90b_state )
MCFG_GFXDECODE(wc90b)
MCFG_PALETTE_LENGTH(1024)
- MCFG_VIDEO_START(wc90b)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c
index 33bec33ee71..fa19e0282d4 100644
--- a/src/mame/drivers/wecleman.c
+++ b/src/mame/drivers/wecleman.c
@@ -1045,9 +1045,9 @@ static TIMER_DEVICE_CALLBACK( hotchase_scanline )
}
-static MACHINE_RESET( wecleman )
+MACHINE_RESET_MEMBER(wecleman_state,wecleman)
{
- k007232_set_bank( machine.device("konami"), 0, 1 );
+ k007232_set_bank( machine().device("konami"), 0, 1 );
}
static MACHINE_CONFIG_START( wecleman, wecleman_state )
@@ -1066,7 +1066,7 @@ static MACHINE_CONFIG_START( wecleman, wecleman_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_RESET(wecleman)
+ MCFG_MACHINE_RESET_OVERRIDE(wecleman_state,wecleman)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1080,7 +1080,7 @@ static MACHINE_CONFIG_START( wecleman, wecleman_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(wecleman)
+ MCFG_VIDEO_START_OVERRIDE(wecleman_state,wecleman)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1120,17 +1120,16 @@ static const k051316_interface hotchase_k051316_intf_1 =
hotchase_zoom_callback_1
};
-static MACHINE_RESET( hotchase )
+MACHINE_RESET_MEMBER(wecleman_state,hotchase)
{
- wecleman_state *state = machine.driver_data<wecleman_state>();
int i;
/* TODO: PCB reference clearly shows that the POST has random/filled data on the paletteram.
For now let's fill everything with white colors until we have better info about it */
for(i=0;i<0x2000/2;i++)
{
- state->m_generic_paletteram_16[i] = 0xffff;
- palette_set_color_rgb(machine,i,0xff,0xff,0xff);
+ m_generic_paletteram_16[i] = 0xffff;
+ palette_set_color_rgb(machine(),i,0xff,0xff,0xff);
}
}
@@ -1151,7 +1150,7 @@ static MACHINE_CONFIG_START( hotchase, wecleman_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_RESET(hotchase)
+ MCFG_MACHINE_RESET_OVERRIDE(wecleman_state,hotchase)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1164,7 +1163,7 @@ static MACHINE_CONFIG_START( hotchase, wecleman_state )
MCFG_GFXDECODE(hotchase)
MCFG_PALETTE_LENGTH(2048*2)
- MCFG_VIDEO_START(hotchase)
+ MCFG_VIDEO_START_OVERRIDE(wecleman_state,hotchase)
MCFG_K051316_ADD("k051316_1", hotchase_k051316_intf_0)
MCFG_K051316_ADD("k051316_2", hotchase_k051316_intf_1)
diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c
index d4e9620ffd6..58121e48a00 100644
--- a/src/mame/drivers/welltris.c
+++ b/src/mame/drivers/welltris.c
@@ -724,7 +724,6 @@ static MACHINE_CONFIG_START( welltris, welltris_state )
MCFG_GFXDECODE(welltris)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(welltris)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c
index 10104baa6e6..3fc0c8dee3b 100644
--- a/src/mame/drivers/wgp.c
+++ b/src/mame/drivers/wgp.c
@@ -922,42 +922,40 @@ static void wgp_postload(running_machine &machine)
reset_sound_region(machine);
}
-static MACHINE_RESET( wgp )
+void wgp_state::machine_reset()
{
- wgp_state *state = machine.driver_data<wgp_state>();
int i;
- state->m_banknum = 0;
- state->m_cpua_ctrl = 0xff;
- state->m_port_sel = 0;
- state->m_piv_ctrl_reg = 0;
+ m_banknum = 0;
+ m_cpua_ctrl = 0xff;
+ m_port_sel = 0;
+ m_piv_ctrl_reg = 0;
for (i = 0; i < 3; i++)
{
- state->m_piv_zoom[i] = 0;
- state->m_piv_scrollx[i] = 0;
- state->m_piv_scrolly[i] = 0;
+ m_piv_zoom[i] = 0;
+ m_piv_scrollx[i] = 0;
+ m_piv_scrolly[i] = 0;
}
- memset(state->m_rotate_ctrl, 0, 8 * sizeof(UINT16));
+ memset(m_rotate_ctrl, 0, 8 * sizeof(UINT16));
}
-static MACHINE_START( wgp )
+void wgp_state::machine_start()
{
- wgp_state *state = machine.driver_data<wgp_state>();
- state->membank("bank10")->configure_entries(0, 4, state->memregion("audiocpu")->base() + 0xc000, 0x4000);
+ membank("bank10")->configure_entries(0, 4, memregion("audiocpu")->base() + 0xc000, 0x4000);
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_subcpu = machine.device<cpu_device>("sub");
- state->m_tc0140syt = machine.device("tc0140syt");
- state->m_tc0100scn = machine.device("tc0100scn");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_subcpu = machine().device<cpu_device>("sub");
+ m_tc0140syt = machine().device("tc0140syt");
+ m_tc0100scn = machine().device("tc0100scn");
- state->save_item(NAME(state->m_cpua_ctrl));
- state->save_item(NAME(state->m_banknum));
- state->save_item(NAME(state->m_port_sel));
- machine.save().register_postload(save_prepost_delegate(FUNC(wgp_postload), &machine));
+ save_item(NAME(m_cpua_ctrl));
+ save_item(NAME(m_banknum));
+ save_item(NAME(m_port_sel));
+ machine().save().register_postload(save_prepost_delegate(FUNC(wgp_postload), &machine()));
}
static const tc0100scn_interface wgp_tc0100scn_intf =
@@ -1005,8 +1003,6 @@ static MACHINE_CONFIG_START( wgp, wgp_state )
MCFG_CPU_PROGRAM_MAP(cpu2_map)
MCFG_CPU_VBLANK_INT("screen", wgp_cpub_interrupt)
- MCFG_MACHINE_START(wgp)
- MCFG_MACHINE_RESET(wgp)
MCFG_QUANTUM_TIME(attotime::from_hz(30000))
@@ -1023,7 +1019,6 @@ static MACHINE_CONFIG_START( wgp, wgp_state )
MCFG_GFXDECODE(wgp)
MCFG_PALETTE_LENGTH(4096)
- MCFG_VIDEO_START(wgp)
MCFG_TC0100SCN_ADD("tc0100scn", wgp_tc0100scn_intf)
@@ -1045,7 +1040,7 @@ static MACHINE_CONFIG_DERIVED( wgp2, wgp )
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
/* video hardware */
- MCFG_VIDEO_START(wgp2)
+ MCFG_VIDEO_START_OVERRIDE(wgp_state,wgp2)
MCFG_DEVICE_REMOVE("tc0100scn")
MCFG_TC0100SCN_ADD("tc0100scn", wgp2_tc0100scn_intf)
diff --git a/src/mame/drivers/wheelfir.c b/src/mame/drivers/wheelfir.c
index 6784812ae4f..2124ffe08cf 100644
--- a/src/mame/drivers/wheelfir.c
+++ b/src/mame/drivers/wheelfir.c
@@ -281,6 +281,9 @@ public:
DECLARE_READ16_MEMBER(wheelfir_snd_r);
DECLARE_WRITE16_MEMBER(coin_cnt_w);
DECLARE_DRIVER_INIT(wheelfir);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -565,11 +568,10 @@ WRITE16_MEMBER(wheelfir_state::wheelfir_blit_w)
}
}
-static VIDEO_START(wheelfir)
+void wheelfir_state::video_start()
{
- wheelfir_state *state = machine.driver_data<wheelfir_state>();
- state->m_tmp_bitmap[0] = auto_bitmap_ind16_alloc(machine, 512, 512);
- state->m_tmp_bitmap[1] = auto_bitmap_ind16_alloc(machine, 512, 512);
+ m_tmp_bitmap[0] = auto_bitmap_ind16_alloc(machine(), 512, 512);
+ m_tmp_bitmap[1] = auto_bitmap_ind16_alloc(machine(), 512, 512);
}
static SCREEN_UPDATE_IND16(wheelfir)
@@ -764,32 +766,31 @@ static TIMER_DEVICE_CALLBACK( scanline_timer_callback )
}
-static MACHINE_RESET( wheelfir )
+void wheelfir_state::machine_reset()
{
}
-static MACHINE_START( wheelfir )
+void wheelfir_state::machine_start()
{
- wheelfir_state *state = machine.driver_data<wheelfir_state>();
- state->m_maincpu = machine.device<cpu_device>( "maincpu");
- state->m_subcpu = machine.device<cpu_device>( "subcpu");
- state->m_screen = machine.device( "screen");
- state->m_eeprom = machine.device( "eeprom");
+ m_maincpu = machine().device<cpu_device>( "maincpu");
+ m_subcpu = machine().device<cpu_device>( "subcpu");
+ m_screen = machine().device( "screen");
+ m_eeprom = machine().device( "eeprom");
- state->m_zoom_table = auto_alloc_array(machine, INT32, ZOOM_TABLE_SIZE);
- state->m_blitter_data = auto_alloc_array(machine, UINT16, 16);
+ m_zoom_table = auto_alloc_array(machine(), INT32, ZOOM_TABLE_SIZE);
+ m_blitter_data = auto_alloc_array(machine(), UINT16, 16);
- state->m_scanlines = reinterpret_cast<scroll_info*>(auto_alloc_array(machine, UINT8, sizeof(scroll_info)*(NUM_SCANLINES+NUM_VBLANK_LINES)));
- state->m_palette=auto_alloc_array(machine, UINT8, NUM_COLORS*3);
+ m_scanlines = reinterpret_cast<scroll_info*>(auto_alloc_array(machine(), UINT8, sizeof(scroll_info)*(NUM_SCANLINES+NUM_VBLANK_LINES)));
+ m_palette=auto_alloc_array(machine(), UINT8, NUM_COLORS*3);
for(int i=0;i<(ZOOM_TABLE_SIZE);++i)
{
- state->m_zoom_table[i]=-1;
+ m_zoom_table[i]=-1;
}
- UINT16 *ROM = (UINT16 *)machine.root_device().memregion("maincpu")->base();
+ UINT16 *ROM = (UINT16 *)machine().root_device().memregion("maincpu")->base();
for(int j=0;j<400;++j)
{
@@ -804,7 +805,7 @@ static MACHINE_START( wheelfir )
int dflag=(ROM[0x200+1+i]&0x10)?1:0;
int index=d0|(d1<<6)|(hflag<<12)|(dflag<<13);
- state->m_zoom_table[index]=j;
+ m_zoom_table[index]=j;
}
}
@@ -820,7 +821,6 @@ static MACHINE_CONFIG_START( wheelfir, wheelfir_state )
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
- MCFG_MACHINE_RESET (wheelfir)
MCFG_TIMER_ADD_SCANLINE("scan_timer", scanline_timer_callback, "screen", 0, 1)
@@ -835,9 +835,7 @@ static MACHINE_CONFIG_START( wheelfir, wheelfir_state )
MCFG_EEPROM_93C46_ADD("eeprom")
- MCFG_MACHINE_START(wheelfir)
- MCFG_VIDEO_START(wheelfir)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/whitestar.c b/src/mame/drivers/whitestar.c
index 8bbc7552bac..5f129ace66d 100644
--- a/src/mame/drivers/whitestar.c
+++ b/src/mame/drivers/whitestar.c
@@ -47,6 +47,8 @@ public:
DECLARE_WRITE8_MEMBER(switch_w);
DECLARE_READ8_MEMBER(dedicated_switch_r);
DECLARE_DRIVER_INIT(whitestar);
+ virtual void machine_reset();
+ virtual void palette_init();
};
static INPUT_PORTS_START( whitestar )
@@ -169,10 +171,10 @@ static ADDRESS_MAP_START( whitestar_dmd_map, AS_PROGRAM, 8, whitestar_state )
AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("dmdcpu", 0x78000)
ADDRESS_MAP_END
-static MACHINE_RESET( whitestar )
+void whitestar_state::machine_reset()
{
- machine.root_device().membank("bank1")->set_base(machine.root_device().memregion("user1")->base());
- machine.root_device().membank("dmd_bank1")->set_base(machine.root_device().memregion("dmdcpu")->base());
+ machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("user1")->base());
+ machine().root_device().membank("dmd_bank1")->set_base(machine().root_device().memregion("dmdcpu")->base());
}
DRIVER_INIT_MEMBER(whitestar_state,whitestar)
@@ -255,14 +257,14 @@ static const mc6845_interface whitestar_crtc6845_interface =
NULL
};
-static PALETTE_INIT( whitestar )
+void whitestar_state::palette_init()
{
- palette_set_color(machine, 0, MAKE_RGB(0, 0, 0));
+ palette_set_color(machine(), 0, MAKE_RGB(0, 0, 0));
- palette_set_color(machine, 1, MAKE_RGB(20, 20, 20));
- palette_set_color(machine, 2, MAKE_RGB(84, 73, 10));
- palette_set_color(machine, 3, MAKE_RGB(168, 147, 21));
- palette_set_color(machine, 4, MAKE_RGB(255, 224, 32));
+ palette_set_color(machine(), 1, MAKE_RGB(20, 20, 20));
+ palette_set_color(machine(), 2, MAKE_RGB(84, 73, 10));
+ palette_set_color(machine(), 3, MAKE_RGB(168, 147, 21));
+ palette_set_color(machine(), 4, MAKE_RGB(255, 224, 32));
}
static MACHINE_CONFIG_START( whitestar, whitestar_state )
@@ -275,7 +277,6 @@ static MACHINE_CONFIG_START( whitestar, whitestar_state )
MCFG_CPU_PROGRAM_MAP(whitestar_dmd_map)
MCFG_CPU_PERIODIC_INT(whitestar_firq_interrupt, 80) // value taken from PinMAME
- MCFG_MACHINE_RESET( whitestar )
/* sound hardware */
MCFG_DECOBSMT_ADD(DECOBSMT_TAG)
@@ -286,7 +287,6 @@ static MACHINE_CONFIG_START( whitestar, whitestar_state )
MCFG_DMD_ADD("screen", 128, 32)
MCFG_PALETTE_LENGTH(5)
- MCFG_PALETTE_INIT(whitestar)
MACHINE_CONFIG_END
// 8Mbit ROMs are mapped oddly: the first 4Mbit of each of the ROMs goes in order u17, u21, u36, u37
diff --git a/src/mame/drivers/wildpkr.c b/src/mame/drivers/wildpkr.c
index 512d14ef232..568ead9720e 100644
--- a/src/mame/drivers/wildpkr.c
+++ b/src/mame/drivers/wildpkr.c
@@ -173,6 +173,9 @@ public:
: driver_device(mconfig, type, tag) { }
DECLARE_DRIVER_INIT(wildpkr);
+ virtual void machine_start();
+ virtual void video_start();
+ virtual void palette_init();
};
@@ -180,7 +183,7 @@ public:
* Video Hardware *
*************************/
-static VIDEO_START( wildpkr )
+void wildpkr_state::video_start()
{
}
@@ -190,7 +193,7 @@ static SCREEN_UPDATE_IND16( wildpkr )
return 0;
}
-static PALETTE_INIT( wildpkr )
+void wildpkr_state::palette_init()
{
}
@@ -237,7 +240,7 @@ INPUT_PORTS_END
* Machine Start *
*************************/
-static MACHINE_START(wildpkr)
+void wildpkr_state::machine_start()
{
/*
ACRTC memory:
@@ -275,7 +278,6 @@ static MACHINE_CONFIG_START( wildpkr, wildpkr_state )
MCFG_CPU_PROGRAM_MAP(wildpkr_map)
// MCFG_CPU_VBLANK_INT("screen", irq1_line_hold) //guess
- MCFG_MACHINE_START(wildpkr)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -287,10 +289,8 @@ static MACHINE_CONFIG_START( wildpkr, wildpkr_state )
// MCFG_HD63484_ADD("hd63484", wildpkr_hd63484_intf)
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
- MCFG_PALETTE_INIT(wildpkr)
MCFG_PALETTE_LENGTH(256)
- MCFG_VIDEO_START(wildpkr)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/williams.c b/src/mame/drivers/williams.c
index e90b7832cbd..bb0765f749c 100644
--- a/src/mame/drivers/williams.c
+++ b/src/mame/drivers/williams.c
@@ -1439,8 +1439,8 @@ static MACHINE_CONFIG_START( defender, williams_state )
MCFG_CPU_ADD("soundcpu", M6808, SOUND_CLOCK) // internal clock divider of 4, effective frequency is 894.886kHz
MCFG_CPU_PROGRAM_MAP(defender_sound_map)
- MCFG_MACHINE_START(defender)
- MCFG_MACHINE_RESET(defender)
+ MCFG_MACHINE_START_OVERRIDE(williams_state,defender)
+ MCFG_MACHINE_RESET_OVERRIDE(williams_state,defender)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_TIMER_ADD("scan_timer", williams_va11_callback)
@@ -1453,7 +1453,7 @@ static MACHINE_CONFIG_START( defender, williams_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2/3, 512, 10, 304, 260, 7, 245)
MCFG_SCREEN_UPDATE_STATIC(williams)
- MCFG_VIDEO_START(williams)
+ MCFG_VIDEO_START_OVERRIDE(williams_state,williams)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1485,8 +1485,8 @@ static MACHINE_CONFIG_DERIVED( williams, defender )
MCFG_CPU_MODIFY("soundcpu")
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(williams)
- MCFG_MACHINE_RESET(williams)
+ MCFG_MACHINE_START_OVERRIDE(williams_state,williams)
+ MCFG_MACHINE_RESET_OVERRIDE(williams_state,williams)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(6, 298-1, 7, 247-1)
MACHINE_CONFIG_END
@@ -1536,8 +1536,8 @@ static MACHINE_CONFIG_DERIVED( alienar, defender )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(williams_map)
- MCFG_MACHINE_START(williams)
- MCFG_MACHINE_RESET(williams)
+ MCFG_MACHINE_START_OVERRIDE(williams_state,williams)
+ MCFG_MACHINE_RESET_OVERRIDE(williams_state,williams)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(6, 298-1, 7, 247-1)
@@ -1584,11 +1584,11 @@ static MACHINE_CONFIG_DERIVED( blastkit, williams )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(blaster_map)
- MCFG_MACHINE_START(blaster)
- MCFG_MACHINE_RESET(blaster)
+ MCFG_MACHINE_START_OVERRIDE(williams_state,blaster)
+ MCFG_MACHINE_RESET_OVERRIDE(williams_state,blaster)
/* video hardware */
- MCFG_VIDEO_START(blaster)
+ MCFG_VIDEO_START_OVERRIDE(williams_state,blaster)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(blaster)
@@ -1629,8 +1629,8 @@ static MACHINE_CONFIG_START( williams2, williams_state )
MCFG_CPU_ADD("soundcpu", M6808, MASTER_CLOCK/3) /* yes, this is different from the older games */
MCFG_CPU_PROGRAM_MAP(williams2_sound_map)
- MCFG_MACHINE_START(williams2)
- MCFG_MACHINE_RESET(williams2)
+ MCFG_MACHINE_START_OVERRIDE(williams_state,williams2)
+ MCFG_MACHINE_RESET_OVERRIDE(williams_state,williams2)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_TIMER_ADD("scan_timer", williams2_va11_callback)
@@ -1645,7 +1645,7 @@ static MACHINE_CONFIG_START( williams2, williams_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2/3, 512, 8, 284, 260, 8, 248)
MCFG_SCREEN_UPDATE_STATIC(williams2)
- MCFG_VIDEO_START(williams2)
+ MCFG_VIDEO_START_OVERRIDE(williams_state,williams2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1696,8 +1696,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( joust2, williams2, joust2_state )
MCFG_WILLIAMS_CVSD_SOUND_ADD("cvsd")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_MACHINE_START(joust2)
- MCFG_MACHINE_RESET(joust2)
+ MCFG_MACHINE_START_OVERRIDE(joust2_state,joust2)
+ MCFG_MACHINE_RESET_OVERRIDE(joust2_state,joust2)
/* pia */
MCFG_PIA6821_MODIFY("pia_1", joust2_pia_1_intf)
diff --git a/src/mame/drivers/wink.c b/src/mame/drivers/wink.c
index 53e4d0b5f47..9126bf1978b 100644
--- a/src/mame/drivers/wink.c
+++ b/src/mame/drivers/wink.c
@@ -40,6 +40,8 @@ public:
DECLARE_READ8_MEMBER(sound_r);
DECLARE_DRIVER_INIT(wink);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
};
@@ -58,10 +60,9 @@ TILE_GET_INFO_MEMBER(wink_state::get_bg_tile_info)
SET_TILE_INFO_MEMBER(0, code, 0, 0);
}
-static VIDEO_START( wink )
+void wink_state::video_start()
{
- wink_state *state = machine.driver_data<wink_state>();
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wink_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wink_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
static SCREEN_UPDATE_IND16( wink )
@@ -334,10 +335,9 @@ static INTERRUPT_GEN( wink_sound )
state->m_sound_flag ^= 0x80;
}
-static MACHINE_RESET( wink )
+void wink_state::machine_reset()
{
- wink_state *state = machine.driver_data<wink_state>();
- state->m_sound_flag = 0;
+ m_sound_flag = 0;
}
static MACHINE_CONFIG_START( wink, wink_state )
@@ -353,7 +353,6 @@ static MACHINE_CONFIG_START( wink, wink_state )
MCFG_CPU_PERIODIC_INT(wink_sound, 15625)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_MACHINE_RESET(wink)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -366,7 +365,6 @@ static MACHINE_CONFIG_START( wink, wink_state )
MCFG_GFXDECODE(wink)
MCFG_PALETTE_LENGTH(16)
- MCFG_VIDEO_START(wink)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/wiping.c b/src/mame/drivers/wiping.c
index 36f0d87a8f4..22ec05471b2 100644
--- a/src/mame/drivers/wiping.c
+++ b/src/mame/drivers/wiping.c
@@ -302,7 +302,6 @@ static MACHINE_CONFIG_START( wiping, wiping_state )
MCFG_GFXDECODE(wiping)
MCFG_PALETTE_LENGTH(64*4+64*4)
- MCFG_PALETTE_INIT(wiping)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/witch.c b/src/mame/drivers/witch.c
index fc5e0e5b498..00ba320310f 100644
--- a/src/mame/drivers/witch.c
+++ b/src/mame/drivers/witch.c
@@ -237,6 +237,7 @@ public:
TILE_GET_INFO_MEMBER(get_gfx0b_tile_info);
TILE_GET_INFO_MEMBER(get_gfx0a_tile_info);
TILE_GET_INFO_MEMBER(get_gfx1_tile_info);
+ virtual void video_start();
};
@@ -702,18 +703,17 @@ static GFXDECODE_START( witch )
GFXDECODE_ENTRY( "gfx2", 0, tiles8x8_layout, 0, 16 )
GFXDECODE_END
-static VIDEO_START(witch)
+void witch_state::video_start()
{
- witch_state *state = machine.driver_data<witch_state>();
- state->m_gfx0a_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(witch_state::get_gfx0a_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32);
- state->m_gfx0b_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(witch_state::get_gfx0b_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32);
- state->m_gfx1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(witch_state::get_gfx1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32);
-
- state->m_gfx0a_tilemap->set_transparent_pen(0);
- state->m_gfx0b_tilemap->set_transparent_pen(0);
- state->m_gfx0a_tilemap->set_palette_offset(0x100);
- state->m_gfx0b_tilemap->set_palette_offset(0x100);
- state->m_gfx1_tilemap->set_palette_offset(0x200);
+ m_gfx0a_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(witch_state::get_gfx0a_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_gfx0b_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(witch_state::get_gfx0b_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_gfx1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(witch_state::get_gfx1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+
+ m_gfx0a_tilemap->set_transparent_pen(0);
+ m_gfx0b_tilemap->set_transparent_pen(0);
+ m_gfx0a_tilemap->set_palette_offset(0x100);
+ m_gfx0b_tilemap->set_palette_offset(0x100);
+ m_gfx1_tilemap->set_palette_offset(0x200);
}
static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -813,7 +813,6 @@ static MACHINE_CONFIG_START( witch, witch_state )
MCFG_GFXDECODE(witch)
MCFG_PALETTE_LENGTH(0x800)
- MCFG_VIDEO_START(witch)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c
index f3a3b46df8a..ad8573bba66 100644
--- a/src/mame/drivers/wiz.c
+++ b/src/mame/drivers/wiz.c
@@ -695,10 +695,9 @@ DISCRETE_SOUND_END
//* ANALOG SOUND ENDS
-static MACHINE_RESET( wiz )
+void wiz_state::machine_reset()
{
- wiz_state *state = machine.driver_data<wiz_state>();
- state->m_dsc0 = state->m_dsc1 = 1;
+ m_dsc0 = m_dsc1 = 1;
}
static INTERRUPT_GEN( wiz_vblank_interrupt )
@@ -729,7 +728,6 @@ static MACHINE_CONFIG_START( wiz, wiz_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT(wiz_sound_interrupt,4*60) /* ??? */
- MCFG_MACHINE_RESET( wiz )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -742,8 +740,6 @@ static MACHINE_CONFIG_START( wiz, wiz_state )
MCFG_GFXDECODE(wiz)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(wiz)
- MCFG_VIDEO_START(wiz)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c
index cfdb5ac9f22..3d48fa46565 100644
--- a/src/mame/drivers/wolfpack.c
+++ b/src/mame/drivers/wolfpack.c
@@ -24,9 +24,9 @@ static TIMER_CALLBACK( periodic_callback )
}
-static MACHINE_RESET( wolfpack )
+void wolfpack_state::machine_reset()
{
- machine.scheduler().timer_set(machine.primary_screen->time_until_pos(0), FUNC(periodic_callback));
+ machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), FUNC(periodic_callback));
}
@@ -294,7 +294,6 @@ static MACHINE_CONFIG_START( wolfpack, wolfpack_state )
MCFG_CPU_PROGRAM_MAP(main_map)
/* video hardware */
- MCFG_MACHINE_RESET(wolfpack)
MCFG_SCREEN_ADD("screen", RASTER)
@@ -306,8 +305,6 @@ static MACHINE_CONFIG_START( wolfpack, wolfpack_state )
MCFG_GFXDECODE(wolfpack)
MCFG_PALETTE_LENGTH(12)
- MCFG_PALETTE_INIT(wolfpack)
- MCFG_VIDEO_START(wolfpack)
/* sound hardware */
MCFG_SOUND_ADD("speech", S14001A, 20000) /* RC Clock (C=100pf, R=470K-670K ohms, adjustable) ranging from 14925.37313hz to 21276.59574hz, likely factory set to 20000hz since anything below 19500 is too slow */
diff --git a/src/mame/drivers/wrally.c b/src/mame/drivers/wrally.c
index 1adb78bad6f..9e10f44cf3d 100644
--- a/src/mame/drivers/wrally.c
+++ b/src/mame/drivers/wrally.c
@@ -268,7 +268,6 @@ static MACHINE_CONFIG_START( wrally, wrally_state )
MCFG_GFXDECODE(wrally)
MCFG_PALETTE_LENGTH(1024*8)
- MCFG_VIDEO_START(wrally)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/wwfsstar.c b/src/mame/drivers/wwfsstar.c
index f624b2db068..ecc96580ef7 100644
--- a/src/mame/drivers/wwfsstar.c
+++ b/src/mame/drivers/wwfsstar.c
@@ -439,7 +439,6 @@ static MACHINE_CONFIG_START( wwfsstar, wwfsstar_state )
MCFG_GFXDECODE(wwfsstar)
MCFG_PALETTE_LENGTH(384)
- MCFG_VIDEO_START(wwfsstar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/wwfwfest.c b/src/mame/drivers/wwfwfest.c
index 27a60268a6c..a2cac42ce58 100644
--- a/src/mame/drivers/wwfwfest.c
+++ b/src/mame/drivers/wwfwfest.c
@@ -403,7 +403,6 @@ static MACHINE_CONFIG_START( wwfwfest, wwfwfest_state )
MCFG_GFXDECODE(wwfwfest)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(wwfwfest)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -418,7 +417,7 @@ static MACHINE_CONFIG_START( wwfwfest, wwfwfest_state )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( wwfwfstb, wwfwfest )
- MCFG_VIDEO_START(wwfwfstb)
+ MCFG_VIDEO_START_OVERRIDE(wwfwfest_state,wwfwfstb)
MACHINE_CONFIG_END
/*******************************************************************************
diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c
index 5c54668423f..b4df3d2aa60 100644
--- a/src/mame/drivers/xain.c
+++ b/src/mame/drivers/xain.c
@@ -566,12 +566,12 @@ static const ym2203_interface ym2203_config =
DEVCB_LINE(irqhandler)
};
-static MACHINE_START( xsleena )
+void xain_state::machine_start()
{
- machine.root_device().membank("bank1")->configure_entries(0, 2, machine.root_device().memregion("maincpu")->base() + 0x4000, 0xc000);
- machine.root_device().membank("bank2")->configure_entries(0, 2, machine.root_device().memregion("sub")->base() + 0x4000, 0xc000);
- machine.root_device().membank("bank1")->set_entry(0);
- machine.root_device().membank("bank2")->set_entry(0);
+ machine().root_device().membank("bank1")->configure_entries(0, 2, machine().root_device().memregion("maincpu")->base() + 0x4000, 0xc000);
+ machine().root_device().membank("bank2")->configure_entries(0, 2, machine().root_device().memregion("sub")->base() + 0x4000, 0xc000);
+ machine().root_device().membank("bank1")->set_entry(0);
+ machine().root_device().membank("bank2")->set_entry(0);
}
static MACHINE_CONFIG_START( xsleena, xain_state )
@@ -590,7 +590,6 @@ static MACHINE_CONFIG_START( xsleena, xain_state )
MCFG_CPU_ADD("mcu", M68705, MCU_CLOCK)
MCFG_CPU_PROGRAM_MAP(mcu_map)
- MCFG_MACHINE_START(xsleena)
MCFG_QUANTUM_PERFECT_CPU("maincpu")
@@ -602,7 +601,6 @@ static MACHINE_CONFIG_START( xsleena, xain_state )
MCFG_GFXDECODE(xain)
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(xain)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c
index 1c3e566c84d..b6ecf1babe7 100644
--- a/src/mame/drivers/xexex.c
+++ b/src/mame/drivers/xexex.c
@@ -453,62 +453,60 @@ static void xexex_postload(running_machine &machine)
reset_sound_region(machine);
}
-static MACHINE_START( xexex )
+void xexex_state::machine_start()
{
- xexex_state *state = machine.driver_data<xexex_state>();
- UINT8 *ROM = state->memregion("audiocpu")->base();
-
- state->membank("bank2")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
- state->membank("bank2")->set_entry(0);
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k053246 = machine.device("k053246");
- state->m_k053250 = machine.device<k053250_t>("k053250");
- state->m_k053251 = machine.device("k053251");
- state->m_k053252 = machine.device("k053252");
- state->m_k056832 = machine.device("k056832");
- state->m_k054338 = machine.device("k054338");
- state->m_k054539 = machine.device("k054539");
- state->m_filter1l = machine.device("filter1l");
- state->m_filter1r = machine.device("filter1r");
- state->m_filter2l = machine.device("filter2l");
- state->m_filter2r = machine.device("filter2r");
-
- state->save_item(NAME(state->m_cur_alpha));
- state->save_item(NAME(state->m_sprite_colorbase));
- state->save_item(NAME(state->m_layer_colorbase));
- state->save_item(NAME(state->m_layerpri));
-
- state->save_item(NAME(state->m_suspension_active));
- state->save_item(NAME(state->m_frame));
-
- state->save_item(NAME(state->m_cur_control2));
- state->save_item(NAME(state->m_cur_sound_region));
- machine.save().register_postload(save_prepost_delegate(FUNC(xexex_postload), &machine));
-
- state->m_dmadelay_timer = machine.scheduler().timer_alloc(FUNC(dmaend_callback));
+ UINT8 *ROM = memregion("audiocpu")->base();
+
+ membank("bank2")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+ membank("bank2")->set_entry(0);
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k053246 = machine().device("k053246");
+ m_k053250 = machine().device<k053250_t>("k053250");
+ m_k053251 = machine().device("k053251");
+ m_k053252 = machine().device("k053252");
+ m_k056832 = machine().device("k056832");
+ m_k054338 = machine().device("k054338");
+ m_k054539 = machine().device("k054539");
+ m_filter1l = machine().device("filter1l");
+ m_filter1r = machine().device("filter1r");
+ m_filter2l = machine().device("filter2l");
+ m_filter2r = machine().device("filter2r");
+
+ save_item(NAME(m_cur_alpha));
+ save_item(NAME(m_sprite_colorbase));
+ save_item(NAME(m_layer_colorbase));
+ save_item(NAME(m_layerpri));
+
+ save_item(NAME(m_suspension_active));
+ save_item(NAME(m_frame));
+
+ save_item(NAME(m_cur_control2));
+ save_item(NAME(m_cur_sound_region));
+ machine().save().register_postload(save_prepost_delegate(FUNC(xexex_postload), &machine()));
+
+ m_dmadelay_timer = machine().scheduler().timer_alloc(FUNC(dmaend_callback));
}
-static MACHINE_RESET( xexex )
+void xexex_state::machine_reset()
{
- xexex_state *state = machine.driver_data<xexex_state>();
int i;
for (i = 0; i < 4; i++)
{
- state->m_layerpri[i] = 0;
- state->m_layer_colorbase[i] = 0;
+ m_layerpri[i] = 0;
+ m_layer_colorbase[i] = 0;
}
- state->m_sprite_colorbase = 0;
+ m_sprite_colorbase = 0;
- state->m_cur_control2 = 0;
- state->m_cur_sound_region = 0;
- state->m_suspension_active = 0;
- state->m_resume_trigger = 1000;
- state->m_frame = -1;
- machine.device<k054539_device>("k054539")->init_flags(k054539_device::REVERSE_STEREO);
+ m_cur_control2 = 0;
+ m_cur_sound_region = 0;
+ m_suspension_active = 0;
+ m_resume_trigger = 1000;
+ m_frame = -1;
+ machine().device<k054539_device>("k054539")->init_flags(k054539_device::REVERSE_STEREO);
}
static MACHINE_CONFIG_START( xexex, xexex_state )
@@ -525,8 +523,6 @@ static MACHINE_CONFIG_START( xexex, xexex_state )
MCFG_QUANTUM_TIME(attotime::from_hz(1920))
- MCFG_MACHINE_START(xexex)
- MCFG_MACHINE_RESET(xexex)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -543,7 +539,6 @@ static MACHINE_CONFIG_START( xexex, xexex_state )
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(xexex)
MCFG_K056832_ADD("k056832", xexex_k056832_intf)
MCFG_K053246_ADD("k053246", xexex_k053246_intf)
diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c
index 7b3d0fc48cb..6d16f5c572b 100644
--- a/src/mame/drivers/xmen.c
+++ b/src/mame/drivers/xmen.c
@@ -292,45 +292,43 @@ static INPUT_PORTS_START( xmen6p )
INPUT_PORTS_END
-static MACHINE_START( xmen )
+void xmen_state::machine_start()
{
- xmen_state *state = machine.driver_data<xmen_state>();
- UINT8 *ROM = state->memregion("audiocpu")->base();
-
- state->membank("bank4")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
- state->membank("bank4")->set_entry(0);
-
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
- state->m_k053246 = machine.device("k053246");
- state->m_k053251 = machine.device("k053251");
- state->m_k052109 = machine.device("k052109");
- state->m_k054539 = machine.device("k054539");
- state->m_lscreen = machine.device("lscreen");
- state->m_rscreen = machine.device("rscreen");
-
- state->save_item(NAME(state->m_sound_curbank));
- state->save_item(NAME(state->m_sprite_colorbase));
- state->save_item(NAME(state->m_layer_colorbase));
- state->save_item(NAME(state->m_layerpri));
- state->save_item(NAME(state->m_vblank_irq_mask));
- machine.save().register_postload(save_prepost_delegate(FUNC(sound_reset_bank), &machine));
+ UINT8 *ROM = memregion("audiocpu")->base();
+
+ membank("bank4")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+ membank("bank4")->set_entry(0);
+
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
+ m_k053246 = machine().device("k053246");
+ m_k053251 = machine().device("k053251");
+ m_k052109 = machine().device("k052109");
+ m_k054539 = machine().device("k054539");
+ m_lscreen = machine().device("lscreen");
+ m_rscreen = machine().device("rscreen");
+
+ save_item(NAME(m_sound_curbank));
+ save_item(NAME(m_sprite_colorbase));
+ save_item(NAME(m_layer_colorbase));
+ save_item(NAME(m_layerpri));
+ save_item(NAME(m_vblank_irq_mask));
+ machine().save().register_postload(save_prepost_delegate(FUNC(sound_reset_bank), &machine()));
}
-static MACHINE_RESET( xmen )
+void xmen_state::machine_reset()
{
- xmen_state *state = machine.driver_data<xmen_state>();
int i;
for (i = 0; i < 3; i++)
{
- state->m_layerpri[i] = 0;
- state->m_layer_colorbase[i] = 0;
+ m_layerpri[i] = 0;
+ m_layer_colorbase[i] = 0;
}
- state->m_sprite_colorbase = 0;
- state->m_sound_curbank = 0;
- state->m_vblank_irq_mask = 0;
+ m_sprite_colorbase = 0;
+ m_sound_curbank = 0;
+ m_vblank_irq_mask = 0;
}
static const k052109_interface xmen_k052109_intf =
@@ -376,8 +374,6 @@ static MACHINE_CONFIG_START( xmen, xmen_state )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_16MHz/2) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(xmen)
- MCFG_MACHINE_RESET(xmen)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -428,8 +424,6 @@ static MACHINE_CONFIG_START( xmen6p, xmen_state )
MCFG_CPU_ADD("audiocpu", Z80,8000000) /* verified with M1, guessed but accurate */
MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_MACHINE_START(xmen)
- MCFG_MACHINE_RESET(xmen)
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
@@ -453,7 +447,7 @@ static MACHINE_CONFIG_START( xmen6p, xmen_state )
MCFG_SCREEN_UPDATE_STATIC(xmen6p_right)
MCFG_SCREEN_VBLANK_STATIC(xmen6p)
- MCFG_VIDEO_START(xmen6p)
+ MCFG_VIDEO_START_OVERRIDE(xmen_state,xmen6p)
MCFG_K052109_ADD("k052109", xmen_k052109_intf)
MCFG_K053246_ADD("k053246", xmen6p_k053246_intf)
diff --git a/src/mame/drivers/xorworld.c b/src/mame/drivers/xorworld.c
index b7745362529..34c95b30a69 100644
--- a/src/mame/drivers/xorworld.c
+++ b/src/mame/drivers/xorworld.c
@@ -193,8 +193,6 @@ static MACHINE_CONFIG_START( xorworld, xorworld_state )
MCFG_GFXDECODE(xorworld)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(xorworld)
- MCFG_VIDEO_START(xorworld)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/xtom3d.c b/src/mame/drivers/xtom3d.c
index c384d96ffce..c427fbc15f9 100644
--- a/src/mame/drivers/xtom3d.c
+++ b/src/mame/drivers/xtom3d.c
@@ -113,6 +113,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(pc_dack2_w);
DECLARE_WRITE_LINE_MEMBER(pc_dack3_w);
DECLARE_WRITE_LINE_MEMBER(xtom3d_pic8259_1_set_int_line);
+ virtual void machine_start();
+ virtual void machine_reset();
};
// Intel 82439TX System Controller (MXTC)
@@ -644,37 +646,36 @@ static void ide_interrupt(device_t *device, int state)
static READ8_HANDLER( vga_setting ) { return 0xff; } // hard-code to color
-static MACHINE_START( xtom3d )
+void xtom3d_state::machine_start()
{
- xtom3d_state *state = machine.driver_data<xtom3d_state>();
- state->m_bios_ram = auto_alloc_array(machine, UINT32, 0x10000/4);
- state->m_bios_ext1_ram = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_bios_ext2_ram = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_bios_ext3_ram = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_bios_ext4_ram = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_isa_ram1 = auto_alloc_array(machine, UINT32, 0x4000/4);
- state->m_isa_ram2 = auto_alloc_array(machine, UINT32, 0x4000/4);
+ m_bios_ram = auto_alloc_array(machine(), UINT32, 0x10000/4);
+ m_bios_ext1_ram = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_bios_ext2_ram = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_bios_ext3_ram = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_bios_ext4_ram = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_isa_ram1 = auto_alloc_array(machine(), UINT32, 0x4000/4);
+ m_isa_ram2 = auto_alloc_array(machine(), UINT32, 0x4000/4);
- init_pc_common(machine, PCCOMMON_KEYBOARD_AT, xtom3d_set_keyb_int);
+ init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, xtom3d_set_keyb_int);
- state->m_maincpu->set_irq_acknowledge_callback(irq_callback);
- intel82439tx_init(machine);
+ m_maincpu->set_irq_acknowledge_callback(irq_callback);
+ intel82439tx_init(machine());
- kbdc8042_init(machine, &at8042);
- pc_vga_init(machine, vga_setting, NULL);
- pc_vga_io_init(machine, machine.device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine.device("maincpu")->memory().space(AS_IO), 0x0000);
+ kbdc8042_init(machine(), &at8042);
+ pc_vga_init(machine(), vga_setting, NULL);
+ pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000);
}
-static MACHINE_RESET( xtom3d )
+void xtom3d_state::machine_reset()
{
- machine.root_device().membank("bios_bank")->set_base(machine.root_device().memregion("bios")->base() + 0x10000);
- machine.root_device().membank("bios_ext1")->set_base(machine.root_device().memregion("bios")->base() + 0);
- machine.root_device().membank("bios_ext2")->set_base(machine.root_device().memregion("bios")->base() + 0x4000);
- machine.root_device().membank("bios_ext3")->set_base(machine.root_device().memregion("bios")->base() + 0x8000);
- machine.root_device().membank("bios_ext4")->set_base(machine.root_device().memregion("bios")->base() + 0xc000);
- machine.root_device().membank("video_bank1")->set_base(machine.root_device().memregion("video_bios")->base() + 0);
- machine.root_device().membank("video_bank2")->set_base(machine.root_device().memregion("video_bios")->base() + 0x4000);
+ machine().root_device().membank("bios_bank")->set_base(machine().root_device().memregion("bios")->base() + 0x10000);
+ machine().root_device().membank("bios_ext1")->set_base(machine().root_device().memregion("bios")->base() + 0);
+ machine().root_device().membank("bios_ext2")->set_base(machine().root_device().memregion("bios")->base() + 0x4000);
+ machine().root_device().membank("bios_ext3")->set_base(machine().root_device().memregion("bios")->base() + 0x8000);
+ machine().root_device().membank("bios_ext4")->set_base(machine().root_device().memregion("bios")->base() + 0xc000);
+ machine().root_device().membank("video_bank1")->set_base(machine().root_device().memregion("video_bios")->base() + 0);
+ machine().root_device().membank("video_bank2")->set_base(machine().root_device().memregion("video_bios")->base() + 0x4000);
}
static const ide_config ide_intf =
@@ -689,8 +690,6 @@ static MACHINE_CONFIG_START( xtom3d, xtom3d_state )
MCFG_CPU_PROGRAM_MAP(xtom3d_map)
MCFG_CPU_IO_MAP(xtom3d_io)
- MCFG_MACHINE_START(xtom3d)
- MCFG_MACHINE_RESET(xtom3d)
MCFG_PIT8254_ADD( "pit8254", xtom3d_pit8254_config )
MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
diff --git a/src/mame/drivers/xxmissio.c b/src/mame/drivers/xxmissio.c
index 94fac5f9de3..35179eab5b2 100644
--- a/src/mame/drivers/xxmissio.c
+++ b/src/mame/drivers/xxmissio.c
@@ -77,10 +77,10 @@ static INTERRUPT_GEN( xxmissio_interrupt_s )
device->execute().set_input_line(0, HOLD_LINE);
}
-static MACHINE_START( xxmissio )
+void xxmissio_state::machine_start()
{
- machine.root_device().membank("bank1")->configure_entries(0, 8, machine.root_device().memregion("user1")->base(), 0x4000);
- machine.root_device().membank("bank1")->set_entry(0);
+ machine().root_device().membank("bank1")->configure_entries(0, 8, machine().root_device().memregion("user1")->base(), 0x4000);
+ machine().root_device().membank("bank1")->set_entry(0);
}
/****************************************************************************/
@@ -294,7 +294,6 @@ static MACHINE_CONFIG_START( xxmissio, xxmissio_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_MACHINE_START(xxmissio)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -307,7 +306,6 @@ static MACHINE_CONFIG_START( xxmissio, xxmissio_state )
MCFG_GFXDECODE(xxmissio)
MCFG_PALETTE_LENGTH(768)
- MCFG_VIDEO_START(xxmissio)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/xybots.c b/src/mame/drivers/xybots.c
index 47283ac1f52..9dfd64833c0 100644
--- a/src/mame/drivers/xybots.c
+++ b/src/mame/drivers/xybots.c
@@ -40,19 +40,18 @@ static void update_interrupts(running_machine &machine)
}
-static MACHINE_START( xybots )
+MACHINE_START_MEMBER(xybots_state,xybots)
{
- atarigen_init(machine);
+ atarigen_init(machine());
}
-static MACHINE_RESET( xybots )
+MACHINE_RESET_MEMBER(xybots_state,xybots)
{
- xybots_state *state = machine.driver_data<xybots_state>();
- atarigen_eeprom_reset(state);
- atarigen_slapstic_reset(state);
- atarigen_interrupt_reset(state, update_interrupts);
+ atarigen_eeprom_reset(this);
+ atarigen_slapstic_reset(this);
+ atarigen_interrupt_reset(this, update_interrupts);
atarijsa_reset();
}
@@ -198,8 +197,8 @@ static MACHINE_CONFIG_START( xybots, xybots_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
- MCFG_MACHINE_START(xybots)
- MCFG_MACHINE_RESET(xybots)
+ MCFG_MACHINE_START_OVERRIDE(xybots_state,xybots)
+ MCFG_MACHINE_RESET_OVERRIDE(xybots_state,xybots)
MCFG_NVRAM_ADD_1FILL("eeprom")
/* video hardware */
@@ -213,7 +212,7 @@ static MACHINE_CONFIG_START( xybots, xybots_state )
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(xybots)
- MCFG_VIDEO_START(xybots)
+ MCFG_VIDEO_START_OVERRIDE(xybots_state,xybots)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_i_stereo_swapped)
diff --git a/src/mame/drivers/xyonix.c b/src/mame/drivers/xyonix.c
index 85aabddec37..80d6e1b2822 100644
--- a/src/mame/drivers/xyonix.c
+++ b/src/mame/drivers/xyonix.c
@@ -249,8 +249,6 @@ static MACHINE_CONFIG_START( xyonix, xyonix_state )
MCFG_GFXDECODE(xyonix)
MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(xyonix)
- MCFG_VIDEO_START(xyonix)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/yiear.c b/src/mame/drivers/yiear.c
index 013f61503bd..1a489f0a0c7 100644
--- a/src/mame/drivers/yiear.c
+++ b/src/mame/drivers/yiear.c
@@ -263,18 +263,16 @@ GFXDECODE_END
-static MACHINE_START( yiear )
+void yiear_state::machine_start()
{
- yiear_state *state = machine.driver_data<yiear_state>();
- state->save_item(NAME(state->m_yiear_nmi_enable));
+ save_item(NAME(m_yiear_nmi_enable));
}
-static MACHINE_RESET( yiear )
+void yiear_state::machine_reset()
{
- yiear_state *state = machine.driver_data<yiear_state>();
- state->m_yiear_nmi_enable = 0;
+ m_yiear_nmi_enable = 0;
}
//-------------------------------------------------
@@ -294,8 +292,6 @@ static MACHINE_CONFIG_START( yiear, yiear_state )
MCFG_CPU_VBLANK_INT("screen", yiear_vblank_interrupt)
MCFG_CPU_PERIODIC_INT(yiear_nmi_interrupt,480) /* music tempo (correct frequency unknown) */
- MCFG_MACHINE_START(yiear)
- MCFG_MACHINE_RESET(yiear)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -308,8 +304,6 @@ static MACHINE_CONFIG_START( yiear, yiear_state )
MCFG_GFXDECODE(yiear)
MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT(yiear)
- MCFG_VIDEO_START(yiear)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/yunsun16.c b/src/mame/drivers/yunsun16.c
index 47d7eb37103..cb2d5e74e9c 100644
--- a/src/mame/drivers/yunsun16.c
+++ b/src/mame/drivers/yunsun16.c
@@ -554,22 +554,20 @@ GFXDECODE_END
***************************************************************************/
-static MACHINE_START( yunsun16 )
+void yunsun16_state::machine_start()
{
- yunsun16_state *state = machine.driver_data<yunsun16_state>();
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_sprites_scrolldx));
- state->save_item(NAME(state->m_sprites_scrolldy));
+ save_item(NAME(m_sprites_scrolldx));
+ save_item(NAME(m_sprites_scrolldy));
}
-static MACHINE_RESET( yunsun16 )
+void yunsun16_state::machine_reset()
{
- yunsun16_state *state = machine.driver_data<yunsun16_state>();
- state->m_sprites_scrolldx = -0x40;
- state->m_sprites_scrolldy = -0x0f;
+ m_sprites_scrolldx = -0x40;
+ m_sprites_scrolldy = -0x0f;
}
/***************************************************************************
@@ -598,8 +596,6 @@ static MACHINE_CONFIG_START( magicbub, yunsun16_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_IO_MAP(sound_port_map)
- MCFG_MACHINE_START(yunsun16)
- MCFG_MACHINE_RESET(yunsun16)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -612,7 +608,6 @@ static MACHINE_CONFIG_START( magicbub, yunsun16_state )
MCFG_GFXDECODE(yunsun16)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(yunsun16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -639,8 +634,6 @@ static MACHINE_CONFIG_START( shocking, yunsun16_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", irq2_line_hold)
- MCFG_MACHINE_START(yunsun16)
- MCFG_MACHINE_RESET(yunsun16)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -653,7 +646,6 @@ static MACHINE_CONFIG_START( shocking, yunsun16_state )
MCFG_GFXDECODE(yunsun16)
MCFG_PALETTE_LENGTH(8192)
- MCFG_VIDEO_START(yunsun16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/yunsung8.c b/src/mame/drivers/yunsung8.c
index 7b38def2543..c0ba0f4f71c 100644
--- a/src/mame/drivers/yunsung8.c
+++ b/src/mame/drivers/yunsung8.c
@@ -464,37 +464,35 @@ static const msm5205_interface yunsung8_msm5205_interface =
};
-static MACHINE_START( yunsung8 )
+void yunsung8_state::machine_start()
{
- yunsung8_state *state = machine.driver_data<yunsung8_state>();
- UINT8 *MAIN = state->memregion("maincpu")->base();
- UINT8 *AUDIO = state->memregion("audiocpu")->base();
+ UINT8 *MAIN = memregion("maincpu")->base();
+ UINT8 *AUDIO = memregion("audiocpu")->base();
- state->m_videoram_0 = state->m_videoram + 0x0000; // Ram is banked
- state->m_videoram_1 = state->m_videoram + 0x2000;
+ m_videoram_0 = m_videoram + 0x0000; // Ram is banked
+ m_videoram_1 = m_videoram + 0x2000;
- state->membank("bank1")->configure_entries(0, 3, &MAIN[0x00000], 0x4000);
- state->membank("bank1")->configure_entries(3, 5, &MAIN[0x10000], 0x4000);
- state->membank("bank2")->configure_entries(0, 3, &AUDIO[0x00000], 0x4000);
- state->membank("bank2")->configure_entries(3, 5, &AUDIO[0x10000], 0x4000);
+ membank("bank1")->configure_entries(0, 3, &MAIN[0x00000], 0x4000);
+ membank("bank1")->configure_entries(3, 5, &MAIN[0x10000], 0x4000);
+ membank("bank2")->configure_entries(0, 3, &AUDIO[0x00000], 0x4000);
+ membank("bank2")->configure_entries(3, 5, &AUDIO[0x10000], 0x4000);
- state->m_audiocpu = machine.device<cpu_device>("audiocpu");
+ m_audiocpu = machine().device<cpu_device>("audiocpu");
- state->save_item(NAME(state->m_videoram));
- state->save_item(NAME(state->m_layers_ctrl));
- state->save_item(NAME(state->m_videobank));
- state->save_item(NAME(state->m_adpcm));
- state->save_item(NAME(state->m_toggle));
+ save_item(NAME(m_videoram));
+ save_item(NAME(m_layers_ctrl));
+ save_item(NAME(m_videobank));
+ save_item(NAME(m_adpcm));
+ save_item(NAME(m_toggle));
}
-static MACHINE_RESET( yunsung8 )
+void yunsung8_state::machine_reset()
{
- yunsung8_state *state = machine.driver_data<yunsung8_state>();
- state->m_videobank = 0;
- state->m_layers_ctrl = 0;
- state->m_adpcm = 0;
- state->m_toggle = 0;
+ m_videobank = 0;
+ m_layers_ctrl = 0;
+ m_adpcm = 0;
+ m_toggle = 0;
}
@@ -510,8 +508,6 @@ static MACHINE_CONFIG_START( yunsung8, yunsung8_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold) /* NMI caused by the MSM5205? */
- MCFG_MACHINE_START(yunsung8)
- MCFG_MACHINE_RESET(yunsung8)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -524,7 +520,6 @@ static MACHINE_CONFIG_START( yunsung8, yunsung8_state )
MCFG_GFXDECODE(yunsung8)
MCFG_PALETTE_LENGTH(2048)
- MCFG_VIDEO_START(yunsung8)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/zac2650.c b/src/mame/drivers/zac2650.c
index 46a0cc563cc..4bdb485a15b 100644
--- a/src/mame/drivers/zac2650.c
+++ b/src/mame/drivers/zac2650.c
@@ -181,12 +181,12 @@ static INPUT_PORTS_START( dodgem )
INPUT_PORTS_END
-static PALETTE_INIT( zac2650 )
+void zac2650_state::palette_init()
{
- palette_set_color(machine,0,RGB_BLACK);
- palette_set_color(machine,1,RGB_WHITE);
- palette_set_color(machine,2,RGB_BLACK);
- palette_set_color(machine,3,RGB_BLACK);
+ palette_set_color(machine(),0,RGB_BLACK);
+ palette_set_color(machine(),1,RGB_WHITE);
+ palette_set_color(machine(),2,RGB_BLACK);
+ palette_set_color(machine(),3,RGB_BLACK);
}
/************************************************************************************************
@@ -249,8 +249,6 @@ static MACHINE_CONFIG_START( tinvader, zac2650_state )
MCFG_GFXDECODE(tinvader)
MCFG_PALETTE_LENGTH(4)
- MCFG_PALETTE_INIT(zac2650)
- MCFG_VIDEO_START(tinvader)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c
index 3ab606680cc..0cbba7a6769 100644
--- a/src/mame/drivers/zaccaria.c
+++ b/src/mame/drivers/zaccaria.c
@@ -611,8 +611,6 @@ static MACHINE_CONFIG_START( zaccaria, zaccaria_state )
MCFG_GFXDECODE(zaccaria)
MCFG_PALETTE_LENGTH(32*8+32*8)
- MCFG_PALETTE_INIT(zaccaria)
- MCFG_VIDEO_START(zaccaria)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/zaxxon.c b/src/mame/drivers/zaxxon.c
index 8fd2e92be8b..362089f68fe 100644
--- a/src/mame/drivers/zaxxon.c
+++ b/src/mame/drivers/zaxxon.c
@@ -321,14 +321,13 @@ WRITE8_MEMBER(zaxxon_state::int_enable_w)
*
*************************************/
-static MACHINE_START( zaxxon )
+void zaxxon_state::machine_start()
{
- zaxxon_state *state = machine.driver_data<zaxxon_state>();
/* register for save states */
- state->save_item(NAME(state->m_int_enabled));
- state->save_item(NAME(state->m_coin_status));
- state->save_item(NAME(state->m_coin_enable));
+ save_item(NAME(m_int_enabled));
+ save_item(NAME(m_coin_status));
+ save_item(NAME(m_coin_enable));
}
@@ -965,7 +964,6 @@ static MACHINE_CONFIG_START( root, zaxxon_state )
MCFG_CPU_PROGRAM_MAP(zaxxon_map)
MCFG_CPU_VBLANK_INT("screen", vblank_int)
- MCFG_MACHINE_START(zaxxon)
MCFG_I8255A_ADD( "ppi8255", zaxxon_ppi_intf )
@@ -977,8 +975,6 @@ static MACHINE_CONFIG_START( root, zaxxon_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_STATIC(zaxxon)
- MCFG_PALETTE_INIT(zaxxon)
- MCFG_VIDEO_START(zaxxon)
MACHINE_CONFIG_END
@@ -1010,7 +1006,7 @@ static MACHINE_CONFIG_DERIVED( razmataz, root )
MCFG_DEVICE_REMOVE("ppi8255")
/* video hardware */
- MCFG_VIDEO_START(razmataz)
+ MCFG_VIDEO_START_OVERRIDE(zaxxon_state,razmataz)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(razmataz)
@@ -1034,7 +1030,7 @@ static MACHINE_CONFIG_DERIVED( congo, root )
/* video hardware */
MCFG_PALETTE_LENGTH(512)
- MCFG_VIDEO_START(congo)
+ MCFG_VIDEO_START_OVERRIDE(zaxxon_state,congo)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(congo)
diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c
index 74d49ecf192..a54c52ccda1 100644
--- a/src/mame/drivers/zn.c
+++ b/src/mame/drivers/zn.c
@@ -106,6 +106,17 @@ public:
DECLARE_DRIVER_INIT(coh1000a);
DECLARE_DRIVER_INIT(coh1000c);
DECLARE_DRIVER_INIT(coh1000w);
+ DECLARE_MACHINE_RESET(coh1000c);
+ DECLARE_MACHINE_RESET(coh3002c);
+ DECLARE_MACHINE_RESET(coh1000ta);
+ DECLARE_MACHINE_RESET(coh1000tb);
+ DECLARE_MACHINE_RESET(coh1000w);
+ DECLARE_MACHINE_RESET(coh1002e);
+ DECLARE_MACHINE_RESET(bam2);
+ DECLARE_MACHINE_RESET(coh1000a);
+ DECLARE_MACHINE_RESET(coh1001l);
+ DECLARE_MACHINE_RESET(coh1002v);
+ DECLARE_MACHINE_RESET(coh1002m);
};
INLINE void ATTR_PRINTF(3,4) verboselog( running_machine &machine, int n_level, const char *s_fmt, ... )
@@ -741,12 +752,12 @@ DRIVER_INIT_MEMBER(zn_state,coh1000c)
}
}
-static MACHINE_RESET( coh1000c )
+MACHINE_RESET_MEMBER(zn_state,coh1000c)
{
- machine.root_device().membank( "bank1" )->set_base( machine.root_device().memregion( "user2" )->base() ); /* fixed game rom */
- machine.root_device().membank( "bank2" )->set_base( machine.root_device().memregion( "user2" )->base() + 0x400000 ); /* banked game rom */
- machine.root_device().membank( "bank3" )->set_base( machine.root_device().memregion( "user3" )->base() ); /* country rom */
- zn_machine_init(machine);
+ machine().root_device().membank( "bank1" )->set_base( machine().root_device().memregion( "user2" )->base() ); /* fixed game rom */
+ machine().root_device().membank( "bank2" )->set_base( machine().root_device().memregion( "user2" )->base() + 0x400000 ); /* banked game rom */
+ machine().root_device().membank( "bank3" )->set_base( machine().root_device().memregion( "user3" )->base() ); /* country rom */
+ zn_machine_init(machine());
}
static ADDRESS_MAP_START( qsound_map, AS_PROGRAM, 8, zn_state )
@@ -770,7 +781,7 @@ static MACHINE_CONFIG_DERIVED( coh1000c, zn1_1mb_vram )
MCFG_CPU_IO_MAP( qsound_portmap)
MCFG_CPU_PERIODIC_INT( qsound_interrupt, 60*4 ) /* 4 interrupts per frame ?? */
- MCFG_MACHINE_RESET( coh1000c )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000c )
MCFG_SOUND_ADD( "qsound", QSOUND, QSOUND_CLOCK )
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
@@ -784,7 +795,7 @@ static MACHINE_CONFIG_DERIVED( coh1002c, zn1_2mb_vram )
MCFG_CPU_IO_MAP( qsound_portmap)
MCFG_CPU_PERIODIC_INT( qsound_interrupt, 60*4 ) /* 4 interrupts per frame ?? */
- MCFG_MACHINE_RESET( coh1000c )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000c )
MCFG_SOUND_ADD( "qsound", QSOUND, QSOUND_CLOCK )
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
@@ -949,12 +960,12 @@ DRIVER_INIT_MEMBER(zn_state,coh3002c)
zn_driver_init(machine());
}
-static MACHINE_RESET( coh3002c )
+MACHINE_RESET_MEMBER(zn_state,coh3002c)
{
- machine.root_device().membank( "bank1" )->set_base( machine.root_device().memregion( "user2" )->base() ); /* fixed game rom */
- machine.root_device().membank( "bank2" )->set_base( machine.root_device().memregion( "user2" )->base() + 0x400000 ); /* banked game rom */
- machine.root_device().membank( "bank3" )->set_base( machine.root_device().memregion( "user3" )->base() ); /* country rom */
- zn_machine_init(machine);
+ machine().root_device().membank( "bank1" )->set_base( machine().root_device().memregion( "user2" )->base() ); /* fixed game rom */
+ machine().root_device().membank( "bank2" )->set_base( machine().root_device().memregion( "user2" )->base() + 0x400000 ); /* banked game rom */
+ machine().root_device().membank( "bank3" )->set_base( machine().root_device().memregion( "user3" )->base() ); /* country rom */
+ zn_machine_init(machine());
}
static MACHINE_CONFIG_DERIVED( coh3002c, zn2 )
@@ -964,7 +975,7 @@ static MACHINE_CONFIG_DERIVED( coh3002c, zn2 )
MCFG_CPU_IO_MAP( qsound_portmap)
MCFG_CPU_PERIODIC_INT( qsound_interrupt, 60*4 ) /* 4 interrupts per frame ?? */
- MCFG_MACHINE_RESET( coh3002c )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh3002c )
MCFG_SOUND_ADD( "qsound", QSOUND, QSOUND_CLOCK )
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
@@ -1235,12 +1246,11 @@ DRIVER_INIT_MEMBER(zn_state,coh1000ta)
zn_driver_init(machine());
}
-static MACHINE_RESET( coh1000ta )
+MACHINE_RESET_MEMBER(zn_state,coh1000ta)
{
- zn_state *state = machine.driver_data<zn_state>();
- state->membank( "bank1" )->set_base( state->memregion( "user2" )->base() ); /* banked game rom */
- state->membank( "bank2" )->set_base( state->m_taitofx1_eeprom1 );
- zn_machine_init(machine);
+ membank( "bank1" )->set_base( memregion( "user2" )->base() ); /* banked game rom */
+ membank( "bank2" )->set_base( m_taitofx1_eeprom1 );
+ zn_machine_init(machine());
}
static ADDRESS_MAP_START( fx1a_sound_map, AS_PROGRAM, 8, zn_state )
@@ -1276,7 +1286,7 @@ static MACHINE_CONFIG_DERIVED( coh1000ta, zn1_1mb_vram )
MCFG_CPU_ADD("audiocpu", Z80, 16000000 / 4 ) /* 4 MHz */
MCFG_CPU_PROGRAM_MAP( fx1a_sound_map)
- MCFG_MACHINE_RESET( coh1000ta )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000ta )
MCFG_NVRAM_ADD_0FILL("eeprom1")
MCFG_SOUND_ADD("ymsnd", YM2610B, 16000000/2)
@@ -1328,19 +1338,18 @@ DRIVER_INIT_MEMBER(zn_state,coh1000tb)
zn_driver_init(machine());
}
-static MACHINE_RESET( coh1000tb )
+MACHINE_RESET_MEMBER(zn_state,coh1000tb)
{
- zn_state *state = machine.driver_data<zn_state>();
- state->membank( "bank1" )->set_base( state->memregion( "user2" )->base() ); /* banked game rom */
- state->membank( "bank2" )->set_base( state->m_taitofx1_eeprom1 );
- state->membank( "bank3" )->set_base( state->m_taitofx1_eeprom2 );
- zn_machine_init(machine);
+ membank( "bank1" )->set_base( memregion( "user2" )->base() ); /* banked game rom */
+ membank( "bank2" )->set_base( m_taitofx1_eeprom1 );
+ membank( "bank3" )->set_base( m_taitofx1_eeprom2 );
+ zn_machine_init(machine());
}
static MACHINE_CONFIG_DERIVED( coh1000tb, zn1_2mb_vram )
- MCFG_MACHINE_RESET( coh1000tb )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000tb )
MCFG_NVRAM_ADD_0FILL("eeprom1")
MCFG_NVRAM_ADD_0FILL("eeprom2")
@@ -1515,12 +1524,12 @@ DRIVER_INIT_MEMBER(zn_state,coh1000w)
zn_driver_init(machine());
}
-static MACHINE_RESET( coh1000w )
+MACHINE_RESET_MEMBER(zn_state,coh1000w)
{
- machine.root_device().membank( "bank1" )->set_base( machine.root_device().memregion( "user2" )->base() ); /* fixed game rom */
- zn_machine_init(machine);
+ machine().root_device().membank( "bank1" )->set_base( machine().root_device().memregion( "user2" )->base() ); /* fixed game rom */
+ zn_machine_init(machine());
- machine.device("ide")->reset();
+ machine().device("ide")->reset();
}
static const ide_config ide_intf =
@@ -1531,7 +1540,7 @@ static const ide_config ide_intf =
};
static MACHINE_CONFIG_DERIVED( coh1000w, zn1_2mb_vram )
- MCFG_MACHINE_RESET( coh1000w )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000w )
MCFG_IDE_CONTROLLER_ADD("ide", ide_intf, ide_devices, "hdd", NULL, true)
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psx_dma_read_delegate( FUNC( atpsx_dma_read ), (zn_state *) owner ) )
@@ -1709,10 +1718,10 @@ DRIVER_INIT_MEMBER(zn_state,coh1002e)
zn_driver_init(machine());
}
-static MACHINE_RESET( coh1002e )
+MACHINE_RESET_MEMBER(zn_state,coh1002e)
{
- machine.root_device().membank( "bank1" )->set_base( machine.root_device().memregion( "user2" )->base() ); /* banked game rom */
- zn_machine_init(machine);
+ machine().root_device().membank( "bank1" )->set_base( machine().root_device().memregion( "user2" )->base() ); /* banked game rom */
+ zn_machine_init(machine());
}
static ADDRESS_MAP_START( psarc_snd_map, AS_PROGRAM, 16, zn_state )
@@ -1729,7 +1738,7 @@ static MACHINE_CONFIG_DERIVED( coh1002e, zn1_2mb_vram )
MCFG_CPU_ADD("audiocpu", M68000, 12000000 )
MCFG_CPU_PROGRAM_MAP( psarc_snd_map)
- MCFG_MACHINE_RESET( coh1002e )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1002e )
MCFG_SOUND_ADD( "ymf", YMF271, 16934400 )
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
@@ -1852,17 +1861,17 @@ DRIVER_INIT_MEMBER(zn_state,bam2)
zn_driver_init(machine());
}
-static MACHINE_RESET( bam2 )
+MACHINE_RESET_MEMBER(zn_state,bam2)
{
- machine.root_device().membank( "bank1" )->set_base( machine.root_device().memregion( "user2" )->base() ); /* fixed game rom */
- machine.root_device().membank( "bank2" )->set_base( machine.root_device().memregion( "user2" )->base() + 0x400000 ); /* banked game rom */
+ machine().root_device().membank( "bank1" )->set_base( machine().root_device().memregion( "user2" )->base() ); /* fixed game rom */
+ machine().root_device().membank( "bank2" )->set_base( machine().root_device().memregion( "user2" )->base() + 0x400000 ); /* banked game rom */
- zn_machine_init(machine);
+ zn_machine_init(machine());
}
static MACHINE_CONFIG_DERIVED( bam2, zn1_2mb_vram )
- MCFG_MACHINE_RESET( bam2 )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, bam2 )
MACHINE_CONFIG_END
/*
@@ -2188,20 +2197,20 @@ DRIVER_INIT_MEMBER(zn_state,coh1000a)
zn_driver_init(machine());
}
-static MACHINE_RESET( coh1000a )
+MACHINE_RESET_MEMBER(zn_state,coh1000a)
{
- machine.root_device().membank( "bank1" )->set_base( machine.root_device().memregion( "user2" )->base() ); /* fixed game rom */
- zn_machine_init(machine);
- if( ( !strcmp( machine.system().name, "jdredd" ) ) ||
- ( !strcmp( machine.system().name, "jdreddb" ) ) )
+ machine().root_device().membank( "bank1" )->set_base( machine().root_device().memregion( "user2" )->base() ); /* fixed game rom */
+ zn_machine_init(machine());
+ if( ( !strcmp( machine().system().name, "jdredd" ) ) ||
+ ( !strcmp( machine().system().name, "jdreddb" ) ) )
{
- machine.device("ide")->reset();
+ machine().device("ide")->reset();
}
}
static MACHINE_CONFIG_DERIVED( coh1000a, zn1_2mb_vram )
- MCFG_MACHINE_RESET( coh1000a )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000a )
MACHINE_CONFIG_END
static const ide_config jdredd_ide_intf =
@@ -2216,7 +2225,7 @@ static MACHINE_CONFIG_DERIVED( coh1000a_ide, zn1_2mb_vram )
MCFG_DEVICE_MODIFY( "gpu" )
MCFG_PSXGPU_VBLANK_CALLBACK( vblank_state_delegate( FUNC( jdredd_vblank ), (zn_state *) owner ) )
- MCFG_MACHINE_RESET( coh1000a )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000a )
MCFG_IDE_CONTROLLER_ADD("ide", jdredd_ide_intf, ide_devices, "hdd", NULL, true)
MACHINE_CONFIG_END
@@ -2350,10 +2359,10 @@ DRIVER_INIT_MEMBER(zn_state,coh1001l)
zn_driver_init(machine());
}
-static MACHINE_RESET( coh1001l )
+MACHINE_RESET_MEMBER(zn_state,coh1001l)
{
- machine.root_device().membank( "bank1" )->set_base( machine.root_device().memregion( "user2" )->base() ); /* banked rom */
- zn_machine_init(machine);
+ machine().root_device().membank( "bank1" )->set_base( machine().root_device().memregion( "user2" )->base() ); /* banked rom */
+ zn_machine_init(machine());
}
static MACHINE_CONFIG_DERIVED( coh1001l, zn1_2mb_vram )
@@ -2361,7 +2370,7 @@ static MACHINE_CONFIG_DERIVED( coh1001l, zn1_2mb_vram )
// MCFG_CPU_ADD("audiocpu", M68000, 10000000 )
// MCFG_CPU_PROGRAM_MAP( atlus_snd_map)
- MCFG_MACHINE_RESET( coh1001l )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1001l )
// MCFG_SOUND_ADD( "ymz", wYMZ280B, ymz280b_intf )
MACHINE_CONFIG_END
@@ -2393,16 +2402,16 @@ DRIVER_INIT_MEMBER(zn_state,coh1002v)
zn_driver_init(machine());
}
-static MACHINE_RESET( coh1002v )
+MACHINE_RESET_MEMBER(zn_state,coh1002v)
{
- machine.root_device().membank( "bank1" )->set_base( machine.root_device().memregion( "user2" )->base() ); /* fixed game rom */
- machine.root_device().membank( "bank2" )->set_base( machine.root_device().memregion( "user3" )->base() ); /* banked rom */
- zn_machine_init(machine);
+ machine().root_device().membank( "bank1" )->set_base( machine().root_device().memregion( "user2" )->base() ); /* fixed game rom */
+ machine().root_device().membank( "bank2" )->set_base( machine().root_device().memregion( "user3" )->base() ); /* banked rom */
+ zn_machine_init(machine());
}
static MACHINE_CONFIG_DERIVED( coh1002v, zn1_2mb_vram )
- MCFG_MACHINE_RESET( coh1002v )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1002v )
MACHINE_CONFIG_END
/*
@@ -2596,10 +2605,10 @@ DRIVER_INIT_MEMBER(zn_state,coh1002m)
zn_driver_init(machine());
}
-static MACHINE_RESET( coh1002m )
+MACHINE_RESET_MEMBER(zn_state,coh1002m)
{
- machine.root_device().membank( "bank1" )->set_base( machine.root_device().memregion( "user2" )->base() );
- zn_machine_init(machine);
+ machine().root_device().membank( "bank1" )->set_base( machine().root_device().memregion( "user2" )->base() );
+ zn_machine_init(machine());
}
READ8_MEMBER(zn_state::cbaj_z80_latch_r)
@@ -2638,7 +2647,7 @@ ADDRESS_MAP_END
static MACHINE_CONFIG_DERIVED( coh1002m, zn1_2mb_vram )
- MCFG_MACHINE_RESET( coh1002m )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1002m )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( coh1002msnd, zn1_2mb_vram )
@@ -2647,7 +2656,7 @@ static MACHINE_CONFIG_DERIVED( coh1002msnd, zn1_2mb_vram )
MCFG_CPU_PROGRAM_MAP( cbaj_z80_map)
MCFG_CPU_IO_MAP( cbaj_z80_port_map)
- MCFG_MACHINE_RESET( coh1002m )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1002m )
MCFG_SOUND_ADD("ymz", YMZ280B, 16934400)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
@@ -2659,7 +2668,7 @@ static MACHINE_CONFIG_DERIVED( coh1002ml, zn1_2mb_vram )
MCFG_CPU_ADD("link", Z80, 8000000 )
MCFG_CPU_PROGRAM_MAP( link_map)
- MCFG_MACHINE_RESET( coh1002m )
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1002m )
MACHINE_CONFIG_END
static INPUT_PORTS_START( zn )
diff --git a/src/mame/drivers/zodiack.c b/src/mame/drivers/zodiack.c
index 69fef8deeb0..81e72a04af6 100644
--- a/src/mame/drivers/zodiack.c
+++ b/src/mame/drivers/zodiack.c
@@ -578,7 +578,7 @@ static MACHINE_CONFIG_START( zodiack, zodiack_state )
MCFG_GFXDECODE(zodiack)
MCFG_PALETTE_LENGTH(4*8+2*8+2*1)
- MCFG_PALETTE_INIT(zodiack)
+ MCFG_PALETTE_INIT_OVERRIDE(zodiack_state,zodiack)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/zr107.c b/src/mame/drivers/zr107.c
index cf59ea35ac1..c20d05ac044 100644
--- a/src/mame/drivers/zr107.c
+++ b/src/mame/drivers/zr107.c
@@ -201,16 +201,20 @@ public:
DECLARE_DRIVER_INIT(common);
DECLARE_DRIVER_INIT(zr107);
DECLARE_DRIVER_INIT(jetwave);
+ virtual void machine_start();
+ virtual void machine_reset();
+ DECLARE_VIDEO_START(zr107);
+ DECLARE_VIDEO_START(jetwave);
};
-static VIDEO_START( jetwave )
+VIDEO_START_MEMBER(zr107_state,jetwave)
{
- K001005_init(machine);
- K001006_init(machine);
+ K001005_init(machine());
+ K001006_init(machine());
}
@@ -250,9 +254,9 @@ static void game_tile_callback(running_machine &machine, int layer, int *code, i
*color += layer * 0x40;
}
-static VIDEO_START( zr107 )
+VIDEO_START_MEMBER(zr107_state,zr107)
{
- device_t *k056832 = machine.device("k056832");
+ device_t *k056832 = machine().device("k056832");
k056832_set_layer_offs(k056832, 0, -29, -27);
k056832_set_layer_offs(k056832, 1, -29, -27);
@@ -263,8 +267,8 @@ static VIDEO_START( zr107 )
k056832_set_layer_offs(k056832, 6, -29, -27);
k056832_set_layer_offs(k056832, 7, -29, -27);
- K001006_init(machine);
- K001005_init(machine);
+ K001006_init(machine());
+ K001005_init(machine());
}
static SCREEN_UPDATE_RGB32( zr107 )
@@ -401,14 +405,13 @@ WRITE32_MEMBER(zr107_state::ccu_w)
/******************************************************************/
-static MACHINE_START( zr107 )
+void zr107_state::machine_start()
{
- zr107_state *state = machine.driver_data<zr107_state>();
/* set conservative DRC options */
- ppcdrc_set_options(machine.device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
+ ppcdrc_set_options(machine().device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS);
/* configure fast RAM regions for DRC */
- ppcdrc_add_fastram(machine.device("maincpu"), 0x00000000, 0x000fffff, FALSE, state->m_workram);
+ ppcdrc_add_fastram(machine().device("maincpu"), 0x00000000, 0x000fffff, FALSE, m_workram);
}
static ADDRESS_MAP_START( zr107_map, AS_PROGRAM, 32, zr107_state )
@@ -718,9 +721,9 @@ static INTERRUPT_GEN( zr107_vblank )
device->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
}
-static MACHINE_RESET( zr107 )
+void zr107_state::machine_reset()
{
- machine.device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
static MACHINE_CONFIG_START( zr107, zr107_state )
@@ -740,8 +743,6 @@ static MACHINE_CONFIG_START( zr107, zr107_state )
MCFG_QUANTUM_TIME(attotime::from_hz(30000))
MCFG_EEPROM_93C46_ADD("eeprom")
- MCFG_MACHINE_START(zr107)
- MCFG_MACHINE_RESET(zr107)
MCFG_K056230_ADD("k056230", zr107_k056230_intf)
@@ -754,7 +755,7 @@ static MACHINE_CONFIG_START( zr107, zr107_state )
MCFG_PALETTE_LENGTH(65536)
- MCFG_VIDEO_START(zr107)
+ MCFG_VIDEO_START_OVERRIDE(zr107_state,zr107)
MCFG_K056832_ADD("k056832", zr107_k056832_intf)
@@ -798,8 +799,6 @@ static MACHINE_CONFIG_START( jetwave, zr107_state )
MCFG_QUANTUM_TIME(attotime::from_hz(30000))
MCFG_EEPROM_93C46_ADD("eeprom")
- MCFG_MACHINE_START(zr107)
- MCFG_MACHINE_RESET(zr107)
MCFG_K056230_ADD("k056230", zr107_k056230_intf)
@@ -812,7 +811,7 @@ static MACHINE_CONFIG_START( jetwave, zr107_state )
MCFG_PALETTE_LENGTH(65536)
- MCFG_VIDEO_START(jetwave)
+ MCFG_VIDEO_START_OVERRIDE(zr107_state,jetwave)
MCFG_K001604_ADD("k001604", jetwave_k001604_intf)