summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2014-02-27 13:35:15 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2014-02-27 13:35:15 +0000
commit64ac8f6776fc4451d756b0eb3bb6dbd22c49801a (patch)
treebb1d096fecec4684c8ab2b7be1b4d539ca06e57b /src/mame/drivers
parentf9d3fbaa73ccdab2e5fcf9fc095a14b4f24c3133 (diff)
Huge update, palette is now device (nw)
note: Aaron please give more descriptive text for release log I have no more strength :)
Diffstat (limited to 'src/mame/drivers')
-rw-r--r--src/mame/drivers/1942.c10
-rw-r--r--src/mame/drivers/1943.c3
-rw-r--r--src/mame/drivers/1945kiii.c14
-rw-r--r--src/mame/drivers/2mindril.c5
-rw-r--r--src/mame/drivers/39in1.c6
-rw-r--r--src/mame/drivers/3x3puzzl.c5
-rw-r--r--src/mame/drivers/40love.c8
-rw-r--r--src/mame/drivers/4enraya.c8
-rw-r--r--src/mame/drivers/4roses.c4
-rw-r--r--src/mame/drivers/5clown.c12
-rw-r--r--src/mame/drivers/8080bw.c4
-rw-r--r--src/mame/drivers/88games.c11
-rw-r--r--src/mame/drivers/ace.c18
-rw-r--r--src/mame/drivers/acefruit.c41
-rw-r--r--src/mame/drivers/acommand.c8
-rw-r--r--src/mame/drivers/actfancr.c14
-rw-r--r--src/mame/drivers/adp.c22
-rw-r--r--src/mame/drivers/aeroboto.c4
-rw-r--r--src/mame/drivers/aerofgt.c73
-rw-r--r--src/mame/drivers/airbustr.c5
-rw-r--r--src/mame/drivers/ajax.c11
-rw-r--r--src/mame/drivers/albazc.c13
-rw-r--r--src/mame/drivers/albazg.c11
-rw-r--r--src/mame/drivers/aleck64.c2
-rw-r--r--src/mame/drivers/alg.c6
-rw-r--r--src/mame/drivers/alien.c2
-rw-r--r--src/mame/drivers/aliens.c10
-rw-r--r--src/mame/drivers/alpha68k.c28
-rw-r--r--src/mame/drivers/amaticmg.c21
-rw-r--r--src/mame/drivers/ambush.c4
-rw-r--r--src/mame/drivers/ampoker2.c4
-rw-r--r--src/mame/drivers/amspdwy.c4
-rw-r--r--src/mame/drivers/angelkds.c2
-rw-r--r--src/mame/drivers/appoooh.c8
-rw-r--r--src/mame/drivers/aquarium.c6
-rw-r--r--src/mame/drivers/arabian.c4
-rw-r--r--src/mame/drivers/arcadecl.c2
-rw-r--r--src/mame/drivers/arcadia.c4
-rw-r--r--src/mame/drivers/argus.c6
-rw-r--r--src/mame/drivers/aristmk4.c20
-rw-r--r--src/mame/drivers/aristmk5.c10
-rw-r--r--src/mame/drivers/aristmk6.c6
-rw-r--r--src/mame/drivers/arkanoid.c12
-rw-r--r--src/mame/drivers/armedf.c36
-rw-r--r--src/mame/drivers/ashnojoe.c6
-rw-r--r--src/mame/drivers/asterix.c10
-rw-r--r--src/mame/drivers/astrcorp.c10
-rw-r--r--src/mame/drivers/astrocde.c8
-rw-r--r--src/mame/drivers/asuka.c26
-rw-r--r--src/mame/drivers/atarifb.c30
-rw-r--r--src/mame/drivers/atarig1.c2
-rw-r--r--src/mame/drivers/atarig42.c2
-rw-r--r--src/mame/drivers/atarigt.c2
-rw-r--r--src/mame/drivers/atarigx2.c2
-rw-r--r--src/mame/drivers/atarisy1.c6
-rw-r--r--src/mame/drivers/atarisy2.c2
-rw-r--r--src/mame/drivers/atarisy4.c8
-rw-r--r--src/mame/drivers/ataxx.c2
-rw-r--r--src/mame/drivers/atetris.c12
-rw-r--r--src/mame/drivers/atlantis.c3
-rw-r--r--src/mame/drivers/atronic.c2
-rw-r--r--src/mame/drivers/atvtrack.c2
-rw-r--r--src/mame/drivers/avt.c16
-rw-r--r--src/mame/drivers/backfire.c8
-rw-r--r--src/mame/drivers/badlands.c4
-rw-r--r--src/mame/drivers/bagman.c12
-rw-r--r--src/mame/drivers/balsente.c2
-rw-r--r--src/mame/drivers/bankp.c4
-rw-r--r--src/mame/drivers/baraduke.c4
-rw-r--r--src/mame/drivers/bartop52.c4
-rw-r--r--src/mame/drivers/batman.c2
-rw-r--r--src/mame/drivers/battlane.c2
-rw-r--r--src/mame/drivers/battlera.c2
-rw-r--r--src/mame/drivers/battlex.c2
-rw-r--r--src/mame/drivers/battlnts.c6
-rw-r--r--src/mame/drivers/bbusters.c10
-rw-r--r--src/mame/drivers/beathead.c2
-rw-r--r--src/mame/drivers/beezer.c2
-rw-r--r--src/mame/drivers/bestleag.c14
-rw-r--r--src/mame/drivers/bfcobra.c16
-rw-r--r--src/mame/drivers/big10.c2
-rw-r--r--src/mame/drivers/bigevglf.c2
-rw-r--r--src/mame/drivers/bigstrkb.c5
-rw-r--r--src/mame/drivers/bingoc.c2
-rw-r--r--src/mame/drivers/bingoman.c8
-rw-r--r--src/mame/drivers/bingor.c16
-rw-r--r--src/mame/drivers/bionicc.c2
-rw-r--r--src/mame/drivers/bishi.c10
-rw-r--r--src/mame/drivers/bking.c3
-rw-r--r--src/mame/drivers/blackt96.c13
-rw-r--r--src/mame/drivers/bladestl.c4
-rw-r--r--src/mame/drivers/blitz.c12
-rw-r--r--src/mame/drivers/blitz68k.c42
-rw-r--r--src/mame/drivers/blktiger.c7
-rw-r--r--src/mame/drivers/blmbycar.c4
-rw-r--r--src/mame/drivers/blockade.c8
-rw-r--r--src/mame/drivers/blockhl.c10
-rw-r--r--src/mame/drivers/blockout.c2
-rw-r--r--src/mame/drivers/bloodbro.c11
-rw-r--r--src/mame/drivers/blstroid.c6
-rw-r--r--src/mame/drivers/blueprnt.c3
-rw-r--r--src/mame/drivers/bmcbowl.c6
-rw-r--r--src/mame/drivers/bmcpokr.c4
-rw-r--r--src/mame/drivers/bnstars.c6
-rw-r--r--src/mame/drivers/bntyhunt.c2
-rw-r--r--src/mame/drivers/bogeyman.c5
-rw-r--r--src/mame/drivers/bombjack.c5
-rw-r--r--src/mame/drivers/boogwing.c6
-rw-r--r--src/mame/drivers/bottom9.c11
-rw-r--r--src/mame/drivers/bowltry.c2
-rw-r--r--src/mame/drivers/boxer.c21
-rw-r--r--src/mame/drivers/brkthru.c8
-rw-r--r--src/mame/drivers/bsktball.c32
-rw-r--r--src/mame/drivers/btime.c30
-rw-r--r--src/mame/drivers/bublbobl.c12
-rw-r--r--src/mame/drivers/buggychl.c7
-rw-r--r--src/mame/drivers/buster.c12
-rw-r--r--src/mame/drivers/bwing.c2
-rw-r--r--src/mame/drivers/cabal.c12
-rw-r--r--src/mame/drivers/cabaret.c10
-rw-r--r--src/mame/drivers/calomega.c4
-rw-r--r--src/mame/drivers/calorie.c10
-rw-r--r--src/mame/drivers/canyon.c14
-rw-r--r--src/mame/drivers/cardline.c13
-rw-r--r--src/mame/drivers/carjmbre.c4
-rw-r--r--src/mame/drivers/carpolo.c3
-rw-r--r--src/mame/drivers/carrera.c13
-rw-r--r--src/mame/drivers/caswin.c10
-rw-r--r--src/mame/drivers/cave.c64
-rw-r--r--src/mame/drivers/cavepc.c2
-rw-r--r--src/mame/drivers/cb2001.c18
-rw-r--r--src/mame/drivers/cball.c22
-rw-r--r--src/mame/drivers/cbasebal.c7
-rw-r--r--src/mame/drivers/cbuster.c5
-rw-r--r--src/mame/drivers/ccastles.c2
-rw-r--r--src/mame/drivers/cchance.c5
-rw-r--r--src/mame/drivers/cclimber.c18
-rw-r--r--src/mame/drivers/cdi.c2
-rw-r--r--src/mame/drivers/centiped.c12
-rw-r--r--src/mame/drivers/cesclass.c14
-rw-r--r--src/mame/drivers/chaknpop.c4
-rw-r--r--src/mame/drivers/cham24.c10
-rw-r--r--src/mame/drivers/champbas.c16
-rw-r--r--src/mame/drivers/champbwl.c10
-rw-r--r--src/mame/drivers/chanbara.c25
-rw-r--r--src/mame/drivers/chance32.c6
-rw-r--r--src/mame/drivers/changela.c2
-rw-r--r--src/mame/drivers/cheekyms.c4
-rw-r--r--src/mame/drivers/chihiro.c2
-rw-r--r--src/mame/drivers/chinagat.c13
-rw-r--r--src/mame/drivers/chinsan.c12
-rw-r--r--src/mame/drivers/chqflag.c17
-rw-r--r--src/mame/drivers/chsuper.c6
-rw-r--r--src/mame/drivers/circus.c12
-rw-r--r--src/mame/drivers/circusc.c4
-rw-r--r--src/mame/drivers/cischeat.c58
-rw-r--r--src/mame/drivers/citycon.c7
-rw-r--r--src/mame/drivers/cloak.c2
-rw-r--r--src/mame/drivers/cloud9.c2
-rw-r--r--src/mame/drivers/clshroad.c8
-rw-r--r--src/mame/drivers/cmmb.c10
-rw-r--r--src/mame/drivers/cninja.c30
-rw-r--r--src/mame/drivers/cntsteer.c36
-rw-r--r--src/mame/drivers/cobra.c5
-rw-r--r--src/mame/drivers/coinmstr.c16
-rw-r--r--src/mame/drivers/coinmvga.c14
-rw-r--r--src/mame/drivers/combatsc.c10
-rw-r--r--src/mame/drivers/comebaby.c2
-rw-r--r--src/mame/drivers/commando.c4
-rw-r--r--src/mame/drivers/compgolf.c2
-rw-r--r--src/mame/drivers/contra.c6
-rw-r--r--src/mame/drivers/coolridr.c5
-rw-r--r--src/mame/drivers/cop01.c8
-rw-r--r--src/mame/drivers/cops.c4
-rw-r--r--src/mame/drivers/copsnrob.c15
-rw-r--r--src/mame/drivers/corona.c26
-rw-r--r--src/mame/drivers/cosmic.c20
-rw-r--r--src/mame/drivers/cps1.c2
-rw-r--r--src/mame/drivers/cps2.c2
-rw-r--r--src/mame/drivers/cps3.c10
-rw-r--r--src/mame/drivers/crbaloon.c3
-rw-r--r--src/mame/drivers/crimfght.c10
-rw-r--r--src/mame/drivers/crospang.c8
-rw-r--r--src/mame/drivers/crshrace.c6
-rw-r--r--src/mame/drivers/crystal.c3
-rw-r--r--src/mame/drivers/cshooter.c24
-rw-r--r--src/mame/drivers/csplayh5.c2
-rw-r--r--src/mame/drivers/cswat.c2
-rw-r--r--src/mame/drivers/cubeqst.c4
-rw-r--r--src/mame/drivers/cultures.c4
-rw-r--r--src/mame/drivers/cupidon.c2
-rw-r--r--src/mame/drivers/cv1k.c4
-rw-r--r--src/mame/drivers/cvs.c5
-rw-r--r--src/mame/drivers/cyberbal.c4
-rw-r--r--src/mame/drivers/cybertnk.c12
-rw-r--r--src/mame/drivers/cyclemb.c30
-rw-r--r--src/mame/drivers/d9final.c9
-rw-r--r--src/mame/drivers/dacholer.c13
-rw-r--r--src/mame/drivers/dambustr.c4
-rw-r--r--src/mame/drivers/darius.c8
-rw-r--r--src/mame/drivers/darkmist.c3
-rw-r--r--src/mame/drivers/darkseal.c5
-rw-r--r--src/mame/drivers/dassault.c6
-rw-r--r--src/mame/drivers/dblcrown.c14
-rw-r--r--src/mame/drivers/dblewing.c7
-rw-r--r--src/mame/drivers/dbz.c10
-rw-r--r--src/mame/drivers/dcheese.c4
-rw-r--r--src/mame/drivers/dcon.c8
-rw-r--r--src/mame/drivers/dday.c6
-rw-r--r--src/mame/drivers/ddayjlc.c16
-rw-r--r--src/mame/drivers/ddealer.c14
-rw-r--r--src/mame/drivers/ddenlovr.c28
-rw-r--r--src/mame/drivers/ddragon.c17
-rw-r--r--src/mame/drivers/ddragon3.c17
-rw-r--r--src/mame/drivers/ddribble.c4
-rw-r--r--src/mame/drivers/ddz.c2
-rw-r--r--src/mame/drivers/deadang.c5
-rw-r--r--src/mame/drivers/dec0.c17
-rw-r--r--src/mame/drivers/dec8.c77
-rw-r--r--src/mame/drivers/deco156.c12
-rw-r--r--src/mame/drivers/deco32.c35
-rw-r--r--src/mame/drivers/deco_ld.c12
-rw-r--r--src/mame/drivers/deco_mlc.c6
-rw-r--r--src/mame/drivers/decocass.c29
-rw-r--r--src/mame/drivers/deniam.c4
-rw-r--r--src/mame/drivers/deshoros.c2
-rw-r--r--src/mame/drivers/destroyr.c31
-rw-r--r--src/mame/drivers/dfruit.c5
-rw-r--r--src/mame/drivers/dgpix.c3
-rw-r--r--src/mame/drivers/dietgo.c4
-rw-r--r--src/mame/drivers/discoboy.c10
-rw-r--r--src/mame/drivers/diverboy.c9
-rw-r--r--src/mame/drivers/djboy.c3
-rw-r--r--src/mame/drivers/djmain.c5
-rw-r--r--src/mame/drivers/dkong.c33
-rw-r--r--src/mame/drivers/dlair.c10
-rw-r--r--src/mame/drivers/dlair2.c8
-rw-r--r--src/mame/drivers/dmndrby.c27
-rw-r--r--src/mame/drivers/docastle.c3
-rw-r--r--src/mame/drivers/dogfgt.c6
-rw-r--r--src/mame/drivers/dominob.c13
-rw-r--r--src/mame/drivers/dooyong.c43
-rw-r--r--src/mame/drivers/dragrace.c37
-rw-r--r--src/mame/drivers/dreambal.c6
-rw-r--r--src/mame/drivers/dreamwld.c14
-rw-r--r--src/mame/drivers/drgnmst.c6
-rw-r--r--src/mame/drivers/dribling.c4
-rw-r--r--src/mame/drivers/drmicro.c4
-rw-r--r--src/mame/drivers/drtomy.c7
-rw-r--r--src/mame/drivers/drw80pkr.c12
-rw-r--r--src/mame/drivers/dunhuang.c6
-rw-r--r--src/mame/drivers/dwarfd.c22
-rw-r--r--src/mame/drivers/dynadice.c10
-rw-r--r--src/mame/drivers/dynax.c42
-rw-r--r--src/mame/drivers/dynduke.c2
-rw-r--r--src/mame/drivers/egghunt.c7
-rw-r--r--src/mame/drivers/eolith.c3
-rw-r--r--src/mame/drivers/eolith16.c6
-rw-r--r--src/mame/drivers/eprom.c6
-rw-r--r--src/mame/drivers/equites.c8
-rw-r--r--src/mame/drivers/ertictac.c2
-rw-r--r--src/mame/drivers/esd16.c6
-rw-r--r--src/mame/drivers/esh.c15
-rw-r--r--src/mame/drivers/espial.c4
-rw-r--r--src/mame/drivers/ettrivia.c12
-rw-r--r--src/mame/drivers/exedexes.c5
-rw-r--r--src/mame/drivers/exerion.c4
-rw-r--r--src/mame/drivers/exidy.c2
-rw-r--r--src/mame/drivers/expro02.c11
-rw-r--r--src/mame/drivers/exprraid.c4
-rw-r--r--src/mame/drivers/exterm.c6
-rw-r--r--src/mame/drivers/exzisus.c4
-rw-r--r--src/mame/drivers/f-32.c3
-rw-r--r--src/mame/drivers/f1gp.c15
-rw-r--r--src/mame/drivers/famibox.c9
-rw-r--r--src/mame/drivers/fantland.c21
-rw-r--r--src/mame/drivers/fastfred.c7
-rw-r--r--src/mame/drivers/fastlane.c4
-rw-r--r--src/mame/drivers/fcombat.c4
-rw-r--r--src/mame/drivers/fcrash.c22
-rw-r--r--src/mame/drivers/feversoc.c10
-rw-r--r--src/mame/drivers/fgoal.c14
-rw-r--r--src/mame/drivers/finalizr.c4
-rw-r--r--src/mame/drivers/firebeat.c6
-rw-r--r--src/mame/drivers/firefox.c8
-rw-r--r--src/mame/drivers/firetrap.c6
-rw-r--r--src/mame/drivers/firetrk.c14
-rw-r--r--src/mame/drivers/fitfight.c10
-rw-r--r--src/mame/drivers/flipjack.c21
-rw-r--r--src/mame/drivers/flkatck.c7
-rw-r--r--src/mame/drivers/flower.c3
-rw-r--r--src/mame/drivers/flstory.c12
-rw-r--r--src/mame/drivers/flyball.c18
-rw-r--r--src/mame/drivers/foodf.c2
-rw-r--r--src/mame/drivers/fortecar.c12
-rw-r--r--src/mame/drivers/freekick.c3
-rw-r--r--src/mame/drivers/fresh.c4
-rw-r--r--src/mame/drivers/fromanc2.c6
-rw-r--r--src/mame/drivers/fromance.c6
-rw-r--r--src/mame/drivers/funkybee.c4
-rw-r--r--src/mame/drivers/funkyjet.c7
-rw-r--r--src/mame/drivers/funworld.c4
-rw-r--r--src/mame/drivers/funybubl.c2
-rw-r--r--src/mame/drivers/fuukifg2.c5
-rw-r--r--src/mame/drivers/fuukifg3.c6
-rw-r--r--src/mame/drivers/gaelco.c20
-rw-r--r--src/mame/drivers/gaelco2.c12
-rw-r--r--src/mame/drivers/gaelco3d.c4
-rw-r--r--src/mame/drivers/gaiden.c15
-rw-r--r--src/mame/drivers/gal3.c4
-rw-r--r--src/mame/drivers/galaga.c19
-rw-r--r--src/mame/drivers/galastrm.c4
-rw-r--r--src/mame/drivers/galaxi.c7
-rw-r--r--src/mame/drivers/galaxia.c8
-rw-r--r--src/mame/drivers/galaxian.c12
-rw-r--r--src/mame/drivers/galaxold.c50
-rw-r--r--src/mame/drivers/galgame.c11
-rw-r--r--src/mame/drivers/galivan.c8
-rw-r--r--src/mame/drivers/galpani2.c6
-rw-r--r--src/mame/drivers/galpani3.c11
-rw-r--r--src/mame/drivers/galpanic.c5
-rw-r--r--src/mame/drivers/galspnbl.c6
-rw-r--r--src/mame/drivers/gambl186.c2
-rw-r--r--src/mame/drivers/gamecstl.c4
-rw-r--r--src/mame/drivers/gaplus.c3
-rw-r--r--src/mame/drivers/gatron.c3
-rw-r--r--src/mame/drivers/gauntlet.c6
-rw-r--r--src/mame/drivers/gberet.c8
-rw-r--r--src/mame/drivers/gbusters.c10
-rw-r--r--src/mame/drivers/gcpinbal.c6
-rw-r--r--src/mame/drivers/gei.c16
-rw-r--r--src/mame/drivers/ggconnie.c2
-rw-r--r--src/mame/drivers/ghosteo.c4
-rw-r--r--src/mame/drivers/gijoe.c10
-rw-r--r--src/mame/drivers/ginganin.c6
-rw-r--r--src/mame/drivers/gladiatr.c4
-rw-r--r--src/mame/drivers/glass.c6
-rw-r--r--src/mame/drivers/gluck2.c6
-rw-r--r--src/mame/drivers/gng.c23
-rw-r--r--src/mame/drivers/go2000.c11
-rw-r--r--src/mame/drivers/goal92.c6
-rw-r--r--src/mame/drivers/goindol.c4
-rw-r--r--src/mame/drivers/goldngam.c8
-rw-r--r--src/mame/drivers/goldnpkr.c37
-rw-r--r--src/mame/drivers/goldstar.c109
-rw-r--r--src/mame/drivers/gomoku.c4
-rw-r--r--src/mame/drivers/good.c5
-rw-r--r--src/mame/drivers/goodejan.c11
-rw-r--r--src/mame/drivers/gotcha.c6
-rw-r--r--src/mame/drivers/gottlieb.c2
-rw-r--r--src/mame/drivers/gotya.c4
-rw-r--r--src/mame/drivers/gpworld.c16
-rw-r--r--src/mame/drivers/gradius3.c10
-rw-r--r--src/mame/drivers/grchamp.c1
-rw-r--r--src/mame/drivers/gridlee.c4
-rw-r--r--src/mame/drivers/groundfx.c4
-rw-r--r--src/mame/drivers/gstream.c22
-rw-r--r--src/mame/drivers/gstriker.c12
-rw-r--r--src/mame/drivers/gsword.c8
-rw-r--r--src/mame/drivers/gticlub.c12
-rw-r--r--src/mame/drivers/guab.c10
-rw-r--r--src/mame/drivers/gumbo.c10
-rw-r--r--src/mame/drivers/gunbustr.c6
-rw-r--r--src/mame/drivers/gundealr.c2
-rw-r--r--src/mame/drivers/gunpey.c14
-rw-r--r--src/mame/drivers/gunsmoke.c4
-rw-r--r--src/mame/drivers/gyruss.c4
-rw-r--r--src/mame/drivers/halleys.c26
-rw-r--r--src/mame/drivers/hanaawas.c4
-rw-r--r--src/mame/drivers/harddriv.c2
-rw-r--r--src/mame/drivers/hcastle.c5
-rw-r--r--src/mame/drivers/headonb.c9
-rw-r--r--src/mame/drivers/hexion.c4
-rw-r--r--src/mame/drivers/hideseek.c9
-rw-r--r--src/mame/drivers/higemaru.c3
-rw-r--r--src/mame/drivers/highvdeo.c12
-rw-r--r--src/mame/drivers/hikaru.c2
-rw-r--r--src/mame/drivers/himesiki.c5
-rw-r--r--src/mame/drivers/hitme.c3
-rw-r--r--src/mame/drivers/hitpoker.c6
-rw-r--r--src/mame/drivers/hnayayoi.c4
-rw-r--r--src/mame/drivers/hng64.c7
-rw-r--r--src/mame/drivers/holeland.c8
-rw-r--r--src/mame/drivers/homedata.c16
-rw-r--r--src/mame/drivers/homerun.c2
-rw-r--r--src/mame/drivers/hornet.c8
-rw-r--r--src/mame/drivers/hotblock.c6
-rw-r--r--src/mame/drivers/hotstuff.c2
-rw-r--r--src/mame/drivers/hvyunit.c10
-rw-r--r--src/mame/drivers/hyperspt.c4
-rw-r--r--src/mame/drivers/hyprduel.c4
-rw-r--r--src/mame/drivers/ichiban.c3
-rw-r--r--src/mame/drivers/igs009.c11
-rw-r--r--src/mame/drivers/igs011.c6
-rw-r--r--src/mame/drivers/igs017.c47
-rw-r--r--src/mame/drivers/igs_m027.c6
-rw-r--r--src/mame/drivers/igs_m036.c4
-rw-r--r--src/mame/drivers/igspoker.c18
-rw-r--r--src/mame/drivers/ikki.c4
-rw-r--r--src/mame/drivers/imolagp.c15
-rw-r--r--src/mame/drivers/intrscti.c8
-rw-r--r--src/mame/drivers/inufuku.c7
-rw-r--r--src/mame/drivers/invqix.c2
-rw-r--r--src/mame/drivers/iqblock.c8
-rw-r--r--src/mame/drivers/irobot.c4
-rw-r--r--src/mame/drivers/ironhors.c4
-rw-r--r--src/mame/drivers/istellar.c13
-rw-r--r--src/mame/drivers/itech32.c5
-rw-r--r--src/mame/drivers/itech8.c2
-rw-r--r--src/mame/drivers/itgambl2.c13
-rw-r--r--src/mame/drivers/itgambl3.c13
-rw-r--r--src/mame/drivers/itgamble.c4
-rw-r--r--src/mame/drivers/jack.c18
-rw-r--r--src/mame/drivers/jackal.c4
-rw-r--r--src/mame/drivers/jackie.c10
-rw-r--r--src/mame/drivers/jackpool.c10
-rw-r--r--src/mame/drivers/jailbrek.c3
-rw-r--r--src/mame/drivers/jalmah.c12
-rw-r--r--src/mame/drivers/jangou.c16
-rw-r--r--src/mame/drivers/jantotsu.c12
-rw-r--r--src/mame/drivers/jchan.c7
-rw-r--r--src/mame/drivers/jclub2.c16
-rw-r--r--src/mame/drivers/jokrwild.c7
-rw-r--r--src/mame/drivers/jollyjgr.c14
-rw-r--r--src/mame/drivers/jongkyo.c10
-rw-r--r--src/mame/drivers/jpmimpct.c2
-rw-r--r--src/mame/drivers/jpmsys5.c12
-rw-r--r--src/mame/drivers/jrpacman.c4
-rw-r--r--src/mame/drivers/jubilee.c6
-rw-r--r--src/mame/drivers/kaneko16.c39
-rw-r--r--src/mame/drivers/karnov.c7
-rw-r--r--src/mame/drivers/kas89.c2
-rw-r--r--src/mame/drivers/kchamp.c6
-rw-r--r--src/mame/drivers/kickgoal.c8
-rw-r--r--src/mame/drivers/kingdrby.c18
-rw-r--r--src/mame/drivers/kingobox.c8
-rw-r--r--src/mame/drivers/kinst.c3
-rw-r--r--src/mame/drivers/klax.c2
-rw-r--r--src/mame/drivers/kncljoe.c4
-rw-r--r--src/mame/drivers/koftball.c4
-rw-r--r--src/mame/drivers/koikoi.c15
-rw-r--r--src/mame/drivers/konamigx.c26
-rw-r--r--src/mame/drivers/konamim2.c3
-rw-r--r--src/mame/drivers/konendev.c3
-rw-r--r--src/mame/drivers/kontest.c11
-rw-r--r--src/mame/drivers/kopunch.c4
-rw-r--r--src/mame/drivers/ksayakyu.c4
-rw-r--r--src/mame/drivers/kurukuru.c2
-rw-r--r--src/mame/drivers/kyugo.c4
-rw-r--r--src/mame/drivers/labyrunr.c5
-rw-r--r--src/mame/drivers/ladybug.c10
-rw-r--r--src/mame/drivers/ladyfrog.c2
-rw-r--r--src/mame/drivers/laserbas.c5
-rw-r--r--src/mame/drivers/laserbat.c6
-rw-r--r--src/mame/drivers/lasso.c14
-rw-r--r--src/mame/drivers/lastbank.c5
-rw-r--r--src/mame/drivers/lastduel.c4
-rw-r--r--src/mame/drivers/lastfght.c8
-rw-r--r--src/mame/drivers/lazercmd.c21
-rw-r--r--src/mame/drivers/lbeach.c36
-rw-r--r--src/mame/drivers/legionna.c50
-rw-r--r--src/mame/drivers/leland.c2
-rw-r--r--src/mame/drivers/lemmings.c6
-rw-r--r--src/mame/drivers/lethal.c13
-rw-r--r--src/mame/drivers/lethalj.c3
-rw-r--r--src/mame/drivers/lgp.c8
-rw-r--r--src/mame/drivers/liberate.c6
-rw-r--r--src/mame/drivers/limenko.c10
-rw-r--r--src/mame/drivers/littlerb.c5
-rw-r--r--src/mame/drivers/lkage.c8
-rw-r--r--src/mame/drivers/lockon.c4
-rw-r--r--src/mame/drivers/looping.c11
-rw-r--r--src/mame/drivers/lordgun.c4
-rw-r--r--src/mame/drivers/lsasquad.c8
-rw-r--r--src/mame/drivers/ltcasino.c2
-rw-r--r--src/mame/drivers/luckgrln.c10
-rw-r--r--src/mame/drivers/lucky74.c4
-rw-r--r--src/mame/drivers/lvcards.c7
-rw-r--r--src/mame/drivers/lwings.c15
-rw-r--r--src/mame/drivers/m10.c10
-rw-r--r--src/mame/drivers/m107.c5
-rw-r--r--src/mame/drivers/m14.c9
-rw-r--r--src/mame/drivers/m52.c3
-rw-r--r--src/mame/drivers/m57.c4
-rw-r--r--src/mame/drivers/m58.c3
-rw-r--r--src/mame/drivers/m62.c20
-rw-r--r--src/mame/drivers/m63.c16
-rw-r--r--src/mame/drivers/m72.c26
-rw-r--r--src/mame/drivers/m90.c10
-rw-r--r--src/mame/drivers/m92.c6
-rw-r--r--src/mame/drivers/macrossp.c6
-rw-r--r--src/mame/drivers/macs.c2
-rw-r--r--src/mame/drivers/madmotor.c6
-rw-r--r--src/mame/drivers/magic10.c4
-rw-r--r--src/mame/drivers/magicard.c18
-rw-r--r--src/mame/drivers/magicfly.c79
-rw-r--r--src/mame/drivers/magmax.c4
-rw-r--r--src/mame/drivers/mainevt.c20
-rw-r--r--src/mame/drivers/mainsnk.c7
-rw-r--r--src/mame/drivers/majorpkr.c6
-rw-r--r--src/mame/drivers/malzak.c9
-rw-r--r--src/mame/drivers/mappy.c15
-rw-r--r--src/mame/drivers/marineb.c4
-rw-r--r--src/mame/drivers/marinedt.c16
-rw-r--r--src/mame/drivers/mario.c4
-rw-r--r--src/mame/drivers/markham.c4
-rw-r--r--src/mame/drivers/mastboy.c6
-rw-r--r--src/mame/drivers/matmania.c8
-rw-r--r--src/mame/drivers/maxaflex.c4
-rw-r--r--src/mame/drivers/maygayv1.c6
-rw-r--r--src/mame/drivers/mayumi.c4
-rw-r--r--src/mame/drivers/mazerbla.c22
-rw-r--r--src/mame/drivers/mcatadv.c5
-rw-r--r--src/mame/drivers/mcr.c15
-rw-r--r--src/mame/drivers/mcr3.c11
-rw-r--r--src/mame/drivers/mcr68.c4
-rw-r--r--src/mame/drivers/meadows.c19
-rw-r--r--src/mame/drivers/mediagx.c9
-rw-r--r--src/mame/drivers/megaphx.c6
-rw-r--r--src/mame/drivers/megasys1.c29
-rw-r--r--src/mame/drivers/megatech.c2
-rw-r--r--src/mame/drivers/megazone.c4
-rw-r--r--src/mame/drivers/meijinsn.c12
-rw-r--r--src/mame/drivers/meritm.c4
-rw-r--r--src/mame/drivers/mermaid.c7
-rw-r--r--src/mame/drivers/metalmx.c4
-rw-r--r--src/mame/drivers/metlclsh.c8
-rw-r--r--src/mame/drivers/metro.c123
-rw-r--r--src/mame/drivers/mexico86.c4
-rw-r--r--src/mame/drivers/meyc8088.c9
-rw-r--r--src/mame/drivers/mgolf.c20
-rw-r--r--src/mame/drivers/micro3d.c2
-rw-r--r--src/mame/drivers/midas.c13
-rw-r--r--src/mame/drivers/midtunit.c2
-rw-r--r--src/mame/drivers/midvunit.c2
-rw-r--r--src/mame/drivers/midwunit.c2
-rw-r--r--src/mame/drivers/midxunit.c2
-rw-r--r--src/mame/drivers/midyunit.c22
-rw-r--r--src/mame/drivers/midzeus.c2
-rw-r--r--src/mame/drivers/mikie.c4
-rw-r--r--src/mame/drivers/mil4000.c6
-rw-r--r--src/mame/drivers/miniboy7.c11
-rw-r--r--src/mame/drivers/mirage.c7
-rw-r--r--src/mame/drivers/mirax.c17
-rw-r--r--src/mame/drivers/missb2.c15
-rw-r--r--src/mame/drivers/missile.c4
-rw-r--r--src/mame/drivers/mitchell.c22
-rw-r--r--src/mame/drivers/mjkjidai.c4
-rw-r--r--src/mame/drivers/mjsister.c5
-rw-r--r--src/mame/drivers/mlanding.c7
-rw-r--r--src/mame/drivers/model1.c18
-rw-r--r--src/mame/drivers/model2.c20
-rw-r--r--src/mame/drivers/model3.c12
-rw-r--r--src/mame/drivers/mogura.c9
-rw-r--r--src/mame/drivers/mole.c10
-rw-r--r--src/mame/drivers/momoko.c5
-rw-r--r--src/mame/drivers/monzagp.c9
-rw-r--r--src/mame/drivers/moo.c29
-rw-r--r--src/mame/drivers/mosaic.c7
-rw-r--r--src/mame/drivers/mouser.c4
-rw-r--r--src/mame/drivers/mpoker.c12
-rw-r--r--src/mame/drivers/mpu12wbk.c7
-rw-r--r--src/mame/drivers/mpu4dealem.c8
-rw-r--r--src/mame/drivers/mpu4plasma.c2
-rw-r--r--src/mame/drivers/mpu4vid.c15
-rw-r--r--src/mame/drivers/mquake.c4
-rw-r--r--src/mame/drivers/mrdo.c4
-rw-r--r--src/mame/drivers/mrflea.c5
-rw-r--r--src/mame/drivers/mrjong.c4
-rw-r--r--src/mame/drivers/ms32.c2
-rw-r--r--src/mame/drivers/msisaac.c5
-rw-r--r--src/mame/drivers/mugsmash.c5
-rw-r--r--src/mame/drivers/multfish.c6
-rw-r--r--src/mame/drivers/multigam.c10
-rw-r--r--src/mame/drivers/munchmo.c4
-rw-r--r--src/mame/drivers/murogem.c9
-rw-r--r--src/mame/drivers/murogmbl.c12
-rw-r--r--src/mame/drivers/mustache.c4
-rw-r--r--src/mame/drivers/mwarr.c16
-rw-r--r--src/mame/drivers/mystwarr.c29
-rw-r--r--src/mame/drivers/n8080.c12
-rw-r--r--src/mame/drivers/namcofl.c2
-rw-r--r--src/mame/drivers/namcoic.c19
-rw-r--r--src/mame/drivers/namcona1.c5
-rw-r--r--src/mame/drivers/namconb1.c11
-rw-r--r--src/mame/drivers/namcond1.c3
-rw-r--r--src/mame/drivers/namcops2.c2
-rw-r--r--src/mame/drivers/namcos1.c6
-rw-r--r--src/mame/drivers/namcos2.c44
-rw-r--r--src/mame/drivers/namcos21.c6
-rw-r--r--src/mame/drivers/namcos22.c4
-rw-r--r--src/mame/drivers/namcos23.c10
-rw-r--r--src/mame/drivers/namcos86.c4
-rw-r--r--src/mame/drivers/naomi.c2
-rw-r--r--src/mame/drivers/naughtyb.c7
-rw-r--r--src/mame/drivers/nbmj8688.c18
-rw-r--r--src/mame/drivers/nbmj8891.c2
-rw-r--r--src/mame/drivers/nbmj8900.c2
-rw-r--r--src/mame/drivers/nbmj8991.c4
-rw-r--r--src/mame/drivers/nbmj9195.c5
-rw-r--r--src/mame/drivers/nemesis.c20
-rw-r--r--src/mame/drivers/neoprint.c20
-rw-r--r--src/mame/drivers/neptunp2.c2
-rw-r--r--src/mame/drivers/news.c6
-rw-r--r--src/mame/drivers/nexus3d.c2
-rw-r--r--src/mame/drivers/nightgal.c16
-rw-r--r--src/mame/drivers/ninjakd2.c15
-rw-r--r--src/mame/drivers/ninjaw.c12
-rw-r--r--src/mame/drivers/nitedrvr.c3
-rw-r--r--src/mame/drivers/niyanpai.c2
-rw-r--r--src/mame/drivers/nmg5.c9
-rw-r--r--src/mame/drivers/nmk16.c115
-rw-r--r--src/mame/drivers/norautp.c27
-rw-r--r--src/mame/drivers/nova2001.c16
-rw-r--r--src/mame/drivers/nsmpoker.c8
-rw-r--r--src/mame/drivers/nwk-tr.c8
-rw-r--r--src/mame/drivers/nycaptor.c9
-rw-r--r--src/mame/drivers/offtwall.c2
-rw-r--r--src/mame/drivers/ohmygod.c7
-rw-r--r--src/mame/drivers/ojankohs.c10
-rw-r--r--src/mame/drivers/olibochu.c16
-rw-r--r--src/mame/drivers/oneshot.c6
-rw-r--r--src/mame/drivers/onetwo.c4
-rw-r--r--src/mame/drivers/opwolf.c14
-rw-r--r--src/mame/drivers/orbit.c4
-rw-r--r--src/mame/drivers/othello.c25
-rw-r--r--src/mame/drivers/othunder.c3
-rw-r--r--src/mame/drivers/overdriv.c11
-rw-r--r--src/mame/drivers/pacland.c3
-rw-r--r--src/mame/drivers/pacman.c4
-rw-r--r--src/mame/drivers/pandoras.c4
-rw-r--r--src/mame/drivers/panicr.c31
-rw-r--r--src/mame/drivers/paradise.c2
-rw-r--r--src/mame/drivers/paranoia.c6
-rw-r--r--src/mame/drivers/parodius.c12
-rw-r--r--src/mame/drivers/pasha2.c6
-rw-r--r--src/mame/drivers/pass.c5
-rw-r--r--src/mame/drivers/pastelg.c6
-rw-r--r--src/mame/drivers/pbaction.c6
-rw-r--r--src/mame/drivers/pcktgal.c3
-rw-r--r--src/mame/drivers/pcxt.c2
-rw-r--r--src/mame/drivers/pengo.c4
-rw-r--r--src/mame/drivers/peplus.c18
-rw-r--r--src/mame/drivers/pgm.c5
-rw-r--r--src/mame/drivers/pgm2.c2
-rw-r--r--src/mame/drivers/phoenix.c11
-rw-r--r--src/mame/drivers/photon.c4
-rw-r--r--src/mame/drivers/photon2.c10
-rw-r--r--src/mame/drivers/photoply.c2
-rw-r--r--src/mame/drivers/pinball2k.c8
-rw-r--r--src/mame/drivers/pingpong.c4
-rw-r--r--src/mame/drivers/pinkiri8.c10
-rw-r--r--src/mame/drivers/pipedrm.c9
-rw-r--r--src/mame/drivers/pipeline.c12
-rw-r--r--src/mame/drivers/pirates.c5
-rw-r--r--src/mame/drivers/pitnrun.c3
-rw-r--r--src/mame/drivers/pkscram.c5
-rw-r--r--src/mame/drivers/pktgaldx.c12
-rw-r--r--src/mame/drivers/playch10.c3
-rw-r--r--src/mame/drivers/playmark.c20
-rw-r--r--src/mame/drivers/plygonet.c4
-rw-r--r--src/mame/drivers/pokechmp.c8
-rw-r--r--src/mame/drivers/poker72.c14
-rw-r--r--src/mame/drivers/polepos.c8
-rw-r--r--src/mame/drivers/policetr.c2
-rw-r--r--src/mame/drivers/polyplay.c4
-rw-r--r--src/mame/drivers/poolshrk.c13
-rw-r--r--src/mame/drivers/pooyan.c4
-rw-r--r--src/mame/drivers/popeye.c7
-rw-r--r--src/mame/drivers/popobear.c10
-rw-r--r--src/mame/drivers/popper.c4
-rw-r--r--src/mame/drivers/portrait.c4
-rw-r--r--src/mame/drivers/powerbal.c6
-rw-r--r--src/mame/drivers/powerins.c2
-rw-r--r--src/mame/drivers/ppmast93.c3
-rw-r--r--src/mame/drivers/prehisle.c5
-rw-r--r--src/mame/drivers/progolf.c17
-rw-r--r--src/mame/drivers/psattack.c3
-rw-r--r--src/mame/drivers/psikyo.c16
-rw-r--r--src/mame/drivers/psikyo4.c14
-rw-r--r--src/mame/drivers/psikyosh.c4
-rw-r--r--src/mame/drivers/psychic5.c4
-rw-r--r--src/mame/drivers/pturn.c5
-rw-r--r--src/mame/drivers/punchout.c2
-rw-r--r--src/mame/drivers/pushman.c10
-rw-r--r--src/mame/drivers/pyson.c2
-rw-r--r--src/mame/drivers/pzletime.c21
-rw-r--r--src/mame/drivers/qdrmfgp.c12
-rw-r--r--src/mame/drivers/quakeat.c2
-rw-r--r--src/mame/drivers/quasar.c4
-rw-r--r--src/mame/drivers/quizdna.c2
-rw-r--r--src/mame/drivers/quizo.c9
-rw-r--r--src/mame/drivers/quizpani.c5
-rw-r--r--src/mame/drivers/quizpun2.c9
-rw-r--r--src/mame/drivers/quizshow.c15
-rw-r--r--src/mame/drivers/r2dx_v33.c22
-rw-r--r--src/mame/drivers/rabbit.c12
-rw-r--r--src/mame/drivers/raiden.c7
-rw-r--r--src/mame/drivers/raiden2.c22
-rw-r--r--src/mame/drivers/rainbow.c13
-rw-r--r--src/mame/drivers/rallyx.c16
-rw-r--r--src/mame/drivers/rampart.c2
-rw-r--r--src/mame/drivers/rastan.c7
-rw-r--r--src/mame/drivers/rastersp.c13
-rw-r--r--src/mame/drivers/rbmk.c10
-rw-r--r--src/mame/drivers/rcorsair.c2
-rw-r--r--src/mame/drivers/realbrk.c6
-rw-r--r--src/mame/drivers/redclash.c8
-rw-r--r--src/mame/drivers/relief.c2
-rw-r--r--src/mame/drivers/renegade.c8
-rw-r--r--src/mame/drivers/retofinv.c4
-rw-r--r--src/mame/drivers/rgum.c4
-rw-r--r--src/mame/drivers/rltennis.c4
-rw-r--r--src/mame/drivers/rmhaihai.c9
-rw-r--r--src/mame/drivers/rockrage.c5
-rw-r--r--src/mame/drivers/rocnrope.c4
-rw-r--r--src/mame/drivers/rohga.c22
-rw-r--r--src/mame/drivers/rollerg.c10
-rw-r--r--src/mame/drivers/rollrace.c4
-rw-r--r--src/mame/drivers/roul.c10
-rw-r--r--src/mame/drivers/royalmah.c16
-rw-r--r--src/mame/drivers/rpunch.c8
-rw-r--r--src/mame/drivers/runaway.c2
-rw-r--r--src/mame/drivers/rungun.c10
-rw-r--r--src/mame/drivers/safarir.c14
-rw-r--r--src/mame/drivers/sandscrp.c6
-rw-r--r--src/mame/drivers/sangho.c4
-rw-r--r--src/mame/drivers/sanremo.c11
-rw-r--r--src/mame/drivers/sauro.c3
-rw-r--r--src/mame/drivers/sbasketb.c4
-rw-r--r--src/mame/drivers/sbowling.c11
-rw-r--r--src/mame/drivers/sbrkout.c5
-rw-r--r--src/mame/drivers/sbugger.c4
-rw-r--r--src/mame/drivers/scobra.c28
-rw-r--r--src/mame/drivers/scotrsht.c4
-rw-r--r--src/mame/drivers/scramble.c64
-rw-r--r--src/mame/drivers/scregg.c8
-rw-r--r--src/mame/drivers/sderby.c25
-rw-r--r--src/mame/drivers/seabattl.c21
-rw-r--r--src/mame/drivers/segac2.c12
-rw-r--r--src/mame/drivers/segae.c2
-rw-r--r--src/mame/drivers/segag80r.c14
-rw-r--r--src/mame/drivers/segahang.c2
-rw-r--r--src/mame/drivers/segajw.c7
-rw-r--r--src/mame/drivers/segald.c6
-rw-r--r--src/mame/drivers/segaorun.c2
-rw-r--r--src/mame/drivers/segas16a.c2
-rw-r--r--src/mame/drivers/segas16b.c2
-rw-r--r--src/mame/drivers/segas18.c2
-rw-r--r--src/mame/drivers/segas24.c7
-rw-r--r--src/mame/drivers/segas32.c4
-rw-r--r--src/mame/drivers/segaxbd.c2
-rw-r--r--src/mame/drivers/segaybd.c2
-rw-r--r--src/mame/drivers/seibuspi.c12
-rw-r--r--src/mame/drivers/seicross.c4
-rw-r--r--src/mame/drivers/sengokmj.c11
-rw-r--r--src/mame/drivers/senjyo.c6
-rw-r--r--src/mame/drivers/seta.c144
-rw-r--r--src/mame/drivers/seta2.c31
-rw-r--r--src/mame/drivers/sf.c11
-rw-r--r--src/mame/drivers/sfbonus.c8
-rw-r--r--src/mame/drivers/sfkick.c2
-rw-r--r--src/mame/drivers/shadfrce.c8
-rw-r--r--src/mame/drivers/shangha3.c24
-rw-r--r--src/mame/drivers/shanghai.c22
-rw-r--r--src/mame/drivers/shangkid.c8
-rw-r--r--src/mame/drivers/shaolins.c4
-rw-r--r--src/mame/drivers/shisen.c2
-rw-r--r--src/mame/drivers/shootout.c8
-rw-r--r--src/mame/drivers/shougi.c12
-rw-r--r--src/mame/drivers/shtzone.c2
-rw-r--r--src/mame/drivers/shuuz.c2
-rw-r--r--src/mame/drivers/sidearms.c23
-rw-r--r--src/mame/drivers/sidepckt.c3
-rw-r--r--src/mame/drivers/sigmab52.c8
-rw-r--r--src/mame/drivers/sigmab98.c23
-rw-r--r--src/mame/drivers/silkroad.c4
-rw-r--r--src/mame/drivers/silvmil.c6
-rw-r--r--src/mame/drivers/simpl156.c6
-rw-r--r--src/mame/drivers/simpsons.c9
-rw-r--r--src/mame/drivers/skimaxx.c5
-rw-r--r--src/mame/drivers/skullxbo.c2
-rw-r--r--src/mame/drivers/skyarmy.c12
-rw-r--r--src/mame/drivers/skydiver.c6
-rw-r--r--src/mame/drivers/skyfox.c4
-rw-r--r--src/mame/drivers/skykid.c4
-rw-r--r--src/mame/drivers/skylncr.c6
-rw-r--r--src/mame/drivers/skyraid.c46
-rw-r--r--src/mame/drivers/slapfght.c16
-rw-r--r--src/mame/drivers/slapshot.c6
-rw-r--r--src/mame/drivers/sliver.c3
-rw-r--r--src/mame/drivers/slotcarn.c2
-rw-r--r--src/mame/drivers/smsmcorp.c10
-rw-r--r--src/mame/drivers/snk.c42
-rw-r--r--src/mame/drivers/snk6502.c8
-rw-r--r--src/mame/drivers/snk68.c2
-rw-r--r--src/mame/drivers/snookr10.c9
-rw-r--r--src/mame/drivers/snowbros.c27
-rw-r--r--src/mame/drivers/solomon.c6
-rw-r--r--src/mame/drivers/sonson.c3
-rw-r--r--src/mame/drivers/sothello.c2
-rw-r--r--src/mame/drivers/spaceg.c47
-rw-r--r--src/mame/drivers/spbactn.c12
-rw-r--r--src/mame/drivers/spcforce.c7
-rw-r--r--src/mame/drivers/spdodgeb.c4
-rw-r--r--src/mame/drivers/speedatk.c4
-rw-r--r--src/mame/drivers/speedbal.c5
-rw-r--r--src/mame/drivers/speedspn.c6
-rw-r--r--src/mame/drivers/speglsht.c4
-rw-r--r--src/mame/drivers/splash.c15
-rw-r--r--src/mame/drivers/splus.c2
-rw-r--r--src/mame/drivers/spoker.c14
-rw-r--r--src/mame/drivers/spool99.c7
-rw-r--r--src/mame/drivers/sprcros2.c4
-rw-r--r--src/mame/drivers/sprint2.c4
-rw-r--r--src/mame/drivers/sprint4.c4
-rw-r--r--src/mame/drivers/sprint8.c5
-rw-r--r--src/mame/drivers/spy.c10
-rw-r--r--src/mame/drivers/srmp2.c18
-rw-r--r--src/mame/drivers/srmp5.c6
-rw-r--r--src/mame/drivers/srmp6.c13
-rw-r--r--src/mame/drivers/srumbler.c5
-rw-r--r--src/mame/drivers/ssfindo.c4
-rw-r--r--src/mame/drivers/sshangha.c7
-rw-r--r--src/mame/drivers/sshot.c9
-rw-r--r--src/mame/drivers/ssingles.c2
-rw-r--r--src/mame/drivers/sslam.c4
-rw-r--r--src/mame/drivers/ssozumo.c4
-rw-r--r--src/mame/drivers/sspeedr.c8
-rw-r--r--src/mame/drivers/ssrj.c4
-rw-r--r--src/mame/drivers/ssv.c3
-rw-r--r--src/mame/drivers/st0016.c2
-rw-r--r--src/mame/drivers/stadhero.c6
-rw-r--r--src/mame/drivers/starcrus.c3
-rw-r--r--src/mame/drivers/starshp1.c4
-rw-r--r--src/mame/drivers/statriv2.c14
-rw-r--r--src/mame/drivers/stfight.c3
-rw-r--r--src/mame/drivers/stlforce.c6
-rw-r--r--src/mame/drivers/strnskil.c4
-rw-r--r--src/mame/drivers/stuntair.c12
-rw-r--r--src/mame/drivers/stv.c2
-rw-r--r--src/mame/drivers/sub.c27
-rw-r--r--src/mame/drivers/subs.c15
-rw-r--r--src/mame/drivers/subsino.c26
-rw-r--r--src/mame/drivers/subsino2.c20
-rw-r--r--src/mame/drivers/summit.c10
-rw-r--r--src/mame/drivers/suna16.c8
-rw-r--r--src/mame/drivers/suna8.c29
-rw-r--r--src/mame/drivers/supbtime.c14
-rw-r--r--src/mame/drivers/supdrapo.c12
-rw-r--r--src/mame/drivers/superchs.c4
-rw-r--r--src/mame/drivers/supercrd.c8
-rw-r--r--src/mame/drivers/superdq.c16
-rw-r--r--src/mame/drivers/superqix.c18
-rw-r--r--src/mame/drivers/superwng.c13
-rw-r--r--src/mame/drivers/suprgolf.c10
-rw-r--r--src/mame/drivers/suprloco.c4
-rw-r--r--src/mame/drivers/suprnova.c2
-rw-r--r--src/mame/drivers/suprridr.c4
-rw-r--r--src/mame/drivers/suprslam.c6
-rw-r--r--src/mame/drivers/surpratk.c12
-rw-r--r--src/mame/drivers/system1.c2
-rw-r--r--src/mame/drivers/system16.c8
-rw-r--r--src/mame/drivers/tagteam.c4
-rw-r--r--src/mame/drivers/tail2nos.c6
-rw-r--r--src/mame/drivers/taito_b.c88
-rw-r--r--src/mame/drivers/taito_f2.c69
-rw-r--r--src/mame/drivers/taito_f3.c4
-rw-r--r--src/mame/drivers/taito_h.c17
-rw-r--r--src/mame/drivers/taito_l.c10
-rw-r--r--src/mame/drivers/taito_o.c5
-rw-r--r--src/mame/drivers/taito_x.c24
-rw-r--r--src/mame/drivers/taito_z.c48
-rw-r--r--src/mame/drivers/taitoair.c8
-rw-r--r--src/mame/drivers/taitojc.c2
-rw-r--r--src/mame/drivers/taitosj.c2
-rw-r--r--src/mame/drivers/taitotx.c2
-rw-r--r--src/mame/drivers/taitowlf.c21
-rw-r--r--src/mame/drivers/tank8.c4
-rw-r--r--src/mame/drivers/tankbatt.c4
-rw-r--r--src/mame/drivers/tankbust.c10
-rw-r--r--src/mame/drivers/taotaido.c8
-rw-r--r--src/mame/drivers/targeth.c6
-rw-r--r--src/mame/drivers/tasman.c9
-rw-r--r--src/mame/drivers/tatsumi.c20
-rw-r--r--src/mame/drivers/tattack.c12
-rw-r--r--src/mame/drivers/taxidriv.c7
-rw-r--r--src/mame/drivers/tbowl.c5
-rw-r--r--src/mame/drivers/tceptor.c5
-rw-r--r--src/mame/drivers/tcl.c2
-rw-r--r--src/mame/drivers/tecmo.c12
-rw-r--r--src/mame/drivers/tecmo16.c8
-rw-r--r--src/mame/drivers/tecmosys.c5
-rw-r--r--src/mame/drivers/tehkanwc.c8
-rw-r--r--src/mame/drivers/terracre.c12
-rw-r--r--src/mame/drivers/tetrisp2.c12
-rw-r--r--src/mame/drivers/thayers.c2
-rw-r--r--src/mame/drivers/thedeep.c3
-rw-r--r--src/mame/drivers/thepit.c6
-rw-r--r--src/mame/drivers/thief.c6
-rw-r--r--src/mame/drivers/thoop2.c6
-rw-r--r--src/mame/drivers/thunderj.c2
-rw-r--r--src/mame/drivers/thunderx.c20
-rw-r--r--src/mame/drivers/tiamc1.c4
-rw-r--r--src/mame/drivers/tigeroad.c5
-rw-r--r--src/mame/drivers/timelimt.c4
-rw-r--r--src/mame/drivers/timeplt.c3
-rw-r--r--src/mame/drivers/timetrv.c2
-rw-r--r--src/mame/drivers/tmaster.c12
-rw-r--r--src/mame/drivers/tmmjprd.c14
-rw-r--r--src/mame/drivers/tmnt.c129
-rw-r--r--src/mame/drivers/tmspoker.c7
-rw-r--r--src/mame/drivers/tnzs.c42
-rw-r--r--src/mame/drivers/toaplan1.c24
-rw-r--r--src/mame/drivers/toaplan2.c123
-rw-r--r--src/mame/drivers/toki.c12
-rw-r--r--src/mame/drivers/tokyocop.c2
-rw-r--r--src/mame/drivers/tonton.c2
-rw-r--r--src/mame/drivers/toobin.c2
-rw-r--r--src/mame/drivers/topspeed.c7
-rw-r--r--src/mame/drivers/tourtabl.c2
-rw-r--r--src/mame/drivers/tourvis.c6
-rw-r--r--src/mame/drivers/toypop.c4
-rw-r--r--src/mame/drivers/tp84.c4
-rw-r--r--src/mame/drivers/trackfld.c8
-rw-r--r--src/mame/drivers/travrusa.c7
-rw-r--r--src/mame/drivers/triforce.c2
-rw-r--r--src/mame/drivers/triplhnt.c21
-rw-r--r--src/mame/drivers/truco.c3
-rw-r--r--src/mame/drivers/trucocl.c4
-rw-r--r--src/mame/drivers/trvmadns.c8
-rw-r--r--src/mame/drivers/tryout.c4
-rw-r--r--src/mame/drivers/tsamurai.c12
-rw-r--r--src/mame/drivers/ttchamp.c8
-rw-r--r--src/mame/drivers/tubep.c8
-rw-r--r--src/mame/drivers/tugboat.c13
-rw-r--r--src/mame/drivers/tumbleb.c42
-rw-r--r--src/mame/drivers/tumblep.c7
-rw-r--r--src/mame/drivers/tunhunt.c4
-rw-r--r--src/mame/drivers/turbo.c12
-rw-r--r--src/mame/drivers/turrett.c5
-rw-r--r--src/mame/drivers/twin16.c10
-rw-r--r--src/mame/drivers/twincobr.c5
-rw-r--r--src/mame/drivers/twins.c12
-rw-r--r--src/mame/drivers/tx1.c12
-rw-r--r--src/mame/drivers/uapce.c6
-rw-r--r--src/mame/drivers/ultraman.c12
-rw-r--r--src/mame/drivers/ultratnk.c4
-rw-r--r--src/mame/drivers/ultrsprt.c6
-rw-r--r--src/mame/drivers/umipoker.c7
-rw-r--r--src/mame/drivers/undrfire.c6
-rw-r--r--src/mame/drivers/unico.c6
-rw-r--r--src/mame/drivers/unkhorse.c9
-rw-r--r--src/mame/drivers/upscope.c4
-rw-r--r--src/mame/drivers/usgames.c4
-rw-r--r--src/mame/drivers/vamphalf.c16
-rw-r--r--src/mame/drivers/vaportra.c5
-rw-r--r--src/mame/drivers/vastar.c4
-rw-r--r--src/mame/drivers/vball.c2
-rw-r--r--src/mame/drivers/vega.c19
-rw-r--r--src/mame/drivers/vegaeo.c4
-rw-r--r--src/mame/drivers/vendetta.c12
-rw-r--r--src/mame/drivers/victory.c2
-rw-r--r--src/mame/drivers/videopin.c3
-rw-r--r--src/mame/drivers/videopkr.c25
-rw-r--r--src/mame/drivers/vigilant.c6
-rw-r--r--src/mame/drivers/vindictr.c2
-rw-r--r--src/mame/drivers/viper.c5
-rw-r--r--src/mame/drivers/vlc.c7
-rw-r--r--src/mame/drivers/volfied.c7
-rw-r--r--src/mame/drivers/vp101.c2
-rw-r--r--src/mame/drivers/vpoker.c12
-rw-r--r--src/mame/drivers/vroulet.c6
-rw-r--r--src/mame/drivers/vsnes.c13
-rw-r--r--src/mame/drivers/vulgus.c3
-rw-r--r--src/mame/drivers/wallc.c12
-rw-r--r--src/mame/drivers/wardner.c5
-rw-r--r--src/mame/drivers/warpsped.c13
-rw-r--r--src/mame/drivers/warpwarp.c15
-rw-r--r--src/mame/drivers/warriorb.c8
-rw-r--r--src/mame/drivers/wc90.c5
-rw-r--r--src/mame/drivers/wc90b.c6
-rw-r--r--src/mame/drivers/wecleman.c8
-rw-r--r--src/mame/drivers/welltris.c6
-rw-r--r--src/mame/drivers/wgp.c6
-rw-r--r--src/mame/drivers/wheelfir.c16
-rw-r--r--src/mame/drivers/wildpkr.c10
-rw-r--r--src/mame/drivers/williams.c2
-rw-r--r--src/mame/drivers/wink.c5
-rw-r--r--src/mame/drivers/wiping.c4
-rw-r--r--src/mame/drivers/witch.c16
-rw-r--r--src/mame/drivers/wiz.c3
-rw-r--r--src/mame/drivers/wolfpack.c3
-rw-r--r--src/mame/drivers/wrally.c5
-rw-r--r--src/mame/drivers/wwfsstar.c6
-rw-r--r--src/mame/drivers/xain.c8
-rw-r--r--src/mame/drivers/xexex.c11
-rw-r--r--src/mame/drivers/xmen.c19
-rw-r--r--src/mame/drivers/xorworld.c3
-rw-r--r--src/mame/drivers/xxmissio.c3
-rw-r--r--src/mame/drivers/xybots.c6
-rw-r--r--src/mame/drivers/xyonix.c4
-rw-r--r--src/mame/drivers/yiear.c4
-rw-r--r--src/mame/drivers/yunsun16.c9
-rw-r--r--src/mame/drivers/yunsung8.c2
-rw-r--r--src/mame/drivers/zac2650.c13
-rw-r--r--src/mame/drivers/zaccaria.c4
-rw-r--r--src/mame/drivers/zaxxon.c8
-rw-r--r--src/mame/drivers/zerozone.c6
-rw-r--r--src/mame/drivers/zodiack.c4
-rw-r--r--src/mame/drivers/zr107.c16
1011 files changed, 5624 insertions, 4613 deletions
diff --git a/src/mame/drivers/1942.c b/src/mame/drivers/1942.c
index 5606592f093..c419b43e579 100644
--- a/src/mame/drivers/1942.c
+++ b/src/mame/drivers/1942.c
@@ -191,7 +191,7 @@ WRITE8_MEMBER(_1942_state::c1942p_palette_w)
int g = (data & 0x38) >> 3;
int b = (data & 0xc0) >> 6;
- colortable_palette_set_color(machine().colortable, offset, rgb_t(r<<5,g<<5,b<<6));
+ m_palette->set_indirect_color(offset, rgb_t(r<<5,g<<5,b<<6));
}
static ADDRESS_MAP_START( c1942p_map, AS_PROGRAM, 8, _1942_state )
@@ -541,7 +541,9 @@ static MACHINE_CONFIG_START( 1942, _1942_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", 1942)
- MCFG_PALETTE_LENGTH(64*4+4*32*8+16*16)
+
+ MCFG_PALETTE_ADD("palette", 64*4+4*32*8+16*16)
+ MCFG_PALETTE_INIT_OWNER(_1942_state, 1942)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -598,8 +600,8 @@ static MACHINE_CONFIG_START( 1942p, _1942_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", 1942p)
- MCFG_PALETTE_LENGTH(0x500)
- MCFG_PALETTE_INIT_OVERRIDE(_1942_state, 1942p)
+ MCFG_PALETTE_ADD("palette", 0x500)
+ MCFG_PALETTE_INIT_OWNER(_1942_state, 1942p)
MCFG_VIDEO_START_OVERRIDE(_1942_state,c1942p)
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/1943.c b/src/mame/drivers/1943.c
index 8b60947b1cd..e7ff9142da4 100644
--- a/src/mame/drivers/1943.c
+++ b/src/mame/drivers/1943.c
@@ -321,7 +321,8 @@ static MACHINE_CONFIG_START( 1943, _1943_state )
MCFG_SCREEN_UPDATE_DRIVER(_1943_state, screen_update_1943)
MCFG_GFXDECODE_ADD("gfxdecode", 1943)
- MCFG_PALETTE_LENGTH(32*4+16*16+16*16+16*16)
+ MCFG_PALETTE_ADD("palette", 32*4+16*16+16*16+16*16)
+ MCFG_PALETTE_INIT_OWNER(_1943_state, 1943)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/1945kiii.c b/src/mame/drivers/1945kiii.c
index 29f76197eab..b8cea59e7cd 100644
--- a/src/mame/drivers/1945kiii.c
+++ b/src/mame/drivers/1945kiii.c
@@ -118,10 +118,10 @@ void k3_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
ypos = (source[0] & 0x00ff) >> 0;
tileno = (source2[0] & 0x7ffe) >> 1;
xpos |= (source2[0] & 0x0001) << 8;
- gfx->transpen(bitmap,cliprect, tileno, 1, 0, 0, xpos, ypos, 0);
- gfx->transpen(bitmap,cliprect, tileno, 1, 0, 0, xpos, ypos - 0x100, 0); // wrap
- gfx->transpen(bitmap,cliprect, tileno, 1, 0, 0, xpos - 0x200, ypos, 0); // wrap
- gfx->transpen(bitmap,cliprect, tileno, 1, 0, 0, xpos - 0x200, ypos - 0x100, 0); // wrap
+ gfx->transpen(m_palette,bitmap,cliprect, tileno, 1, 0, 0, xpos, ypos, 0);
+ gfx->transpen(m_palette,bitmap,cliprect, tileno, 1, 0, 0, xpos, ypos - 0x100, 0); // wrap
+ gfx->transpen(m_palette,bitmap,cliprect, tileno, 1, 0, 0, xpos - 0x200, ypos, 0); // wrap
+ gfx->transpen(m_palette,bitmap,cliprect, tileno, 1, 0, 0, xpos - 0x200, ypos - 0x100, 0); // wrap
source++;
source2++;
@@ -158,7 +158,7 @@ static ADDRESS_MAP_START( k3_map, AS_PROGRAM, 16, k3_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Main Ram
- AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") // palette
+ AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette
AM_RANGE(0x240000, 0x240fff) AM_RAM AM_SHARE("spritera1")
AM_RANGE(0x280000, 0x280fff) AM_RAM AM_SHARE("spritera2")
AM_RANGE(0x2c0000, 0x2c0fff) AM_RAM_WRITE(k3_bgram_w) AM_SHARE("bgram")
@@ -273,8 +273,8 @@ static MACHINE_CONFIG_START( k3, k3_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_DRIVER(k3_state, screen_update_k3)
- MCFG_PALETTE_LENGTH(0x800)
-
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/2mindril.c b/src/mame/drivers/2mindril.c
index 1a3f8f74834..0550204161d 100644
--- a/src/mame/drivers/2mindril.c
+++ b/src/mame/drivers/2mindril.c
@@ -224,7 +224,7 @@ static ADDRESS_MAP_START( drill_map, AS_PROGRAM, 16, _2mindril_state )
AM_RANGE(0x430000, 0x43ffff) AM_READWRITE(f3_pivot_r,f3_pivot_w)
AM_RANGE(0x460000, 0x46000f) AM_WRITE(f3_control_0_w)
AM_RANGE(0x460010, 0x46001f) AM_WRITE(f3_control_1_w)
- AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x500000, 0x501fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x502022, 0x502023) AM_WRITENOP //countinously switches between 0 and 2
AM_RANGE(0x600000, 0x600007) AM_DEVREADWRITE8("ymsnd", ym2610_device, read, write, 0x00ff)
AM_RANGE(0x60000c, 0x60000d) AM_READWRITE(drill_irq_r,drill_irq_w)
@@ -463,7 +463,8 @@ static MACHINE_CONFIG_START( drill, _2mindril_state )
MCFG_SCREEN_UPDATE_DRIVER(_2mindril_state, screen_update_f3)
MCFG_SCREEN_VBLANK_DRIVER(_2mindril_state, screen_eof_f3)
- MCFG_PALETTE_LENGTH(0x2000)
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(_2mindril_state,f3)
diff --git a/src/mame/drivers/39in1.c b/src/mame/drivers/39in1.c
index ce591e1384b..4adc5d94ac9 100644
--- a/src/mame/drivers/39in1.c
+++ b/src/mame/drivers/39in1.c
@@ -1101,7 +1101,7 @@ void _39in1_state::pxa255_lcd_dma_kickoff(int channel)
{
UINT16 color = space.read_word((lcd_regs->dma[channel].fsadr &~ 1) + index);
m_pxa255_lcd_palette[index >> 1] = (((((color >> 11) & 0x1f) << 3) | (color >> 13)) << 16) | (((((color >> 5) & 0x3f) << 2) | ((color >> 9) & 0x3)) << 8) | (((color & 0x1f) << 3) | ((color >> 2) & 0x7));
- palette_set_color_rgb(machine(), index >> 1, (((color >> 11) & 0x1f) << 3) | (color >> 13), (((color >> 5) & 0x3f) << 2) | ((color >> 9) & 0x3), ((color & 0x1f) << 3) | ((color >> 2) & 0x7));
+ m_palette->set_pen_color(index >> 1, (((color >> 11) & 0x1f) << 3) | (color >> 13), (((color >> 5) & 0x3f) << 2) | ((color >> 9) & 0x3), ((color & 0x1f) << 3) | ((color >> 2) & 0x7));
}
}
else
@@ -1580,8 +1580,6 @@ static MACHINE_CONFIG_START( 39in1, _39in1_state )
MCFG_CPU_PROGRAM_MAP(39in1_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", _39in1_state, pxa255_vblank_start)
- MCFG_PALETTE_LENGTH(32768)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -1589,7 +1587,7 @@ static MACHINE_CONFIG_START( 39in1, _39in1_state )
MCFG_SCREEN_VISIBLE_AREA(0, 295, 0, 479)
MCFG_SCREEN_UPDATE_DRIVER(_39in1_state, screen_update_39in1)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_EEPROM_SERIAL_93C66_ADD("eeprom")
diff --git a/src/mame/drivers/3x3puzzl.c b/src/mame/drivers/3x3puzzl.c
index fabcf9d2a1c..67cf00b54aa 100644
--- a/src/mame/drivers/3x3puzzl.c
+++ b/src/mame/drivers/3x3puzzl.c
@@ -211,7 +211,7 @@ static ADDRESS_MAP_START( _3x3puzzle_map, AS_PROGRAM, 16, _3x3puzzle_state )
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_SHARE("videoram2")
AM_RANGE(0x202000, 0x202fff) AM_RAM AM_SHARE("videoram3")
AM_RANGE(0x280000, 0x280001) AM_READ_PORT("VBLANK")
- AM_RANGE(0x300000, 0x3005ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x300000, 0x3005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x400000, 0x400001) AM_WRITE(tilemap1_scrollx_w)
AM_RANGE(0x480000, 0x480001) AM_WRITE(tilemap1_scrolly_w)
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1")
@@ -394,7 +394,8 @@ static MACHINE_CONFIG_START( _3x3puzzle, _3x3puzzle_state )
MCFG_GFXDECODE_ADD("gfxdecode", _3x3puzzle)
- MCFG_PALETTE_LENGTH(0x600/2)
+ MCFG_PALETTE_ADD("palette", 0x600/2)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c
index 80c38d756a7..2d929e0eaad 100644
--- a/src/mame/drivers/40love.c
+++ b/src/mame/drivers/40love.c
@@ -1075,8 +1075,8 @@ static MACHINE_CONFIG_START( 40love, fortyl_state )
MCFG_SCREEN_UPDATE_DRIVER(fortyl_state, screen_update_fortyl)
MCFG_GFXDECODE_ADD("gfxdecode", 40love)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_OWNER(fortyl_state, fortyl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1130,8 +1130,8 @@ static MACHINE_CONFIG_START( undoukai, fortyl_state )
MCFG_SCREEN_UPDATE_DRIVER(fortyl_state, screen_update_fortyl)
MCFG_GFXDECODE_ADD("gfxdecode", 40love)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_OWNER(fortyl_state, fortyl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/4enraya.c b/src/mame/drivers/4enraya.c
index 9ca2ab73595..0cd84758832 100644
--- a/src/mame/drivers/4enraya.c
+++ b/src/mame/drivers/4enraya.c
@@ -301,13 +301,13 @@ void _4enraya_state::machine_reset()
m_last_snd_ctrl = 0;
}
-void _4enraya_state::palette_init()
+PALETTE_INIT_MEMBER(_4enraya_state, _4enraya)
{
int i;
/* RGB format */
for(i=0;i<8;i++)
- palette_set_color(machine(), i, rgb_t(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2)));
+ m_palette->set_pen_color(i, rgb_t(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2)));
}
static MACHINE_CONFIG_START( 4enraya, _4enraya_state )
@@ -329,8 +329,8 @@ static MACHINE_CONFIG_START( 4enraya, _4enraya_state )
MCFG_GFXDECODE_ADD("gfxdecode", 4enraya)
- MCFG_PALETTE_LENGTH(8)
-
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(_4enraya_state, _4enraya)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/4roses.c b/src/mame/drivers/4roses.c
index 0bab35a3060..8fa0d138b29 100644
--- a/src/mame/drivers/4roses.c
+++ b/src/mame/drivers/4roses.c
@@ -403,8 +403,8 @@ static MACHINE_CONFIG_START( 4roses, _4roses_state )
MCFG_GFXDECODE_ADD("gfxdecode", 4roses)
- MCFG_PALETTE_LENGTH(0x1000)
- MCFG_PALETTE_INIT_OVERRIDE(_4roses_state,funworld)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_INIT_OWNER(_4roses_state,funworld)
MCFG_VIDEO_START_OVERRIDE(_4roses_state,funworld)
// MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/8, mc6845_intf) /* 2MHz, guess */
diff --git a/src/mame/drivers/5clown.c b/src/mame/drivers/5clown.c
index 5f45edb33e8..c6998f8fa56 100644
--- a/src/mame/drivers/5clown.c
+++ b/src/mame/drivers/5clown.c
@@ -490,7 +490,7 @@ public:
DECLARE_DRIVER_INIT(fclown);
TILE_GET_INFO_MEMBER(get_fclown_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(_5clown);
UINT32 screen_update_fclown(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
@@ -552,7 +552,7 @@ UINT32 _5clown_state::screen_update_fclown(screen_device &screen, bitmap_ind16 &
return 0;
}
-void _5clown_state::palette_init()
+PALETTE_INIT_MEMBER(_5clown_state, _5clown)
{
const UINT8 *color_prom = memregion("proms")->base();
/*
@@ -569,7 +569,7 @@ void _5clown_state::palette_init()
if (color_prom == 0) return;
- for (i = 0;i < machine().total_colors();i++)
+ for (i = 0;i < m_palette->entries();i++)
{
int bit0, bit1, bit2, bit3, r, g, b, bk;
@@ -589,7 +589,7 @@ void _5clown_state::palette_init()
bit2 = (color_prom[i] >> 2) & 0x01;
b = bk * (bit2 * 0xff);
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ m_palette->set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -1064,8 +1064,8 @@ static MACHINE_CONFIG_START( fclown, _5clown_state )
MCFG_SCREEN_UPDATE_DRIVER(_5clown_state, screen_update_fclown)
MCFG_GFXDECODE_ADD("gfxdecode", fclown)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(_5clown_state, _5clown)
MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/16, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c
index 2effdb32b69..08e1feed3b2 100644
--- a/src/mame/drivers/8080bw.c
+++ b/src/mame/drivers/8080bw.c
@@ -1265,8 +1265,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( rollingc, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_rollingc)
- MCFG_PALETTE_LENGTH(16)
- MCFG_PALETTE_INIT_OVERRIDE(_8080bw_state, rollingc)
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_INIT_OWNER(_8080bw_state, rollingc)
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
diff --git a/src/mame/drivers/88games.c b/src/mame/drivers/88games.c
index 210bbca16fb..2480671c2ec 100644
--- a/src/mame/drivers/88games.c
+++ b/src/mame/drivers/88games.c
@@ -117,7 +117,7 @@ WRITE8_MEMBER(_88games_state::k052109_051960_w)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, _88games_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("banked_rom") /* banked ROM + palette RAM */
- AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_be_w) AM_SHARE("paletteram_1000") /* banked ROM + palette RAM */
+ AM_RANGE(0x1000, 0x1fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* banked ROM + palette RAM */
AM_RANGE(0x2000, 0x2fff) AM_RAM
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x3800, 0x3fff) AM_READWRITE(bankedram_r, bankedram_w) AM_SHARE("ram")
@@ -359,8 +359,6 @@ static MACHINE_CONFIG_START( 88games, _88games_state )
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -368,16 +366,21 @@ static MACHINE_CONFIG_START( 88games, _88games_state )
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(_88games_state, screen_update_88games)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", _88games_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", _88games_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
MCFG_K051316_ADD("k051316", _88games_k051316_intf)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ace.c b/src/mame/drivers/ace.c
index f786ef4e229..ca0d6fd7bc4 100644
--- a/src/mame/drivers/ace.c
+++ b/src/mame/drivers/ace.c
@@ -71,7 +71,6 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
UINT32 screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void ace_postload();
required_device<gfxdecode_device> m_gfxdecode;
@@ -98,19 +97,19 @@ UINT32 aceal_state::screen_update_ace(screen_device &screen, bitmap_ind16 &bitma
/* first of all, fill the screen with the background color */
bitmap.fill(0, cliprect);
- m_gfxdecode->gfx(1)->opaque(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect,
0,
0,
0, 0,
m_objpos[0], m_objpos[1]);
- m_gfxdecode->gfx(2)->opaque(bitmap,cliprect,
+ m_gfxdecode->gfx(2)->opaque(m_palette,bitmap,cliprect,
0,
0,
0, 0,
m_objpos[2], m_objpos[3]);
- m_gfxdecode->gfx(3)->opaque(bitmap,cliprect,
+ m_gfxdecode->gfx(3)->opaque(m_palette,bitmap,cliprect,
0,
0,
0, 0,
@@ -118,7 +117,7 @@ UINT32 aceal_state::screen_update_ace(screen_device &screen, bitmap_ind16 &bitma
for (offs = 0; offs < 8; offs++)
{
- m_gfxdecode->gfx(4)->opaque(bitmap,/* ?? */
+ m_gfxdecode->gfx(4)->opaque(m_palette,bitmap,/* ?? */
cliprect,
offs,
0,
@@ -129,13 +128,6 @@ UINT32 aceal_state::screen_update_ace(screen_device &screen, bitmap_ind16 &bitma
}
-void aceal_state::palette_init()
-{
- palette_set_color(machine(), 0, rgb_t(0x00,0x00,0x00)); /* black */
- palette_set_color(machine(), 1, rgb_t(0xff,0xff,0xff)); /* white */
-}
-
-
WRITE8_MEMBER(aceal_state::ace_characterram_w)
{
if (m_characterram[offset] != data)
@@ -360,7 +352,7 @@ static MACHINE_CONFIG_START( ace, aceal_state )
MCFG_SCREEN_UPDATE_DRIVER(aceal_state, screen_update_ace)
MCFG_GFXDECODE_ADD("gfxdecode", ace)
- MCFG_PALETTE_LENGTH(2)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
/* ???? */
diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c
index 8cc4ee383cb..26930d62d91 100644
--- a/src/mame/drivers/acefruit.c
+++ b/src/mame/drivers/acefruit.c
@@ -42,7 +42,7 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(starspnr_payout_r);
DECLARE_DRIVER_INIT(sidewndr);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(acefruit);
UINT32 screen_update_acefruit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(acefruit_vblank);
void acefruit_update_irq(int vpos);
@@ -130,7 +130,7 @@ UINT32 acefruit_state::screen_update_acefruit(screen_device &screen, bitmap_ind1
if( color < 0x4 )
{
- m_gfxdecode->gfx(1)->opaque(bitmap,cliprect, code, color, 0, 0, col * 16, row * 8 );
+ m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect, code, color, 0, 0, col * 16, row * 8 );
}
else if( color >= 0x5 && color <= 0x7 )
{
@@ -282,27 +282,27 @@ WRITE8_MEMBER(acefruit_state::acefruit_solenoid_w)
}
}
-void acefruit_state::palette_init()
+PALETTE_INIT_MEMBER(acefruit_state, acefruit)
{
/* sprites */
- palette_set_color( machine(), 0, rgb_t(0x00, 0x00, 0x00) );
- palette_set_color( machine(), 1, rgb_t(0x00, 0x00, 0xff) );
- palette_set_color( machine(), 2, rgb_t(0x00, 0xff, 0x00) );
- palette_set_color( machine(), 3, rgb_t(0xff, 0x7f, 0x00) );
- palette_set_color( machine(), 4, rgb_t(0xff, 0x00, 0x00) );
- palette_set_color( machine(), 5, rgb_t(0xff, 0xff, 0x00) );
- palette_set_color( machine(), 6, rgb_t(0xff, 0xff, 0xff) );
- palette_set_color( machine(), 7, rgb_t(0x7f, 0x3f, 0x1f) );
+ palette.set_pen_color( 0, rgb_t(0x00, 0x00, 0x00) );
+ palette.set_pen_color( 1, rgb_t(0x00, 0x00, 0xff) );
+ palette.set_pen_color( 2, rgb_t(0x00, 0xff, 0x00) );
+ palette.set_pen_color( 3, rgb_t(0xff, 0x7f, 0x00) );
+ palette.set_pen_color( 4, rgb_t(0xff, 0x00, 0x00) );
+ palette.set_pen_color( 5, rgb_t(0xff, 0xff, 0x00) );
+ palette.set_pen_color( 6, rgb_t(0xff, 0xff, 0xff) );
+ palette.set_pen_color( 7, rgb_t(0x7f, 0x3f, 0x1f) );
/* tiles */
- palette_set_color( machine(), 8, rgb_t(0x00, 0x00, 0x00) );
- palette_set_color( machine(), 9, rgb_t(0xff, 0xff, 0xff) );
- palette_set_color( machine(), 10, rgb_t(0x00, 0x00, 0x00) );
- palette_set_color( machine(), 11, rgb_t(0x00, 0x00, 0xff) );
- palette_set_color( machine(), 12, rgb_t(0x00, 0x00, 0x00) );
- palette_set_color( machine(), 13, rgb_t(0x00, 0xff, 0x00) );
- palette_set_color( machine(), 14, rgb_t(0x00, 0x00, 0x00) );
- palette_set_color( machine(), 15, rgb_t(0xff, 0x00, 0x00) );
+ palette.set_pen_color( 8, rgb_t(0x00, 0x00, 0x00) );
+ palette.set_pen_color( 9, rgb_t(0xff, 0xff, 0xff) );
+ palette.set_pen_color( 10, rgb_t(0x00, 0x00, 0x00) );
+ palette.set_pen_color( 11, rgb_t(0x00, 0x00, 0xff) );
+ palette.set_pen_color( 12, rgb_t(0x00, 0x00, 0x00) );
+ palette.set_pen_color( 13, rgb_t(0x00, 0xff, 0x00) );
+ palette.set_pen_color( 14, rgb_t(0x00, 0x00, 0x00) );
+ palette.set_pen_color( 15, rgb_t(0xff, 0x00, 0x00) );
}
static ADDRESS_MAP_START( acefruit_map, AS_PROGRAM, 8, acefruit_state )
@@ -614,7 +614,8 @@ static MACHINE_CONFIG_START( acefruit, acefruit_state )
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255)
MCFG_SCREEN_UPDATE_DRIVER(acefruit_state, screen_update_acefruit)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_INIT_OWNER(acefruit_state, acefruit)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/acommand.c b/src/mame/drivers/acommand.c
index 7f651baa333..247ec8c70b3 100644
--- a/src/mame/drivers/acommand.c
+++ b/src/mame/drivers/acommand.c
@@ -177,7 +177,7 @@ void acommand_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
xx = w;
do
{
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect,
code,
color,
flipx, flipy,
@@ -470,7 +470,7 @@ static ADDRESS_MAP_START( acommand_map, AS_PROGRAM, 16, acommand_state )
AM_RANGE(0x082208, 0x082209) AM_WRITE(ac_unk2_w)
AM_RANGE(0x0a0000, 0x0a3fff) AM_RAM_WRITE(ac_bgvram_w) AM_SHARE("ac_bgvram")
AM_RANGE(0x0b0000, 0x0b3fff) AM_RAM_WRITE(ac_txvram_w) AM_SHARE("ac_txvram")
- AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0f0000, 0x0f7fff) AM_RAM
AM_RANGE(0x0f8000, 0x0f8fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x0f9000, 0x0fffff) AM_RAM
@@ -620,8 +620,8 @@ static MACHINE_CONFIG_START( acommand, acommand_state )
MCFG_SCREEN_UPDATE_DRIVER(acommand_state, screen_update_acommand)
MCFG_GFXDECODE_ADD("gfxdecode", acommand)
- MCFG_PALETTE_LENGTH(0x4000)
-
+ MCFG_PALETTE_ADD("palette", 0x4000)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/actfancr.c b/src/mame/drivers/actfancr.c
index bf4e6563522..f4c3c7a5cdf 100644
--- a/src/mame/drivers/actfancr.c
+++ b/src/mame/drivers/actfancr.c
@@ -79,7 +79,7 @@ static ADDRESS_MAP_START( actfan_map, AS_PROGRAM, 8, actfancr_state )
AM_RANGE(0x072000, 0x0727ff) AM_DEVREADWRITE("tilegen2", deco_bac06_device, pf_data_8bit_swap_r, pf_data_8bit_swap_w)
AM_RANGE(0x100000, 0x1007ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x110000, 0x110001) AM_WRITE(actfancr_buffer_spriteram_w)
- AM_RANGE(0x120000, 0x1205ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0x120000, 0x1205ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x130000, 0x130000) AM_READ_PORT("P1")
AM_RANGE(0x130001, 0x130001) AM_READ_PORT("P2")
AM_RANGE(0x130002, 0x130002) AM_READ_PORT("DSW1")
@@ -102,7 +102,7 @@ static ADDRESS_MAP_START( triothep_map, AS_PROGRAM, 8, actfancr_state )
AM_RANGE(0x100000, 0x100001) AM_WRITE(actfancr_sound_w)
AM_RANGE(0x110000, 0x110001) AM_WRITE(actfancr_buffer_spriteram_w)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x130000, 0x1305ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0x130000, 0x1305ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x140000, 0x140001) AM_READNOP /* Value doesn't matter */
AM_RANGE(0x1f0000, 0x1f3fff) AM_RAM AM_SHARE("main_ram") /* Main ram */
AM_RANGE(0x1ff000, 0x1ff001) AM_READWRITE(triothep_control_r, triothep_control_select_w)
@@ -326,7 +326,9 @@ static MACHINE_CONFIG_START( actfancr, actfancr_state )
MCFG_SCREEN_UPDATE_DRIVER(actfancr_state, screen_update_actfancr)
MCFG_GFXDECODE_ADD("gfxdecode", actfan)
- MCFG_PALETTE_LENGTH(768)
+
+ MCFG_PALETTE_ADD("palette", 768)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
deco_bac06_device::set_gfx_region_wide(*device,2,2,2);
@@ -338,6 +340,7 @@ static MACHINE_CONFIG_START( actfancr, actfancr_state )
MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
deco_mxc06_device::set_gfx_region(*device, 1);
MCFG_DECO_MXC06_GFXDECODE("gfxdecode")
+ MCFG_DECO_MXC06_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -378,7 +381,9 @@ static MACHINE_CONFIG_START( triothep, actfancr_state )
MCFG_SCREEN_UPDATE_DRIVER(actfancr_state, screen_update_actfancr)
MCFG_GFXDECODE_ADD("gfxdecode", triothep)
- MCFG_PALETTE_LENGTH(768)
+
+ MCFG_PALETTE_ADD("palette", 768)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
deco_bac06_device::set_gfx_region_wide(*device,2,2,0);
@@ -390,6 +395,7 @@ static MACHINE_CONFIG_START( triothep, actfancr_state )
MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
deco_mxc06_device::set_gfx_region(*device, 1);
MCFG_DECO_MXC06_GFXDECODE("gfxdecode")
+ MCFG_DECO_MXC06_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/adp.c b/src/mame/drivers/adp.c
index 57bba2d241e..8b68e53513b 100644
--- a/src/mame/drivers/adp.c
+++ b/src/mame/drivers/adp.c
@@ -316,7 +316,7 @@ PALETTE_INIT_MEMBER(adp_state,adp)
{
int i;
- for (i = 0; i < machine().total_colors(); i++)
+ for (i = 0; i < palette.entries(); i++)
{
int bit0, bit1, bit2, r, g, b;
@@ -337,7 +337,7 @@ PALETTE_INIT_MEMBER(adp_state,adp)
bit2 = (i >> 2) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r,g,b));
+ palette.set_pen_color(i, rgb_t(r,g,b));
}
}
@@ -459,7 +459,7 @@ WRITE8_MEMBER(adp_state::ramdac_io_w)
break;
case 2:
m_pal.b = ((data & 0x3f) << 2) | ((data & 0x30) >> 4);
- palette_set_color(machine(), m_pal.offs, rgb_t(m_pal.r, m_pal.g, m_pal.b));
+ m_palette->set_pen_color(m_pal.offs, rgb_t(m_pal.r, m_pal.g, m_pal.b));
m_pal.offs_internal = 0;
m_pal.offs++;
m_pal.offs&=0xff;
@@ -641,9 +641,9 @@ static MACHINE_CONFIG_START( quickjac, adp_state )
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1)
MCFG_SCREEN_UPDATE_DRIVER(adp_state, screen_update)
- MCFG_PALETTE_LENGTH(0x10)
+ MCFG_PALETTE_ADD("palette", 0x10)
- MCFG_PALETTE_INIT_OVERRIDE(adp_state,adp)
+ MCFG_PALETTE_INIT_OWNER(adp_state,adp)
MCFG_H63484_ADD("h63484", 0, adp_h63484_intf, adp_h63484_map)
@@ -677,9 +677,9 @@ static MACHINE_CONFIG_START( skattv, adp_state )
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1)
MCFG_SCREEN_UPDATE_DRIVER(adp_state, screen_update)
- MCFG_PALETTE_LENGTH(0x10)
+ MCFG_PALETTE_ADD("palette", 0x10)
- MCFG_PALETTE_INIT_OVERRIDE(adp_state,adp)
+ MCFG_PALETTE_INIT_OWNER(adp_state,adp)
MCFG_H63484_ADD("h63484", 0, adp_h63484_intf, adp_h63484_map)
@@ -712,9 +712,9 @@ static MACHINE_CONFIG_START( backgamn, adp_state )
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
MCFG_SCREEN_UPDATE_DRIVER(adp_state, screen_update)
- MCFG_PALETTE_LENGTH(0x10)
+ MCFG_PALETTE_ADD("palette", 0x10)
-// MCFG_PALETTE_INIT_OVERRIDE(adp_state,adp)
+// MCFG_PALETTE_INIT_OWNER(adp_state,adp)
MCFG_H63484_ADD("h63484", 0, adp_h63484_intf, adp_h63484_map)
@@ -734,8 +734,8 @@ static MACHINE_CONFIG_DERIVED( funland, fashiong )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(funland_mem)
- MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x100)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( fstation, fashiong )
diff --git a/src/mame/drivers/aeroboto.c b/src/mame/drivers/aeroboto.c
index bb61d1ddce8..8ee6ba0ef4b 100644
--- a/src/mame/drivers/aeroboto.c
+++ b/src/mame/drivers/aeroboto.c
@@ -263,9 +263,7 @@ static MACHINE_CONFIG_START( formatz, aeroboto_state )
MCFG_GFXDECODE_ADD("gfxdecode", aeroboto)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c
index 4595cbe284f..d2c72800210 100644
--- a/src/mame/drivers/aerofgt.c
+++ b/src/mame/drivers/aerofgt.c
@@ -140,7 +140,7 @@ static ADDRESS_MAP_START( pspikes_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xff8000, 0xff8fff) AM_RAM_WRITE(aerofgt_bg1videoram_w) AM_SHARE("bg1videoram")
AM_RANGE(0xffc000, 0xffc3ff) AM_WRITEONLY AM_SHARE("spriteram3")
AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */
- AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE(pspikes_palette_bank_w)
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(pspikes_gfxbank_w)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg1scrolly_w)
@@ -156,7 +156,7 @@ static ADDRESS_MAP_START( pspikesb_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xffc000, 0xffcbff) AM_RAM AM_SHARE("spriteram3")
AM_RANGE(0xffd200, 0xffd201) AM_WRITE(pspikesb_gfxbank_w)
AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */
- AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0")
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1")
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg1scrolly_w)
@@ -176,7 +176,7 @@ static ADDRESS_MAP_START( spikes91_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xffc000, 0xffcfff) AM_RAM AM_SHARE("spriteram3")
//AM_RANGE(0xffd200, 0xffd201) AM_WRITE(pspikesb_gfxbank_w)
AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */
- AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0")
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(pspikes_gfxbank_w)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg1scrolly_w)
@@ -191,7 +191,7 @@ static ADDRESS_MAP_START( pspikesc_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xff8000, 0xff8fff) AM_RAM_WRITE(aerofgt_bg1videoram_w) AM_SHARE("bg1videoram")
AM_RANGE(0xffc000, 0xffcbff) AM_RAM AM_SHARE("spriteram3")
AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */
- AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE(pspikes_palette_bank_w)
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(pspikes_gfxbank_w)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW")
@@ -209,7 +209,7 @@ static ADDRESS_MAP_START( karatblz_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* work RAM */
AM_RANGE(0x0f8000, 0x0fbfff) AM_RAM /* work RAM */
AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM AM_SHARE("spriteram3")
- AM_RANGE(0x0fe000, 0x0fe7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0fe000, 0x0fe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0ff000, 0x0ff001) AM_READ_PORT("IN0")
AM_RANGE(0x0ff002, 0x0ff003) AM_READ_PORT("IN1") AM_WRITE(karatblz_gfxbank_w)
AM_RANGE(0x0ff004, 0x0ff005) AM_READ_PORT("IN2")
@@ -227,7 +227,7 @@ static ADDRESS_MAP_START( spinlbrk_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xff8000, 0xffbfff) AM_RAM /* work RAM */
AM_RANGE(0xffc000, 0xffc7ff) AM_RAM AM_SHARE("spriteram3")
AM_RANGE(0xffd000, 0xffd1ff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */
- AM_RANGE(0xffe000, 0xffe7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xffe000, 0xffe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE(spinlbrk_gfxbank_w)
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(aerofgt_bg2scrollx_w)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW")
@@ -245,7 +245,7 @@ static ADDRESS_MAP_START( turbofrc_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0f8000, 0x0fbfff) AM_RAM /* work RAM */
AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM AM_SHARE("spriteram3")
AM_RANGE(0x0fd000, 0x0fdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */
- AM_RANGE(0x0fe000, 0x0fe7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0fe000, 0x0fe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0ff000, 0x0ff001) AM_READ_PORT("IN0")
AM_RANGE(0x0ff002, 0x0ff003) AM_READ_PORT("IN1") AM_WRITE(aerofgt_bg1scrolly_w)
AM_RANGE(0x0ff004, 0x0ff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg2scrollx_w)
@@ -265,7 +265,7 @@ static ADDRESS_MAP_START( aerofgtb_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0e4000, 0x0e7fff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0x0f8000, 0x0fbfff) AM_RAM /* work RAM */
AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM AM_SHARE("spriteram3")
- AM_RANGE(0x0fd000, 0x0fd7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0fd000, 0x0fd7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0fe000, 0x0fe001) AM_READ_PORT("IN0")
AM_RANGE(0x0fe002, 0x0fe003) AM_READ_PORT("IN1") AM_WRITE(aerofgt_bg1scrolly_w)
AM_RANGE(0x0fe004, 0x0fe005) AM_READ_PORT("DSW1") AM_WRITE(aerofgt_bg2scrollx_w)
@@ -278,7 +278,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( aerofgt_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x1b0000, 0x1b07ff) AM_RAM AM_SHARE("rasterram") /* used only for the scroll registers */
AM_RANGE(0x1b0800, 0x1b0801) AM_NOP /* ??? */
AM_RANGE(0x1b0ff0, 0x1b0fff) AM_RAM /* stack area during boot */
@@ -309,7 +309,7 @@ static ADDRESS_MAP_START( aerfboot_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0e4000, 0x0e7fff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0x0f8000, 0x0fbfff) AM_RAM /* work RAM */
AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM //AM_SHARE("spriteram3")
- AM_RANGE(0x0fd000, 0x0fd7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0fd000, 0x0fd7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0fe000, 0x0fe001) AM_READ_PORT("IN0")
AM_RANGE(0x0fe002, 0x0fe003) AM_READ_PORT("IN1")
AM_RANGE(0x0fe004, 0x0fe005) AM_READ_PORT("DSW1")
@@ -338,7 +338,7 @@ static ADDRESS_MAP_START( aerfboo2_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0e4000, 0x0e7fff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0x0f8000, 0x0fbfff) AM_RAM /* work RAM */
AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM AM_SHARE("spriteram3")
- AM_RANGE(0x0fd000, 0x0fd7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0fd000, 0x0fd7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0fe000, 0x0fe001) AM_READ_PORT("IN0")
AM_RANGE(0x0fe002, 0x0fe003) AM_READ_PORT("IN1")
AM_RANGE(0x0fe004, 0x0fe005) AM_READ_PORT("DSW1")
@@ -365,7 +365,7 @@ static ADDRESS_MAP_START( wbbc97_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xff8000, 0xff8fff) AM_RAM_WRITE(aerofgt_bg1videoram_w) AM_SHARE("bg1videoram")
AM_RANGE(0xffc000, 0xffc3ff) AM_WRITEONLY AM_SHARE("spriteram3")
AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */
- AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE(pspikes_palette_bank_w)
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(pspikes_gfxbank_w)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg1scrolly_w)
@@ -1327,13 +1327,14 @@ static MACHINE_CONFIG_START( pspikes, aerofgt_state )
MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikes)
MCFG_GFXDECODE_ADD("gfxdecode", pspikes)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
MCFG_VSYSTEM_SPR2_SET_GFXREGION(1)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
-
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes)
@@ -1369,7 +1370,8 @@ static MACHINE_CONFIG_START( spikes91, aerofgt_state )
MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_spikes91)
MCFG_GFXDECODE_ADD("gfxdecode", spikes91)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes)
@@ -1401,7 +1403,8 @@ static MACHINE_CONFIG_START( pspikesb, aerofgt_state )
MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikesb)
MCFG_GFXDECODE_ADD("gfxdecode", pspikesb)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes)
@@ -1431,12 +1434,14 @@ static MACHINE_CONFIG_START( pspikesc, aerofgt_state )
MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikes)
MCFG_GFXDECODE_ADD("gfxdecode", pspikes)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
MCFG_VSYSTEM_SPR2_SET_GFXREGION(1)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes)
@@ -1471,17 +1476,20 @@ static MACHINE_CONFIG_START( karatblz, aerofgt_state )
MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_karatblz)
MCFG_GFXDECODE_ADD("gfxdecode", turbofrc)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
MCFG_VSYSTEM_SPR2_SET_GFXREGION(2)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback )
MCFG_VSYSTEM_SPR2_SET_GFXREGION(3)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(aerofgt_state,karatblz)
@@ -1520,18 +1528,21 @@ static MACHINE_CONFIG_START( spinlbrk, aerofgt_state )
MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_spinlbrk)
MCFG_GFXDECODE_ADD("gfxdecode", turbofrc)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_PRITYPE(1)
MCFG_VSYSTEM_SPR2_SET_GFXREGION(2)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback ) // rom lookup
MCFG_VSYSTEM_SPR2_SET_PRITYPE(1)
MCFG_VSYSTEM_SPR2_SET_GFXREGION(3)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(aerofgt_state,spinlbrk)
@@ -1570,17 +1581,20 @@ static MACHINE_CONFIG_START( turbofrc, aerofgt_state )
MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_turbofrc)
MCFG_GFXDECODE_ADD("gfxdecode", turbofrc)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
MCFG_VSYSTEM_SPR2_SET_GFXREGION(2)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback )
MCFG_VSYSTEM_SPR2_SET_GFXREGION(3)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc)
@@ -1620,17 +1634,20 @@ static MACHINE_CONFIG_START( aerofgtb, aerofgt_state )
MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_turbofrc)
MCFG_GFXDECODE_ADD("gfxdecode", aerofgtb)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
MCFG_VSYSTEM_SPR2_SET_GFXREGION(2)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback )
MCFG_VSYSTEM_SPR2_SET_GFXREGION(3)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc)
@@ -1670,12 +1687,14 @@ static MACHINE_CONFIG_START( aerofgt, aerofgt_state )
MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerofgt)
MCFG_GFXDECODE_ADD("gfxdecode", aerofgt)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr", VSYSTEM_SPR, 0)
MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( aerofgt_state, aerofgt_tile_callback )
MCFG_VSYSTEM_SPR_SET_GFXREGION(2)
MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc)
@@ -1713,7 +1732,8 @@ static MACHINE_CONFIG_START( aerfboot, aerofgt_state )
MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerfboot)
MCFG_GFXDECODE_ADD("gfxdecode", aerfboot)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc)
@@ -1744,7 +1764,8 @@ static MACHINE_CONFIG_START( aerfboo2, aerofgt_state )
MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerfboo2)
MCFG_GFXDECODE_ADD("gfxdecode", aerfboo2)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc)
@@ -1777,12 +1798,14 @@ static MACHINE_CONFIG_START( wbbc97, aerofgt_state )
MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_wbbc97)
MCFG_GFXDECODE_ADD("gfxdecode", wbbc97)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
MCFG_VSYSTEM_SPR2_SET_GFXREGION(1)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(aerofgt_state,wbbc97)
diff --git a/src/mame/drivers/airbustr.c b/src/mame/drivers/airbustr.c
index e47708857bd..8fb1c881ca1 100644
--- a/src/mame/drivers/airbustr.c
+++ b/src/mame/drivers/airbustr.c
@@ -324,7 +324,7 @@ WRITE8_MEMBER(airbustr_state::airbustr_paletteram_w)
m_paletteram[offset] = data;
val = (m_paletteram[offset | 1] << 8) | m_paletteram[offset & ~1];
- palette_set_color_rgb(machine(), offset / 2, pal5bit(val >> 5), pal5bit(val >> 10), pal5bit(val >> 0));
+ m_palette->set_pen_color(offset / 2, pal5bit(val >> 5), pal5bit(val >> 10), pal5bit(val >> 0));
}
WRITE8_MEMBER(airbustr_state::airbustr_coin_counter_w)
@@ -637,10 +637,11 @@ static MACHINE_CONFIG_START( airbustr, airbustr_state )
MCFG_SCREEN_VBLANK_DRIVER(airbustr_state, screen_eof_airbustr)
MCFG_GFXDECODE_ADD("gfxdecode", airbustr)
- MCFG_PALETTE_LENGTH(768)
+ MCFG_PALETTE_ADD("palette", 768)
MCFG_KANEKO_PANDORA_ADD("pandora", airbustr_pandora_config)
MCFG_KANEKO_PANDORA_GFXDECODE("gfxdecode")
+ MCFG_KANEKO_PANDORA_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ajax.c b/src/mame/drivers/ajax.c
index d1224626659..bfed89108d3 100644
--- a/src/mame/drivers/ajax.c
+++ b/src/mame/drivers/ajax.c
@@ -27,7 +27,7 @@ static ADDRESS_MAP_START( ajax_main_map, AS_PROGRAM, 8, ajax_state )
AM_RANGE(0x0000, 0x01c0) AM_READWRITE(ajax_ls138_f10_r, ajax_ls138_f10_w) /* bankswitch + sound command + FIRQ command */
AM_RANGE(0x0800, 0x0807) AM_DEVREADWRITE("k051960", k051960_device, k051937_r, k051937_w) /* sprite control registers */
AM_RANGE(0x0c00, 0x0fff) AM_DEVREADWRITE("k051960", k051960_device, k051960_r, k051960_w) /* sprite RAM 2128SL at J7 */
- AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_be_w) AM_SHARE("paletteram")/* palette */
+ AM_RANGE(0x1000, 0x1fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* palette */
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("share1") /* shared RAM with the 6809 */
AM_RANGE(0x4000, 0x5fff) AM_RAM /* RAM 6264L at K10 */
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank2") /* banked ROM */
@@ -219,8 +219,6 @@ static MACHINE_CONFIG_START( ajax, ajax_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -228,16 +226,21 @@ static MACHINE_CONFIG_START( ajax, ajax_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(ajax_state, screen_update_ajax)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", ajax_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", ajax_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
MCFG_K051316_ADD("k051316", ajax_k051316_intf)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/albazc.c b/src/mame/drivers/albazc.c
index 1dee14b5338..bf7fe6c135c 100644
--- a/src/mame/drivers/albazc.c
+++ b/src/mame/drivers/albazc.c
@@ -35,7 +35,7 @@ public:
DECLARE_WRITE8_MEMBER(hanaroku_out_2_w);
DECLARE_WRITE8_MEMBER(albazc_vregs_w);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(albazc);
UINT32 screen_update_hanaroku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
@@ -46,7 +46,7 @@ public:
/* video */
-void albazc_state::palette_init()
+PALETTE_INIT_MEMBER(albazc_state, albazc)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
@@ -58,7 +58,7 @@ void albazc_state::palette_init()
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_pen_color(i, pal5bit(r), pal5bit(g), pal5bit(b));
}
}
@@ -87,7 +87,7 @@ void albazc_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
flipy = !flipy;
}
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, code, color, flipx, flipy,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy,
sx, sy, 0);
}
}
@@ -285,8 +285,9 @@ static MACHINE_CONFIG_START( hanaroku, albazc_state )
MCFG_SCREEN_UPDATE_DRIVER(albazc_state, screen_update_hanaroku)
MCFG_GFXDECODE_ADD("gfxdecode", hanaroku)
- MCFG_PALETTE_LENGTH(0x200)
-
+
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_INIT_OWNER(albazc_state, albazc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/albazg.c b/src/mame/drivers/albazg.c
index 9677bc67258..66186f60130 100644
--- a/src/mame/drivers/albazg.c
+++ b/src/mame/drivers/albazg.c
@@ -58,8 +58,6 @@ public:
required_shared_ptr<UINT8> m_cus_ram;
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_colorram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
-// UINT8 * m_paletteram_2; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
@@ -246,8 +244,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, albazg_state )
AM_RANGE(0xa7fc, 0xa7fc) AM_WRITE(prot_lock_w)
AM_RANGE(0xa7ff, 0xa7ff) AM_WRITE_PORT("EEPROMOUT")
AM_RANGE(0xaf80, 0xafff) AM_READWRITE(custom_ram_r, custom_ram_w) AM_SHARE("cus_ram")
- AM_RANGE(0xb000, 0xb07f) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0xb080, 0xb0ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0xb000, 0xb07f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0xb080, 0xb0ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(yumefuda_vram_w) AM_SHARE("videoram")
AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(yumefuda_cram_w) AM_SHARE("colorram")
AM_RANGE(0xe000, 0xffff) AM_RAM
@@ -405,8 +403,9 @@ static MACHINE_CONFIG_START( yumefuda, albazg_state )
MCFG_MC6845_ADD("crtc", H46505, "screen", MASTER_CLOCK/16, mc6845_intf) /* hand tuned to get ~60 fps */
- MCFG_GFXDECODE_ADD("gfxdecode", yumefuda )
- MCFG_PALETTE_LENGTH(0x80)
+ MCFG_GFXDECODE_ADD("gfxdecode", yumefuda )
+ MCFG_PALETTE_ADD("palette", 0x80)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/aleck64.c b/src/mame/drivers/aleck64.c
index e78ed5290c0..7a724bc8889 100644
--- a/src/mame/drivers/aleck64.c
+++ b/src/mame/drivers/aleck64.c
@@ -837,7 +837,7 @@ static MACHINE_CONFIG_START( aleck64, aleck64_state )
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(aleck64_state, screen_update_n64)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c
index 8c11f28cdb1..e35127324d7 100644
--- a/src/mame/drivers/alg.c
+++ b/src/mame/drivers/alg.c
@@ -104,7 +104,7 @@ VIDEO_START_MEMBER(alg_state,alg)
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, rgb_t(0,0,0,0));
+ m_palette->set_pen_color(4096, rgb_t(0,0,0,0));
amiga_set_genlock_color(machine(), 4096);
}
@@ -457,8 +457,8 @@ static MACHINE_CONFIG_START( alg_r1, alg_state )
MCFG_SCREEN_SIZE(512*2, 262)
MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1)
- MCFG_PALETTE_LENGTH(4097)
- MCFG_PALETTE_INIT_OVERRIDE(alg_state,amiga)
+ MCFG_PALETTE_ADD("palette", 4097)
+ MCFG_PALETTE_INIT_OWNER(alg_state,amiga)
MCFG_VIDEO_START_OVERRIDE(alg_state,alg)
diff --git a/src/mame/drivers/alien.c b/src/mame/drivers/alien.c
index 3a6e15da595..29fd48a8e2c 100644
--- a/src/mame/drivers/alien.c
+++ b/src/mame/drivers/alien.c
@@ -90,7 +90,7 @@ static MACHINE_CONFIG_START( alien, alien_state )
MCFG_SCREEN_SIZE((32)*8, (32)*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c
index 39ba80a9185..668bad5e541 100644
--- a/src/mame/drivers/aliens.c
+++ b/src/mame/drivers/aliens.c
@@ -34,7 +34,7 @@ READ8_MEMBER(aliens_state::bankedram_r)
WRITE8_MEMBER(aliens_state::bankedram_w)
{
if (m_palette_selected)
- paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data);
+ m_palette->write(space, offset, data);
else
m_ram[offset] = data;
}
@@ -241,8 +241,6 @@ static MACHINE_CONFIG_START( aliens, aliens_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -250,13 +248,17 @@ static MACHINE_CONFIG_START( aliens, aliens_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(aliens_state, screen_update_aliens)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", aliens_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", aliens_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c
index 60ae750c156..8e8e611db8c 100644
--- a/src/mame/drivers/alpha68k.c
+++ b/src/mame/drivers/alpha68k.c
@@ -1964,8 +1964,8 @@ static MACHINE_CONFIG_START( sstingry, alpha68k_state )
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_sstingry)
MCFG_GFXDECODE_ADD("gfxdecode", sstingry)
- MCFG_PALETTE_LENGTH(256 + 1)
- MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,kyros)
+ MCFG_PALETTE_ADD("palette", 256 + 1)
+ MCFG_PALETTE_INIT_OWNER(alpha68k_state,kyros)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2009,9 +2009,9 @@ static MACHINE_CONFIG_START( kyros, alpha68k_state )
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_kyros)
MCFG_GFXDECODE_ADD("gfxdecode", kyros)
- MCFG_PALETTE_LENGTH(256 + 1)
+ MCFG_PALETTE_ADD("palette", 256 + 1)
- MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,kyros)
+ MCFG_PALETTE_INIT_OWNER(alpha68k_state,kyros)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2054,9 +2054,9 @@ static MACHINE_CONFIG_START( jongbou, alpha68k_state )
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_kyros)
MCFG_GFXDECODE_ADD("gfxdecode", jongbou)
- MCFG_PALETTE_LENGTH(256 + 1)
+ MCFG_PALETTE_ADD("palette", 256 + 1)
- MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,kyros)
+ MCFG_PALETTE_INIT_OWNER(alpha68k_state,kyros)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2089,8 +2089,8 @@ static MACHINE_CONFIG_START( alpha68k_I, alpha68k_state )
MCFG_GFXDECODE_ADD("gfxdecode", paddle)
- MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,paddlem)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_OWNER(alpha68k_state,paddlem)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2130,7 +2130,7 @@ static MACHINE_CONFIG_START( alpha68k_II, alpha68k_state )
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_II)
MCFG_GFXDECODE_ADD("gfxdecode", alpha68k_II)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k)
@@ -2179,7 +2179,7 @@ static MACHINE_CONFIG_START( alpha68k_II_gm, alpha68k_state )
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_II)
MCFG_GFXDECODE_ADD("gfxdecode", alpha68k_II)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k)
@@ -2222,7 +2222,7 @@ static MACHINE_CONFIG_START( alpha68k_V, alpha68k_state )
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_V)
MCFG_GFXDECODE_ADD("gfxdecode", alpha68k_V)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k)
@@ -2264,7 +2264,7 @@ static MACHINE_CONFIG_START( alpha68k_V_sb, alpha68k_state )
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_V_sb)
MCFG_GFXDECODE_ADD("gfxdecode", alpha68k_V)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k)
@@ -2306,8 +2306,8 @@ static MACHINE_CONFIG_START( tnextspc, alpha68k_state )
MCFG_GFXDECODE_ADD("gfxdecode", tnextspc)
- MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,paddlem)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_OWNER(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 fc1f6ea9c32..3fb232bfc81 100644
--- a/src/mame/drivers/amaticmg.c
+++ b/src/mame/drivers/amaticmg.c
@@ -451,7 +451,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(amaticmg);
DECLARE_PALETTE_INIT(amaticmg2);
UINT32 screen_update_amaticmg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_amaticmg2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -488,7 +488,7 @@ UINT32 amaticmg_state::screen_update_amaticmg(screen_device &screen, bitmap_ind1
/* TODO: this looks so out of place ... */
color = (m_attr[count]&0xf0)>>3;
- gfx->opaque(bitmap,cliprect,tile,color,0,0,x*4,y*8);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*4,y*8);
count++;
}
}
@@ -512,7 +512,7 @@ UINT32 amaticmg_state::screen_update_amaticmg2(screen_device &screen, bitmap_ind
tile += ((m_attr[count]&0xff)<<8);
color = 0;
- gfx->opaque(bitmap,cliprect,tile,color,0,0,x*4,y*8);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*4,y*8);
count++;
}
}
@@ -520,7 +520,7 @@ UINT32 amaticmg_state::screen_update_amaticmg2(screen_device &screen, bitmap_ind
return 0;
}
-void amaticmg_state::palette_init()
+PALETTE_INIT_MEMBER(amaticmg_state, amaticmg)
{
const UINT8 *color_prom = memregion("proms")->base();
int bit0, bit1, bit2 , r, g, b;
@@ -541,7 +541,7 @@ void amaticmg_state::palette_init()
bit2 = (color_prom[0] >> 5) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
color_prom++;
}
}
@@ -559,7 +559,7 @@ PALETTE_INIT_MEMBER(amaticmg_state,amaticmg2)
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_pen_color(i >> 1, pal5bit(r), pal5bit(g), pal5bit(b));
color_prom+=2;
}
}
@@ -884,8 +884,8 @@ static MACHINE_CONFIG_START( amaticmg, amaticmg_state )
MCFG_GFXDECODE_ADD("gfxdecode", amaticmg)
- MCFG_PALETTE_LENGTH(0x200)
-
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_INIT_OWNER(amaticmg_state, amaticmg)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -916,8 +916,9 @@ static MACHINE_CONFIG_DERIVED( amaticmg2, amaticmg )
MCFG_SCREEN_UPDATE_DRIVER(amaticmg_state, screen_update_amaticmg2)
MCFG_GFXDECODE_MODIFY("gfxdecode", amaticmg2)
- MCFG_PALETTE_INIT_OVERRIDE(amaticmg_state,amaticmg2)
- MCFG_PALETTE_LENGTH(0x10000)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 0x10000)
+ MCFG_PALETTE_INIT_OWNER(amaticmg_state,amaticmg2)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ambush.c b/src/mame/drivers/ambush.c
index 58a44cb3bd5..17d40bea828 100644
--- a/src/mame/drivers/ambush.c
+++ b/src/mame/drivers/ambush.c
@@ -243,8 +243,8 @@ static MACHINE_CONFIG_START( ambush, ambush_state )
MCFG_SCREEN_UPDATE_DRIVER(ambush_state, screen_update_ambush)
MCFG_GFXDECODE_ADD("gfxdecode", ambush)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(ambush_state, ambush)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ampoker2.c b/src/mame/drivers/ampoker2.c
index 39dc7091690..554007fec7b 100644
--- a/src/mame/drivers/ampoker2.c
+++ b/src/mame/drivers/ampoker2.c
@@ -1185,8 +1185,8 @@ static MACHINE_CONFIG_START( ampoker2, ampoker2_state )
MCFG_SCREEN_UPDATE_DRIVER(ampoker2_state, screen_update_ampoker2)
MCFG_GFXDECODE_ADD("gfxdecode", ampoker2)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(ampoker2_state, ampoker2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/amspdwy.c b/src/mame/drivers/amspdwy.c
index 4acb8e16c45..75b3c934f61 100644
--- a/src/mame/drivers/amspdwy.c
+++ b/src/mame/drivers/amspdwy.c
@@ -274,8 +274,8 @@ static MACHINE_CONFIG_START( amspdwy, amspdwy_state )
MCFG_SCREEN_UPDATE_DRIVER(amspdwy_state, screen_update_amspdwy)
MCFG_GFXDECODE_ADD("gfxdecode", amspdwy)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/angelkds.c b/src/mame/drivers/angelkds.c
index a93e743a14b..d82edfecbf3 100644
--- a/src/mame/drivers/angelkds.c
+++ b/src/mame/drivers/angelkds.c
@@ -613,7 +613,7 @@ static MACHINE_CONFIG_START( angelkds, angelkds_state )
MCFG_SCREEN_UPDATE_DRIVER(angelkds_state, screen_update_angelkds)
MCFG_GFXDECODE_ADD("gfxdecode", angelkds)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/appoooh.c b/src/mame/drivers/appoooh.c
index 214bf87e8dd..2bc46c714e6 100644
--- a/src/mame/drivers/appoooh.c
+++ b/src/mame/drivers/appoooh.c
@@ -456,9 +456,9 @@ static MACHINE_CONFIG_DERIVED( appoooh, appoooh_common )
MCFG_SCREEN_UPDATE_DRIVER(appoooh_state, screen_update_appoooh)
MCFG_GFXDECODE_ADD("gfxdecode", appoooh)
- MCFG_PALETTE_LENGTH(32*8+32*8)
+ MCFG_PALETTE_ADD("palette", 32*8+32*8)
- MCFG_PALETTE_INIT_OVERRIDE(appoooh_state,appoooh)
+ MCFG_PALETTE_INIT_OWNER(appoooh_state,appoooh)
MCFG_VIDEO_START_OVERRIDE(appoooh_state,appoooh)
MACHINE_CONFIG_END
@@ -474,9 +474,9 @@ static MACHINE_CONFIG_DERIVED( robowres, appoooh_common )
MCFG_SCREEN_UPDATE_DRIVER(appoooh_state, screen_update_robowres)
MCFG_GFXDECODE_ADD("gfxdecode", robowres)
- MCFG_PALETTE_LENGTH(32*8+32*8)
+ MCFG_PALETTE_ADD("palette", 32*8+32*8)
- MCFG_PALETTE_INIT_OVERRIDE(appoooh_state,robowres)
+ MCFG_PALETTE_INIT_OWNER(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 18fbd70ffb6..841d474be20 100644
--- a/src/mame/drivers/aquarium.c
+++ b/src/mame/drivers/aquarium.c
@@ -106,7 +106,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, aquarium_state )
AM_RANGE(0xc01000, 0xc01fff) AM_RAM_WRITE(aquarium_bak_videoram_w) AM_SHARE("bak_videoram")
AM_RANGE(0xc02000, 0xc03fff) AM_RAM_WRITE(aquarium_txt_videoram_w) AM_SHARE("txt_videoram")
AM_RANGE(0xc80000, 0xc81fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xd00000, 0xd00fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd00000, 0xd00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd80014, 0xd8001f) AM_WRITEONLY AM_SHARE("scroll")
AM_RANGE(0xd80068, 0xd80069) AM_WRITENOP /* probably not used */
AM_RANGE(0xd80080, 0xd80081) AM_READ_PORT("DSW")
@@ -316,8 +316,8 @@ static MACHINE_CONFIG_START( aquarium, aquarium_state )
MCFG_SCREEN_UPDATE_DRIVER(aquarium_state, screen_update_aquarium)
MCFG_GFXDECODE_ADD("gfxdecode", aquarium)
- MCFG_PALETTE_LENGTH(0x1000/2)
-
+ MCFG_PALETTE_ADD("palette", 0x1000/2)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/arabian.c b/src/mame/drivers/arabian.c
index e57321501a5..77362ae8aa6 100644
--- a/src/mame/drivers/arabian.c
+++ b/src/mame/drivers/arabian.c
@@ -371,8 +371,8 @@ static MACHINE_CONFIG_START( arabian, arabian_state )
MCFG_SCREEN_VISIBLE_AREA(0, 255, 11, 244)
MCFG_SCREEN_UPDATE_DRIVER(arabian_state, screen_update_arabian)
- MCFG_PALETTE_LENGTH(256*32)
-
+ MCFG_PALETTE_ADD("palette", 256*32)
+ MCFG_PALETTE_INIT_OWNER(arabian_state, arabian)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/arcadecl.c b/src/mame/drivers/arcadecl.c
index 1eff42217ef..5031847fbeb 100644
--- a/src/mame/drivers/arcadecl.c
+++ b/src/mame/drivers/arcadecl.c
@@ -328,7 +328,7 @@ static MACHINE_CONFIG_START( arcadecl, arcadecl_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", arcadecl)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "screen", arcadecl_state::s_mob_config)
MCFG_ATARI_MOTION_OBJECTS_GFXDECODE("gfxdecode")
diff --git a/src/mame/drivers/arcadia.c b/src/mame/drivers/arcadia.c
index 8408eeea53c..460bada4404 100644
--- a/src/mame/drivers/arcadia.c
+++ b/src/mame/drivers/arcadia.c
@@ -346,8 +346,8 @@ static MACHINE_CONFIG_START( arcadia, arcadia_amiga_state )
MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1)
MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga)
- MCFG_PALETTE_LENGTH(4096)
- MCFG_PALETTE_INIT_OVERRIDE(arcadia_amiga_state,amiga)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_INIT_OWNER(arcadia_amiga_state,amiga)
MCFG_VIDEO_START_OVERRIDE(arcadia_amiga_state,amiga)
diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c
index a427a5a2556..cc674b0906d 100644
--- a/src/mame/drivers/argus.c
+++ b/src/mame/drivers/argus.c
@@ -559,7 +559,7 @@ static MACHINE_CONFIG_START( argus, argus_state )
MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_argus)
MCFG_GFXDECODE_ADD("gfxdecode", argus)
- MCFG_PALETTE_LENGTH(896)
+ MCFG_PALETTE_ADD("palette", 896)
MCFG_VIDEO_START_OVERRIDE(argus_state,argus)
MCFG_VIDEO_RESET_OVERRIDE(argus_state,argus)
@@ -604,7 +604,7 @@ static MACHINE_CONFIG_START( valtric, argus_state )
MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_valtric)
MCFG_GFXDECODE_ADD("gfxdecode", valtric)
- MCFG_PALETTE_LENGTH(768)
+ MCFG_PALETTE_ADD("palette", 768)
MCFG_VIDEO_START_OVERRIDE(argus_state,valtric)
MCFG_VIDEO_RESET_OVERRIDE(argus_state,valtric)
@@ -649,7 +649,7 @@ static MACHINE_CONFIG_START( butasan, argus_state )
MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_butasan)
MCFG_GFXDECODE_ADD("gfxdecode", butasan)
- MCFG_PALETTE_LENGTH(768)
+ MCFG_PALETTE_ADD("palette", 768)
MCFG_VIDEO_START_OVERRIDE(argus_state,butasan)
MCFG_VIDEO_RESET_OVERRIDE(argus_state,butasan)
diff --git a/src/mame/drivers/aristmk4.c b/src/mame/drivers/aristmk4.c
index 48455b5a34b..0d557bb5848 100644
--- a/src/mame/drivers/aristmk4.c
+++ b/src/mame/drivers/aristmk4.c
@@ -348,7 +348,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(aristmk4);
DECLARE_PALETTE_INIT(lions);
UINT32 screen_update_aristmk4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(note_input_reset);
@@ -426,7 +426,7 @@ UINT32 aristmk4_state::screen_update_aristmk4(screen_device &screen, bitmap_ind1
// as we only update the background, not the entire display.
flipx = ((m_mkiv_vram[count]) & 0x04);
flipy = ((m_mkiv_vram[count]) & 0x08);
- gfx->opaque(bitmap,cliprect,tile,color,flipx,flipy,(38-x-1)<<3,(27-y-1)<<3);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color,flipx,flipy,(38-x-1)<<3,(27-y-1)<<3);
count+=2;
}
}
@@ -1606,12 +1606,12 @@ static I8255A_INTERFACE( ppi8255_intf )
/* same as Casino Winner HW */
-void aristmk4_state::palette_init()
+PALETTE_INIT_MEMBER(aristmk4_state, aristmk4)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
- for (i = 0;i < machine().total_colors();i++)
+ for (i = 0;i < palette.entries();i++)
{
int bit0,bit1,bit2,r,g,b;
@@ -1627,7 +1627,7 @@ void aristmk4_state::palette_init()
bit2 = (color_prom[0] >> 7) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
color_prom++;
}
}
@@ -1700,7 +1700,8 @@ static MACHINE_CONFIG_START( aristmk4, aristmk4_state )
MCFG_SCREEN_UPDATE_DRIVER(aristmk4_state, screen_update_aristmk4)
MCFG_GFXDECODE_ADD("gfxdecode", aristmk4)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(aristmk4_state, aristmk4)
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_intf )
@@ -1752,7 +1753,7 @@ PALETTE_INIT_MEMBER(aristmk4_state,lions)
{
int i;
- for (i = 0;i < machine().total_colors();i++)
+ for (i = 0;i < palette.entries();i++)
{
int bit0,bit1,r,g,b;
@@ -1766,12 +1767,13 @@ PALETTE_INIT_MEMBER(aristmk4_state,lions)
bit1 = (i >> 5) & 0x01;
r = 0x4f * bit0 + 0xa8 * bit1;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
static MACHINE_CONFIG_DERIVED( 86lions, aristmk4 )
- MCFG_PALETTE_INIT_OVERRIDE(aristmk4_state,lions)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(aristmk4_state,lions)
MACHINE_CONFIG_END
ROM_START( 3bagflvt )
diff --git a/src/mame/drivers/aristmk5.c b/src/mame/drivers/aristmk5.c
index ee701523dd0..0103f615365 100644
--- a/src/mame/drivers/aristmk5.c
+++ b/src/mame/drivers/aristmk5.c
@@ -436,11 +436,10 @@ static MACHINE_CONFIG_START( aristmk5, aristmk5_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(640, 400)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1)
-
- MCFG_PALETTE_LENGTH(0x200)
-
MCFG_SCREEN_UPDATE_DRIVER(archimedes_state, screen_update)
+ MCFG_PALETTE_ADD("palette", 0x200)
+
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_DAC_ADD("dac0")
MCFG_SOUND_ROUTE(0, "mono", 0.10)
@@ -482,11 +481,10 @@ static MACHINE_CONFIG_START( aristmk5_usa, aristmk5_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(640, 400)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1)
-
- MCFG_PALETTE_LENGTH(0x200)
-
MCFG_SCREEN_UPDATE_DRIVER(archimedes_state, screen_update)
+ MCFG_PALETTE_ADD("palette", 0x200)
+
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_DAC_ADD("dac0")
MCFG_SOUND_ROUTE(0, "mono", 0.10)
diff --git a/src/mame/drivers/aristmk6.c b/src/mame/drivers/aristmk6.c
index e64c33a2238..c6843d076e8 100644
--- a/src/mame/drivers/aristmk6.c
+++ b/src/mame/drivers/aristmk6.c
@@ -62,7 +62,7 @@ UINT32 aristmk6_state::screen_update_aristmk6(screen_device &screen, bitmap_rgb3
popmessage("%d %d %04x %d",m_test_x,m_test_y,m_start_offs,m_type);
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
count = (m_start_offs);
@@ -97,7 +97,7 @@ UINT32 aristmk6_state::screen_update_aristmk6(screen_device &screen, bitmap_rgb3
color = blit_ram[count];
if(cliprect.contains(x, y))
- bitmap.pix32(y, x) = machine().pens[color];
+ bitmap.pix32(y, x) = m_palette->pen(color);
count++;
}
@@ -146,7 +146,7 @@ static MACHINE_CONFIG_START( aristmk6, aristmk6_state )
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
MCFG_SCREEN_UPDATE_DRIVER(aristmk6_state, screen_update_aristmk6)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/arkanoid.c b/src/mame/drivers/arkanoid.c
index 0a9e15c6845..2ac4cb26e10 100644
--- a/src/mame/drivers/arkanoid.c
+++ b/src/mame/drivers/arkanoid.c
@@ -1220,9 +1220,7 @@ static MACHINE_CONFIG_START( arkanoid, arkanoid_state )
MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_arkanoid)
MCFG_GFXDECODE_ADD("gfxdecode", arkanoid)
- MCFG_PALETTE_LENGTH(512)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 512)
MCFG_VIDEO_START_OVERRIDE(arkanoid_state,arkanoid)
/* sound hardware */
@@ -1253,9 +1251,7 @@ static MACHINE_CONFIG_START( hexa, arkanoid_state )
MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_hexa)
MCFG_GFXDECODE_ADD("gfxdecode", hexa)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_VIDEO_START_OVERRIDE(arkanoid_state,arkanoid)
/* sound hardware */
@@ -1298,9 +1294,7 @@ static MACHINE_CONFIG_START( brixian, arkanoid_state )
MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_hexa)
MCFG_GFXDECODE_ADD("gfxdecode", arkanoid)
- MCFG_PALETTE_LENGTH(512)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 512)
MCFG_VIDEO_START_OVERRIDE(arkanoid_state,arkanoid)
/* sound hardware */
diff --git a/src/mame/drivers/armedf.c b/src/mame/drivers/armedf.c
index fcb38717090..b462eb01663 100644
--- a/src/mame/drivers/armedf.c
+++ b/src/mame/drivers/armedf.c
@@ -389,7 +389,7 @@ static ADDRESS_MAP_START( terraf_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x0603ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x060400, 0x063fff) AM_RAM
- AM_RANGE(0x064000, 0x064fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x064000, 0x064fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(nb1414m4_text_videoram_r,nb1414m4_text_videoram_w,0x00ff)
AM_RANGE(0x06a000, 0x06a9ff) AM_RAM
AM_RANGE(0x06c000, 0x06cfff) AM_RAM AM_SHARE("spr_pal_clut")
@@ -420,7 +420,7 @@ static ADDRESS_MAP_START( cclimbr2_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x063fff) AM_RAM
- AM_RANGE(0x064000, 0x064fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x064000, 0x064fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(nb1414m4_text_videoram_r,nb1414m4_text_videoram_w,0x00ff)
AM_RANGE(0x06a000, 0x06a9ff) AM_RAM
AM_RANGE(0x06c000, 0x06cfff) AM_RAM AM_SHARE("spr_pal_clut")
@@ -442,7 +442,7 @@ static ADDRESS_MAP_START( legion_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x063fff) AM_RAM
- AM_RANGE(0x064000, 0x064fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x064000, 0x064fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(nb1414m4_text_videoram_r,nb1414m4_text_videoram_w,0x00ff)
AM_RANGE(0x06a000, 0x06a9ff) AM_RAM
AM_RANGE(0x06c000, 0x06cfff) AM_RAM AM_SHARE("spr_pal_clut")
@@ -474,7 +474,7 @@ static ADDRESS_MAP_START( legiono_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x063fff) AM_RAM
- AM_RANGE(0x064000, 0x064fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x064000, 0x064fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(nb1414m4_text_videoram_r,nb1414m4_text_videoram_w,0x00ff)
AM_RANGE(0x06a000, 0x06a9ff) AM_RAM
AM_RANGE(0x06c000, 0x06cfff) AM_RAM AM_SHARE("spr_pal_clut")
@@ -499,7 +499,7 @@ static ADDRESS_MAP_START( armedf_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x066000, 0x066fff) AM_RAM_WRITE(armedf_bg_videoram_w) AM_SHARE("bg_videoram")
AM_RANGE(0x067000, 0x067fff) AM_RAM_WRITE(armedf_fg_videoram_w) AM_SHARE("fg_videoram")
AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(armedf_text_videoram_r,armedf_text_videoram_w,0x00ff)
- AM_RANGE(0x06a000, 0x06afff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x06a000, 0x06afff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x06b000, 0x06bfff) AM_RAM AM_SHARE("spr_pal_clut")
AM_RANGE(0x06c000, 0x06c001) AM_READ_PORT("P1")
AM_RANGE(0x06c002, 0x06c003) AM_READ_PORT("P2")
@@ -672,7 +672,7 @@ static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16, bigfghtr_state )
AM_RANGE(0x086000, 0x086fff) AM_RAM_WRITE(armedf_bg_videoram_w) AM_SHARE("bg_videoram")
AM_RANGE(0x087000, 0x087fff) AM_RAM_WRITE(armedf_fg_videoram_w) AM_SHARE("fg_videoram")
AM_RANGE(0x088000, 0x089fff) AM_READWRITE8(armedf_text_videoram_r,armedf_text_videoram_w,0x00ff)
- AM_RANGE(0x08a000, 0x08afff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x08a000, 0x08afff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08b000, 0x08bfff) AM_RAM AM_SHARE("spr_pal_clut")
AM_RANGE(0x08c000, 0x08c001) AM_READ_PORT("P1")
AM_RANGE(0x08c002, 0x08c003) AM_READ_PORT("P2")
@@ -1189,7 +1189,8 @@ static MACHINE_CONFIG_START( terraf, armedf_state )
MCFG_GFXDECODE_ADD("gfxdecode", armedf)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -1237,7 +1238,8 @@ static MACHINE_CONFIG_START( terrafjb, armedf_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", armedf)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -1281,7 +1283,8 @@ static MACHINE_CONFIG_START( kozure, armedf_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", armedf)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -1325,7 +1328,8 @@ static MACHINE_CONFIG_START( armedf, armedf_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", armedf)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -1369,7 +1373,8 @@ static MACHINE_CONFIG_START( cclimbr2, armedf_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", armedf)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -1413,7 +1418,8 @@ static MACHINE_CONFIG_START( legion, armedf_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", armedf)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -1457,7 +1463,8 @@ static MACHINE_CONFIG_START( legiono, armedf_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", armedf)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -1512,7 +1519,8 @@ static MACHINE_CONFIG_START( bigfghtr, bigfghtr_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", armedf)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
diff --git a/src/mame/drivers/ashnojoe.c b/src/mame/drivers/ashnojoe.c
index 5d0508aa684..454da1fcfbb 100644
--- a/src/mame/drivers/ashnojoe.c
+++ b/src/mame/drivers/ashnojoe.c
@@ -104,7 +104,7 @@ static ADDRESS_MAP_START( ashnojoe_map, AS_PROGRAM, 16, ashnojoe_state )
AM_RANGE(0x046000, 0x046fff) AM_RAM_WRITE(ashnojoe_tileram6_w) AM_SHARE("tileram_6")
AM_RANGE(0x047000, 0x047fff) AM_RAM_WRITE(ashnojoe_tileram7_w) AM_SHARE("tileram_7")
AM_RANGE(0x048000, 0x048fff) AM_RAM_WRITE(ashnojoe_tileram_w) AM_SHARE("tileram")
- AM_RANGE(0x049000, 0x049fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x049000, 0x049fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x04a000, 0x04a001) AM_READ_PORT("P1")
AM_RANGE(0x04a002, 0x04a003) AM_READ_PORT("P2")
AM_RANGE(0x04a004, 0x04a005) AM_READ_PORT("DSW")
@@ -357,8 +357,8 @@ static MACHINE_CONFIG_START( ashnojoe, ashnojoe_state )
MCFG_SCREEN_UPDATE_DRIVER(ashnojoe_state, screen_update_ashnojoe)
MCFG_GFXDECODE_ADD("gfxdecode", ashnojoe)
- MCFG_PALETTE_LENGTH(0x1000/2)
-
+ MCFG_PALETTE_ADD("palette", 0x1000/2)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/asterix.c b/src/mame/drivers/asterix.c
index 91a9cb2673a..9fb1b48ba48 100644
--- a/src/mame/drivers/asterix.c
+++ b/src/mame/drivers/asterix.c
@@ -165,7 +165,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, asterix_state )
AM_RANGE(0x180000, 0x1807ff) AM_DEVREADWRITE("k053244", k05324x_device, k053245_word_r, k053245_word_w)
AM_RANGE(0x180800, 0x180fff) AM_RAM // extra RAM, or mirror for the above?
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE("k053244", k05324x_device, k053244_word_r, k053244_word_w)
- AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x280000, 0x280fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x30001f) AM_DEVREADWRITE("k053244", k05324x_device, k053244_lsb_r, k053244_lsb_w)
AM_RANGE(0x380000, 0x380001) AM_READ_PORT("IN0")
AM_RANGE(0x380002, 0x380003) AM_READ_PORT("IN1")
@@ -281,8 +281,6 @@ static MACHINE_CONFIG_START( asterix, asterix_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -290,13 +288,17 @@ static MACHINE_CONFIG_START( asterix, asterix_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(asterix_state, screen_update_asterix)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K056832_ADD("k056832", asterix_k056832_intf)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K053244_ADD("k053244", asterix_k05324x_intf)
MCFG_K053244_GFXDECODE("gfxdecode")
+ MCFG_K053244_PALETTE("palette")
MCFG_K053251_ADD("k053251")
/* sound hardware */
diff --git a/src/mame/drivers/astrcorp.c b/src/mame/drivers/astrcorp.c
index 30b99cef54f..dc370753230 100644
--- a/src/mame/drivers/astrcorp.c
+++ b/src/mame/drivers/astrcorp.c
@@ -149,7 +149,7 @@ void astrocorp_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clipre
{
for (xwrap = 0 ; xwrap <= 0x200 ; xwrap += 0x200)
{
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
code, 0,
0, 0,
sx + x * 16 - xwrap, sy + y * 16 - ywrap, 0xff);
@@ -166,7 +166,7 @@ UINT32 astrocorp_state::screen_update_astrocorp(screen_device &screen, bitmap_in
if (m_screen_enable & 1)
copybitmap(bitmap, m_bitmap, 0,0,0,0, cliprect);
else
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
return 0;
}
@@ -290,7 +290,7 @@ READ16_MEMBER(astrocorp_state::astrocorp_unk_r)
WRITE16_MEMBER(astrocorp_state::astrocorp_palette_w)
{
COMBINE_DATA(&m_paletteram[offset]);
- palette_set_color_rgb(machine(), offset,
+ m_palette->set_pen_color(offset,
pal5bit((m_paletteram[offset] >> 0) & 0x1f),
pal6bit((m_paletteram[offset] >> 5) & 0x3f),
pal5bit((m_paletteram[offset] >> 11) & 0x1f)
@@ -494,7 +494,7 @@ static MACHINE_CONFIG_START( showhand, astrocorp_state )
MCFG_SCREEN_UPDATE_DRIVER(astrocorp_state, screen_update_astrocorp)
MCFG_GFXDECODE_ADD("gfxdecode", astrocorp)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_START_OVERRIDE(astrocorp_state,astrocorp)
@@ -545,7 +545,7 @@ static MACHINE_CONFIG_START( skilldrp, astrocorp_state )
MCFG_SCREEN_UPDATE_DRIVER(astrocorp_state, screen_update_astrocorp)
MCFG_GFXDECODE_ADD("gfxdecode", astrocorp)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_START_OVERRIDE(astrocorp_state,astrocorp)
diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c
index 67a8876e78a..b9cce169924 100644
--- a/src/mame/drivers/astrocde.c
+++ b/src/mame/drivers/astrocde.c
@@ -1273,7 +1273,8 @@ static MACHINE_CONFIG_START( astrocade_base, astrocde_state )
/* each game has its own map */
/* video hardware */
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(astrocde_state, astrocde)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(ASTROCADE_CLOCK, 455, 0, 352, 262, 0, 240)
@@ -1289,9 +1290,10 @@ static MACHINE_CONFIG_DERIVED( astrocade_16color_base, astrocade_base )
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 4096)
- MCFG_PALETTE_INIT_OVERRIDE(astrocde_state,profpac)
+ MCFG_PALETTE_INIT_OWNER(astrocde_state,profpac)
MCFG_VIDEO_START_OVERRIDE(astrocde_state,profpac)
MCFG_SCREEN_MODIFY("screen")
diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c
index 288411828e0..b57114140d3 100644
--- a/src/mame/drivers/asuka.c
+++ b/src/mame/drivers/asuka.c
@@ -895,14 +895,16 @@ static MACHINE_CONFIG_START( bonzeadv, asuka_state )
MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
MCFG_GFXDECODE_ADD("gfxdecode", asuka)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_PC090OJ_ADD("pc090oj", bonzeadv_pc090oj_intf)
MCFG_PC090OJ_GFXDECODE("gfxdecode")
+ MCFG_PC090OJ_PALETTE("palette")
MCFG_TC0100SCN_ADD("tc0100scn", asuka_tc0100scn_intf)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr", asuka_tc0110pcr_intf)
-
+ MCFG_TC0110PCR_PALETTE("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -940,13 +942,15 @@ static MACHINE_CONFIG_START( asuka, asuka_state )
MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
MCFG_GFXDECODE_ADD("gfxdecode", asuka)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_PC090OJ_ADD("pc090oj", asuka_pc090oj_intf)
MCFG_PC090OJ_GFXDECODE("gfxdecode")
+ MCFG_PC090OJ_PALETTE("palette")
MCFG_TC0100SCN_ADD("tc0100scn", asuka_tc0100scn_intf)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr", asuka_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -993,13 +997,15 @@ static MACHINE_CONFIG_START( cadash, asuka_state )
MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
MCFG_GFXDECODE_ADD("gfxdecode", asuka)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_PC090OJ_ADD("pc090oj", asuka_pc090oj_intf)
MCFG_PC090OJ_GFXDECODE("gfxdecode")
+ MCFG_PC090OJ_PALETTE("palette")
MCFG_TC0100SCN_ADD("tc0100scn", cadash_tc0100scn_intf)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr", asuka_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1038,13 +1044,15 @@ static MACHINE_CONFIG_START( mofflott, asuka_state )
MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
MCFG_GFXDECODE_ADD("gfxdecode", asuka)
- MCFG_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */
+ MCFG_PALETTE_ADD("palette", 4096) /* only Mofflott uses full palette space */
MCFG_PC090OJ_ADD("pc090oj", bonzeadv_pc090oj_intf)
MCFG_PC090OJ_GFXDECODE("gfxdecode")
+ MCFG_PC090OJ_PALETTE("palette")
MCFG_TC0100SCN_ADD("tc0100scn", cadash_tc0100scn_intf)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr", asuka_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1087,13 +1095,15 @@ static MACHINE_CONFIG_START( galmedes, asuka_state )
MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
MCFG_GFXDECODE_ADD("gfxdecode", asuka)
- MCFG_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */
+ MCFG_PALETTE_ADD("palette", 4096) /* only Mofflott uses full palette space */
MCFG_PC090OJ_ADD("pc090oj", bonzeadv_pc090oj_intf)
MCFG_PC090OJ_GFXDECODE("gfxdecode")
+ MCFG_PC090OJ_PALETTE("palette")
MCFG_TC0100SCN_ADD("tc0100scn", cadash_tc0100scn_intf)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr", asuka_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1132,13 +1142,15 @@ static MACHINE_CONFIG_START( eto, asuka_state )
MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
MCFG_GFXDECODE_ADD("gfxdecode", asuka)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_PC090OJ_ADD("pc090oj", bonzeadv_pc090oj_intf)
MCFG_PC090OJ_GFXDECODE("gfxdecode")
+ MCFG_PC090OJ_PALETTE("palette")
MCFG_TC0100SCN_ADD("tc0100scn", cadash_tc0100scn_intf)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr", asuka_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/atarifb.c b/src/mame/drivers/atarifb.c
index ba8f72949a9..ba346cee594 100644
--- a/src/mame/drivers/atarifb.c
+++ b/src/mame/drivers/atarifb.c
@@ -117,25 +117,25 @@
*
*************************************/
-void atarifb_state::palette_init()
+PALETTE_INIT_MEMBER(atarifb_state, atarifb)
{
/* chars */
- palette_set_color(machine(), 0, rgb_t(0xff,0xff,0xff)); /* white */
- palette_set_color(machine(), 1, rgb_t(0x00,0x00,0x00)); /* black */
+ palette.set_pen_color(0, rgb_t(0xff,0xff,0xff)); /* white */
+ palette.set_pen_color(1, rgb_t(0x00,0x00,0x00)); /* black */
/* sprites */
- palette_set_color(machine(), 2, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
- palette_set_color(machine(), 3, rgb_t(0xff,0xff,0xff)); /* white */
- palette_set_color(machine(), 4, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
- palette_set_color(machine(), 5, rgb_t(0x00,0x00,0x00)); /* black */
+ palette.set_pen_color(2, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
+ palette.set_pen_color(3, rgb_t(0xff,0xff,0xff)); /* white */
+ palette.set_pen_color(4, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
+ palette.set_pen_color(5, rgb_t(0x00,0x00,0x00)); /* black */
/* sprite masks */
- palette_set_color(machine(), 6, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
- palette_set_color(machine(), 7, rgb_t(0x80,0x80,0x80)); /* grey */
- palette_set_color(machine(), 8, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
- palette_set_color(machine(), 9, rgb_t(0x00,0x00,0x00)); /* black */
- palette_set_color(machine(), 10, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
- palette_set_color(machine(), 11, rgb_t(0xff,0xff,0xff)); /* white */
+ palette.set_pen_color(6, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
+ palette.set_pen_color(7, rgb_t(0x80,0x80,0x80)); /* grey */
+ palette.set_pen_color(8, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
+ palette.set_pen_color(9, rgb_t(0x00,0x00,0x00)); /* black */
+ palette.set_pen_color(10, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */
+ palette.set_pen_color(11, rgb_t(0xff,0xff,0xff)); /* white */
}
@@ -563,8 +563,8 @@ static MACHINE_CONFIG_START( atarifb, atarifb_state )
MCFG_SCREEN_UPDATE_DRIVER(atarifb_state, screen_update_atarifb)
MCFG_GFXDECODE_ADD("gfxdecode", atarifb)
- MCFG_PALETTE_LENGTH(12)
-
+ MCFG_PALETTE_ADD("palette", 12)
+ MCFG_PALETTE_INIT_OWNER(atarifb_state, atarifb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/atarig1.c b/src/mame/drivers/atarig1.c
index 3f4d6d2ae49..8af4802e2ba 100644
--- a/src/mame/drivers/atarig1.c
+++ b/src/mame/drivers/atarig1.c
@@ -436,7 +436,7 @@ static MACHINE_CONFIG_START( atarig1, atarig1_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", atarig1)
- MCFG_PALETTE_LENGTH(1280)
+ MCFG_PALETTE_ADD("palette", 1280)
/* initialize the playfield */
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, atarig1_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 64,64)
diff --git a/src/mame/drivers/atarig42.c b/src/mame/drivers/atarig42.c
index 3489466bdd9..8da6db91bdc 100644
--- a/src/mame/drivers/atarig42.c
+++ b/src/mame/drivers/atarig42.c
@@ -546,7 +546,7 @@ static MACHINE_CONFIG_START( atarig42, atarig42_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", atarig42)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_TILEMAP_ADD_CUSTOM("playfield", 2, atarig42_state, get_playfield_tile_info, 8,8, atarig42_playfield_scan, 128,64)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, atarig42_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0)
diff --git a/src/mame/drivers/atarigt.c b/src/mame/drivers/atarigt.c
index 72de969e0be..b3e6e0ffd89 100644
--- a/src/mame/drivers/atarigt.c
+++ b/src/mame/drivers/atarigt.c
@@ -832,7 +832,7 @@ static MACHINE_CONFIG_START( atarigt, atarigt_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", atarigt)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD("palette", 32768)
MCFG_TILEMAP_ADD_CUSTOM("playfield", 2, atarigt_state, get_playfield_tile_info, 8,8, atarigt_playfield_scan, 128,64)
MCFG_TILEMAP_ADD_STANDARD("alpha", 2, atarigt_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64, 32)
diff --git a/src/mame/drivers/atarigx2.c b/src/mame/drivers/atarigx2.c
index c9da8acb9fd..d13266705f9 100644
--- a/src/mame/drivers/atarigx2.c
+++ b/src/mame/drivers/atarigx2.c
@@ -1464,7 +1464,7 @@ static MACHINE_CONFIG_START( atarigx2, atarigx2_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", atarigx2)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_TILEMAP_ADD_CUSTOM("playfield", 2, atarigx2_state, get_playfield_tile_info, 8,8, atarigx2_playfield_scan, 128,64)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, atarigx2_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0)
diff --git a/src/mame/drivers/atarisy1.c b/src/mame/drivers/atarisy1.c
index 0159d71b1bd..c7cd11f2447 100644
--- a/src/mame/drivers/atarisy1.c
+++ b/src/mame/drivers/atarisy1.c
@@ -442,7 +442,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarisy1_state )
AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield")
AM_RANGE(0xa02000, 0xa02fff) AM_RAM_WRITE(atarisy1_spriteram_w) AM_SHARE("mob")
AM_RANGE(0xa03000, 0xa03fff) AM_RAM_DEVWRITE("alpha", tilemap_device, write) AM_SHARE("alpha")
- AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xb00000, 0xb007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf00000, 0xf00fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0xf20000, 0xf20007) AM_READ(trakball_r)
AM_RANGE(0xf40000, 0xf4001f) AM_READWRITE(joystick_r, joystick_w)
@@ -729,7 +729,9 @@ static MACHINE_CONFIG_START( atarisy1, atarisy1_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", atarisy1)
- MCFG_PALETTE_LENGTH(1024)
+
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(IIIIRRRRGGGGBBBB)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, atarisy1_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 64,64)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, atarisy1_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0)
diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c
index ab30729adbe..08832135fa0 100644
--- a/src/mame/drivers/atarisy2.c
+++ b/src/mame/drivers/atarisy2.c
@@ -1237,7 +1237,7 @@ static MACHINE_CONFIG_START( atarisy2, atarisy2_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", atarisy2)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, atarisy2_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 128,64)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, atarisy2_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,48, 0)
diff --git a/src/mame/drivers/atarisy4.c b/src/mame/drivers/atarisy4.c
index ef0a4a26a11..d397abf91a4 100644
--- a/src/mame/drivers/atarisy4.c
+++ b/src/mame/drivers/atarisy4.c
@@ -195,8 +195,8 @@ UINT32 atarisy4_state::screen_update_atarisy4(screen_device &screen, bitmap_rgb3
{
UINT16 data = *src++;
- *dest++ = machine().pens[data & 0xff];
- *dest++ = machine().pens[data >> 8];
+ *dest++ = m_palette->pen(data & 0xff);
+ *dest++ = m_palette->pen(data >> 8);
}
}
return 0;
@@ -400,7 +400,7 @@ void atarisy4_state::execute_gpu_command()
m_b_color_table[table_offs] = val;
/* Update */
- palette_set_color(machine(), table_offs, rgb_t(m_r_color_table[table_offs], m_g_color_table[table_offs], m_b_color_table[table_offs]));
+ m_palette->set_pen_color(table_offs, rgb_t(m_r_color_table[table_offs], m_g_color_table[table_offs], m_b_color_table[table_offs]));
++table_offs;
++offset;
@@ -753,7 +753,7 @@ static MACHINE_CONFIG_START( atarisy4, atarisy4_state )
MCFG_SCREEN_RAW_PARAMS(32000000/2, 660, 0, 512, 404, 0, 384)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_UPDATE_DRIVER(atarisy4_state, screen_update_atarisy4)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ataxx.c b/src/mame/drivers/ataxx.c
index 9b6aa23f567..17c85b40d0d 100644
--- a/src/mame/drivers/ataxx.c
+++ b/src/mame/drivers/ataxx.c
@@ -51,7 +51,7 @@ static ADDRESS_MAP_START( master_map_program, AS_PROGRAM, 8, leland_state )
AM_RANGE(0x2000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xdfff) AM_ROMBANK("bank2") AM_WRITE(ataxx_battery_ram_w) AM_SHARE("battery")
AM_RANGE(0xe000, 0xf7ff) AM_RAM
- AM_RANGE(0xf800, 0xffff) AM_READWRITE(ataxx_paletteram_and_misc_r, ataxx_paletteram_and_misc_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf800, 0xffff) AM_READWRITE(ataxx_paletteram_and_misc_r, ataxx_paletteram_and_misc_w) AM_SHARE("palette")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/atetris.c b/src/mame/drivers/atetris.c
index 11affe4fc47..b4717176f6a 100644
--- a/src/mame/drivers/atetris.c
+++ b/src/mame/drivers/atetris.c
@@ -192,7 +192,7 @@ WRITE8_MEMBER(atetris_state::nvram_enable_w)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, atetris_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(atetris_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0300) AM_RAM_WRITE(paletteram_RRRGGGBB_byte_w) AM_SHARE("paletteram")
+ AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0300) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x2400, 0x25ff) AM_MIRROR(0x0200) AM_RAM_WRITE(nvram_w) AM_SHARE("nvram")
AM_RANGE(0x2800, 0x280f) AM_MIRROR(0x03e0) AM_DEVREADWRITE("pokey1", pokey_device, read, write)
AM_RANGE(0x2810, 0x281f) AM_MIRROR(0x03e0) AM_DEVREADWRITE("pokey2", pokey_device, read, write)
@@ -209,7 +209,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( atetrisb2_map, AS_PROGRAM, 8, atetris_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(atetris_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(paletteram_RRRGGGBB_byte_w) AM_SHARE("paletteram")
+ AM_RANGE(0x2000, 0x20ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x2400, 0x25ff) AM_RAM_WRITE(nvram_w) AM_SHARE("nvram")
AM_RANGE(0x2802, 0x2802) AM_DEVWRITE("sn1", sn76496_device, write)
AM_RANGE(0x2804, 0x2804) AM_DEVWRITE("sn2", sn76496_device, write)
@@ -332,8 +332,10 @@ static MACHINE_CONFIG_START( atetris, atetris_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", atetris)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(RRRGGGBB)
+
MCFG_SCREEN_ADD("screen", RASTER)
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
@@ -364,7 +366,9 @@ static MACHINE_CONFIG_START( atetrisb2, atetris_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", atetris)
- MCFG_PALETTE_LENGTH(256)
+
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(RRRGGGBB)
MCFG_SCREEN_ADD("screen", RASTER)
/* note: these parameters are from published specs, not derived */
diff --git a/src/mame/drivers/atlantis.c b/src/mame/drivers/atlantis.c
index 8b7900bd659..2d70c8fdd35 100644
--- a/src/mame/drivers/atlantis.c
+++ b/src/mame/drivers/atlantis.c
@@ -154,8 +154,7 @@ static MACHINE_CONFIG_START( mwskins, atlantis_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(atlantis_state, screen_update_mwskins)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, BBBBB_GGGGG_RRRRR)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD_BBBBBGGGGGRRRRR("palette")
/* sound hardware */
MCFG_FRAGMENT_ADD(dcs2_audio_denver)
diff --git a/src/mame/drivers/atronic.c b/src/mame/drivers/atronic.c
index 6c78d1b283a..ea389a0a52c 100644
--- a/src/mame/drivers/atronic.c
+++ b/src/mame/drivers/atronic.c
@@ -69,7 +69,7 @@ static MACHINE_CONFIG_START( atronic, atronic_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette", 8)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/atvtrack.c b/src/mame/drivers/atvtrack.c
index bd7030decb4..afc4d55121d 100644
--- a/src/mame/drivers/atvtrack.c
+++ b/src/mame/drivers/atvtrack.c
@@ -409,7 +409,7 @@ static MACHINE_CONFIG_START( atvtrack, atvtrack_state )
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
MCFG_SCREEN_UPDATE_DRIVER(atvtrack_state, screen_update_atvtrack)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/avt.c b/src/mame/drivers/avt.c
index 7205b611a2f..6ad872a6ec9 100644
--- a/src/mame/drivers/avt.c
+++ b/src/mame/drivers/avt.c
@@ -445,7 +445,7 @@ public:
DECLARE_WRITE8_MEMBER(debug_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(avt);
UINT32 screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(avt_vblank_irq);
};
@@ -523,7 +523,7 @@ UINT32 avt_state::screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap,
UINT16 tile = m_videoram[count] | ((m_colorram[count] & 1) << 8);
UINT8 color = (m_colorram[count] & 0xf0) >> 4;
- gfx->opaque(bitmap,cliprect,tile,color,0,0,x*8,(y*8));
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*8,(y*8));
count++;
}
@@ -533,7 +533,7 @@ UINT32 avt_state::screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap,
}
-void avt_state::palette_init()
+PALETTE_INIT_MEMBER(avt_state, avt)
{
const UINT8 *color_prom = memregion("proms")->base();
/* prom bits
@@ -549,7 +549,7 @@ void avt_state::palette_init()
/* 0000BGRI */
if (color_prom == 0) return;
- for (j = 0; j < machine().total_colors(); j++)
+ for (j = 0; j < palette.entries(); j++)
{
int bit1, bit2, bit3, r, g, b, inten, intenmin, intenmax, i;
@@ -578,9 +578,9 @@ void avt_state::palette_init()
/* hack to switch cyan->magenta for highlighted background */
if (j == 0x40)
- palette_set_color(machine(), j, rgb_t(g, r, b)); // Why this one has R-G swapped?...
+ palette.set_pen_color(j, rgb_t(g, r, b)); // Why this one has R-G swapped?...
else
- palette_set_color(machine(), j, rgb_t(r, g, b));
+ palette.set_pen_color(j, rgb_t(r, g, b));
}
}
@@ -908,8 +908,8 @@ static MACHINE_CONFIG_START( avt, avt_state )
MCFG_GFXDECODE_ADD("gfxdecode", avt)
- MCFG_PALETTE_LENGTH(8*16)
-
+ MCFG_PALETTE_ADD("palette", 8*16)
+ MCFG_PALETTE_INIT_OWNER(avt_state, avt)
MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c
index d93a3088565..ae0218a5cb5 100644
--- a/src/mame/drivers/backfire.c
+++ b/src/mame/drivers/backfire.c
@@ -232,7 +232,7 @@ WRITE32_MEMBER(backfire_state::backfire_eeprom_w)
WRITE32_MEMBER(backfire_state::backfire_nonbuffered_palette_w)
{
COMBINE_DATA(&m_generic_paletteram_32[offset]);
- palette_set_color_rgb(machine(),offset,pal5bit(m_generic_paletteram_32[offset] >> 0),pal5bit(m_generic_paletteram_32[offset] >> 5),pal5bit(m_generic_paletteram_32[offset] >> 10));
+ m_palette->set_pen_color(offset,pal5bit(m_generic_paletteram_32[offset] >> 0),pal5bit(m_generic_paletteram_32[offset] >> 5),pal5bit(m_generic_paletteram_32[offset] >> 10));
}
/* map 32-bit writes to 16-bit */
@@ -503,7 +503,7 @@ static MACHINE_CONFIG_START( backfire, backfire_state )
/* video hardware */
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_GFXDECODE_ADD("gfxdecode", backfire)
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
@@ -525,22 +525,26 @@ static MACHINE_CONFIG_START( backfire, backfire_state )
MCFG_DECO16IC_ADD("tilegen1", backfire_deco16ic_tilegen1_intf)
MCFG_DECO16IC_SET_SCREEN("lscreen")
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", backfire_deco16ic_tilegen2_intf)
MCFG_DECO16IC_SET_SCREEN("lscreen")
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
MCFG_VIDEO_SET_SCREEN("lscreen")
decospr_device::set_gfx_region(*device, 4);
decospr_device::set_pri_callback(*device, backfire_pri_callback);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0)
MCFG_VIDEO_SET_SCREEN("rscreen")
decospr_device::set_gfx_region(*device, 5);
decospr_device::set_pri_callback(*device, backfire_pri_callback);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
/* sound hardware */
diff --git a/src/mame/drivers/badlands.c b/src/mame/drivers/badlands.c
index eb575147f2d..73dee4a26b1 100644
--- a/src/mame/drivers/badlands.c
+++ b/src/mame/drivers/badlands.c
@@ -511,7 +511,7 @@ static MACHINE_CONFIG_START( badlands, badlands_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", badlands)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, badlands_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 64,32)
MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "screen", badlands_state::s_mob_config)
@@ -714,7 +714,7 @@ static MACHINE_CONFIG_START( badlandsb, badlands_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", badlandsb)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, badlands_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 64,32)
MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "screen", badlands_state::s_mob_config)
diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c
index ed5ecd434aa..730521320ec 100644
--- a/src/mame/drivers/bagman.c
+++ b/src/mame/drivers/bagman.c
@@ -484,9 +484,9 @@ static MACHINE_CONFIG_START( bagman, bagman_state )
MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman)
MCFG_GFXDECODE_ADD("gfxdecode", bagman)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
- MCFG_PALETTE_INIT_OVERRIDE(bagman_state,bagman)
+ MCFG_PALETTE_INIT_OWNER(bagman_state,bagman)
MCFG_VIDEO_START_OVERRIDE(bagman_state,bagman)
MCFG_DEVICE_ADD("tmsprom", TMSPROM, 640000 / 2) /* rom clock */
@@ -520,9 +520,9 @@ static MACHINE_CONFIG_START( pickin, bagman_state )
MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman)
MCFG_GFXDECODE_ADD("gfxdecode", pickin)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
- MCFG_PALETTE_INIT_OVERRIDE(bagman_state,bagman)
+ MCFG_PALETTE_INIT_OWNER(bagman_state,bagman)
MCFG_VIDEO_START_OVERRIDE(bagman_state,bagman)
/* sound hardware */
@@ -572,9 +572,9 @@ static MACHINE_CONFIG_START( botanic, bagman_state )
MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman)
MCFG_GFXDECODE_ADD("gfxdecode", bagman)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
- MCFG_PALETTE_INIT_OVERRIDE(bagman_state,bagman)
+ MCFG_PALETTE_INIT_OWNER(bagman_state,bagman)
MCFG_VIDEO_START_OVERRIDE(bagman_state,bagman)
/* sound hardware */
diff --git a/src/mame/drivers/balsente.c b/src/mame/drivers/balsente.c
index 7dde11a2cdd..a5bcc697b4e 100644
--- a/src/mame/drivers/balsente.c
+++ b/src/mame/drivers/balsente.c
@@ -1226,7 +1226,7 @@ static MACHINE_CONFIG_START( balsente, balsente_state )
MCFG_SCREEN_RAW_PARAMS(BALSENTE_PIXEL_CLOCK, BALSENTE_HTOTAL, BALSENTE_HBEND, BALSENTE_HBSTART, BALSENTE_VTOTAL, BALSENTE_VBEND, BALSENTE_VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(balsente_state, screen_update_balsente)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
/* sound hardware */
diff --git a/src/mame/drivers/bankp.c b/src/mame/drivers/bankp.c
index 0a59841eae3..b194cdfb929 100644
--- a/src/mame/drivers/bankp.c
+++ b/src/mame/drivers/bankp.c
@@ -300,8 +300,8 @@ static MACHINE_CONFIG_START( bankp, bankp_state )
MCFG_SCREEN_UPDATE_DRIVER(bankp_state, screen_update_bankp)
MCFG_GFXDECODE_ADD("gfxdecode", bankp)
- MCFG_PALETTE_LENGTH(32*4+16*8)
-
+ MCFG_PALETTE_ADD("palette", 32*4+16*8)
+ MCFG_PALETTE_INIT_OWNER(bankp_state, bankp)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/baraduke.c b/src/mame/drivers/baraduke.c
index 79347417736..e42839d1f1b 100644
--- a/src/mame/drivers/baraduke.c
+++ b/src/mame/drivers/baraduke.c
@@ -393,8 +393,8 @@ static MACHINE_CONFIG_START( baraduke, baraduke_state )
MCFG_SCREEN_VBLANK_DRIVER(baraduke_state, screen_eof_baraduke)
MCFG_GFXDECODE_ADD("gfxdecode", baraduke)
- MCFG_PALETTE_LENGTH(2048)
-
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_INIT_OWNER(baraduke_state, baraduke)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bartop52.c b/src/mame/drivers/bartop52.c
index 2c567c79fd7..3bf008a86e6 100644
--- a/src/mame/drivers/bartop52.c
+++ b/src/mame/drivers/bartop52.c
@@ -133,8 +133,8 @@ static MACHINE_CONFIG_START( a5200, bartop52_state )
MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ)
MCFG_SCREEN_UPDATE_STATIC(atari)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(atari)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_LEGACY(atari)
MCFG_VIDEO_START(atari)
diff --git a/src/mame/drivers/batman.c b/src/mame/drivers/batman.c
index ebc78c77f11..f70c808f417 100644
--- a/src/mame/drivers/batman.c
+++ b/src/mame/drivers/batman.c
@@ -208,7 +208,7 @@ static MACHINE_CONFIG_START( batman, batman_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", batman)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_ATARI_VAD_ADD("vad", "screen", WRITELINE(atarigen_state, scanline_int_write_line))
MCFG_ATARI_VAD_PLAYFIELD(batman_state, get_playfield_tile_info)
diff --git a/src/mame/drivers/battlane.c b/src/mame/drivers/battlane.c
index f73a4873f9b..570e6a5118b 100644
--- a/src/mame/drivers/battlane.c
+++ b/src/mame/drivers/battlane.c
@@ -286,7 +286,7 @@ static MACHINE_CONFIG_START( battlane, battlane_state )
MCFG_SCREEN_UPDATE_DRIVER(battlane_state, screen_update_battlane)
MCFG_GFXDECODE_ADD("gfxdecode", battlane)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
/* sound hardware */
diff --git a/src/mame/drivers/battlera.c b/src/mame/drivers/battlera.c
index 841ec0422c3..7153079412d 100644
--- a/src/mame/drivers/battlera.c
+++ b/src/mame/drivers/battlera.c
@@ -245,7 +245,7 @@ static MACHINE_CONFIG_START( battlera, battlera_state )
MCFG_SCREEN_UPDATE_DRIVER(battlera_state, screen_update_battlera)
MCFG_GFXDECODE_ADD("gfxdecode", battlera)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
/* sound hardware */
diff --git a/src/mame/drivers/battlex.c b/src/mame/drivers/battlex.c
index f1cb24f3236..8946a1c6e93 100644
--- a/src/mame/drivers/battlex.c
+++ b/src/mame/drivers/battlex.c
@@ -259,7 +259,7 @@ static MACHINE_CONFIG_START( battlex, battlex_state )
MCFG_SCREEN_UPDATE_DRIVER(battlex_state, screen_update_battlex)
MCFG_GFXDECODE_ADD("gfxdecode", battlex)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/battlnts.c b/src/mame/drivers/battlnts.c
index e7a5bbf1e39..9a04143657d 100644
--- a/src/mame/drivers/battlnts.c
+++ b/src/mame/drivers/battlnts.c
@@ -58,7 +58,7 @@ static ADDRESS_MAP_START( battlnts_map, AS_PROGRAM, 8, battlnts_state )
AM_RANGE(0x0000, 0x1fff) AM_DEVREADWRITE("k007342", k007342_device, read, write) /* Color RAM + Video RAM */
AM_RANGE(0x2000, 0x21ff) AM_DEVREADWRITE("k007420", k007420_device, read, write) /* Sprite RAM */
AM_RANGE(0x2200, 0x23ff) AM_DEVREADWRITE("k007342", k007342_device, scroll_r, scroll_w) /* Scroll RAM */
- AM_RANGE(0x2400, 0x24ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_be_w) AM_SHARE("paletteram")/* palette */
+ AM_RANGE(0x2400, 0x24ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* palette */
AM_RANGE(0x2600, 0x2607) AM_DEVWRITE("k007342", k007342_device, vreg_w) /* Video Registers */
AM_RANGE(0x2e00, 0x2e00) AM_READ_PORT("DSW1")
AM_RANGE(0x2e01, 0x2e01) AM_READ_PORT("P2")
@@ -256,12 +256,14 @@ static MACHINE_CONFIG_START( battlnts, battlnts_state )
MCFG_SCREEN_UPDATE_DRIVER(battlnts_state, screen_update_battlnts)
MCFG_GFXDECODE_ADD("gfxdecode", battlnts)
- MCFG_PALETTE_LENGTH(128)
+ MCFG_PALETTE_ADD("palette", 128)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_K007342_ADD("k007342", bladestl_k007342_intf)
MCFG_K007342_GFXDECODE("gfxdecode")
MCFG_K007420_ADD("k007420", bladestl_k007420_intf)
+ MCFG_K007420_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c
index 54c1f00c7ca..60f0983ea35 100644
--- a/src/mame/drivers/bbusters.c
+++ b/src/mame/drivers/bbusters.c
@@ -331,7 +331,7 @@ static ADDRESS_MAP_START( bbusters_map, AS_PROGRAM, 16, bbusters_state )
AM_RANGE(0x0b4000, 0x0b5fff) AM_RAM /* service mode */
AM_RANGE(0x0b8000, 0x0b8003) AM_WRITEONLY AM_SHARE("pf1_scroll_data")
AM_RANGE(0x0b8008, 0x0b800b) AM_WRITEONLY AM_SHARE("pf2_scroll_data")
- AM_RANGE(0x0d0000, 0x0d0fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0d0000, 0x0d0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0e0000, 0x0e0001) AM_READ_PORT("COINS") /* Coins */
AM_RANGE(0x0e0002, 0x0e0003) AM_READ_PORT("IN0") /* Player 1 & 2 */
AM_RANGE(0x0e0004, 0x0e0005) AM_READ_PORT("IN1") /* Player 3 */
@@ -358,7 +358,7 @@ static ADDRESS_MAP_START( mechatt_map, AS_PROGRAM, 16, bbusters_state )
AM_RANGE(0x0b8000, 0x0b8003) AM_WRITEONLY AM_SHARE("pf1_scroll_data")
AM_RANGE(0x0c0000, 0x0c3fff) AM_RAM_WRITE(bbusters_pf2_w) AM_SHARE("pf2_data")
AM_RANGE(0x0c8000, 0x0c8003) AM_WRITEONLY AM_SHARE("pf2_scroll_data")
- AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0e0000, 0x0e0001) AM_READ_PORT("IN0")
AM_RANGE(0x0e0002, 0x0e0003) AM_READ_PORT("DSW1")
AM_RANGE(0x0e0004, 0x0e0007) AM_READ(mechatt_gun_r)
@@ -682,7 +682,8 @@ static MACHINE_CONFIG_START( bbusters, bbusters_state )
MCFG_SCREEN_VBLANK_DRIVER(bbusters_state, screen_eof_bbuster)
MCFG_GFXDECODE_ADD("gfxdecode", bbusters)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(bbusters_state,bbuster)
@@ -720,7 +721,8 @@ static MACHINE_CONFIG_START( mechatt, bbusters_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", mechatt)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(bbusters_state,mechatt)
diff --git a/src/mame/drivers/beathead.c b/src/mame/drivers/beathead.c
index 832ad8a83a2..c445fa12640 100644
--- a/src/mame/drivers/beathead.c
+++ b/src/mame/drivers/beathead.c
@@ -377,7 +377,7 @@ static MACHINE_CONFIG_START( beathead, beathead_state )
MCFG_SCREEN_UPDATE_DRIVER(beathead_state, screen_update)
MCFG_SCREEN_SIZE(42*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 0*8, 30*8-1)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD("palette", 32768)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/beezer.c b/src/mame/drivers/beezer.c
index abf9f6edfa6..d79b8f85a05 100644
--- a/src/mame/drivers/beezer.c
+++ b/src/mame/drivers/beezer.c
@@ -99,7 +99,7 @@ static MACHINE_CONFIG_START( beezer, beezer_state )
MCFG_SCREEN_VISIBLE_AREA(16, 304-1, 0, 240-1) // 288 x 240, correct?
MCFG_SCREEN_UPDATE_DRIVER(beezer_state, screen_update_beezer)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
/* sound hardware */
diff --git a/src/mame/drivers/bestleag.c b/src/mame/drivers/bestleag.c
index 4bba2ecff10..09e8c903cba 100644
--- a/src/mame/drivers/bestleag.c
+++ b/src/mame/drivers/bestleag.c
@@ -155,26 +155,26 @@ void bestleag_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
if(m_vregs[0x00/2] & 0x1000)
color &= 7;
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect,
code,
color,
flipx, 0,
flipx ? (sx+16) : (sx),sy,15);
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect,
code+1,
color,
flipx, 0,
flipx ? (sx) : (sx+16),sy,15);
/* wraparound x */
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect,
code,
color,
flipx, 0,
flipx ? (sx+16 - 512) : (sx - 512),sy,15);
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect,
code+1,
color,
flipx, 0,
@@ -247,7 +247,7 @@ static ADDRESS_MAP_START( bestleag_map, AS_PROGRAM, 16, bestleag_state )
AM_RANGE(0x0e8000, 0x0ebfff) AM_RAM_WRITE(bestleag_fgram_w) AM_SHARE("fgram")
AM_RANGE(0x0f0000, 0x0f3fff) AM_RAM_WRITE(bestleag_txram_w) AM_SHARE("txram")
AM_RANGE(0x0f8000, 0x0f800b) AM_RAM AM_SHARE("vregs")
- AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x100000, 0x100fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x200000, 0x200fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x300010, 0x300011) AM_READ_PORT("SYSTEM")
AM_RANGE(0x300012, 0x300013) AM_READ_PORT("P1")
@@ -381,8 +381,8 @@ static MACHINE_CONFIG_START( bestleag, bestleag_state )
MCFG_SCREEN_UPDATE_DRIVER(bestleag_state, screen_update_bestleag)
MCFG_GFXDECODE_ADD("gfxdecode", bestleag)
- MCFG_PALETTE_LENGTH(0x800)
-
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c
index 68768d122bc..2bbcfd95aef 100644
--- a/src/mame/drivers/bfcobra.c
+++ b/src/mame/drivers/bfcobra.c
@@ -428,13 +428,13 @@ UINT32 bfcobra_state::screen_update_bfcobra(screen_device &screen, bitmap_rgb32
if ( ( m_videomode & 0x81 ) == 1 || (m_videomode & 0x80 && pen & 0x80) )
{
- *dest++ = machine().pens[hirescol[pen & 0x0f]];
- *dest++ = machine().pens[hirescol[(pen >> 4) & 0x0f]];
+ *dest++ = m_palette->pen(hirescol[pen & 0x0f]);
+ *dest++ = m_palette->pen(hirescol[(pen >> 4) & 0x0f]);
}
else
{
- *dest++ = machine().pens[lorescol[pen]];
- *dest++ = machine().pens[lorescol[pen]];
+ *dest++ = m_palette->pen(lorescol[pen]);
+ *dest++ = m_palette->pen(lorescol[pen]);
}
}
}
@@ -772,7 +772,7 @@ READ8_MEMBER(bfcobra_state::ramdac_r)
if (*count == 0)
{
rgb_t color;
- color = palette_get_color(machine(), ramdac.addr_r);
+ color = m_palette->pen_color(ramdac.addr_r);
ramdac.color_r[0] = color.r();
ramdac.color_r[1] = color.g();
@@ -817,7 +817,7 @@ WRITE8_MEMBER(bfcobra_state::ramdac_w)
ramdac.color_w[ramdac.count_w] = pal6bit(data);
if (++ramdac.count_w == 3)
{
- palette_set_color_rgb(machine(), ramdac.addr_w, ramdac.color_w[0], ramdac.color_w[1], ramdac.color_w[2]);
+ m_palette->set_pen_color(ramdac.addr_w, ramdac.color_w[0], ramdac.color_w[1], ramdac.color_w[2]);
ramdac.count_w = 0;
ramdac.addr_w++;
}
@@ -1334,7 +1334,7 @@ void bfcobra_state::machine_reset()
for (pal = 0; pal < 256; ++pal)
{
- palette_set_color_rgb(machine(), pal, pal3bit((pal>>5)&7), pal3bit((pal>>2)&7), pal2bit(pal&3));
+ m_palette->set_pen_color(pal, pal3bit((pal>>5)&7), pal3bit((pal>>2)&7), pal2bit(pal&3));
}
m_bank_data[0] = 1;
@@ -1745,7 +1745,7 @@ static MACHINE_CONFIG_START( bfcobra, bfcobra_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512 - 1, 0, 256 - 1)
MCFG_SCREEN_UPDATE_DRIVER(bfcobra_state, screen_update_bfcobra)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/big10.c b/src/mame/drivers/big10.c
index bbdc37544c2..3f44a6269b4 100644
--- a/src/mame/drivers/big10.c
+++ b/src/mame/drivers/big10.c
@@ -266,7 +266,7 @@ static MACHINE_CONFIG_START( big10, big10_state )
MCFG_SCREEN_SIZE(512 + 32, (212 + 28) * 2)
MCFG_SCREEN_VISIBLE_AREA(0, 512 + 32 - 1, 0, (212 + 28) * 2 - 1)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bigevglf.c b/src/mame/drivers/bigevglf.c
index 0d14b81257f..2313cb9aab9 100644
--- a/src/mame/drivers/bigevglf.c
+++ b/src/mame/drivers/bigevglf.c
@@ -511,7 +511,7 @@ static MACHINE_CONFIG_START( bigevglf, bigevglf_state )
MCFG_SCREEN_UPDATE_DRIVER(bigevglf_state, screen_update_bigevglf)
MCFG_GFXDECODE_ADD("gfxdecode", bigevglf)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bigstrkb.c b/src/mame/drivers/bigstrkb.c
index f30020ed03b..0ff6163ab4c 100644
--- a/src/mame/drivers/bigstrkb.c
+++ b/src/mame/drivers/bigstrkb.c
@@ -53,7 +53,7 @@ static ADDRESS_MAP_START( bigstrkb_map, AS_PROGRAM, 16, bigstrkb_state )
AM_RANGE(0x0ec000, 0x0effff) AM_RAM_WRITE(bsb_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x0f0000, 0x0f7fff) AM_RAM
- AM_RANGE(0x0f8000, 0x0f87ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0f8000, 0x0f87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0f8800, 0x0fffff) AM_RAM
AM_RANGE(0x1f0000, 0x1f7fff) AM_RAM
@@ -209,7 +209,8 @@ static MACHINE_CONFIG_START( bigstrkb, bigstrkb_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(bigstrkb_state, screen_update_bigstrkb)
- MCFG_PALETTE_LENGTH(0x400)
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/bingoc.c b/src/mame/drivers/bingoc.c
index 8ae0f5b13bf..ee868bf8dfb 100644
--- a/src/mame/drivers/bingoc.c
+++ b/src/mame/drivers/bingoc.c
@@ -168,7 +168,7 @@ static MACHINE_CONFIG_START( bingoc, bingoc_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(bingoc_state, screen_update_bingoc)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") //might just be mono...
diff --git a/src/mame/drivers/bingoman.c b/src/mame/drivers/bingoman.c
index b2f93f668c6..c160a89342a 100644
--- a/src/mame/drivers/bingoman.c
+++ b/src/mame/drivers/bingoman.c
@@ -254,14 +254,13 @@ public:
// screen updates
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-
+ DECLARE_PALETTE_INIT(bingoman);
protected:
// driver_device overrides
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
};
void bingoman_state::video_start()
@@ -364,7 +363,7 @@ void bingoman_state::machine_reset()
}
-void bingoman_state::palette_init()
+PALETTE_INIT_MEMBER(bingoman_state, bingoman)
{
}
@@ -385,7 +384,8 @@ static MACHINE_CONFIG_START( bingoman, bingoman_state )
MCFG_GFXDECODE_ADD("gfxdecode", bingoman)
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(bingoman_state, bingoman)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bingor.c b/src/mame/drivers/bingor.c
index 681b79d2fce..e069a6e30d2 100644
--- a/src/mame/drivers/bingor.c
+++ b/src/mame/drivers/bingor.c
@@ -470,7 +470,7 @@ UINT32 bingor_state::screen_update_bingor(screen_device &screen, bitmap_rgb32 &b
{
int x,y,count;
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
count = (0x2000/2);
@@ -483,22 +483,22 @@ UINT32 bingor_state::screen_update_bingor(screen_device &screen, bitmap_rgb32 &b
color = (m_blit_ram[count] & 0xf000)>>12;
if(cliprect.contains(x+3, y))
- bitmap.pix32(y, x+3) = machine().pens[color];
+ bitmap.pix32(y, x+3) = m_palette->pen(color);
color = (m_blit_ram[count] & 0x0f00)>>8;
if(cliprect.contains(x+2, y))
- bitmap.pix32(y, x+2) = machine().pens[color];
+ bitmap.pix32(y, x+2) = m_palette->pen(color);
color = (m_blit_ram[count] & 0x00f0)>>4;
if(cliprect.contains(x+1, y))
- bitmap.pix32(y, x+1) = machine().pens[color];
+ bitmap.pix32(y, x+1) = m_palette->pen(color);
color = (m_blit_ram[count] & 0x000f)>>0;
if(cliprect.contains(x+0, y))
- bitmap.pix32(y, x+0) = machine().pens[color];
+ bitmap.pix32(y, x+0) = m_palette->pen(color);
count++;
}
@@ -517,7 +517,7 @@ READ16_MEMBER(bingor_state::test_r)
static ADDRESS_MAP_START( bingor_map, AS_PROGRAM, 16, bingor_state )
AM_RANGE(0x00000, 0x0ffff) AM_RAM
AM_RANGE(0x90000, 0x9ffff) AM_ROM AM_REGION("gfx", 0)
- AM_RANGE(0xa0300, 0xa031f) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBIIII_word_w) AM_SHARE("paletteram") //wrong
+ AM_RANGE(0xa0300, 0xa031f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") //wrong
AM_RANGE(0xa0000, 0xaffff) AM_RAM AM_SHARE("blit_ram")
AM_RANGE(0xe0000, 0xfffff) AM_ROM AM_REGION("boot_prg",0)
ADDRESS_MAP_END
@@ -642,8 +642,8 @@ static MACHINE_CONFIG_START( bingor, bingor_state )
MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1)
MCFG_SCREEN_UPDATE_DRIVER(bingor_state, screen_update_bingor)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBIIII)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SAA1099_ADD("saa", 6000000 )
diff --git a/src/mame/drivers/bionicc.c b/src/mame/drivers/bionicc.c
index 586d1241f23..9f3dc41fe9b 100644
--- a/src/mame/drivers/bionicc.c
+++ b/src/mame/drivers/bionicc.c
@@ -368,7 +368,7 @@ static MACHINE_CONFIG_START( bionicc, bionicc_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", bionicc)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
diff --git a/src/mame/drivers/bishi.c b/src/mame/drivers/bishi.c
index eb0df04bd8f..f28fcf58ffb 100644
--- a/src/mame/drivers/bishi.c
+++ b/src/mame/drivers/bishi.c
@@ -154,7 +154,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, bishi_state )
AM_RANGE(0x870000, 0x8700ff) AM_DEVWRITE("k055555", k055555_device, k055555_word_w) // PCU2
AM_RANGE(0x880000, 0x880003) AM_DEVREADWRITE8("ymz", ymz280b_device, read, write, 0xff00)
AM_RANGE(0xa00000, 0xa01fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) // Graphic planes
- AM_RANGE(0xb00000, 0xb03fff) AM_RAM_WRITE(paletteram_xbgr_word_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xb00000, 0xb03fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xb04000, 0xb047ff) AM_READ(bishi_mirror_r) // bug in the ram/rom test?
AM_RANGE(0xc00000, 0xc01fff) AM_READ(bishi_K056832_rom_r)
ADDRESS_MAP_END
@@ -399,7 +399,7 @@ static MACHINE_CONFIG_START( bishi, bishi_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -408,11 +408,15 @@ static MACHINE_CONFIG_START( bishi, bishi_state )
MCFG_SCREEN_VISIBLE_AREA(29, 29+288-1, 16, 16+224-1)
MCFG_SCREEN_UPDATE_DRIVER(bishi_state, screen_update_bishi)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(XBGR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K056832_ADD("k056832", bishi_k056832_intf)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K054338_ADD("k054338", bishi_k054338_intf)
MCFG_K055555_ADD("k055555")
diff --git a/src/mame/drivers/bking.c b/src/mame/drivers/bking.c
index 734dce70d12..61f11efb72a 100644
--- a/src/mame/drivers/bking.c
+++ b/src/mame/drivers/bking.c
@@ -481,7 +481,8 @@ static MACHINE_CONFIG_START( bking, bking_state )
MCFG_SCREEN_VBLANK_DRIVER(bking_state, screen_eof_bking)
MCFG_GFXDECODE_ADD("gfxdecode", bking)
- MCFG_PALETTE_LENGTH(4*8+4*4+4*2+4*2)
+ MCFG_PALETTE_ADD("palette", 4*8+4*4+4*2+4*2)
+ MCFG_PALETTE_INIT_OWNER(bking_state, bking)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/blackt96.c b/src/mame/drivers/blackt96.c
index 8e58ea0c035..42340469c3e 100644
--- a/src/mame/drivers/blackt96.c
+++ b/src/mame/drivers/blackt96.c
@@ -238,11 +238,11 @@ void blackt96_state::draw_strip(bitmap_ind16 &bitmap, const rectangle &cliprect,
if (tile&0x2000)
{
- gfxbg->transpen(bitmap,cliprect,tile&0x1fff,colour>>4,flipx,0,xx,yy+y*16,0);
+ gfxbg->transpen(m_palette,bitmap,cliprect,tile&0x1fff,colour>>4,flipx,0,xx,yy+y*16,0);
}
else
{
- gfxspr->transpen(bitmap,cliprect,tile&0x1fff,colour,flipx,0,xx,yy+y*16,0);
+ gfxspr->transpen(m_palette,bitmap,cliprect,tile&0x1fff,colour,flipx,0,xx,yy+y*16,0);
}
}
}
@@ -257,7 +257,7 @@ void blackt96_state::draw_page(bitmap_ind16 &bitmap, const rectangle &cliprect,
UINT32 blackt96_state::screen_update_blackt96(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
draw_page(bitmap, cliprect, 2); // bg
draw_page(bitmap, cliprect, 3); // lower pri sprites
@@ -275,7 +275,7 @@ UINT32 blackt96_state::screen_update_blackt96(screen_device &screen, bitmap_ind1
{
UINT16 tile = (m_tilemapram[count*2]&0xff);
tile += m_txt_bank * 0x100;
- gfx->transpen(bitmap,cliprect,tile,0,0,0,x*8,-16+y*8,0);
+ gfx->transpen(m_palette,bitmap,cliprect,tile,0,0,0,x*8,-16+y*8,0);
count++;
}
}
@@ -327,7 +327,7 @@ static ADDRESS_MAP_START( blackt96_map, AS_PROGRAM, 16, blackt96_state )
AM_RANGE(0x207000, 0x207fff) AM_RAM_WRITE(bg_videoram7_w) AM_SHARE("spriteram7")
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xc00000, 0xc03fff) AM_RAM // main ram
ADDRESS_MAP_END
@@ -612,7 +612,8 @@ static MACHINE_CONFIG_START( blackt96, blackt96_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 256-1, 0*8, 224-1)
MCFG_SCREEN_UPDATE_DRIVER(blackt96_state, screen_update_blackt96)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/bladestl.c b/src/mame/drivers/bladestl.c
index c1576eda5ce..ab2a1d9b66d 100644
--- a/src/mame/drivers/bladestl.c
+++ b/src/mame/drivers/bladestl.c
@@ -335,12 +335,14 @@ static MACHINE_CONFIG_START( bladestl, bladestl_state )
MCFG_SCREEN_UPDATE_DRIVER(bladestl_state, screen_update_bladestl)
MCFG_GFXDECODE_ADD("gfxdecode", bladestl)
- MCFG_PALETTE_LENGTH(32 + 16*16)
+ MCFG_PALETTE_ADD("palette", 32 + 16*16)
+ MCFG_PALETTE_INIT_OWNER(bladestl_state, bladestl)
MCFG_K007342_ADD("k007342", bladestl_k007342_intf)
MCFG_K007342_GFXDECODE("gfxdecode")
MCFG_K007420_ADD("k007420", bladestl_k007420_intf)
+ MCFG_K007420_PALETTE("palette")
MCFG_K051733_ADD("k051733")
/* sound hardware */
diff --git a/src/mame/drivers/blitz.c b/src/mame/drivers/blitz.c
index 44caff5dc1a..1fe9f1c50bd 100644
--- a/src/mame/drivers/blitz.c
+++ b/src/mame/drivers/blitz.c
@@ -314,7 +314,7 @@ public:
DECLARE_WRITE8_MEMBER(sound_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(blitz);
UINT32 screen_update_megadpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -371,7 +371,7 @@ UINT32 blitz_state::screen_update_megadpkr(screen_device &screen, bitmap_ind16 &
}
-void blitz_state::palette_init()
+PALETTE_INIT_MEMBER(blitz_state, blitz)
{
const UINT8 *color_prom = memregion("proms")->base();
/*
@@ -392,7 +392,7 @@ void blitz_state::palette_init()
if (color_prom == 0) return;
- for (i = 0;i < machine().total_colors();i++)
+ for (i = 0;i < palette.entries();i++)
{
int bit0, bit1, bit2, bit3, r, g, b, bk;
@@ -412,7 +412,7 @@ void blitz_state::palette_init()
bit2 = (color_prom[i] >> 2) & 0x01;
b = bk * (bit2 * 0xff);
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -789,8 +789,8 @@ static MACHINE_CONFIG_START( megadpkr, blitz_state )
MCFG_MC6845_ADD("crtc", MC6845, "screen", CPU_CLOCK, mc6845_intf)
MCFG_GFXDECODE_ADD("gfxdecode", megadpkr)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(blitz_state, blitz)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/blitz68k.c b/src/mame/drivers/blitz68k.c
index 8c90bc6497e..66a549caeec 100644
--- a/src/mame/drivers/blitz68k.c
+++ b/src/mame/drivers/blitz68k.c
@@ -221,7 +221,7 @@ UINT32 blitz68k_state::screen_update_blitz68k(screen_device &screen, bitmap_rgb3
{
for(x = 0; x < 512; x++)
{
- bitmap.pix32(y, x) = machine().pens[*src++];
+ bitmap.pix32(y, x) = m_palette->pen(*src++);
}
}
@@ -242,10 +242,10 @@ UINT32 blitz68k_state::screen_update_blitz68k_noblit(screen_device &screen, bitm
for(x = 0; x < 512; )
{
UINT16 pen = *src++;
- bitmap.pix32(y, x++) = machine().pens[(pen >> 8) & 0xf];
- bitmap.pix32(y, x++) = machine().pens[(pen >> 12) & 0xf];
- bitmap.pix32(y, x++) = machine().pens[(pen >> 0) & 0xf];
- bitmap.pix32(y, x++) = machine().pens[(pen >> 4) & 0xf];
+ bitmap.pix32(y, x++) = m_palette->pen((pen >> 8) & 0xf);
+ bitmap.pix32(y, x++) = m_palette->pen((pen >> 12) & 0xf);
+ bitmap.pix32(y, x++) = m_palette->pen((pen >> 0) & 0xf);
+ bitmap.pix32(y, x++) = m_palette->pen((pen >> 4) & 0xf);
}
}
@@ -1733,11 +1733,11 @@ static MACHINE_CONFIG_START( ilpag, blitz68k_state )
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_DAC_ADD("dac")
@@ -1807,10 +1807,10 @@ static MACHINE_CONFIG_START( cjffruit, blitz68k_state )
MCFG_MC6845_ADD("crtc", R6545_1, "screen", XTAL_22_1184MHz/8, mc6845_intf_irq1)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_DAC_ADD("dac")
@@ -1839,10 +1839,10 @@ static MACHINE_CONFIG_START( bankrob, blitz68k_state )
MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_11_0592MHz/4, mc6845_intf_irq3)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_DAC_ADD("dac")
@@ -1869,10 +1869,10 @@ static MACHINE_CONFIG_START( bankroba, blitz68k_state )
MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_11_0592MHz/4, mc6845_intf_irq5)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k_addr_factor1)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_DAC_ADD("dac")
@@ -1898,10 +1898,10 @@ static MACHINE_CONFIG_START( deucesw2, blitz68k_state )
MCFG_MC6845_ADD("crtc", R6545_1, "screen", XTAL_22_1184MHz/8, mc6845_intf_irq3)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_DAC_ADD("dac")
@@ -1929,10 +1929,10 @@ static MACHINE_CONFIG_START( dualgame, blitz68k_state )
MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_11_0592MHz/4, mc6845_intf_irq3)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_DAC_ADD("dac")
@@ -1958,10 +1958,10 @@ static MACHINE_CONFIG_START( hermit, blitz68k_state )
MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_22_1184MHz/8, mc6845_intf_irq1)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_DAC_ADD("dac")
@@ -1992,8 +1992,8 @@ static MACHINE_CONFIG_START( maxidbl, blitz68k_state )
MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_11_0592MHz/4, mc6845_intf_irq3)
- MCFG_PALETTE_LENGTH(0x100)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SAA1099_ADD("saa", XTAL_8MHz/2)
diff --git a/src/mame/drivers/blktiger.c b/src/mame/drivers/blktiger.c
index c05ad0afab3..54685979731 100644
--- a/src/mame/drivers/blktiger.c
+++ b/src/mame/drivers/blktiger.c
@@ -72,8 +72,8 @@ static ADDRESS_MAP_START( blktiger_map, AS_PROGRAM, 8, blktiger_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_READWRITE(blktiger_bgvideoram_r, blktiger_bgvideoram_w)
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(blktiger_txvideoram_w) AM_SHARE("txvideoram")
- AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0xd800, 0xdbff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0xdc00, 0xdfff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0xe000, 0xfdff) AM_RAM
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
@@ -329,8 +329,9 @@ static MACHINE_CONFIG_START( blktiger, blktiger_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", blktiger)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
diff --git a/src/mame/drivers/blmbycar.c b/src/mame/drivers/blmbycar.c
index bc35b0d8a7e..27d488478c0 100644
--- a/src/mame/drivers/blmbycar.c
+++ b/src/mame/drivers/blmbycar.c
@@ -364,7 +364,7 @@ static MACHINE_CONFIG_START( blmbycar, blmbycar_state )
MCFG_SCREEN_UPDATE_DRIVER(blmbycar_state, screen_update_blmbycar)
MCFG_GFXDECODE_ADD("gfxdecode", blmbycar)
- MCFG_PALETTE_LENGTH(0x300)
+ MCFG_PALETTE_ADD("palette", 0x300)
/* sound hardware */
@@ -405,7 +405,7 @@ static MACHINE_CONFIG_START( watrball, blmbycar_state )
MCFG_SCREEN_UPDATE_DRIVER(blmbycar_state, screen_update_blmbycar)
MCFG_GFXDECODE_ADD("gfxdecode", blmbycar)
- MCFG_PALETTE_LENGTH(0x300)
+ MCFG_PALETTE_ADD("palette", 0x300)
/* sound hardware */
diff --git a/src/mame/drivers/blockade.c b/src/mame/drivers/blockade.c
index bd78e006f96..135d1143062 100644
--- a/src/mame/drivers/blockade.c
+++ b/src/mame/drivers/blockade.c
@@ -437,12 +437,6 @@ static GFXDECODE_START( blasto )
GFXDECODE_ENTRY( "gfx1", 0x0000, blasto_layout, 0, 1 )
GFXDECODE_END
-void blockade_state::palette_init()
-{
- palette_set_color(machine(),0,rgb_t(0x00,0x00,0x00)); /* BLACK */
- palette_set_color(machine(),1,rgb_t(0xff,0xff,0xff)); /* WHITE */
-}
-
/*************************************
*
@@ -480,7 +474,7 @@ static MACHINE_CONFIG_START( blockade, blockade_state )
MCFG_SCREEN_UPDATE_DRIVER(blockade_state, screen_update_blockade)
MCFG_GFXDECODE_ADD("gfxdecode", blockade)
- MCFG_PALETTE_LENGTH(2)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
diff --git a/src/mame/drivers/blockhl.c b/src/mame/drivers/blockhl.c
index ed728f01e0a..a92f5e66248 100644
--- a/src/mame/drivers/blockhl.c
+++ b/src/mame/drivers/blockhl.c
@@ -46,7 +46,7 @@ READ8_MEMBER(blockhl_state::bankedram_r)
WRITE8_MEMBER(blockhl_state::bankedram_w)
{
if (m_palette_selected)
- paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data);
+ m_palette->write(space, offset, data);
else
m_ram[offset] = data;
}
@@ -209,8 +209,6 @@ static MACHINE_CONFIG_START( blockhl, blockhl_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -218,13 +216,17 @@ static MACHINE_CONFIG_START( blockhl, blockhl_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(blockhl_state, screen_update_blockhl)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", blockhl_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", blockhl_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/blockout.c b/src/mame/drivers/blockout.c
index f3d53eed7fb..dafe46efb43 100644
--- a/src/mame/drivers/blockout.c
+++ b/src/mame/drivers/blockout.c
@@ -309,7 +309,7 @@ static MACHINE_CONFIG_START( blockout, blockout_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 247)
MCFG_SCREEN_UPDATE_DRIVER(blockout_state, screen_update_blockout)
- MCFG_PALETTE_LENGTH(513)
+ MCFG_PALETTE_ADD("palette", 513)
/* sound hardware */
diff --git a/src/mame/drivers/bloodbro.c b/src/mame/drivers/bloodbro.c
index 4ff2c642ff6..6138af7c61a 100644
--- a/src/mame/drivers/bloodbro.c
+++ b/src/mame/drivers/bloodbro.c
@@ -137,7 +137,7 @@ static ADDRESS_MAP_START( common_map, AS_PROGRAM, 16, bloodbro_state )
AM_RANGE(0x08d400, 0x08d7ff) AM_RAM
AM_RANGE(0x08d800, 0x08dfff) AM_RAM_WRITE(bloodbro_txvideoram_w) AM_SHARE("txvideoram")
AM_RANGE(0x08e000, 0x08e7ff) AM_RAM
- AM_RANGE(0x08e800, 0x08f7ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x08e800, 0x08f7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08f800, 0x08ffff) AM_RAM
AM_RANGE(0x0a0000, 0x0a000d) AM_DEVREADWRITE("seibu_sound", seibu_sound_device, main_word_r, main_word_w)
// AM_RANGE(0x0c0000, 0x0c007f) AM_RAM AM_SHARE("scroll")
@@ -173,7 +173,7 @@ static ADDRESS_MAP_START( weststry_map, AS_PROGRAM, 16, bloodbro_state )
AM_RANGE(0x0c1002, 0x0c1003) AM_READ_PORT("IN0")
AM_RANGE(0x0c1004, 0x0c1005) AM_READ_PORT("IN1")
AM_RANGE(0x0c1000, 0x0c17ff) AM_RAM
- AM_RANGE(0x128000, 0x1287ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x128000, 0x1287ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x120000, 0x128fff) AM_RAM
ADDRESS_MAP_END
@@ -478,7 +478,8 @@ static MACHINE_CONFIG_START( bloodbro, bloodbro_state )
MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0)
MCFG_GFXDECODE_ADD("gfxdecode", bloodbro)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
// sound hardware
SEIBU_SOUND_SYSTEM_YM3812_RAIDEN_INTERFACE(XTAL_7_15909MHz/2, XTAL_12MHz/12)
@@ -491,7 +492,9 @@ static MACHINE_CONFIG_DERIVED( weststry, bloodbro )
MCFG_CPU_VBLANK_INT_DRIVER("screen", bloodbro_state, irq6_line_hold)
MCFG_GFXDECODE_MODIFY("gfxdecode", weststry)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_weststry)
diff --git a/src/mame/drivers/blstroid.c b/src/mame/drivers/blstroid.c
index 7814d2e61a0..d04e4f692a4 100644
--- a/src/mame/drivers/blstroid.c
+++ b/src/mame/drivers/blstroid.c
@@ -77,7 +77,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, blstroid_state )
AM_RANGE(0xff9804, 0xff9805) AM_MIRROR(0x7f83f8) AM_READ_PORT("DIAL1")
AM_RANGE(0xff9c00, 0xff9c01) AM_MIRROR(0x7f83fc) AM_READ_PORT("IN0")
AM_RANGE(0xff9c02, 0xff9c03) AM_MIRROR(0x7f83fc) AM_READ_PORT("IN1")
- AM_RANGE(0xffa000, 0xffa3ff) AM_MIRROR(0x7f8c00) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xffa000, 0xffa3ff) AM_MIRROR(0x7f8c00) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xffb000, 0xffb3ff) AM_MIRROR(0x7f8c00) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0xffc000, 0xffcfff) AM_MIRROR(0x7f8000) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield")
AM_RANGE(0xffd000, 0xffdfff) AM_MIRROR(0x7f8000) AM_RAM AM_SHARE("mob")
@@ -184,7 +184,9 @@ static MACHINE_CONFIG_START( blstroid, blstroid_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", blstroid)
- MCFG_PALETTE_LENGTH(512)
+
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, blstroid_state, get_playfield_tile_info, 16,8, SCAN_ROWS, 64,64)
MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "screen", blstroid_state::s_mob_config)
diff --git a/src/mame/drivers/blueprnt.c b/src/mame/drivers/blueprnt.c
index 0243b9e3ba9..09f3c2f62ce 100644
--- a/src/mame/drivers/blueprnt.c
+++ b/src/mame/drivers/blueprnt.c
@@ -386,7 +386,8 @@ static MACHINE_CONFIG_START( blueprnt, blueprnt_state )
MCFG_SCREEN_UPDATE_DRIVER(blueprnt_state, screen_update_blueprnt)
MCFG_GFXDECODE_ADD("gfxdecode", blueprnt)
- MCFG_PALETTE_LENGTH(128*4+8)
+ MCFG_PALETTE_ADD("palette", 128*4+8)
+ MCFG_PALETTE_INIT_OWNER(blueprnt_state, blueprnt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bmcbowl.c b/src/mame/drivers/bmcbowl.c
index fe3d46f5112..261c037db2b 100644
--- a/src/mame/drivers/bmcbowl.c
+++ b/src/mame/drivers/bmcbowl.c
@@ -160,7 +160,7 @@ UINT32 bmcbowl_state::screen_update_bmcbowl(screen_device &screen, bitmap_ind16
*/
int x,y,z,pixdat;
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
z=0;
for (y=0;y<230;y++)
@@ -231,7 +231,7 @@ WRITE16_MEMBER(bmcbowl_state::bmc_RAMDAC_offset_w)
WRITE16_MEMBER(bmcbowl_state::bmc_RAMDAC_color_w)
{
m_colorram[m_clr_offset]=data;
- palette_set_color_rgb(machine(),m_clr_offset/3,pal6bit(m_colorram[(m_clr_offset/3)*3]),pal6bit(m_colorram[(m_clr_offset/3)*3+1]),pal6bit(m_colorram[(m_clr_offset/3)*3+2]));
+ m_palette->set_pen_color(m_clr_offset/3,pal6bit(m_colorram[(m_clr_offset/3)*3]),pal6bit(m_colorram[(m_clr_offset/3)*3+1]),pal6bit(m_colorram[(m_clr_offset/3)*3+2]));
m_clr_offset=(m_clr_offset+1)%768;
}
@@ -481,7 +481,7 @@ static MACHINE_CONFIG_START( bmcbowl, bmcbowl_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 0*8, 29*8-1)
MCFG_SCREEN_UPDATE_DRIVER(bmcbowl_state, screen_update_bmcbowl)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_NVRAM_ADD_1FILL("nvram")
diff --git a/src/mame/drivers/bmcpokr.c b/src/mame/drivers/bmcpokr.c
index c981b33a5b8..f2277b628ab 100644
--- a/src/mame/drivers/bmcpokr.c
+++ b/src/mame/drivers/bmcpokr.c
@@ -213,7 +213,7 @@ UINT32 bmcpokr_state::screen_update_bmcpokr(screen_device &screen, bitmap_ind16
UINT16 data = m_videoram[count];
count++;
- gfx->opaque(bitmap,cliprect,data,0,0,0,x*8,y*8);
+ gfx->opaque(m_palette,bitmap,cliprect,data,0,0,0,x*8,y*8);
}
}
@@ -239,7 +239,7 @@ static MACHINE_CONFIG_START( bmcpokr, bmcpokr_state )
MCFG_SCREEN_UPDATE_DRIVER(bmcpokr_state, screen_update_bmcpokr)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_GFXDECODE_ADD("gfxdecode", bmcpokr)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/bnstars.c b/src/mame/drivers/bnstars.c
index da15237fc8c..25d67cae03c 100644
--- a/src/mame/drivers/bnstars.c
+++ b/src/mame/drivers/bnstars.c
@@ -366,7 +366,7 @@ void bnstars_state::update_color(int color, int screen)
g = ((m_ms32_pal_ram[screen][color*2] & 0x00ff) >>0 );
b = ((m_ms32_pal_ram[screen][color*2+1] & 0x00ff) >>0 );
- palette_set_color(machine(),color+screen*0x8000,rgb_t(r,g,b));
+ m_palette->set_pen_color(color+screen*0x8000,rgb_t(r,g,b));
}
WRITE32_MEMBER(bnstars_state::ms32_pal0_ram_w)
@@ -499,7 +499,7 @@ void bnstars_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, co
pri_mask = 0xfe;
gfx->set_source_clip(tx, xsize, ty, ysize);
- gfx->prio_zoom_transpen(bitmap,cliprect,
+ gfx->prio_zoom_transpen(m_palette,bitmap,cliprect,
code,
color,
flipx, flipy,
@@ -1390,7 +1390,7 @@ static MACHINE_CONFIG_START( bnstars, bnstars_state )
MCFG_GFXDECODE_ADD("gfxdecode", bnstars)
- MCFG_PALETTE_LENGTH(0x8000*2)
+ MCFG_PALETTE_ADD("palette", 0x8000*2)
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
diff --git a/src/mame/drivers/bntyhunt.c b/src/mame/drivers/bntyhunt.c
index 5efe3cc2685..7b41d2919cb 100644
--- a/src/mame/drivers/bntyhunt.c
+++ b/src/mame/drivers/bntyhunt.c
@@ -59,7 +59,7 @@ static MACHINE_CONFIG_START( bntyhunt, bntyhunt_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/bogeyman.c b/src/mame/drivers/bogeyman.c
index 8dbbac05158..57ed8dc6bc0 100644
--- a/src/mame/drivers/bogeyman.c
+++ b/src/mame/drivers/bogeyman.c
@@ -251,8 +251,9 @@ static MACHINE_CONFIG_START( bogeyman, bogeyman_state )
MCFG_SCREEN_UPDATE_DRIVER(bogeyman_state, screen_update_bogeyman)
MCFG_GFXDECODE_ADD("gfxdecode", bogeyman)
- MCFG_PALETTE_LENGTH(16+256)
-
+ MCFG_PALETTE_ADD("palette", 16+256)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
+ MCFG_PALETTE_INIT_OWNER(bogeyman_state, bogeyman)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bombjack.c b/src/mame/drivers/bombjack.c
index 8fdd126d70a..6368d5840c5 100644
--- a/src/mame/drivers/bombjack.c
+++ b/src/mame/drivers/bombjack.c
@@ -140,7 +140,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bombjack_state )
AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE(bombjack_colorram_w) AM_SHARE("colorram")
AM_RANGE(0x9820, 0x987f) AM_WRITEONLY AM_SHARE("spriteram")
AM_RANGE(0x9a00, 0x9a00) AM_WRITENOP
- AM_RANGE(0x9c00, 0x9cff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0x9c00, 0x9cff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x9e00, 0x9e00) AM_WRITE(bombjack_background_w)
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("P1")
AM_RANGE(0xb000, 0xb000) AM_WRITE(irq_mask_w)
@@ -371,7 +371,8 @@ static MACHINE_CONFIG_START( bombjack, bombjack_state )
MCFG_SCREEN_UPDATE_DRIVER(bombjack_state, screen_update_bombjack)
MCFG_GFXDECODE_ADD("gfxdecode", bombjack)
- MCFG_PALETTE_LENGTH(128)
+ MCFG_PALETTE_ADD("palette", 128)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
diff --git a/src/mame/drivers/boogwing.c b/src/mame/drivers/boogwing.c
index 121568adda8..19c7e670c85 100644
--- a/src/mame/drivers/boogwing.c
+++ b/src/mame/drivers/boogwing.c
@@ -351,7 +351,7 @@ static MACHINE_CONFIG_START( boogwing, boogwing_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(boogwing_state, screen_update_boogwing)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_GFXDECODE_ADD("gfxdecode", boogwing)
@@ -362,17 +362,21 @@ static MACHINE_CONFIG_START( boogwing, boogwing_state )
MCFG_DECO16IC_ADD("tilegen1", boogwing_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", boogwing_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 4);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO104_ADD("ioprot104")
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE
diff --git a/src/mame/drivers/bottom9.c b/src/mame/drivers/bottom9.c
index cb184aad7a4..f8f63cbb4c4 100644
--- a/src/mame/drivers/bottom9.c
+++ b/src/mame/drivers/bottom9.c
@@ -83,7 +83,7 @@ WRITE8_MEMBER(bottom9_state::bottom9_bankedram2_w)
if (m_k052109_selected)
k052109_051960_w(space, offset + 0x2000, data);
else
- paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data);
+ m_palette->write(space, offset, data);
}
WRITE8_MEMBER(bottom9_state::bankswitch_w)
@@ -340,8 +340,6 @@ static MACHINE_CONFIG_START( bottom9, bottom9_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -349,15 +347,20 @@ static MACHINE_CONFIG_START( bottom9, bottom9_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(bottom9_state, screen_update_bottom9)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", bottom9_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", bottom9_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
MCFG_K051316_ADD("k051316", bottom9_k051316_intf)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bowltry.c b/src/mame/drivers/bowltry.c
index af23b436a8e..f2730ed7349 100644
--- a/src/mame/drivers/bowltry.c
+++ b/src/mame/drivers/bowltry.c
@@ -67,7 +67,7 @@ static MACHINE_CONFIG_START( bowltry, bowltry_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(bowltry_state, screen_update_bowltry)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
/* tt5665 sound */
diff --git a/src/mame/drivers/boxer.c b/src/mame/drivers/boxer.c
index 2171892b257..dfa850d93a2 100644
--- a/src/mame/drivers/boxer.c
+++ b/src/mame/drivers/boxer.c
@@ -58,7 +58,7 @@ public:
DECLARE_WRITE8_MEMBER(boxer_led_w);
virtual void machine_start();
virtual void machine_reset();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(boxer);
UINT32 screen_update_boxer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(pot_interrupt);
TIMER_CALLBACK_MEMBER(periodic_callback);
@@ -143,13 +143,13 @@ TIMER_CALLBACK_MEMBER(boxer_state::periodic_callback)
*
*************************************/
-void boxer_state::palette_init()
+PALETTE_INIT_MEMBER(boxer_state, boxer)
{
- palette_set_color(machine(),0, rgb_t(0x00,0x00,0x00));
- palette_set_color(machine(),1, rgb_t(0xff,0xff,0xff));
+ palette.set_pen_color(0, rgb_t(0x00,0x00,0x00));
+ palette.set_pen_color(1, rgb_t(0xff,0xff,0xff));
- palette_set_color(machine(),2, rgb_t(0xff,0xff,0xff));
- palette_set_color(machine(),3, rgb_t(0x00,0x00,0x00));
+ palette.set_pen_color(2, rgb_t(0xff,0xff,0xff));
+ palette.set_pen_color(3, rgb_t(0x00,0x00,0x00));
}
void boxer_state::draw_boxer( bitmap_ind16 &bitmap, const rectangle &cliprect )
@@ -177,7 +177,7 @@ void boxer_state::draw_boxer( bitmap_ind16 &bitmap, const rectangle &cliprect )
code = p[32 * l + 4 * i + j];
- m_gfxdecode->gfx(n)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(n)->transpen(m_palette,bitmap,cliprect,
code,
0,
code & 0x80, 0,
@@ -187,7 +187,7 @@ void boxer_state::draw_boxer( bitmap_ind16 &bitmap, const rectangle &cliprect )
code = p[32 * r + 4 * i - j + 3];
- m_gfxdecode->gfx(n)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(n)->transpen(m_palette,bitmap,cliprect,
code,
0,
!(code & 0x80), 0,
@@ -212,7 +212,7 @@ UINT32 boxer_state::screen_update_boxer(screen_device &screen, bitmap_ind16 &bit
UINT8 code = m_tile_ram[32 * i + j];
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect,
code,
0,
code & 0x40, code & 0x40,
@@ -483,7 +483,8 @@ static MACHINE_CONFIG_START( boxer, boxer_state )
MCFG_SCREEN_UPDATE_DRIVER(boxer_state, screen_update_boxer)
MCFG_GFXDECODE_ADD("gfxdecode", boxer)
- MCFG_PALETTE_LENGTH(4)
+ MCFG_PALETTE_ADD("palette", 4)
+ MCFG_PALETTE_INIT_OWNER(boxer_state, boxer)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/brkthru.c b/src/mame/drivers/brkthru.c
index bae48ba6c0c..ed1f633db35 100644
--- a/src/mame/drivers/brkthru.c
+++ b/src/mame/drivers/brkthru.c
@@ -382,7 +382,9 @@ static MACHINE_CONFIG_START( brkthru, brkthru_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", brkthru)
- MCFG_PALETTE_LENGTH(256)
+
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(brkthru_state, brkthru)
/* not sure; assuming to be the same as darwin */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -418,7 +420,9 @@ static MACHINE_CONFIG_START( darwin, brkthru_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", brkthru)
- MCFG_PALETTE_LENGTH(256)
+
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(brkthru_state, brkthru)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 8, 248, 272, 8, 248)
diff --git a/src/mame/drivers/bsktball.c b/src/mame/drivers/bsktball.c
index 9d70de695d3..04e966c80d7 100644
--- a/src/mame/drivers/bsktball.c
+++ b/src/mame/drivers/bsktball.c
@@ -35,33 +35,31 @@
*
*************************************/
-void bsktball_state::palette_init()
+PALETTE_INIT_MEMBER(bsktball_state, bsktball)
{
int i;
- machine().colortable = colortable_alloc(machine(), 4);
-
- colortable_palette_set_color(machine().colortable,0,rgb_t(0x00,0x00,0x00)); /* BLACK */
- colortable_palette_set_color(machine().colortable,1,rgb_t(0x80,0x80,0x80)); /* LIGHT GREY */
- colortable_palette_set_color(machine().colortable,2,rgb_t(0x50,0x50,0x50)); /* DARK GREY */
- colortable_palette_set_color(machine().colortable,3,rgb_t(0xff,0xff,0xff)); /* WHITE */
+ palette.set_indirect_color(0,rgb_t(0x00,0x00,0x00)); /* BLACK */
+ palette.set_indirect_color(1,rgb_t(0x80,0x80,0x80)); /* LIGHT GREY */
+ palette.set_indirect_color(2,rgb_t(0x50,0x50,0x50)); /* DARK GREY */
+ palette.set_indirect_color(3,rgb_t(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);
+ palette.set_pen_indirect(i*4 + 0, 1);
+ palette.set_pen_indirect(i*4 + 1, 3 * i);
+ palette.set_pen_indirect(i*4 + 2, 3 * i);
+ palette.set_pen_indirect(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);
+ palette.set_pen_indirect(2*4 + i*4 + 0, 1);
+ palette.set_pen_indirect(2*4 + i*4 + 1, (i >> 2) & 3);
+ palette.set_pen_indirect(2*4 + i*4 + 2, (i >> 0) & 3);
+ palette.set_pen_indirect(2*4 + i*4 + 3, (i >> 4) & 3);
}
}
@@ -259,8 +257,8 @@ static MACHINE_CONFIG_START( bsktball, bsktball_state )
MCFG_SCREEN_UPDATE_DRIVER(bsktball_state, screen_update_bsktball)
MCFG_GFXDECODE_ADD("gfxdecode", bsktball)
- MCFG_PALETTE_LENGTH(2*4 + 4*4*4*4)
-
+ MCFG_PALETTE_ADD("palette", 2*4 + 4*4*4*4)
+ MCFG_PALETTE_INIT_OWNER(bsktball_state, bsktball)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c
index 374e676796d..6ddde335845 100644
--- a/src/mame/drivers/btime.c
+++ b/src/mame/drivers/btime.c
@@ -190,7 +190,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(btime_state::audio_nmi_gen)
static ADDRESS_MAP_START( btime_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("rambase")
- AM_RANGE(0x0c00, 0x0c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c00, 0x0c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("palette")
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0x1400, 0x17ff) AM_RAM AM_SHARE("colorram")
AM_RANGE(0x1800, 0x1bff) AM_READWRITE(btime_mirrorvideoram_r, btime_mirrorvideoram_w)
@@ -225,7 +225,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tisland_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("rambase")
- AM_RANGE(0x0c00, 0x0c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c00, 0x0c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("palette")
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0x1400, 0x17ff) AM_RAM AM_SHARE("colorram")
AM_RANGE(0x1800, 0x1bff) AM_READWRITE(btime_mirrorvideoram_r, btime_mirrorvideoram_w)
@@ -302,7 +302,7 @@ static ADDRESS_MAP_START( bnj_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x5200, 0x53ff) AM_RAM
AM_RANGE(0x5400, 0x5400) AM_WRITE(bnj_scroll1_w)
AM_RANGE(0x5800, 0x5800) AM_WRITE(bnj_scroll2_w)
- AM_RANGE(0x5c00, 0x5c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x5c00, 0x5c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("palette")
AM_RANGE(0xa000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -1318,9 +1318,11 @@ static MACHINE_CONFIG_START( btime, btime_state )
MCFG_MACHINE_RESET_OVERRIDE(btime_state,btime)
MCFG_GFXDECODE_ADD("gfxdecode", btime)
- MCFG_PALETTE_LENGTH(16)
+
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_INIT_OWNER(btime_state,btime)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
- MCFG_PALETTE_INIT_OVERRIDE(btime_state,btime)
MCFG_VIDEO_START_OVERRIDE(btime_state,btime)
/* sound hardware */
@@ -1355,7 +1357,6 @@ static MACHINE_CONFIG_DERIVED( cookrace, btime )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", cookrace)
- MCFG_PALETTE_LENGTH(16)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_cookrace)
@@ -1372,9 +1373,11 @@ static MACHINE_CONFIG_DERIVED( lnc, btime )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", lnc)
- MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT_OVERRIDE(btime_state,lnc)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(8)
+ MCFG_PALETTE_INIT_OWNER(btime_state,lnc)
+
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_lnc)
MACHINE_CONFIG_END
@@ -1409,7 +1412,6 @@ static MACHINE_CONFIG_DERIVED( bnj, btime )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", bnj)
- MCFG_PALETTE_LENGTH(16)
MCFG_VIDEO_START_OVERRIDE(btime_state,bnj)
MCFG_SCREEN_MODIFY("screen")
@@ -1434,9 +1436,11 @@ static MACHINE_CONFIG_DERIVED( zoar, btime )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", zoar)
- MCFG_PALETTE_LENGTH(64)
- MCFG_DEVICE_MODIFY("screen")
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(64)
+
+ MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_zoar)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) // 256 * 240, confirmed
@@ -1462,7 +1466,9 @@ static MACHINE_CONFIG_DERIVED( disco, btime )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", disco)
- MCFG_PALETTE_LENGTH(32)
+
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(32)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_disco)
diff --git a/src/mame/drivers/bublbobl.c b/src/mame/drivers/bublbobl.c
index 3e3f9752fcb..53092cf64ff 100644
--- a/src/mame/drivers/bublbobl.c
+++ b/src/mame/drivers/bublbobl.c
@@ -290,7 +290,7 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, bublbobl_state )
AM_RANGE(0xc000, 0xdcff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_SHARE("objectram")
AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf800, 0xf9ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfa00, 0xfa00) AM_READWRITE(bublbobl_sound_status_r, bublbobl_sound_command_w)
AM_RANGE(0xfa03, 0xfa03) AM_WRITE(bublbobl_soundcpu_reset_w)
AM_RANGE(0xfa80, 0xfa80) AM_WRITE(watchdog_reset_w)
@@ -346,7 +346,7 @@ static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 8, bublbobl_state )
AM_RANGE(0xc000, 0xdcff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_SHARE("objectram")
AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf800, 0xf9ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfa00, 0xfa00) AM_READWRITE(bublbobl_sound_status_r, bublbobl_sound_command_w)
AM_RANGE(0xfa03, 0xfa03) AM_WRITE(bublbobl_soundcpu_reset_w)
AM_RANGE(0xfa80, 0xfa80) AM_WRITENOP // ???
@@ -370,7 +370,7 @@ static ADDRESS_MAP_START( tokio_map, AS_PROGRAM, 8, bublbobl_state )
AM_RANGE(0xc000, 0xdcff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_SHARE("objectram")
AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf800, 0xf9ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfa00, 0xfa00) AM_WRITE(watchdog_reset_w)
AM_RANGE(0xfa03, 0xfa03) AM_READ_PORT("DSW0")
AM_RANGE(0xfa04, 0xfa04) AM_READ_PORT("DSW1")
@@ -771,7 +771,8 @@ static MACHINE_CONFIG_START( tokio, bublbobl_state )
MCFG_SCREEN_UPDATE_DRIVER(bublbobl_state, screen_update_bublbobl)
MCFG_GFXDECODE_ADD("gfxdecode", bublbobl)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -851,7 +852,8 @@ static MACHINE_CONFIG_START( bublbobl, bublbobl_state )
MCFG_SCREEN_UPDATE_DRIVER(bublbobl_state, screen_update_bublbobl)
MCFG_GFXDECODE_ADD("gfxdecode", bublbobl)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c
index 81b4e8c33f2..79745a7e9f1 100644
--- a/src/mame/drivers/buggychl.c
+++ b/src/mame/drivers/buggychl.c
@@ -150,7 +150,7 @@ static ADDRESS_MAP_START( buggychl_map, AS_PROGRAM, 8, buggychl_state )
// AM_RANGE(0xd60b, 0xd60b) // other inputs, not used?
AM_RANGE(0xd610, 0xd610) AM_WRITE(sound_command_w)
AM_RANGE(0xd618, 0xd618) AM_WRITENOP /* accelerator clear */
- AM_RANGE(0xd700, 0xd7ff) AM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd700, 0xd7ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd840, 0xd85f) AM_WRITEONLY AM_SHARE("scrollv")
AM_RANGE(0xdb00, 0xdbff) AM_WRITEONLY AM_SHARE("scrollh")
AM_RANGE(0xdc04, 0xdc04) AM_WRITEONLY /* should be fg scroll */
@@ -409,8 +409,9 @@ static MACHINE_CONFIG_START( buggychl, buggychl_state )
MCFG_SCREEN_UPDATE_DRIVER(buggychl_state, screen_update_buggychl)
MCFG_GFXDECODE_ADD("gfxdecode", buggychl)
- MCFG_PALETTE_LENGTH(128+128)
-
+ MCFG_PALETTE_ADD("palette", 128+128)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
+ MCFG_PALETTE_INIT_OWNER(buggychl_state, buggychl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/buster.c b/src/mame/drivers/buster.c
index a697749c98f..6cc16e6ba77 100644
--- a/src/mame/drivers/buster.c
+++ b/src/mame/drivers/buster.c
@@ -24,7 +24,7 @@ public:
required_shared_ptr<UINT8> m_vram;
DECLARE_READ8_MEMBER(test_r);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(buster);
UINT32 screen_update_buster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -49,7 +49,7 @@ UINT32 buster_state::screen_update_buster(screen_device &screen, bitmap_ind16 &b
{
int tile = (m_vram[count+1])|(m_vram[count]<<8);
//int colour = tile>>12;
- gfx->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*4);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*8,y*4);
count+=2;
}
@@ -325,13 +325,13 @@ static MC6845_INTERFACE( mc6845_intf )
NULL /* update address callback */
};
-void buster_state::palette_init()
+PALETTE_INIT_MEMBER(buster_state, buster)
{
int i;
/* RGB format */
for(i=0;i<8;i++)
- palette_set_color(machine(), i, rgb_t(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2)));
+ palette.set_pen_color(i, rgb_t(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2)));
}
static MACHINE_CONFIG_START( buster, buster_state )
@@ -350,8 +350,8 @@ static MACHINE_CONFIG_START( buster, buster_state )
MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL_3_579545MHz/4, mc6845_intf) //unknown clock / type
MCFG_GFXDECODE_ADD("gfxdecode", buster)
- MCFG_PALETTE_LENGTH(8)
-
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(buster_state, buster)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bwing.c b/src/mame/drivers/bwing.c
index 595e45b5fa3..2238e0b227a 100644
--- a/src/mame/drivers/bwing.c
+++ b/src/mame/drivers/bwing.c
@@ -380,7 +380,7 @@ static MACHINE_CONFIG_START( bwing, bwing_state )
MCFG_SCREEN_UPDATE_DRIVER(bwing_state, screen_update_bwing)
MCFG_GFXDECODE_ADD("gfxdecode", bwing)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
// sound hardware
diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c
index a3e07eea37f..491010055be 100644
--- a/src/mame/drivers/cabal.c
+++ b/src/mame/drivers/cabal.c
@@ -126,7 +126,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cabal_state )
AM_RANGE(0xc0000, 0xc0001) AM_WRITE(track_reset_w)
AM_RANGE(0xc0040, 0xc0041) AM_WRITENOP /* ??? */
AM_RANGE(0xc0080, 0xc0081) AM_WRITE(cabal_flipscreen_w)
- AM_RANGE(0xe0000, 0xe07ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe0000, 0xe07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xe8008, 0xe8009) AM_WRITE(cabal_sound_irq_trigger_word_w) // fix coin insertion
AM_RANGE(0xe8000, 0xe800d) AM_DEVREADWRITE("seibu_sound", seibu_sound_device, main_word_r, main_word_w)
ADDRESS_MAP_END
@@ -144,7 +144,7 @@ static ADDRESS_MAP_START( cabalbl_main_map, AS_PROGRAM, 16, cabal_state )
AM_RANGE(0xa0010, 0xa0011) AM_READ_PORT("INPUTS")
AM_RANGE(0xc0040, 0xc0041) AM_WRITENOP /* ??? */
AM_RANGE(0xc0080, 0xc0081) AM_WRITE(cabal_flipscreen_w)
- AM_RANGE(0xe0000, 0xe07ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe0000, 0xe07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xe8000, 0xe8003) AM_WRITE(cabalbl_sndcmd_w)
AM_RANGE(0xe8004, 0xe8005) AM_READ(soundlatch2_word_r)
AM_RANGE(0xe8008, 0xe8009) AM_WRITE(cabalbl_sound_irq_trigger_word_w)
@@ -489,8 +489,8 @@ static MACHINE_CONFIG_START( cabal, cabal_state )
MCFG_SCREEN_UPDATE_DRIVER(cabal_state, screen_update_cabal)
MCFG_GFXDECODE_ADD("gfxdecode", cabal)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SEIBU_SOUND_ADD("seibu_sound")
@@ -546,8 +546,8 @@ static MACHINE_CONFIG_START( cabalbl, cabal_state )
MCFG_SCREEN_UPDATE_DRIVER(cabal_state, screen_update_cabal)
MCFG_GFXDECODE_ADD("gfxdecode", cabal)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cabaret.c b/src/mame/drivers/cabaret.c
index 3caf3eebb51..1a27572709c 100644
--- a/src/mame/drivers/cabaret.c
+++ b/src/mame/drivers/cabaret.c
@@ -120,7 +120,7 @@ void cabaret_state::video_start()
UINT32 cabaret_state::screen_update_cabaret(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
@@ -188,8 +188,8 @@ static ADDRESS_MAP_START( cabaret_portmap, AS_IO, 8, cabaret_state )
AM_RANGE( 0x2000, 0x27ff ) AM_RAM_WRITE(fg_tile_w ) AM_SHARE("fg_tile_ram")
AM_RANGE( 0x2800, 0x2fff ) AM_RAM_WRITE(fg_color_w ) AM_SHARE("fg_color_ram")
- AM_RANGE( 0x3000, 0x37ff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram")
- AM_RANGE( 0x3800, 0x3fff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2")
+ AM_RANGE( 0x3000, 0x37ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE( 0x3800, 0x3fff ) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE( 0x1000, 0x103f ) AM_RAM_WRITE(bg_scroll_w ) AM_SHARE("bg_scroll")
@@ -352,8 +352,8 @@ static MACHINE_CONFIG_START( cabaret, cabaret_state )
MCFG_SCREEN_UPDATE_DRIVER(cabaret_state, screen_update_cabaret)
MCFG_GFXDECODE_ADD("gfxdecode", cabaret)
- MCFG_PALETTE_LENGTH(0x800)
-
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/calomega.c b/src/mame/drivers/calomega.c
index 8c952b99349..dd839c347cf 100644
--- a/src/mame/drivers/calomega.c
+++ b/src/mame/drivers/calomega.c
@@ -2649,8 +2649,8 @@ static MACHINE_CONFIG_START( sys903, calomega_state )
MCFG_SCREEN_UPDATE_DRIVER(calomega_state, screen_update_calomega)
MCFG_GFXDECODE_ADD("gfxdecode", calomega)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_OWNER(calomega_state, calomega)
MCFG_MC6845_ADD("crtc", MC6845, "screen", CPU_CLOCK, mc6845_intf) /* 6845 @ CPU clock */
diff --git a/src/mame/drivers/calorie.c b/src/mame/drivers/calorie.c
index 3e3c26a7b2f..6336f668577 100644
--- a/src/mame/drivers/calorie.c
+++ b/src/mame/drivers/calorie.c
@@ -195,12 +195,12 @@ UINT32 calorie_state::screen_update_calorie(screen_device &screen, bitmap_ind16
if (m_sprites[x + 1] & 0x10)
{
/* 32x32 sprites */
- m_gfxdecode->gfx(3)->transpen(bitmap,cliprect, tileno | 0x40, color, flipx, flipy, xpos, ypos - 31, 0);
+ m_gfxdecode->gfx(3)->transpen(m_palette,bitmap,cliprect, tileno | 0x40, color, flipx, flipy, xpos, ypos - 31, 0);
}
else
{
/* 16x16 sprites */
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, tileno, color, flipx, flipy, xpos, ypos - 15, 0);
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, tileno, color, flipx, flipy, xpos, ypos - 15, 0);
}
}
return 0;
@@ -255,7 +255,7 @@ static ADDRESS_MAP_START( calorie_map, AS_PROGRAM, 8, calorie_state )
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(fg_ram_w) AM_SHARE("fg_ram")
AM_RANGE(0xd800, 0xdbff) AM_RAM AM_SHARE("sprites")
- AM_RANGE(0xdc00, 0xdcff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xdc00, 0xdcff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xde00, 0xde00) AM_WRITE(bg_bank_w)
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("P1")
AM_RANGE(0xf001, 0xf001) AM_READ_PORT("P2")
@@ -460,8 +460,8 @@ static MACHINE_CONFIG_START( calorie, calorie_state )
MCFG_SCREEN_UPDATE_DRIVER(calorie_state, screen_update_calorie)
MCFG_GFXDECODE_ADD("gfxdecode", calorie)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/canyon.c b/src/mame/drivers/canyon.c
index 22043d27512..877b8fedd28 100644
--- a/src/mame/drivers/canyon.c
+++ b/src/mame/drivers/canyon.c
@@ -48,12 +48,12 @@
*
*************************************/
-void canyon_state::palette_init()
+PALETTE_INIT_MEMBER(canyon_state, canyon)
{
- palette_set_color(machine(), 0, rgb_t(0x80, 0x80, 0x80)); /* GREY */
- palette_set_color(machine(), 1, rgb_t(0x00, 0x00, 0x00)); /* BLACK */
- palette_set_color(machine(), 2, rgb_t(0x80, 0x80, 0x80)); /* GREY */
- palette_set_color(machine(), 3, rgb_t(0xff, 0xff, 0xff)); /* WHITE */
+ palette.set_pen_color(0, rgb_t(0x80, 0x80, 0x80)); /* GREY */
+ palette.set_pen_color(1, rgb_t(0x00, 0x00, 0x00)); /* BLACK */
+ palette.set_pen_color(2, rgb_t(0x80, 0x80, 0x80)); /* GREY */
+ palette.set_pen_color(3, rgb_t(0xff, 0xff, 0xff)); /* WHITE */
}
@@ -251,8 +251,8 @@ static MACHINE_CONFIG_START( canyon, canyon_state )
MCFG_SCREEN_UPDATE_DRIVER(canyon_state, screen_update_canyon)
MCFG_GFXDECODE_ADD("gfxdecode", canyon)
- MCFG_PALETTE_LENGTH(4)
-
+ MCFG_PALETTE_ADD("palette", 4)
+ MCFG_PALETTE_INIT_OWNER(canyon_state, canyon)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/cardline.c b/src/mame/drivers/cardline.c
index 09dd7bd1a44..ba89c4e2977 100644
--- a/src/mame/drivers/cardline.c
+++ b/src/mame/drivers/cardline.c
@@ -42,7 +42,7 @@ public:
DECLARE_WRITE8_MEMBER(video_w);
DECLARE_READ8_MEMBER(unk_r);
DECLARE_WRITE8_MEMBER(lamps_w);
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(cardline);
UINT32 screen_update_cardline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -50,7 +50,7 @@ public:
-#define DRAW_TILE(machine, offset, transparency) m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,\
+#define DRAW_TILE(machine, offset, transparency) m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,\
(m_videoram[index+offset] | (m_colorram[index+offset]<<8))&0x3fff,\
(m_colorram[index+offset]&0x80)>>7,\
0,0,\
@@ -189,12 +189,12 @@ static GFXDECODE_START( cardline )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 2 )
GFXDECODE_END
-void cardline_state::palette_init()
+PALETTE_INIT_MEMBER(cardline_state, cardline)
{
const UINT8 *color_prom = 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 < palette.entries();i++)
{
data=color_prom[i];
@@ -212,7 +212,7 @@ void cardline_state::palette_init()
bit0 = (data >> 0) & 0x01;
bit1 = (data >> 1) & 0x01;
b = 0x55 * bit0 + 0xaa * bit1;
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
}
}
@@ -233,7 +233,8 @@ static MACHINE_CONFIG_START( cardline, cardline_state )
MCFG_SCREEN_UPDATE_DRIVER(cardline_state, screen_update_cardline)
MCFG_GFXDECODE_ADD("gfxdecode", cardline)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(cardline_state, cardline)
MCFG_DEFAULT_LAYOUT(layout_cardline)
diff --git a/src/mame/drivers/carjmbre.c b/src/mame/drivers/carjmbre.c
index 719b012341e..509cd17276c 100644
--- a/src/mame/drivers/carjmbre.c
+++ b/src/mame/drivers/carjmbre.c
@@ -216,8 +216,8 @@ static MACHINE_CONFIG_START( carjmbre, carjmbre_state )
MCFG_SCREEN_UPDATE_DRIVER(carjmbre_state, screen_update_carjmbre)
MCFG_GFXDECODE_ADD("gfxdecode", carjmbre)
- MCFG_PALETTE_LENGTH(64)
-
+ MCFG_PALETTE_ADD("palette", 64)
+ MCFG_PALETTE_INIT_OWNER(carjmbre_state, carjmbre)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/carpolo.c b/src/mame/drivers/carpolo.c
index a9a5d3cbd6b..970c5fd71ce 100644
--- a/src/mame/drivers/carpolo.c
+++ b/src/mame/drivers/carpolo.c
@@ -293,7 +293,8 @@ static MACHINE_CONFIG_START( carpolo, carpolo_state )
MCFG_SCREEN_VBLANK_DRIVER(carpolo_state, screen_eof_carpolo)
MCFG_GFXDECODE_ADD("gfxdecode", carpolo)
- MCFG_PALETTE_LENGTH(12*2+2*16+4*2)
+ MCFG_PALETTE_ADD("palette", 12*2+2*16+4*2)
+ MCFG_PALETTE_INIT_OWNER(carpolo_state,carpolo)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/carrera.c b/src/mame/drivers/carrera.c
index 65902a154b6..8be58182c76 100644
--- a/src/mame/drivers/carrera.c
+++ b/src/mame/drivers/carrera.c
@@ -63,7 +63,7 @@ public:
required_shared_ptr<UINT8> m_tileram;
DECLARE_READ8_MEMBER(unknown_r);
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(carrera);
UINT32 screen_update_carrera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -263,7 +263,7 @@ UINT32 carrera_state::screen_update_carrera(screen_device &screen, bitmap_ind16
{
int tile = m_tileram[count&0x7ff] | m_tileram[(count&0x7ff)+0x800]<<8;
- m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*8);
+ m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*8,y*8);
count++;
}
}
@@ -286,7 +286,7 @@ static const ay8910_interface ay8910_config =
DEVCB_NULL
};
-void carrera_state::palette_init()
+PALETTE_INIT_MEMBER(carrera_state, carrera)
{
const UINT8 *color_prom = memregion("proms")->base();
int br_bit0, br_bit1, bit0, bit1, r, g, b;
@@ -307,7 +307,7 @@ void carrera_state::palette_init()
bit1 = (color_prom[0] >> 5) & 0x01;
r = 0x0e * br_bit0 + 0x1f * br_bit1 + 0x43 * bit0 + 0x8f * bit1;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
color_prom++;
}
}
@@ -347,8 +347,9 @@ static MACHINE_CONFIG_START( carrera, carrera_state )
MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK / 16, mc6845_intf)
MCFG_GFXDECODE_ADD("gfxdecode", carrera)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(carrera_state, carrera)
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/caswin.c b/src/mame/drivers/caswin.c
index d48375ce9df..c14c5d70ca4 100644
--- a/src/mame/drivers/caswin.c
+++ b/src/mame/drivers/caswin.c
@@ -93,7 +93,7 @@ public:
DECLARE_WRITE8_MEMBER(vvillage_lamps_w);
TILE_GET_INFO_MEMBER(get_sc0_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(caswin);
UINT32 screen_update_vvillage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -301,7 +301,7 @@ static const ay8910_interface ay8910_config =
DEVCB_NULL
};
-void caswin_state::palette_init()
+PALETTE_INIT_MEMBER(caswin_state, caswin)
{
const UINT8 *color_prom = memregion("proms")->base();
int bit0, bit1, bit2 , r, g, b;
@@ -322,7 +322,7 @@ void caswin_state::palette_init()
bit2 = (color_prom[0] >> 7) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
color_prom++;
}
}
@@ -346,8 +346,8 @@ static MACHINE_CONFIG_START( vvillage, caswin_state )
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_GFXDECODE_ADD("gfxdecode", vvillage)
- MCFG_PALETTE_LENGTH(0x40)
-
+ MCFG_PALETTE_ADD("palette", 0x40)
+ MCFG_PALETTE_INIT_OWNER(caswin_state, caswin)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c
index 09e02494b0e..ea6c4e729a5 100644
--- a/src/mame/drivers/cave.c
+++ b/src/mame/drivers/cave.c
@@ -2006,8 +2006,8 @@ static MACHINE_CONFIG_START( dfeveron, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", dfeveron)
- MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,dfeveron)
+ MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */
+ MCFG_PALETTE_INIT_OWNER(cave_state,dfeveron)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_2_layers)
@@ -2048,8 +2048,8 @@ static MACHINE_CONFIG_START( ddonpach, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", ddonpach)
- MCFG_PALETTE_LENGTH(0x8000 + 0x40*16) // $400 extra entries for layers 1&2
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,ddonpach)
+ MCFG_PALETTE_ADD("palette", 0x8000 + 0x40*16) // $400 extra entries for layers 1&2
+ MCFG_PALETTE_INIT_OWNER(cave_state,ddonpach)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
@@ -2094,8 +2094,8 @@ static MACHINE_CONFIG_START( donpachi, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", donpachi)
- MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,dfeveron)
+ MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */
+ MCFG_PALETTE_INIT_OWNER(cave_state,dfeveron)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
@@ -2140,8 +2140,8 @@ static MACHINE_CONFIG_START( esprade, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", esprade)
- MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave)
+ MCFG_PALETTE_ADD("palette", 0x8000)
+ MCFG_PALETTE_INIT_OWNER(cave_state,cave)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
@@ -2180,8 +2180,8 @@ static MACHINE_CONFIG_START( gaia, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", esprade)
- MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave)
+ MCFG_PALETTE_ADD("palette", 0x8000)
+ MCFG_PALETTE_INIT_OWNER(cave_state,cave)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
@@ -2221,8 +2221,8 @@ static MACHINE_CONFIG_START( guwange, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", esprade)
- MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave)
+ MCFG_PALETTE_ADD("palette", 0x8000)
+ MCFG_PALETTE_INIT_OWNER(cave_state,cave)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
@@ -2265,8 +2265,8 @@ static MACHINE_CONFIG_START( hotdogst, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", hotdogst)
- MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,dfeveron)
+ MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */
+ MCFG_PALETTE_INIT_OWNER(cave_state,dfeveron)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
@@ -2318,8 +2318,8 @@ static MACHINE_CONFIG_START( korokoro, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", korokoro)
- MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,korokoro)
+ MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */
+ MCFG_PALETTE_INIT_OWNER(cave_state,korokoro)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_1_layer)
@@ -2372,8 +2372,8 @@ static MACHINE_CONFIG_START( mazinger, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", mazinger)
- MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,mazinger)
+ MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */
+ MCFG_PALETTE_INIT_OWNER(cave_state,mazinger)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_2_layers)
@@ -2431,8 +2431,8 @@ static MACHINE_CONFIG_START( metmqstr, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", donpachi)
- MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,dfeveron)
+ MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */
+ MCFG_PALETTE_INIT_OWNER(cave_state,dfeveron)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
@@ -2488,8 +2488,8 @@ static MACHINE_CONFIG_START( pacslot, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", tjumpman)
- MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave)
+ MCFG_PALETTE_ADD("palette", 0x8000)
+ MCFG_PALETTE_INIT_OWNER(cave_state,cave)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_1_layer)
@@ -2557,8 +2557,8 @@ static MACHINE_CONFIG_START( ppsatan, cave_state )
MCFG_TIMER_DRIVER_ADD("int_timer_right", cave_state, cave_vblank_start_right)
MCFG_GFXDECODE_ADD("gfxdecode", ppsatan)
- MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,ppsatan)
+ MCFG_PALETTE_ADD("palette", 0x8000)
+ MCFG_PALETTE_INIT_OWNER(cave_state,ppsatan)
MCFG_DEFAULT_LAYOUT(layout_ppsatan)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers)
@@ -2609,8 +2609,8 @@ static MACHINE_CONFIG_START( pwrinst2, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", pwrinst2)
- MCFG_PALETTE_LENGTH(0x8000+0x2800)
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,pwrinst2)
+ MCFG_PALETTE_ADD("palette", 0x8000+0x2800)
+ MCFG_PALETTE_INIT_OWNER(cave_state,pwrinst2)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_4_layers)
@@ -2673,8 +2673,8 @@ static MACHINE_CONFIG_START( sailormn, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", sailormn)
- MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,sailormn) // 4 bit sprites, 6 bit tiles
+ MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */
+ MCFG_PALETTE_INIT_OWNER(cave_state,sailormn) // 4 bit sprites, 6 bit tiles
MCFG_VIDEO_START_OVERRIDE(cave_state,sailormn_3_layers) /* Layer 2 has 1 banked ROM */
@@ -2729,8 +2729,8 @@ static MACHINE_CONFIG_START( tjumpman, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", tjumpman)
- MCFG_PALETTE_LENGTH(0x8000)
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave)
+ MCFG_PALETTE_ADD("palette", 0x8000)
+ MCFG_PALETTE_INIT_OWNER(cave_state,cave)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_1_layer)
@@ -2770,9 +2770,9 @@ static MACHINE_CONFIG_START( uopoko, cave_state )
MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE_ADD("gfxdecode", uopoko)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
- MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave)
+ MCFG_PALETTE_INIT_OWNER(cave_state,cave)
MCFG_VIDEO_START_OVERRIDE(cave_state,cave_1_layer)
/* sound hardware */
diff --git a/src/mame/drivers/cavepc.c b/src/mame/drivers/cavepc.c
index 41052739968..9570bf4f9a0 100644
--- a/src/mame/drivers/cavepc.c
+++ b/src/mame/drivers/cavepc.c
@@ -118,7 +118,7 @@ static MACHINE_CONFIG_START( cavepc, cavepc_state )
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 199)
MCFG_SCREEN_UPDATE_DRIVER(cavepc_state, screen_update_cavepc)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/cb2001.c b/src/mame/drivers/cb2001.c
index e49c8dc8537..38bc972c399 100644
--- a/src/mame/drivers/cb2001.c
+++ b/src/mame/drivers/cb2001.c
@@ -72,7 +72,7 @@ public:
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();
+ DECLARE_PALETTE_INIT(cb2001);
UINT32 screen_update_cb2001(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vblank_irq);
required_device<cpu_device> m_maincpu;
@@ -340,7 +340,7 @@ e3 -> c6
UINT32 cb2001_state::screen_update_cb2001(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int count,x,y;
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
count = 0x0000;
@@ -361,7 +361,7 @@ UINT32 cb2001_state::screen_update_cb2001(screen_device &screen, bitmap_rgb32 &b
tile += m_videobank*0x2000;
- m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,tile,colour,0,0,x*8,y*8);
+ m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,tile,colour,0,0,x*8,y*8);
count++;
}
@@ -427,7 +427,7 @@ UINT32 cb2001_state::screen_update_cb2001(screen_device &screen, bitmap_rgb32 &b
tile += 0x1000;
}
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,tile,colour,0,0,x*8,y*8,0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,tile,colour,0,0,x*8,y*8,0);
count++;
}
}
@@ -775,7 +775,7 @@ static GFXDECODE_START( cb2001 )
GFXDECODE_ENTRY( "gfx", 0, cb2001_layout32, 0x0, 32 )
GFXDECODE_END
-void cb2001_state::palette_init()
+PALETTE_INIT_MEMBER(cb2001_state, cb2001)
{
int i;
for (i = 0; i < 0x200; i++)
@@ -795,11 +795,11 @@ void cb2001_state::palette_init()
if (length==0x400) // are the cb2001 proms dumped incorrectly?
{
- if (!(i&0x20)) palette_set_color(machine(), (i&0x1f) | ((i&~0x3f)>>1), rgb_t(r, g, b));
+ if (!(i&0x20)) palette.set_pen_color((i&0x1f) | ((i&~0x3f)>>1), rgb_t(r, g, b));
}
else
{
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
}
@@ -854,8 +854,8 @@ static MACHINE_CONFIG_START( cb2001, cb2001_state )
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(cb2001_state, screen_update_cb2001)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(cb2001_state, cb2001)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c
index 2845eba7c33..2433a467a9b 100644
--- a/src/mame/drivers/cball.c
+++ b/src/mame/drivers/cball.c
@@ -40,7 +40,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(cball);
UINT32 screen_update_cball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(interrupt_callback);
@@ -76,7 +76,7 @@ UINT32 cball_state::screen_update_cball(screen_device &screen, bitmap_ind16 &bit
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
/* draw sprite */
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,
m_video_ram[0x399] >> 4,
0,
0, 0,
@@ -124,14 +124,14 @@ void cball_state::machine_reset()
}
-void cball_state::palette_init()
+PALETTE_INIT_MEMBER(cball_state, cball)
{
- palette_set_color(machine(), 0, rgb_t(0x80, 0x80, 0x80));
- palette_set_color(machine(), 1, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), 2, rgb_t(0x80, 0x80, 0x80));
- palette_set_color(machine(), 3, rgb_t(0xff, 0xff, 0xff));
- palette_set_color(machine(), 4, rgb_t(0x80, 0x80, 0x80));
- palette_set_color(machine(), 5, rgb_t(0xc0, 0xc0, 0xc0));
+ palette.set_pen_color(0, rgb_t(0x80, 0x80, 0x80));
+ palette.set_pen_color(1, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(2, rgb_t(0x80, 0x80, 0x80));
+ palette.set_pen_color(3, rgb_t(0xff, 0xff, 0xff));
+ palette.set_pen_color(4, rgb_t(0x80, 0x80, 0x80));
+ palette.set_pen_color(5, rgb_t(0xc0, 0xc0, 0xc0));
}
@@ -262,8 +262,8 @@ static MACHINE_CONFIG_START( cball, cball_state )
MCFG_SCREEN_UPDATE_DRIVER(cball_state, screen_update_cball)
MCFG_GFXDECODE_ADD("gfxdecode", cball)
- MCFG_PALETTE_LENGTH(6)
-
+ MCFG_PALETTE_ADD("palette", 6)
+ MCFG_PALETTE_INIT_OWNER(cball_state, cball)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/cbasebal.c b/src/mame/drivers/cbasebal.c
index 290ced11fb1..c59549c0eb1 100644
--- a/src/mame/drivers/cbasebal.c
+++ b/src/mame/drivers/cbasebal.c
@@ -48,7 +48,7 @@ READ8_MEMBER(cbasebal_state::bankedram_r)
return cbasebal_textram_r(space, offset); /* VRAM */
case 1:
if (offset < 0x800)
- return m_generic_paletteram_8[offset];
+ return m_palette->basemem().read8(offset);
else
return 0;
break;
@@ -66,7 +66,7 @@ WRITE8_MEMBER(cbasebal_state::bankedram_w)
break;
case 1:
if (offset < 0x800)
- paletteram_xxxxBBBBRRRRGGGG_byte_le_w(space, offset, data);
+ m_palette->write(space, offset, data);
break;
default:
cbasebal_scrollram_w(space, offset, data);
@@ -271,8 +271,9 @@ static MACHINE_CONFIG_START( cbasebal, cbasebal_state )
MCFG_SCREEN_UPDATE_DRIVER(cbasebal_state, screen_update_cbasebal)
MCFG_GFXDECODE_ADD("gfxdecode", cbasebal)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cbuster.c b/src/mame/drivers/cbuster.c
index 64d902023a6..dd48f8d1d44 100644
--- a/src/mame/drivers/cbuster.c
+++ b/src/mame/drivers/cbuster.c
@@ -317,17 +317,20 @@ static MACHINE_CONFIG_START( twocrude, cbuster_state )
MCFG_SCREEN_UPDATE_DRIVER(cbuster_state, screen_update_twocrude)
MCFG_GFXDECODE_ADD("gfxdecode", cbuster)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_DECO16IC_ADD("tilegen1", twocrude_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", twocrude_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c
index 0a3f9b5c875..682d8f87219 100644
--- a/src/mame/drivers/ccastles.c
+++ b/src/mame/drivers/ccastles.c
@@ -476,7 +476,7 @@ static MACHINE_CONFIG_START( ccastles, ccastles_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", ccastles)
- MCFG_PALETTE_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, HTOTAL - 1, VTOTAL, 0, VTOTAL - 1) /* will be adjusted later */
diff --git a/src/mame/drivers/cchance.c b/src/mame/drivers/cchance.c
index b0b253d6e6f..4d9ba651c11 100644
--- a/src/mame/drivers/cchance.c
+++ b/src/mame/drivers/cchance.c
@@ -222,6 +222,7 @@ static MACHINE_CONFIG_START( cchance, cchance_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -232,8 +233,8 @@ static MACHINE_CONFIG_START( cchance, cchance_state )
MCFG_SCREEN_UPDATE_DRIVER(cchance_state, screen_update_tnzs)
MCFG_SCREEN_VBLANK_DRIVER(cchance_state, screen_eof_tnzs)
- MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT_OVERRIDE(cchance_state,arknoid2)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(cchance_state,arknoid2)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c
index 457acaa971f..b5f56ce60f1 100644
--- a/src/mame/drivers/cclimber.c
+++ b/src/mame/drivers/cclimber.c
@@ -996,9 +996,9 @@ static MACHINE_CONFIG_START( root, cclimber_state )
MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_cclimber)
MCFG_GFXDECODE_ADD("gfxdecode", cclimber)
- MCFG_PALETTE_LENGTH(16*4+8*4)
+ MCFG_PALETTE_ADD("palette", 16*4+8*4)
- MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,cclimber)
+ MCFG_PALETTE_INIT_OWNER(cclimber_state,cclimber)
MCFG_VIDEO_START_OVERRIDE(cclimber_state,cclimber)
MACHINE_CONFIG_END
@@ -1040,8 +1040,9 @@ static MACHINE_CONFIG_DERIVED( yamato, root )
MCFG_CPU_IO_MAP(yamato_audio_portmap)
/* video hardware */
- MCFG_PALETTE_LENGTH(16*4+8*4+256)
- MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,yamato)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 16*4+8*4+256)
+ MCFG_PALETTE_INIT_OWNER(cclimber_state,yamato)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_yamato)
@@ -1064,8 +1065,9 @@ static MACHINE_CONFIG_DERIVED( toprollr, cclimber )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", toprollr)
- MCFG_PALETTE_LENGTH(32*5)
- MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,toprollr)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32*5)
+ MCFG_PALETTE_INIT_OWNER(cclimber_state,toprollr)
MCFG_VIDEO_START_OVERRIDE(cclimber_state,toprollr)
MCFG_SCREEN_MODIFY("screen")
@@ -1094,9 +1096,9 @@ static MACHINE_CONFIG_START( swimmer, cclimber_state )
MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_swimmer)
MCFG_GFXDECODE_ADD("gfxdecode", swimmer)
- MCFG_PALETTE_LENGTH(32*8+4*8+1)
+ MCFG_PALETTE_ADD("palette", 32*8+4*8+1)
- MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,swimmer)
+ MCFG_PALETTE_INIT_OWNER(cclimber_state,swimmer)
MCFG_VIDEO_START_OVERRIDE(cclimber_state,swimmer)
/* audio hardware */
diff --git a/src/mame/drivers/cdi.c b/src/mame/drivers/cdi.c
index 619140d5b79..6b1d8220d44 100644
--- a/src/mame/drivers/cdi.c
+++ b/src/mame/drivers/cdi.c
@@ -342,7 +342,7 @@ static MACHINE_CONFIG_START( cdi, cdi_state )
MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 22-1)
MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1_lcd)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_DEFAULT_LAYOUT(layout_cdi)
diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c
index fcbd9f15269..21ea0294238 100644
--- a/src/mame/drivers/centiped.c
+++ b/src/mame/drivers/centiped.c
@@ -1752,7 +1752,7 @@ static MACHINE_CONFIG_START( centiped_base, centiped_state )
MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_centiped)
MCFG_GFXDECODE_ADD("gfxdecode", centiped)
- MCFG_PALETTE_LENGTH(4+4*4*4*4)
+ MCFG_PALETTE_ADD("palette", 4+4*4*4*4)
MCFG_VIDEO_START_OVERRIDE(centiped_state,centiped)
@@ -1825,7 +1825,8 @@ static MACHINE_CONFIG_DERIVED( milliped, centiped )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", milliped)
- MCFG_PALETTE_LENGTH(4*4+4*4*4*4*4)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 4*4+4*4*4*4*4)
MCFG_VIDEO_START_OVERRIDE(centiped_state,milliped)
MCFG_SCREEN_MODIFY("screen")
@@ -1861,9 +1862,10 @@ static MACHINE_CONFIG_DERIVED( warlords, centiped )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", warlords)
- MCFG_PALETTE_LENGTH(8*4+8*4)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 8*4+8*4)
- MCFG_PALETTE_INIT_OVERRIDE(centiped_state,warlords)
+ MCFG_PALETTE_INIT_OWNER(centiped_state,warlords)
MCFG_VIDEO_START_OVERRIDE(centiped_state,warlords)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_warlords)
@@ -1902,7 +1904,7 @@ static MACHINE_CONFIG_START( bullsdrt, centiped_state )
MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_bullsdrt)
MCFG_GFXDECODE_ADD("gfxdecode", centiped)
- MCFG_PALETTE_LENGTH(4+4*4*4*4)
+ MCFG_PALETTE_ADD("palette", 4+4*4*4*4)
MCFG_VIDEO_START_OVERRIDE(centiped_state,bullsdrt)
diff --git a/src/mame/drivers/cesclass.c b/src/mame/drivers/cesclass.c
index 78a752b0cfd..8e6eb91e6fc 100644
--- a/src/mame/drivers/cesclass.c
+++ b/src/mame/drivers/cesclass.c
@@ -42,7 +42,7 @@ public:
UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
-
+ DECLARE_PALETTE_INIT(cesclassic);
protected:
// devices
@@ -53,7 +53,6 @@ protected:
// driver_device overrides
virtual void video_start();
- virtual void palette_init();
};
@@ -65,7 +64,7 @@ UINT32 cesclassic_state::screen_update(screen_device &screen, bitmap_rgb32 &bitm
{
int x,y,xi;
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
{
for(y=0;y<64;y++)
@@ -80,7 +79,7 @@ UINT32 cesclassic_state::screen_update(screen_device &screen, bitmap_rgb32 &bitm
color |= (((m_vram[x+y*16])>>(15-xi)) & 1)<<1;
if((x*16+xi)<256 && ((y)+0)<256)
- bitmap.pix32(y, x*16+xi) = machine().pens[color];
+ bitmap.pix32(y, x*16+xi) = m_palette->pen(color);
}
}
}
@@ -233,12 +232,12 @@ static INPUT_PORTS_START( cesclassic )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("l_lcd")
INPUT_PORTS_END
-void cesclassic_state::palette_init()
+PALETTE_INIT_MEMBER(cesclassic_state, cesclassic)
{
int i;
for (i = 0; i < 4; i++)
- palette_set_color_rgb(machine(), i, pal2bit(i), 0, 0);
+ palette.set_pen_color(i, pal2bit(i), 0, 0);
}
static MACHINE_CONFIG_START( cesclassic, cesclassic_state )
@@ -259,7 +258,8 @@ static MACHINE_CONFIG_START( cesclassic, cesclassic_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 8*16*2-1, 0*8, 8*8-1)
MCFG_DEFAULT_LAYOUT( layout_lcd )
- MCFG_PALETTE_LENGTH(4)
+ MCFG_PALETTE_ADD("palette", 4)
+ MCFG_PALETTE_INIT_OWNER(cesclassic_state, 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 a99d164db39..261789f98db 100644
--- a/src/mame/drivers/chaknpop.c
+++ b/src/mame/drivers/chaknpop.c
@@ -386,8 +386,8 @@ static MACHINE_CONFIG_START( chaknpop, chaknpop_state )
MCFG_SCREEN_UPDATE_DRIVER(chaknpop_state, screen_update_chaknpop)
MCFG_GFXDECODE_ADD("gfxdecode", chaknpop)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_OWNER(chaknpop_state, chaknpop)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cham24.c b/src/mame/drivers/cham24.c
index eaaf4304896..b4fa8e2dcb2 100644
--- a/src/mame/drivers/cham24.c
+++ b/src/mame/drivers/cham24.c
@@ -94,7 +94,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(cham24);
UINT32 screen_update_cham24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void cham24_set_mirroring( int mirroring );
void ppu_irq(int *ppu_regs);
@@ -281,9 +281,9 @@ void cham24_state::machine_reset()
{
}
-void cham24_state::palette_init()
+PALETTE_INIT_MEMBER(cham24_state, cham24)
{
- m_ppu->init_palette(machine(), 0);
+ m_ppu->init_palette(palette, 0);
}
void cham24_state::ppu_irq(int *ppu_regs)
@@ -358,8 +358,8 @@ static MACHINE_CONFIG_START( cham24, cham24_state )
MCFG_SCREEN_UPDATE_DRIVER(cham24_state, screen_update_cham24)
MCFG_GFXDECODE_ADD("gfxdecode", cham24)
- MCFG_PALETTE_LENGTH(8*4*16)
-
+ MCFG_PALETTE_ADD("palette", 8*4*16)
+ MCFG_PALETTE_INIT_OWNER(cham24_state, cham24)
MCFG_PPU2C04_ADD("ppu", ppu_interface)
MCFG_PPU2C0X_SET_NMI(cham24_state, ppu_irq)
diff --git a/src/mame/drivers/champbas.c b/src/mame/drivers/champbas.c
index 4d0a3a18c2c..2681ebb1d0d 100644
--- a/src/mame/drivers/champbas.c
+++ b/src/mame/drivers/champbas.c
@@ -621,9 +621,9 @@ static MACHINE_CONFIG_START( talbot, champbas_state )
MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas)
MCFG_GFXDECODE_ADD("gfxdecode", talbot)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
- MCFG_PALETTE_INIT_OVERRIDE(champbas_state,champbas)
+ MCFG_PALETTE_INIT_OWNER(champbas_state,champbas)
MCFG_VIDEO_START_OVERRIDE(champbas_state,champbas)
/* sound hardware */
@@ -656,9 +656,9 @@ static MACHINE_CONFIG_START( champbas, champbas_state )
MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas)
MCFG_GFXDECODE_ADD("gfxdecode", champbas)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
- MCFG_PALETTE_INIT_OVERRIDE(champbas_state,champbas)
+ MCFG_PALETTE_INIT_OWNER(champbas_state,champbas)
MCFG_VIDEO_START_OVERRIDE(champbas_state,champbas)
/* sound hardware */
@@ -713,9 +713,9 @@ static MACHINE_CONFIG_START( exctsccr, champbas_state )
MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas)
MCFG_GFXDECODE_ADD("gfxdecode", exctsccr)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
- MCFG_PALETTE_INIT_OVERRIDE(champbas_state,exctsccr)
+ MCFG_PALETTE_INIT_OWNER(champbas_state,exctsccr)
MCFG_VIDEO_START_OVERRIDE(champbas_state,exctsccr)
/* sound hardware */
@@ -764,9 +764,9 @@ static MACHINE_CONFIG_START( exctsccrb, champbas_state )
MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas)
MCFG_GFXDECODE_ADD("gfxdecode", exctsccr)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
- MCFG_PALETTE_INIT_OVERRIDE(champbas_state,exctsccr)
+ MCFG_PALETTE_INIT_OWNER(champbas_state,exctsccr)
MCFG_VIDEO_START_OVERRIDE(champbas_state,exctsccr)
/* sound hardware */
diff --git a/src/mame/drivers/champbwl.c b/src/mame/drivers/champbwl.c
index 7a237f7ece1..123115023af 100644
--- a/src/mame/drivers/champbwl.c
+++ b/src/mame/drivers/champbwl.c
@@ -487,6 +487,7 @@ static MACHINE_CONFIG_START( champbwl, champbwl_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -498,9 +499,9 @@ static MACHINE_CONFIG_START( champbwl, champbwl_state )
MCFG_SCREEN_VBLANK_DRIVER(champbwl_state, screen_eof_champbwl)
MCFG_GFXDECODE_ADD("gfxdecode", champbwl)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
- MCFG_PALETTE_INIT_OVERRIDE(champbwl_state,arknoid2)
+ MCFG_PALETTE_INIT_OWNER(champbwl_state,arknoid2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -548,6 +549,7 @@ static MACHINE_CONFIG_START( doraemon, champbwl_state )
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(2000), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW )
MCFG_MACHINE_START_OVERRIDE(champbwl_state,doraemon)
@@ -562,9 +564,9 @@ static MACHINE_CONFIG_START( doraemon, champbwl_state )
MCFG_SCREEN_VBLANK_DRIVER(champbwl_state, screen_eof_doraemon)
MCFG_GFXDECODE_ADD("gfxdecode", champbwl)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
- MCFG_PALETTE_INIT_OVERRIDE(champbwl_state,arknoid2)
+ MCFG_PALETTE_INIT_OWNER(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 cffb5b68f8e..d501ac0865d 100644
--- a/src/mame/drivers/chanbara.c
+++ b/src/mame/drivers/chanbara.c
@@ -95,25 +95,25 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(chanbara);
UINT32 screen_update_chanbara(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
DECLARE_WRITE_LINE_MEMBER(sound_irq);
};
-void chanbara_state::palette_init()
+PALETTE_INIT_MEMBER(chanbara_state, chanbara)
{
const UINT8 *color_prom = memregion("proms")->base();
int i, red, green, blue;
- for (i = 0; i < machine().total_colors(); i++)
+ for (i = 0; i < palette.entries(); i++)
{
red = color_prom[i];
- green = color_prom[machine().total_colors() + i];
- blue = color_prom[2 * machine().total_colors() + i];
+ green = color_prom[palette.entries() + i];
+ blue = color_prom[2 * palette.entries() + i];
- palette_set_color_rgb(machine(), i, pal4bit(red << 1), pal4bit(green << 1), pal4bit(blue << 1));
+ palette.set_pen_color(i, pal4bit(red << 1), pal4bit(green << 1), pal4bit(blue << 1));
}
}
@@ -191,18 +191,18 @@ void chanbara_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
{
if (!flipy)
{
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, flipx, flipy, sx, sy-16, 0);
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code+1, color, flipx, flipy, sx, sy, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, sx, sy-16, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code+1, color, flipx, flipy, sx, sy, 0);
}
else
{
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0);
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code+1, color, flipx, flipy, sx, sy-16, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code+1, color, flipx, flipy, sx, sy-16, 0);
}
}
else
{
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0);
}
}
}
@@ -410,8 +410,9 @@ static MACHINE_CONFIG_START( chanbara, chanbara_state )
MCFG_SCREEN_UPDATE_DRIVER(chanbara_state, screen_update_chanbara)
MCFG_GFXDECODE_ADD("gfxdecode", chanbara)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(chanbara_state, chanbara)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/chance32.c b/src/mame/drivers/chance32.c
index 83d54363974..b4a652a6792 100644
--- a/src/mame/drivers/chance32.c
+++ b/src/mame/drivers/chance32.c
@@ -197,7 +197,7 @@ WRITE8_MEMBER(chance32_state::muxout_w)
static ADDRESS_MAP_START( chance32_map, AS_PROGRAM, 8, chance32_state )
AM_RANGE(0x0000, 0xcfff) AM_ROM
AM_RANGE(0xd800, 0xdfff) AM_RAM
- AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe000, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(chance32_fgram_w) AM_SHARE("fgram")
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(chance32_bgram_w) AM_SHARE("bgram")
ADDRESS_MAP_END
@@ -479,8 +479,8 @@ static MACHINE_CONFIG_START( chance32, chance32_state )
MCFG_MC6845_ADD("crtc", H46505, "screen", 12000000/16, mc6845_intf) /* 52.786 Hz (similar to Major Poker) */
MCFG_GFXDECODE_ADD("gfxdecode", chance32)
- MCFG_PALETTE_LENGTH(0x800)
-
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/changela.c b/src/mame/drivers/changela.c
index 8609b061d92..b7ad7db4d56 100644
--- a/src/mame/drivers/changela.c
+++ b/src/mame/drivers/changela.c
@@ -510,7 +510,7 @@ static MACHINE_CONFIG_START( changela, changela_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(changela_state, screen_update_changela)
- MCFG_PALETTE_LENGTH(0x40)
+ MCFG_PALETTE_ADD("palette", 0x40)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cheekyms.c b/src/mame/drivers/cheekyms.c
index b1b4cd8fe41..08a43596148 100644
--- a/src/mame/drivers/cheekyms.c
+++ b/src/mame/drivers/cheekyms.c
@@ -136,8 +136,8 @@ static MACHINE_CONFIG_START( cheekyms, cheekyms_state )
MCFG_SCREEN_UPDATE_DRIVER(cheekyms_state, screen_update_cheekyms)
MCFG_GFXDECODE_ADD("gfxdecode", cheekyms)
- MCFG_PALETTE_LENGTH(0xc0)
-
+ MCFG_PALETTE_ADD("palette", 0xc0)
+ MCFG_PALETTE_INIT_OWNER(cheekyms_state, cheekyms)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/chihiro.c b/src/mame/drivers/chihiro.c
index 0dbcbc70a08..78691251500 100644
--- a/src/mame/drivers/chihiro.c
+++ b/src/mame/drivers/chihiro.c
@@ -3972,7 +3972,7 @@ 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_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD("palette", 65536)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( chihirogd, chihiro_base )
diff --git a/src/mame/drivers/chinagat.c b/src/mame/drivers/chinagat.c
index 91fcbe5ddeb..39340d0ed52 100644
--- a/src/mame/drivers/chinagat.c
+++ b/src/mame/drivers/chinagat.c
@@ -322,8 +322,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, chinagat_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(ddragon_fgvideoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(ddragon_bgvideoram_w) AM_SHARE("bgvideoram")
- AM_RANGE(0x3000, 0x317f) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x3400, 0x357f) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x3000, 0x317f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x3400, 0x357f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette_ext")
AM_RANGE(0x3800, 0x397f) AM_WRITE_BANK("bank3") AM_SHARE("spriteram")
AM_RANGE(0x3e00, 0x3e04) AM_WRITE(chinagat_interrupt_w)
AM_RANGE(0x3e06, 0x3e06) AM_WRITEONLY AM_SHARE("scrolly_lo")
@@ -588,7 +588,8 @@ static MACHINE_CONFIG_START( chinagat, chinagat_state )
MCFG_SCREEN_UPDATE_DRIVER(chinagat_state, screen_update_ddragon)
MCFG_GFXDECODE_ADD("gfxdecode", chinagat)
- MCFG_PALETTE_LENGTH(384)
+ MCFG_PALETTE_ADD("palette", 384)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(chinagat_state,chinagat)
@@ -632,7 +633,8 @@ static MACHINE_CONFIG_START( saiyugoub1, chinagat_state )
MCFG_SCREEN_UPDATE_DRIVER(chinagat_state, screen_update_ddragon)
MCFG_GFXDECODE_ADD("gfxdecode", chinagat)
- MCFG_PALETTE_LENGTH(384)
+ MCFG_PALETTE_ADD("palette", 384)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(chinagat_state,chinagat)
@@ -673,7 +675,8 @@ static MACHINE_CONFIG_START( saiyugoub2, chinagat_state )
MCFG_SCREEN_UPDATE_DRIVER(chinagat_state, screen_update_ddragon)
MCFG_GFXDECODE_ADD("gfxdecode", chinagat)
- MCFG_PALETTE_LENGTH(384)
+ MCFG_PALETTE_ADD("palette", 384)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(chinagat_state,chinagat)
diff --git a/src/mame/drivers/chinsan.c b/src/mame/drivers/chinsan.c
index 95d30b2663a..8d56dda29fa 100644
--- a/src/mame/drivers/chinsan.c
+++ b/src/mame/drivers/chinsan.c
@@ -77,7 +77,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(chinsan);
UINT32 screen_update_chinsan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_WRITE_LINE_MEMBER(chin_adpcm_int);
required_device<cpu_device> m_maincpu;
@@ -92,13 +92,13 @@ public:
*
*************************************/
-void chinsan_state::palette_init()
+PALETTE_INIT_MEMBER(chinsan_state, chinsan)
{
UINT8 *src = 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_pen_color(i, pal4bit(src[i + 0x200]), pal4bit(src[i + 0x100]), pal4bit(src[i + 0x000]));
}
void chinsan_state::video_start()
@@ -116,7 +116,7 @@ UINT32 chinsan_state::screen_update_chinsan(screen_device &screen, bitmap_ind16
int tileno, colour;
tileno = m_video[count] | (m_video[count + 0x800] << 8);
colour = m_video[count + 0x1000] >> 3;
- m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,tileno,colour,0,0,x*8,y*8);
+ m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,tileno,colour,0,0,x*8,y*8);
count++;
}
}
@@ -613,8 +613,8 @@ static MACHINE_CONFIG_START( chinsan, chinsan_state )
MCFG_SCREEN_UPDATE_DRIVER(chinsan_state, screen_update_chinsan)
MCFG_GFXDECODE_ADD("gfxdecode", chinsan)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(chinsan_state, chinsan)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/chqflag.c b/src/mame/drivers/chqflag.c
index 610ecc05166..7f2762abd8d 100644
--- a/src/mame/drivers/chqflag.c
+++ b/src/mame/drivers/chqflag.c
@@ -46,7 +46,7 @@ WRITE8_MEMBER(chqflag_state::chqflag_bankswitch_w)
if (data & 0x20)
{
space.install_read_bank(0x1800, 0x1fff, "bank5");
- space.install_write_handler(0x1800, 0x1fff, write8_delegate(FUNC(driver_device::paletteram_xBBBBBGGGGGRRRRR_byte_be_w),this));
+ space.install_write_handler(0x1800, 0x1fff, write8_delegate(FUNC(palette_device::write),m_palette.target()));
membank("bank5")->set_base(m_generic_paletteram_8);
if (m_k051316_readroms)
@@ -83,9 +83,9 @@ WRITE8_MEMBER(chqflag_state::chqflag_vreg_w)
/* the headlight (which have the shadow bit set) become highlights */
/* Maybe one of the bits inverts the SHAD line while the other darkens the background. */
if (data & 0x08)
- palette_set_shadow_factor(machine(), 1 / PALETTE_DEFAULT_SHADOW_FACTOR);
+ m_palette->set_shadow_factor(1 / PALETTE_DEFAULT_SHADOW_FACTOR);
else
- palette_set_shadow_factor(machine(), PALETTE_DEFAULT_SHADOW_FACTOR);
+ m_palette->set_shadow_factor(PALETTE_DEFAULT_SHADOW_FACTOR);
if ((data & 0x80) != m_last_vreg)
{
@@ -96,7 +96,7 @@ WRITE8_MEMBER(chqflag_state::chqflag_vreg_w)
/* only affect the background */
for (i = 512; i < 1024; i++)
- palette_set_pen_contrast(machine(), i, brt);
+ m_palette->set_pen_contrast(i, brt);
}
//if ((data & 0xf8) && (data & 0xf8) != 0x88)
@@ -338,8 +338,6 @@ static MACHINE_CONFIG_START( chqflag, chqflag_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
//TODO: Vsync 59.17hz Hsync 15.13 / 15.19khz
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -348,15 +346,20 @@ static MACHINE_CONFIG_START( chqflag, chqflag_state )
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(chqflag_state, screen_update_chqflag)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K051960_ADD("k051960", chqflag_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
MCFG_K051316_ADD("k051316_1", chqflag_k051316_intf_1)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
MCFG_K051316_ADD("k051316_2", chqflag_k051316_intf_2)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
MCFG_K051733_ADD("k051733")
/* sound hardware */
diff --git a/src/mame/drivers/chsuper.c b/src/mame/drivers/chsuper.c
index 0d742af5441..b50aa6605b0 100644
--- a/src/mame/drivers/chsuper.c
+++ b/src/mame/drivers/chsuper.c
@@ -71,7 +71,7 @@ UINT32 chsuper_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap
{
int tile = ((m_vram[count+1]<<8) | m_vram[count]) & 0xffff;
- gfx->opaque(bitmap,cliprect,tile,0,0,0,x*4,y*8);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*4,y*8);
count+=2;
}
}
@@ -218,9 +218,9 @@ static MACHINE_CONFIG_START( chsuper, chsuper_state )
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_GFXDECODE_ADD("gfxdecode", chsuper)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/circus.c b/src/mame/drivers/circus.c
index f188705545f..4b1834bab69 100644
--- a/src/mame/drivers/circus.c
+++ b/src/mame/drivers/circus.c
@@ -293,9 +293,8 @@ static MACHINE_CONFIG_START( circus, circus_state )
MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_circus)
MCFG_GFXDECODE_ADD("gfxdecode", circus)
- MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -326,9 +325,8 @@ static MACHINE_CONFIG_START( robotbwl, circus_state )
MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_robotbwl)
MCFG_GFXDECODE_ADD("gfxdecode", robotbwl)
- MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -366,9 +364,8 @@ static MACHINE_CONFIG_START( crash, circus_state )
MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_crash)
MCFG_GFXDECODE_ADD("gfxdecode", circus)
- MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -398,9 +395,8 @@ static MACHINE_CONFIG_START( ripcord, circus_state )
MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_ripcord)
MCFG_GFXDECODE_ADD("gfxdecode", circus)
- MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/circusc.c b/src/mame/drivers/circusc.c
index f1c0c0318a2..8a173e386b1 100644
--- a/src/mame/drivers/circusc.c
+++ b/src/mame/drivers/circusc.c
@@ -348,8 +348,8 @@ static MACHINE_CONFIG_START( circusc, circusc_state )
MCFG_SCREEN_UPDATE_DRIVER(circusc_state, screen_update_circusc)
MCFG_GFXDECODE_ADD("gfxdecode", circusc)
- MCFG_PALETTE_LENGTH(16*16+16*16)
-
+ MCFG_PALETTE_ADD("palette", 16*16+16*16)
+ MCFG_PALETTE_INIT_OWNER(circusc_state, circusc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cischeat.c b/src/mame/drivers/cischeat.c
index 3ebbacf9b43..384d6f5ce30 100644
--- a/src/mame/drivers/cischeat.c
+++ b/src/mame/drivers/cischeat.c
@@ -198,17 +198,17 @@ WRITE16_MEMBER(cischeat_state::bigrun_paletteram16_w)
int b = pal5bit(((word >> 3 ) & 0x1E ) | ((word >> 1) & 0x01));
// Scroll 0
- if ( (offset >= 0x0e00/2) && (offset <= 0x0fff/2) ) { palette_set_color(machine(), 0x000 + offset - 0x0e00/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x0e00/2) && (offset <= 0x0fff/2) ) { m_palette->set_pen_color(0x000 + offset - 0x0e00/2, rgb_t(r,g,b) ); return;}
// Scroll 1
- if ( (offset >= 0x1600/2) && (offset <= 0x17ff/2) ) { palette_set_color(machine(), 0x100 + offset - 0x1600/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x1600/2) && (offset <= 0x17ff/2) ) { m_palette->set_pen_color(0x100 + offset - 0x1600/2, rgb_t(r,g,b) ); return;}
// Road 0
- if ( (offset >= 0x1800/2) && (offset <= 0x1fff/2) ) { palette_set_color(machine(), 0x200 + offset - 0x1800/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x1800/2) && (offset <= 0x1fff/2) ) { m_palette->set_pen_color(0x200 + offset - 0x1800/2, rgb_t(r,g,b) ); return;}
// Road 1
- if ( (offset >= 0x2000/2) && (offset <= 0x27ff/2) ) { palette_set_color(machine(), 0x600 + offset - 0x2000/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x2000/2) && (offset <= 0x27ff/2) ) { m_palette->set_pen_color(0x600 + offset - 0x2000/2, rgb_t(r,g,b) ); return;}
// Sprites
- if ( (offset >= 0x2800/2) && (offset <= 0x2fff/2) ) { palette_set_color(machine(), 0xa00 + offset - 0x2800/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x2800/2) && (offset <= 0x2fff/2) ) { m_palette->set_pen_color(0xa00 + offset - 0x2800/2, rgb_t(r,g,b) ); return;}
// Scroll 2
- if ( (offset >= 0x3600/2) && (offset <= 0x37ff/2) ) { palette_set_color(machine(), 0xe00 + offset - 0x3600/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x3600/2) && (offset <= 0x37ff/2) ) { m_palette->set_pen_color(0xe00 + offset - 0x3600/2, rgb_t(r,g,b) ); return;}
}
static ADDRESS_MAP_START( bigrun_map, AS_PROGRAM, 16, cischeat_state )
@@ -251,17 +251,17 @@ WRITE16_MEMBER(cischeat_state::cischeat_paletteram16_w)
int b = pal5bit(((word >> 3 ) & 0x1E ) | ((word >> 1) & 0x01));
// Scroll 0
- if ( (offset >= 0x1c00/2) && (offset <= 0x1fff/2) ) { palette_set_color(machine(), 0x000 + offset - 0x1c00/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x1c00/2) && (offset <= 0x1fff/2) ) { m_palette->set_pen_color(0x000 + offset - 0x1c00/2, rgb_t(r,g,b) ); return;}
// Scroll 1
- if ( (offset >= 0x2c00/2) && (offset <= 0x2fff/2) ) { palette_set_color(machine(), 0x200 + offset - 0x2c00/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x2c00/2) && (offset <= 0x2fff/2) ) { m_palette->set_pen_color(0x200 + offset - 0x2c00/2, rgb_t(r,g,b) ); return;}
// Scroll 2
- if ( (offset >= 0x6c00/2) && (offset <= 0x6fff/2) ) { palette_set_color(machine(), 0x400 + offset - 0x6c00/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x6c00/2) && (offset <= 0x6fff/2) ) { m_palette->set_pen_color(0x400 + offset - 0x6c00/2, rgb_t(r,g,b) ); return;}
// Road 0
- if ( (offset >= 0x3800/2) && (offset <= 0x3fff/2) ) { palette_set_color(machine(), 0x600 + offset - 0x3800/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x3800/2) && (offset <= 0x3fff/2) ) { m_palette->set_pen_color(0x600 + offset - 0x3800/2, rgb_t(r,g,b) ); return;}
// Road 1
- if ( (offset >= 0x4800/2) && (offset <= 0x4fff/2) ) { palette_set_color(machine(), 0xa00 + offset - 0x4800/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x4800/2) && (offset <= 0x4fff/2) ) { m_palette->set_pen_color(0xa00 + offset - 0x4800/2, rgb_t(r,g,b) ); return;}
// Sprites
- if ( (offset >= 0x5000/2) && (offset <= 0x5fff/2) ) { palette_set_color(machine(), 0xe00 + offset - 0x5000/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x5000/2) && (offset <= 0x5fff/2) ) { m_palette->set_pen_color(0xe00 + offset - 0x5000/2, rgb_t(r,g,b) ); return;}
}
static ADDRESS_MAP_START( cischeat_map, AS_PROGRAM, 16, cischeat_state )
@@ -303,17 +303,17 @@ WRITE16_MEMBER(cischeat_state::f1gpstar_paletteram16_w)
int b = pal5bit(((word >> 3 ) & 0x1E ) | ((word >> 1) & 0x01));
// Scroll 0
- if ( (offset >= 0x1e00/2) && (offset <= 0x1fff/2) ) { palette_set_color(machine(), 0x000 + offset - 0x1e00/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x1e00/2) && (offset <= 0x1fff/2) ) { m_palette->set_pen_color(0x000 + offset - 0x1e00/2, rgb_t(r,g,b) ); return;}
// Scroll 1
- if ( (offset >= 0x2e00/2) && (offset <= 0x2fff/2) ) { palette_set_color(machine(), 0x100 + offset - 0x2e00/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x2e00/2) && (offset <= 0x2fff/2) ) { m_palette->set_pen_color(0x100 + offset - 0x2e00/2, rgb_t(r,g,b) ); return;}
// Scroll 2
- if ( (offset >= 0x6e00/2) && (offset <= 0x6fff/2) ) { palette_set_color(machine(), 0x200 + offset - 0x6e00/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x6e00/2) && (offset <= 0x6fff/2) ) { m_palette->set_pen_color(0x200 + offset - 0x6e00/2, rgb_t(r,g,b) ); return;}
// Road 0
- if ( (offset >= 0x3800/2) && (offset <= 0x3fff/2) ) { palette_set_color(machine(), 0x300 + offset - 0x3800/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x3800/2) && (offset <= 0x3fff/2) ) { m_palette->set_pen_color(0x300 + offset - 0x3800/2, rgb_t(r,g,b) ); return;}
// Road 1
- if ( (offset >= 0x4800/2) && (offset <= 0x4fff/2) ) { palette_set_color(machine(), 0x700 + offset - 0x4800/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x4800/2) && (offset <= 0x4fff/2) ) { m_palette->set_pen_color(0x700 + offset - 0x4800/2, rgb_t(r,g,b) ); return;}
// Sprites
- if ( (offset >= 0x5000/2) && (offset <= 0x5fff/2) ) { palette_set_color(machine(), 0xb00 + offset - 0x5000/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x5000/2) && (offset <= 0x5fff/2) ) { m_palette->set_pen_color(0xb00 + offset - 0x5000/2, rgb_t(r,g,b) ); return;}
}
/* F1 GP Star tests:
@@ -384,11 +384,11 @@ WRITE16_MEMBER(cischeat_state::scudhamm_paletteram16_w)
int b = pal5bit(((newword >> 3 ) & 0x1E ) | ((newword >> 1) & 0x01));
// Scroll 0
- if ( (offset >= 0x1e00/2) && (offset <= 0x1fff/2) ) { palette_set_color(machine(), 0x000 + offset - 0x1e00/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x1e00/2) && (offset <= 0x1fff/2) ) { m_palette->set_pen_color(0x000 + offset - 0x1e00/2, rgb_t(r,g,b) ); return;}
// Scroll 2
- if ( (offset >= 0x4e00/2) && (offset <= 0x4fff/2) ) { palette_set_color(machine(), 0x100 + offset - 0x4e00/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x4e00/2) && (offset <= 0x4fff/2) ) { m_palette->set_pen_color(0x100 + offset - 0x4e00/2, rgb_t(r,g,b) ); return;}
// Sprites
- if ( (offset >= 0x3000/2) && (offset <= 0x3fff/2) ) { palette_set_color(machine(), 0x200 + offset - 0x3000/2, rgb_t(r,g,b) ); return;}
+ if ( (offset >= 0x3000/2) && (offset <= 0x3fff/2) ) { m_palette->set_pen_color(0x200 + offset - 0x3000/2, rgb_t(r,g,b) ); return;}
}
@@ -1569,7 +1569,7 @@ static MACHINE_CONFIG_START( bigrun, cischeat_state )
MCFG_QUANTUM_TIME(attotime::from_hz(1200))
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_HAS_SHADOWS)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(30) //TODO: wrong!
@@ -1579,7 +1579,8 @@ static MACHINE_CONFIG_START( bigrun, cischeat_state )
MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_bigrun)
MCFG_GFXDECODE_ADD("gfxdecode", bigrun)
- MCFG_PALETTE_LENGTH(16*16 * 3 + 64*16 * 2 + 64*16) /* scroll 0,1,2; road 0,1; sprites */
+ MCFG_PALETTE_ADD("palette", 16*16 * 3 + 64*16 * 2 + 64*16) /* scroll 0,1,2; road 0,1; sprites */
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_VIDEO_START_OVERRIDE(cischeat_state,bigrun)
@@ -1621,7 +1622,8 @@ static MACHINE_CONFIG_DERIVED( cischeat, bigrun )
MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_cischeat)
MCFG_GFXDECODE_MODIFY("gfxdecode", cischeat)
- MCFG_PALETTE_LENGTH(32*16 * 3 + 64*16 * 2 + 128*16) /* scroll 0,1,2; road 0,1; sprites */
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32*16 * 3 + 64*16 * 2 + 128*16) /* scroll 0,1,2; road 0,1; sprites */
MCFG_VIDEO_START_OVERRIDE(cischeat_state,cischeat)
MACHINE_CONFIG_END
@@ -1647,7 +1649,8 @@ static MACHINE_CONFIG_DERIVED( f1gpstar, bigrun )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", f1gpstar)
- MCFG_PALETTE_LENGTH(16*16 * 3 + 64*16 * 2 + 128*16) /* scroll 0,1,2; road 0,1; sprites */
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 16*16 * 3 + 64*16 * 2 + 128*16) /* scroll 0,1,2; road 0,1; sprites */
MCFG_VIDEO_START_OVERRIDE(cischeat_state,f1gpstar)
MCFG_SCREEN_MODIFY("screen")
@@ -1702,7 +1705,7 @@ static MACHINE_CONFIG_START( scudhamm, cischeat_state )
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", cischeat_state, scudhamm_scanline, "screen", 0, 1)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_HAS_SHADOWS)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(30) //TODO: wrong!
@@ -1712,7 +1715,8 @@ static MACHINE_CONFIG_START( scudhamm, cischeat_state )
MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_scudhamm)
MCFG_GFXDECODE_ADD("gfxdecode", scudhamm)
- MCFG_PALETTE_LENGTH(16*16+16*16+128*16)
+ MCFG_PALETTE_ADD("palette", 16*16+16*16+128*16)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_VIDEO_START_OVERRIDE(cischeat_state,f1gpstar)
diff --git a/src/mame/drivers/citycon.c b/src/mame/drivers/citycon.c
index 2f29224133b..a7250f36083 100644
--- a/src/mame/drivers/citycon.c
+++ b/src/mame/drivers/citycon.c
@@ -37,7 +37,7 @@ static ADDRESS_MAP_START( citycon_map, AS_PROGRAM, 8, citycon_state )
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DSW2") AM_WRITE(soundlatch2_byte_w)
AM_RANGE(0x3004, 0x3005) AM_READNOP AM_WRITEONLY AM_SHARE("scroll")
AM_RANGE(0x3007, 0x3007) AM_READ(citycon_irq_ack_r)
- AM_RANGE(0x3800, 0x3cff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x3800, 0x3cff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -215,9 +215,8 @@ static MACHINE_CONFIG_START( citycon, citycon_state )
MCFG_SCREEN_UPDATE_DRIVER(citycon_state, screen_update_citycon)
MCFG_GFXDECODE_ADD("gfxdecode", citycon)
- MCFG_PALETTE_LENGTH(640+1024) /* 640 real palette + 1024 virtual palette */
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) /* guess */
-
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 640+1024) /* 640 real palette + 1024 virtual palette */
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cloak.c b/src/mame/drivers/cloak.c
index 75bae88c2b5..b0443ddcf00 100644
--- a/src/mame/drivers/cloak.c
+++ b/src/mame/drivers/cloak.c
@@ -352,7 +352,7 @@ static MACHINE_CONFIG_START( cloak, cloak_state )
MCFG_SCREEN_UPDATE_DRIVER(cloak_state, screen_update_cloak)
MCFG_GFXDECODE_ADD("gfxdecode", cloak)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
/* sound hardware */
diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c
index 297ca95eda0..74702fcb6e4 100644
--- a/src/mame/drivers/cloud9.c
+++ b/src/mame/drivers/cloud9.c
@@ -426,7 +426,7 @@ static MACHINE_CONFIG_START( cloud9, cloud9_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", cloud9)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE((float)PIXEL_CLOCK / (float)VTOTAL / (float)HTOTAL)
diff --git a/src/mame/drivers/clshroad.c b/src/mame/drivers/clshroad.c
index ebc6cd92d57..513acac1929 100644
--- a/src/mame/drivers/clshroad.c
+++ b/src/mame/drivers/clshroad.c
@@ -247,9 +247,9 @@ static MACHINE_CONFIG_START( firebatl, clshroad_state )
MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update_clshroad)
MCFG_GFXDECODE_ADD("gfxdecode", firebatl)
- MCFG_PALETTE_LENGTH(512+64*4)
+ MCFG_PALETTE_ADD("palette", 512+64*4)
- MCFG_PALETTE_INIT_OVERRIDE(clshroad_state,firebatl)
+ MCFG_PALETTE_INIT_OWNER(clshroad_state,firebatl)
MCFG_VIDEO_START_OVERRIDE(clshroad_state,firebatl)
/* sound hardware */
@@ -280,9 +280,9 @@ static MACHINE_CONFIG_START( clshroad, clshroad_state )
MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update_clshroad)
MCFG_GFXDECODE_ADD("gfxdecode", clshroad)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
- MCFG_PALETTE_INIT_OVERRIDE(clshroad_state,clshroad)
+ MCFG_PALETTE_INIT_OWNER(clshroad_state,clshroad)
MCFG_VIDEO_START_OVERRIDE(clshroad_state,clshroad)
/* sound hardware */
diff --git a/src/mame/drivers/cmmb.c b/src/mame/drivers/cmmb.c
index d91bd6ca01a..b68325146ef 100644
--- a/src/mame/drivers/cmmb.c
+++ b/src/mame/drivers/cmmb.c
@@ -97,7 +97,7 @@ UINT32 cmmb_state::screen_update_cmmb(screen_device &screen, bitmap_ind16 &bitma
{
int tile = videoram[count] & 0x3f;
int colour = (videoram[count] & 0xc0)>>6;
- gfx->opaque(bitmap,cliprect,tile,colour,0,0,x*8,y*8);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,colour,0,0,x*8,y*8);
count++;
}
@@ -130,7 +130,7 @@ WRITE8_MEMBER(cmmb_state::cmmb_charram_w)
WRITE8_MEMBER(cmmb_state::cmmb_paletteram_w)
{
/* RGB output is inverted */
- paletteram_RRRGGGBB_byte_w(space,offset,~data);
+ m_palette->write(space, offset, UINT8(~data), mem_mask);
}
READ8_MEMBER(cmmb_state::cmmb_input_r)
@@ -191,7 +191,7 @@ static ADDRESS_MAP_START( cmmb_map, AS_PROGRAM, 8, cmmb_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM /* zero page address */
// AM_RANGE(0x13c0, 0x13ff) AM_RAM //spriteram
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("videoram")
- AM_RANGE(0x2480, 0x249f) AM_RAM_WRITE(cmmb_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x2480, 0x249f) AM_RAM_WRITE(cmmb_paletteram_w) AM_SHARE("palette")
AM_RANGE(0x4000, 0x400f) AM_READWRITE(cmmb_input_r,cmmb_output_w) //i/o
AM_RANGE(0x4900, 0x4900) AM_READ(kludge_r)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
@@ -335,7 +335,9 @@ static MACHINE_CONFIG_START( cmmb, cmmb_state )
MCFG_SCREEN_UPDATE_DRIVER(cmmb_state, screen_update_cmmb)
MCFG_GFXDECODE_ADD("gfxdecode", cmmb)
- MCFG_PALETTE_LENGTH(512)
+
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(RRRGGGBB)
/* sound hardware */
// MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c
index 5e5906e361c..6739b1b39a9 100644
--- a/src/mame/drivers/cninja.c
+++ b/src/mame/drivers/cninja.c
@@ -949,7 +949,7 @@ static MACHINE_CONFIG_START( cninja, cninja_state )
MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninja)
MCFG_GFXDECODE_ADD("gfxdecode", cninja)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -957,14 +957,17 @@ static MACHINE_CONFIG_START( cninja, cninja_state )
MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", cninja_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
decospr_device::set_pri_callback(*device, cninja_pri_callback);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO104_ADD("ioprot104")
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
@@ -1010,7 +1013,7 @@ static MACHINE_CONFIG_START( stoneage, cninja_state )
MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninja)
MCFG_GFXDECODE_ADD("gfxdecode", cninja)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_VIDEO_START_OVERRIDE(cninja_state,stoneage)
@@ -1020,14 +1023,17 @@ static MACHINE_CONFIG_START( stoneage, cninja_state )
MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", cninja_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
decospr_device::set_pri_callback(*device, cninja_pri_callback);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO104_ADD("ioprot104")
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
@@ -1070,7 +1076,7 @@ static MACHINE_CONFIG_START( cninjabl, cninja_state )
MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninjabl)
MCFG_GFXDECODE_ADD("gfxdecode", cninjabl)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -1078,9 +1084,11 @@ static MACHINE_CONFIG_START( cninjabl, cninja_state )
MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", cninja_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1116,7 +1124,7 @@ static MACHINE_CONFIG_START( edrandy, cninja_state )
MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_edrandy)
MCFG_GFXDECODE_ADD("gfxdecode", cninja)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -1124,14 +1132,17 @@ static MACHINE_CONFIG_START( edrandy, cninja_state )
MCFG_DECO16IC_ADD("tilegen1", edrandy_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", edrandy_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
decospr_device::set_pri_callback(*device, cninja_pri_callback);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO146_ADD("ioprot")
@@ -1176,7 +1187,7 @@ static MACHINE_CONFIG_START( robocop2, cninja_state )
MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_robocop2)
MCFG_GFXDECODE_ADD("gfxdecode", robocop2)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -1184,14 +1195,17 @@ static MACHINE_CONFIG_START( robocop2, cninja_state )
MCFG_DECO16IC_ADD("tilegen1", robocop2_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", robocop2_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
decospr_device::set_pri_callback(*device, cninja_pri_callback);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO146_ADD("ioprot")
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
@@ -1241,7 +1255,7 @@ static MACHINE_CONFIG_START( mutantf, cninja_state )
MCFG_VIDEO_START_OVERRIDE(cninja_state,mutantf)
MCFG_GFXDECODE_ADD("gfxdecode", mutantf)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2")
@@ -1250,17 +1264,21 @@ static MACHINE_CONFIG_START( mutantf, cninja_state )
MCFG_DECO16IC_ADD("tilegen1", mutantf_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", mutantf_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 4);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO146_ADD("ioprot")
diff --git a/src/mame/drivers/cntsteer.c b/src/mame/drivers/cntsteer.c
index 9d2b474711c..13cf865f39c 100644
--- a/src/mame/drivers/cntsteer.c
+++ b/src/mame/drivers/cntsteer.c
@@ -109,7 +109,7 @@ PALETTE_INIT_MEMBER(cntsteer_state,zerotrgt)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
- for (i = 0; i < machine().total_colors(); i++)
+ for (i = 0; i < palette.entries(); i++)
{
int bit0, bit1, bit2, r, g, b;
@@ -129,7 +129,7 @@ PALETTE_INIT_MEMBER(cntsteer_state,zerotrgt)
bit2 = (color_prom[i + 256] >> 2) & 0x01;
b = (0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2);
- palette_set_color(machine(), i, rgb_t(r,g,b));
+ palette.set_pen_color(i, rgb_t(r,g,b));
}
}
@@ -217,17 +217,17 @@ void cntsteer_state::zerotrgt_draw_sprites( bitmap_ind16 &bitmap, const rectangl
{
if (fy)
{
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, fx, fy, sx, sy, 0);
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code + 1, color, fx, fy, sx, sy - 16, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, fx, fy, sx, sy, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code + 1, color, fx, fy, sx, sy - 16, 0);
}
else
{
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, fx, fy, sx, sy - 16, 0);
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code + 1, color, fx, fy, sx, sy, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, fx, fy, sx, sy - 16, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code + 1, color, fx, fy, sx, sy, 0);
}
}
else
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, fx, fy, sx, sy, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, fx, fy, sx, sy, 0);
}
}
@@ -274,24 +274,24 @@ void cntsteer_state::cntsteer_draw_sprites( bitmap_ind16 &bitmap, const rectangl
{
if (fy)
{
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, fx, fy, sx, sy, 0);
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code + 1, color, fx, fy, sx, sy - 16, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, fx, fy, sx, sy, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code + 1, color, fx, fy, sx, sy - 16, 0);
}
else
{
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, fx, fy, sx, sy - 16, 0);
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code + 1, color, fx, fy, sx, sy, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, fx, fy, sx, sy - 16, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code + 1, color, fx, fy, sx, sy, 0);
}
}
else
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, fx, fy, sx, sy, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, fx, fy, sx, sy, 0);
}
}
UINT32 cntsteer_state::screen_update_zerotrgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
if (m_disable_roz)
- bitmap.fill(machine().pens[8 * m_bg_color_bank], cliprect);
+ bitmap.fill(m_palette->pen(8 * m_bg_color_bank), cliprect);
else
{
int p1, p2, p3, p4;
@@ -340,7 +340,7 @@ UINT32 cntsteer_state::screen_update_zerotrgt(screen_device &screen, bitmap_ind1
UINT32 cntsteer_state::screen_update_cntsteer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
if (m_disable_roz)
- bitmap.fill(machine().pens[8 * m_bg_color_bank], cliprect);
+ bitmap.fill(m_palette->pen(8 * m_bg_color_bank), cliprect);
else
{
int p1, p2, p3, p4;
@@ -905,8 +905,8 @@ static MACHINE_CONFIG_START( cntsteer, cntsteer_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
MCFG_GFXDECODE_ADD("gfxdecode", cntsteer)
- MCFG_PALETTE_LENGTH(256)
-// MCFG_PALETTE_INIT_OVERRIDE(cntsteer_state,zerotrgt)
+ MCFG_PALETTE_ADD("palette", 256)
+// MCFG_PALETTE_INIT_OWNER(cntsteer_state,zerotrgt)
MCFG_VIDEO_START_OVERRIDE(cntsteer_state,cntsteer)
@@ -952,9 +952,9 @@ static MACHINE_CONFIG_START( zerotrgt, cntsteer_state )
MCFG_SCREEN_UPDATE_DRIVER(cntsteer_state, screen_update_zerotrgt)
MCFG_GFXDECODE_ADD("gfxdecode", zerotrgt)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
- MCFG_PALETTE_INIT_OVERRIDE(cntsteer_state,zerotrgt)
+ MCFG_PALETTE_INIT_OWNER(cntsteer_state,zerotrgt)
MCFG_VIDEO_START_OVERRIDE(cntsteer_state,zerotrgt)
/* sound hardware */
diff --git a/src/mame/drivers/cobra.c b/src/mame/drivers/cobra.c
index 5d374cf7840..23e502c9827 100644
--- a/src/mame/drivers/cobra.c
+++ b/src/mame/drivers/cobra.c
@@ -1869,7 +1869,7 @@ WRITE32_MEMBER(cobra_state::sub_psac_palette_w)
{
COMBINE_DATA(&m_generic_paletteram_32[offset]);
data = m_generic_paletteram_32[offset];
- palette_set_color_rgb(machine(), offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
+ m_palette->set_pen_color(offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
}
READ32_MEMBER(cobra_state::sub_psac2_r)
@@ -3213,8 +3213,8 @@ static MACHINE_CONFIG_START( cobra, cobra_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 400)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399)
- MCFG_PALETTE_LENGTH(65536)
MCFG_SCREEN_UPDATE_DRIVER(cobra_state, screen_update_cobra)
+ MCFG_PALETTE_ADD("palette", 65536)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3233,6 +3233,7 @@ static MACHINE_CONFIG_START( cobra, cobra_state )
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K001604_ADD("k001604", cobra_k001604_intf) // on the LAN board in Racing Jam DX
MCFG_K001604_GFXDECODE("gfxdecode")
+ MCFG_K001604_PALETTE("palette")
MCFG_DEVICE_ADD("cobra_jvs_host", COBRA_JVS_HOST, 4000000)
MCFG_JVS_DEVICE_ADD("cobra_jvs", COBRA_JVS, "cobra_jvs_host")
diff --git a/src/mame/drivers/coinmstr.c b/src/mame/drivers/coinmstr.c
index 6bec5b4b2e5..9d8efb7a6d8 100644
--- a/src/mame/drivers/coinmstr.c
+++ b/src/mame/drivers/coinmstr.c
@@ -73,7 +73,7 @@ WRITE8_MEMBER(coinmstr_state::quizmstr_bg_w)
}
-static void coinmstr_set_pal(running_machine &machine, UINT32 paldat, int col)
+static void coinmstr_set_pal(palette_device &palette, UINT32 paldat, int col)
{
col = col *4;
@@ -97,10 +97,10 @@ static void coinmstr_set_pal(running_machine &machine, UINT32 paldat, int col)
b3 = (paldat & 0x0001) >> 0 ;
- palette_set_color_rgb(machine, col+0, (b0 * 255) << 5, (g0 * 255) << 5, (r0 * 255) << 5);
- palette_set_color_rgb(machine, col+2, (b1 * 255) << 5, (g1 * 255) << 5, (r1 * 255) << 5);
- palette_set_color_rgb(machine, col+1, (b2 * 255) << 5, (g2 * 255) << 5, (r2 * 255) << 5);
- palette_set_color_rgb(machine, col+3, (b3 * 255) << 5, (g3 * 255) << 5, (r3 * 255) << 5);
+ palette.set_pen_color(col+0, (b0 * 255) << 5, (g0 * 255) << 5, (r0 * 255) << 5);
+ palette.set_pen_color(col+2, (b1 * 255) << 5, (g1 * 255) << 5, (r1 * 255) << 5);
+ palette.set_pen_color(col+1, (b2 * 255) << 5, (g2 * 255) << 5, (r2 * 255) << 5);
+ palette.set_pen_color(col+3, (b3 * 255) << 5, (g3 * 255) << 5, (r3 * 255) << 5);
}
}
@@ -116,7 +116,7 @@ WRITE8_MEMBER(coinmstr_state::quizmstr_attr1_w)
UINT32 paldata = (m_attr_ram1[offset] & 0x7f) | ((m_attr_ram2[offset] & 0x7f) << 7);
m_bg_tilemap->mark_tile_dirty(offset - 0x0240);
- coinmstr_set_pal(machine(), paldata, offset - 0x240);
+ coinmstr_set_pal(m_palette, paldata, offset - 0x240);
}
}
@@ -131,7 +131,7 @@ WRITE8_MEMBER(coinmstr_state::quizmstr_attr2_w)
UINT32 paldata = (m_attr_ram1[offset] & 0x7f) | ((m_attr_ram2[offset] & 0x7f) << 7);
m_bg_tilemap->mark_tile_dirty(offset - 0x0240);
- coinmstr_set_pal(machine(), paldata, offset - 0x240);
+ coinmstr_set_pal(m_palette, paldata, offset - 0x240);
}
}
@@ -1169,7 +1169,7 @@ static MACHINE_CONFIG_START( coinmstr, coinmstr_state )
MCFG_SCREEN_UPDATE_DRIVER(coinmstr_state, screen_update_coinmstr)
MCFG_GFXDECODE_ADD("gfxdecode", coinmstr)
- MCFG_PALETTE_LENGTH(46*32*4)
+ MCFG_PALETTE_ADD("palette", 46*32*4)
MCFG_MC6845_ADD("crtc", H46505, "screen", 14000000 / 16, h46505_intf)
diff --git a/src/mame/drivers/coinmvga.c b/src/mame/drivers/coinmvga.c
index 3d19f0edd0f..f93a05c4fcf 100644
--- a/src/mame/drivers/coinmvga.c
+++ b/src/mame/drivers/coinmvga.c
@@ -237,7 +237,7 @@ public:
DECLARE_DRIVER_INIT(colorama);
DECLARE_DRIVER_INIT(cmrltv75);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(coinmvga);
UINT32 screen_update_coinmvga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vblank_irq);
required_device<cpu_device> m_maincpu;
@@ -269,7 +269,7 @@ UINT32 coinmvga_state::screen_update_coinmvga(screen_device &screen, bitmap_ind1
{
int tile = m_vram[count];
//int colour = tile>>12;
- gfx->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*8);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*8,y*8);
count++;
}
@@ -280,7 +280,7 @@ UINT32 coinmvga_state::screen_update_coinmvga(screen_device &screen, bitmap_ind1
}
-void coinmvga_state::palette_init()
+PALETTE_INIT_MEMBER(coinmvga_state, coinmvga)
{
}
@@ -315,7 +315,7 @@ WRITE16_MEMBER(coinmvga_state::ramdac_bg_w)
break;
case 2:
m_bgpal.b = ((data & 0x3f) << 2) | ((data & 0x30) >> 4);
- palette_set_color(machine(), m_bgpal.offs, rgb_t(m_bgpal.r, m_bgpal.g, m_bgpal.b));
+ m_palette->set_pen_color(m_bgpal.offs, rgb_t(m_bgpal.r, m_bgpal.g, m_bgpal.b));
m_bgpal.offs_internal = 0;
m_bgpal.offs++;
break;
@@ -345,7 +345,7 @@ WRITE16_MEMBER(coinmvga_state::ramdac_fg_w)
break;
case 2:
m_fgpal.b = ((data & 0x3f) << 2) | ((data & 0x30) >> 4);
- palette_set_color(machine(), 0x100+m_fgpal.offs, rgb_t(m_fgpal.r, m_fgpal.g, m_fgpal.b));
+ m_palette->set_pen_color(0x100+m_fgpal.offs, rgb_t(m_fgpal.r, m_fgpal.g, m_fgpal.b));
m_fgpal.offs_internal = 0;
m_fgpal.offs++;
break;
@@ -688,8 +688,8 @@ static MACHINE_CONFIG_START( coinmvga, coinmvga_state )
MCFG_GFXDECODE_ADD("gfxdecode", coinmvga)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(coinmvga_state, coinmvga)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/combatsc.c b/src/mame/drivers/combatsc.c
index 1b9d16cebd4..01035e50ba1 100644
--- a/src/mame/drivers/combatsc.c
+++ b/src/mame/drivers/combatsc.c
@@ -731,13 +731,15 @@ static MACHINE_CONFIG_START( combatsc, combatsc_state )
MCFG_SCREEN_UPDATE_DRIVER(combatsc_state, screen_update_combatsc)
MCFG_GFXDECODE_ADD("gfxdecode", combatsc)
- MCFG_PALETTE_LENGTH(8*16*16)
+ MCFG_PALETTE_ADD("palette", 8*16*16)
- MCFG_PALETTE_INIT_OVERRIDE(combatsc_state,combatsc)
+ MCFG_PALETTE_INIT_OWNER(combatsc_state,combatsc)
MCFG_VIDEO_START_OVERRIDE(combatsc_state,combatsc)
MCFG_K007121_ADD("k007121_1")
+ MCFG_K007121_PALETTE("palette")
MCFG_K007121_ADD("k007121_2")
+ MCFG_K007121_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -782,9 +784,9 @@ static MACHINE_CONFIG_START( combatscb, combatsc_state )
MCFG_SCREEN_UPDATE_DRIVER(combatsc_state, screen_update_combatscb)
MCFG_GFXDECODE_ADD("gfxdecode", combatscb)
- MCFG_PALETTE_LENGTH(8*16*16)
+ MCFG_PALETTE_ADD("palette", 8*16*16)
- MCFG_PALETTE_INIT_OVERRIDE(combatsc_state,combatscb)
+ MCFG_PALETTE_INIT_OWNER(combatsc_state,combatscb)
MCFG_VIDEO_START_OVERRIDE(combatsc_state,combatscb)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/comebaby.c b/src/mame/drivers/comebaby.c
index 050aba9ae92..94fb1e58386 100644
--- a/src/mame/drivers/comebaby.c
+++ b/src/mame/drivers/comebaby.c
@@ -114,7 +114,7 @@ static MACHINE_CONFIG_START( comebaby, comebaby_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/commando.c b/src/mame/drivers/commando.c
index 5b3e47b8c4c..c14e6f89154 100644
--- a/src/mame/drivers/commando.c
+++ b/src/mame/drivers/commando.c
@@ -260,9 +260,7 @@ static MACHINE_CONFIG_START( commando, commando_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", commando)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
diff --git a/src/mame/drivers/compgolf.c b/src/mame/drivers/compgolf.c
index cc99a351deb..1f8068c33ad 100644
--- a/src/mame/drivers/compgolf.c
+++ b/src/mame/drivers/compgolf.c
@@ -255,7 +255,7 @@ static MACHINE_CONFIG_START( compgolf, compgolf_state )
MCFG_SCREEN_VISIBLE_AREA(1*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(compgolf_state, screen_update_compgolf)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_GFXDECODE_ADD("gfxdecode", compgolf)
diff --git a/src/mame/drivers/contra.c b/src/mame/drivers/contra.c
index 85abddd6f4c..3eab2db9c67 100644
--- a/src/mame/drivers/contra.c
+++ b/src/mame/drivers/contra.c
@@ -203,11 +203,13 @@ static MACHINE_CONFIG_START( contra, contra_state )
MCFG_SCREEN_UPDATE_DRIVER(contra_state, screen_update_contra)
MCFG_GFXDECODE_ADD("gfxdecode", contra)
- MCFG_PALETTE_LENGTH(2*8*16*16)
-
+ MCFG_PALETTE_ADD("palette", 2*8*16*16)
+ MCFG_PALETTE_INIT_OWNER(contra_state, contra)
MCFG_K007121_ADD("k007121_1")
+ MCFG_K007121_PALETTE("palette")
MCFG_K007121_ADD("k007121_2")
+ MCFG_K007121_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/coolridr.c b/src/mame/drivers/coolridr.c
index d9956224808..f29896b5feb 100644
--- a/src/mame/drivers/coolridr.c
+++ b/src/mame/drivers/coolridr.c
@@ -2133,7 +2133,7 @@ void *coolridr_state::draw_object_threaded(void *param, int threadid)
/* This is a RLE-based sprite blitter (US Patent #6,141,122), very unusual from Sega... */
void coolridr_state::blit_current_sprite(address_space &space)
{
-// const pen_t *clut = &machine().pens[0];
+// const pen_t *clut = &m_palette->pen(0);
// Serialized 32-bit words in order of appearance:
// 0: 00000000 - unknown, 0x00000000 or 0x00000001, 0 seems to be regular sprite, 1 seems to change meaning of below, possible clip area?
@@ -3615,8 +3615,7 @@ static MACHINE_CONFIG_START( coolridr, coolridr_state )
MCFG_SCREEN_VISIBLE_AREA(CLIPMINX_FULL,CLIPMAXX_FULL, CLIPMINY_FULL, CLIPMAXY_FULL)
MCFG_SCREEN_UPDATE_DRIVER(coolridr_state, screen_update_coolridr2)
- MCFG_PALETTE_LENGTH(0x10000)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
diff --git a/src/mame/drivers/cop01.c b/src/mame/drivers/cop01.c
index d32b643e1d7..c9ccad430b4 100644
--- a/src/mame/drivers/cop01.c
+++ b/src/mame/drivers/cop01.c
@@ -463,8 +463,8 @@ static MACHINE_CONFIG_START( cop01, cop01_state )
MCFG_SCREEN_UPDATE_DRIVER(cop01_state, screen_update_cop01)
MCFG_GFXDECODE_ADD("gfxdecode", cop01)
- MCFG_PALETTE_LENGTH(16+8*16+16*16)
-
+ MCFG_PALETTE_ADD("palette", 16+8*16+16*16)
+ MCFG_PALETTE_INIT_OWNER(cop01_state, cop01)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -501,8 +501,8 @@ static MACHINE_CONFIG_START( mightguy, cop01_state )
MCFG_SCREEN_UPDATE_DRIVER(cop01_state, screen_update_cop01)
MCFG_GFXDECODE_ADD("gfxdecode", cop01)
- MCFG_PALETTE_LENGTH(16+8*16+16*16)
-
+ MCFG_PALETTE_ADD("palette", 16+8*16+16*16)
+ MCFG_PALETTE_INIT_OWNER(cop01_state, cop01)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cops.c b/src/mame/drivers/cops.c
index a746a149c4d..ca9c665a69c 100644
--- a/src/mame/drivers/cops.c
+++ b/src/mame/drivers/cops.c
@@ -601,8 +601,8 @@ static MACHINE_CONFIG_START( cops, cops_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_OVERRIDE(cops_state,cops)
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(cops_state,cops)
/* via */
MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
diff --git a/src/mame/drivers/copsnrob.c b/src/mame/drivers/copsnrob.c
index 31ca451b720..54447caacfe 100644
--- a/src/mame/drivers/copsnrob.c
+++ b/src/mame/drivers/copsnrob.c
@@ -62,19 +62,6 @@ Added Dip locations according to manual.
/*************************************
*
- * Palette generation
- *
- *************************************/
-
-void copsnrob_state::palette_init()
-{
- palette_set_color(machine(),0,rgb_t(0x00,0x00,0x00)); /* black */
- palette_set_color(machine(),1,rgb_t(0xff,0xff,0xff)); /* white */
-}
-
-
-/*************************************
- *
* I/O
*
*************************************/
@@ -270,7 +257,7 @@ static MACHINE_CONFIG_START( copsnrob, copsnrob_state )
MCFG_SCREEN_UPDATE_DRIVER(copsnrob_state, screen_update_copsnrob)
MCFG_GFXDECODE_ADD("gfxdecode", copsnrob)
- MCFG_PALETTE_LENGTH(2)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/corona.c b/src/mame/drivers/corona.c
index 54f6448f75e..ceaaf8f0dee 100644
--- a/src/mame/drivers/corona.c
+++ b/src/mame/drivers/corona.c
@@ -349,7 +349,7 @@ public:
DECLARE_WRITE8_MEMBER(ay_port_a_out);
DECLARE_WRITE8_MEMBER(ay_port_b_out);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(corona);
UINT32 screen_update_winner(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_luckyrlt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
@@ -361,7 +361,7 @@ public:
* Video Hardware *
*********************************************/
-void corona_state::palette_init()
+PALETTE_INIT_MEMBER(corona_state, corona)
{
const UINT8 *color_prom = memregion("proms")->base();
int bit6, bit7, bit0, bit1, r, g, b;
@@ -384,7 +384,7 @@ void corona_state::palette_init()
bit1 = (color_prom[0] >> 5) & 0x01;
r = 0x0e * bit6 + 0x1f * bit7 + 0x43 * bit0 + 0x8f * bit1;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
color_prom++;
}
}
@@ -1380,8 +1380,8 @@ static MACHINE_CONFIG_START( winner81, corona_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(corona_state, corona)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8912, AY_CLK1) /* measured */
@@ -1411,8 +1411,8 @@ static MACHINE_CONFIG_START( winner82, corona_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(corona_state, corona)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLK2) /* measured */
@@ -1442,8 +1442,8 @@ static MACHINE_CONFIG_START( re800, corona_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(corona_state, corona)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8912, AY_CLK2)
@@ -1472,8 +1472,8 @@ static MACHINE_CONFIG_START( rcirulet, corona_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(corona_state, corona)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8912, AY_CLK2)
@@ -1503,8 +1503,8 @@ static MACHINE_CONFIG_START( luckyrlt, corona_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_luckyrlt)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(corona_state, corona)
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 4bc6d2f9623..68988dbbd9f 100644
--- a/src/mame/drivers/cosmic.c
+++ b/src/mame/drivers/cosmic.c
@@ -1027,9 +1027,9 @@ static MACHINE_CONFIG_DERIVED( panic, cosmic )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", panic)
- MCFG_PALETTE_LENGTH(16+8*4)
+ MCFG_PALETTE_ADD("palette", 16+8*4)
- MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,panic)
+ MCFG_PALETTE_INIT_OWNER(cosmic_state,panic)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_panic)
@@ -1052,9 +1052,9 @@ static MACHINE_CONFIG_DERIVED( cosmica, cosmic )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", cosmica)
- MCFG_PALETTE_LENGTH(8+16*4)
+ MCFG_PALETTE_ADD("palette", 8+16*4)
- MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,cosmica)
+ MCFG_PALETTE_INIT_OWNER(cosmic_state,cosmica)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_cosmica)
@@ -1097,9 +1097,9 @@ static MACHINE_CONFIG_START( cosmicg, cosmic_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_cosmicg)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
- MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,cosmicg)
+ MCFG_PALETTE_INIT_OWNER(cosmic_state,cosmicg)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1120,9 +1120,9 @@ static MACHINE_CONFIG_DERIVED( magspot, cosmic )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", panic)
- MCFG_PALETTE_LENGTH(16+8*4)
+ MCFG_PALETTE_ADD("palette", 16+8*4)
- MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,magspot)
+ MCFG_PALETTE_INIT_OWNER(cosmic_state,magspot)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_magspot)
@@ -1152,9 +1152,9 @@ static MACHINE_CONFIG_DERIVED( nomnlnd, cosmic )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", panic)
- MCFG_PALETTE_LENGTH(16+8*4)
+ MCFG_PALETTE_ADD("palette", 16+8*4)
- MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,nomnlnd)
+ MCFG_PALETTE_INIT_OWNER(cosmic_state,nomnlnd)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_nomnlnd)
diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c
index c28a2ad66e2..4182b6efac2 100644
--- a/src/mame/drivers/cps1.c
+++ b/src/mame/drivers/cps1.c
@@ -3171,7 +3171,7 @@ static MACHINE_CONFIG_START( cps1_10MHz, cps_state )
MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE_ADD("gfxdecode", cps1)
- MCFG_PALETTE_LENGTH(0xc00)
+ MCFG_PALETTE_ADD("palette", 0xc00)
MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c
index 7a117b2ae04..9d617eb8d7f 100644
--- a/src/mame/drivers/cps2.c
+++ b/src/mame/drivers/cps2.c
@@ -1270,7 +1270,7 @@ static MACHINE_CONFIG_START( cps2, cps_state )
16MHz -> same as 8 but with a /2 divider; also a possibility
*/
MCFG_GFXDECODE_ADD("gfxdecode", cps2)
- MCFG_PALETTE_LENGTH(0xc00)
+ MCFG_PALETTE_ADD("palette", 0xc00)
MCFG_VIDEO_START_OVERRIDE(cps_state,cps2)
diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c
index 104e2d0b50f..90bac75cdcf 100644
--- a/src/mame/drivers/cps3.c
+++ b/src/mame/drivers/cps3.c
@@ -889,7 +889,7 @@ void cps3_state::cps3_set_mame_colours(int colournum, UINT16 data, UINT32 fadeva
m_mame_colours[colournum] = (r << (16+3)) | (g << (8+3)) | (b << (0+3));
- if (colournum<0x10000) palette_set_color(machine(),colournum,m_mame_colours[colournum]/* rgb_t(r<<3,g<<3,b<<3)*/);//m_mame_colours[colournum]);
+ if (colournum<0x10000) m_palette->set_pen_color(colournum,m_mame_colours[colournum]/* rgb_t(r<<3,g<<3,b<<3)*/);//m_mame_colours[colournum]);
}
@@ -904,12 +904,12 @@ void cps3_state::video_start()
save_pointer(NAME(m_char_ram), 0x800000 /4);
/* create the char set (gfx will then be updated dynamically from RAM) */
- m_gfxdecode->set_gfx(0, auto_alloc(machine(), gfx_element(machine(), cps3_tiles8x8_layout, (UINT8 *)m_ss_ram, machine().total_colors() / 16, 0)));
+ m_gfxdecode->set_gfx(0, auto_alloc(machine(), gfx_element(machine(), cps3_tiles8x8_layout, (UINT8 *)m_ss_ram, m_palette->entries() / 16, 0)));
//decode_ssram();
/* create the char set (gfx will then be updated dynamically from RAM) */
- m_gfxdecode->set_gfx(1, auto_alloc(machine(), gfx_element(machine(), cps3_tiles16x16_layout, (UINT8 *)m_char_ram, machine().total_colors() / 64, 0)));
+ m_gfxdecode->set_gfx(1, auto_alloc(machine(), gfx_element(machine(), cps3_tiles16x16_layout, (UINT8 *)m_char_ram, m_palette->entries() / 64, 0)));
m_gfxdecode->gfx(1)->set_granularity(64);
//decode_charram();
@@ -1293,7 +1293,7 @@ UINT32 cps3_state::screen_update_cps3(screen_device &screen, bitmap_rgb32 &bitma
// for (offset=0;offset<0x200;offset++)
// {
// int palreadbase = (m_ss_pal_base << 9);
-// palette_set_color(machine(),offset,m_mame_colours[palreadbase+offset]);
+// m_palette->set_pen_color(offset,m_mame_colours[palreadbase+offset]);
// }
// fg layer
@@ -2585,7 +2585,7 @@ static MACHINE_CONFIG_START( cps3, cps3_state )
*/
MCFG_NVRAM_ADD_0FILL("eeprom")
- MCFG_PALETTE_LENGTH(0x10000) // actually 0x20000 ...
+ MCFG_PALETTE_ADD("palette", 0x10000) // actually 0x20000 ...
MCFG_GFXDECODE_ADD("gfxdecode", empty)
diff --git a/src/mame/drivers/crbaloon.c b/src/mame/drivers/crbaloon.c
index 8f02378f46c..fcf6bc7a25e 100644
--- a/src/mame/drivers/crbaloon.c
+++ b/src/mame/drivers/crbaloon.c
@@ -370,7 +370,8 @@ static MACHINE_CONFIG_START( crbaloon, crbaloon_state )
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_GFXDECODE_ADD("gfxdecode", crbaloon)
- MCFG_PALETTE_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(crbaloon_state, crbaloon)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c
index 8f5ef9c1c4a..59628b4a13c 100644
--- a/src/mame/drivers/crimfght.c
+++ b/src/mame/drivers/crimfght.c
@@ -272,8 +272,6 @@ static MACHINE_CONFIG_START( crimfght, crimfght_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -281,13 +279,17 @@ static MACHINE_CONFIG_START( crimfght, crimfght_state )
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(crimfght_state, screen_update_crimfght)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", crimfght_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", crimfght_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -394,7 +396,7 @@ static KONAMI_SETLINES_CALLBACK( crimfght_banking )
if (lines & 0x20)
{
device->memory().space(AS_PROGRAM).install_read_bank(0x0000, 0x03ff, "bank3");
- device->memory().space(AS_PROGRAM).install_write_handler(0x0000, 0x03ff, write8_delegate(FUNC(crimfght_state::paletteram_xBBBBBGGGGGRRRRR_byte_be_w), state));
+ device->memory().space(AS_PROGRAM).install_write_handler(0x0000, 0x03ff, write8_delegate(FUNC(palette_device::write), state->m_palette.target()));
state->membank("bank3")->set_base(state->m_generic_paletteram_8);
}
else
diff --git a/src/mame/drivers/crospang.c b/src/mame/drivers/crospang.c
index e4369c4aa1b..9653b60e866 100644
--- a/src/mame/drivers/crospang.c
+++ b/src/mame/drivers/crospang.c
@@ -58,7 +58,7 @@ static ADDRESS_MAP_START( crospang_map, AS_PROGRAM, 16, crospang_state )
AM_RANGE(0x10000e, 0x10000f) AM_WRITENOP
AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(crospang_fg_videoram_w) AM_SHARE("fg_videoram")
AM_RANGE(0x122000, 0x1227ff) AM_RAM_WRITE(crospang_bg_videoram_w) AM_SHARE("bg_videoram")
- AM_RANGE(0x200000, 0x2005ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x2005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x210000, 0x2107ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x270000, 0x270001) AM_WRITE(crospang_soundlatch_w)
AM_RANGE(0x280000, 0x280001) AM_READ_PORT("P1_P2")
@@ -78,7 +78,7 @@ static ADDRESS_MAP_START( bestri_map, AS_PROGRAM, 16, crospang_state )
AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(crospang_fg_videoram_w) AM_SHARE("fg_videoram")
AM_RANGE(0x122000, 0x1227ff) AM_RAM_WRITE(crospang_bg_videoram_w) AM_SHARE("bg_videoram")
- AM_RANGE(0x200000, 0x2005ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x2005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x210000, 0x2107ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x270000, 0x270001) AM_WRITE(crospang_soundlatch_w)
AM_RANGE(0x270004, 0x270005) AM_WRITENOP
@@ -354,7 +354,8 @@ static MACHINE_CONFIG_START( crospang, crospang_state )
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(crospang_state, screen_update_crospang)
- MCFG_PALETTE_LENGTH(0x300)
+ MCFG_PALETTE_ADD("palette", 0x300)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_GFXDECODE_ADD("gfxdecode", crospang)
@@ -363,6 +364,7 @@ static MACHINE_CONFIG_START( crospang, crospang_state )
decospr_device::set_is_bootleg(*device, true);
decospr_device::set_offsets(*device, 5,7);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
/* sound hardware */
diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c
index 2319fe15270..d0a26b61399 100644
--- a/src/mame/drivers/crshrace.c
+++ b/src/mame/drivers/crshrace.c
@@ -192,7 +192,7 @@ static ADDRESS_MAP_START( crshrace_map, AS_PROGRAM, 16, crshrace_state )
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM
AM_RANGE(0xffc000, 0xffc001) AM_WRITE(crshrace_roz_bank_w)
AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(crshrace_videoram2_w) AM_SHARE("videoram2")
- AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xGGGGGBBBBBRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("P1") AM_WRITE(crshrace_gfxctrl_w)
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("P2")
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW0")
@@ -470,12 +470,14 @@ static MACHINE_CONFIG_START( crshrace, crshrace_state )
MCFG_SCREEN_VBLANK_DRIVER(crshrace_state, screen_eof_crshrace)
MCFG_GFXDECODE_ADD("gfxdecode", crshrace)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xGGGGGBBBBBRRRRR)
MCFG_DEVICE_ADD("vsystem_spr", VSYSTEM_SPR, 0)
MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( crshrace_state, crshrace_tile_callback )
MCFG_VSYSTEM_SPR_SET_GFXREGION(2)
MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR_PALETTE("palette")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2")
diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c
index d5fd2c100a1..d82b63e4829 100644
--- a/src/mame/drivers/crystal.c
+++ b/src/mame/drivers/crystal.c
@@ -924,8 +924,7 @@ static MACHINE_CONFIG_START( crystal, crystal_state )
MCFG_VIDEO_VRENDER0_ADD("vr0", vr0video_config)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGGG_BBBBB)
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD_RRRRRGGGGGGBBBBB("palette")
MCFG_DS1302_ADD("rtc", XTAL_32_768kHz)
diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c
index 8d83f96af91..70c5e70d3fd 100644
--- a/src/mame/drivers/cshooter.c
+++ b/src/mame/drivers/cshooter.c
@@ -125,7 +125,7 @@ public:
DECLARE_DRIVER_INIT(cshooter);
TILE_GET_INFO_MEMBER(get_cstx_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(cshooter);
DECLARE_MACHINE_RESET(cshooter);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_airraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -133,21 +133,18 @@ public:
};
-void cshooter_state::palette_init()
+PALETTE_INIT_MEMBER(cshooter_state, cshooter)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
- // allocate the colortable
- machine().colortable = colortable_alloc(machine(), 0x100);
-
// text uses colors 0xc0-0xdf
for (i = 0; i < 0x40; i++)
- colortable_entry_set_value(machine().colortable, i, (color_prom[i] & 0x1f) | 0xc0);
+ palette.set_pen_indirect(i, (color_prom[i] & 0x1f) | 0xc0);
// rest is still unknown..
for (i = 0x40; i < 0x100; i++)
- colortable_entry_set_value(machine().colortable, i, color_prom[i]);
+ palette.set_pen_indirect(i, color_prom[i]);
}
TILE_GET_INFO_MEMBER(cshooter_state::get_cstx_tile_info)
@@ -185,10 +182,10 @@ void cshooter_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
tile_low += (tile_low > 0x9) ? 0x37 : 0x30;
tile_high += (tile_high > 0x9) ? 0x37 : 0x30;
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, tile_high << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3],m_spriteram[i+2],0);
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, tile_high << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3]+8,m_spriteram[i+2],0);
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, tile_low << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3]+8,m_spriteram[i+2]+8,0);
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, tile_low << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3],m_spriteram[i+2]+8,0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, tile_high << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3],m_spriteram[i+2],0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, tile_high << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3]+8,m_spriteram[i+2],0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, tile_low << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3]+8,m_spriteram[i+2]+8,0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, tile_low << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3],m_spriteram[i+2]+8,0);
}
}
@@ -202,7 +199,7 @@ UINT32 cshooter_state::screen_update_airraid(screen_device &screen, bitmap_ind16
int b = m_generic_paletteram2_8[i] & 0xf;
rgb_t color = rgb_t(pal4bit(r), pal4bit(g), pal4bit(b));
- colortable_palette_set_color(machine().colortable, i, color);
+ m_palette->set_indirect_color(i, color);
}
bitmap.fill(0x80, cliprect); // temp
@@ -453,7 +450,8 @@ static MACHINE_CONFIG_START( airraid, cshooter_state )
MCFG_SCREEN_UPDATE_DRIVER(cshooter_state, screen_update_airraid)
MCFG_GFXDECODE_ADD("gfxdecode", cshooter)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(cshooter_state, 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 6b3614cdff4..fa92d66ad5b 100644
--- a/src/mame/drivers/csplayh5.c
+++ b/src/mame/drivers/csplayh5.c
@@ -680,8 +680,6 @@ static MACHINE_CONFIG_START( csplayh5, csplayh5_state )
MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
MCFG_SCREEN_UPDATE_DEVICE("v9958", v9958_device, screen_update)
- MCFG_PALETTE_LENGTH(19780)
-
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cswat.c b/src/mame/drivers/cswat.c
index e9e9438561f..81e7e74c368 100644
--- a/src/mame/drivers/cswat.c
+++ b/src/mame/drivers/cswat.c
@@ -273,7 +273,7 @@ static MACHINE_CONFIG_START( cswat, cswat_state )
MCFG_SCREEN_UPDATE_DRIVER(cswat_state, screen_update_cswat)
MCFG_GFXDECODE_ADD("gfxdecode", cswat)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
// TODO
diff --git a/src/mame/drivers/cubeqst.c b/src/mame/drivers/cubeqst.c
index b52764609bb..228d77e1f78 100644
--- a/src/mame/drivers/cubeqst.c
+++ b/src/mame/drivers/cubeqst.c
@@ -62,7 +62,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(cubeqst);
UINT32 screen_update_cubeqst(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vblank);
TIMER_CALLBACK_MEMBER(delayed_bank_swap);
@@ -95,7 +95,7 @@ void cubeqst_state::video_start()
}
/* TODO: Use resistor values */
-void cubeqst_state::palette_init()
+PALETTE_INIT_MEMBER(cubeqst_state, cubeqst)
{
int i;
diff --git a/src/mame/drivers/cultures.c b/src/mame/drivers/cultures.c
index 0e77be8025c..65726ae71d5 100644
--- a/src/mame/drivers/cultures.c
+++ b/src/mame/drivers/cultures.c
@@ -152,7 +152,7 @@ WRITE8_MEMBER(cultures_state::bg0_videoram_w)
g = ((datax >> 3) & 0x1e) | ((datax & 0x2000) ? 0x1 : 0);
b = ((datax << 1) & 0x1e) | ((datax & 0x1000) ? 0x1 : 0);
- palette_set_color_rgb(machine(), offset, pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color(offset, pal5bit(r), pal5bit(g), pal5bit(b));
}
else
{
@@ -414,7 +414,7 @@ static MACHINE_CONFIG_START( cultures, cultures_state )
MCFG_SCREEN_UPDATE_DRIVER(cultures_state, screen_update_cultures)
MCFG_GFXDECODE_ADD("gfxdecode", culture)
- MCFG_PALETTE_LENGTH(0x2000)
+ MCFG_PALETTE_ADD("palette", 0x2000)
/* sound hardware */
diff --git a/src/mame/drivers/cupidon.c b/src/mame/drivers/cupidon.c
index 00dcfce3a39..fc6e0e3c25b 100644
--- a/src/mame/drivers/cupidon.c
+++ b/src/mame/drivers/cupidon.c
@@ -107,7 +107,7 @@ static MACHINE_CONFIG_START( cupidon, cupidon_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(cupidon_state, screen_update_cupidon)
- MCFG_PALETTE_LENGTH(0x10000)
+ MCFG_PALETTE_ADD("palette", 0x10000)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
/* unknown sound, probably DAC driven using 68340 DMA */
diff --git a/src/mame/drivers/cv1k.c b/src/mame/drivers/cv1k.c
index 56aef065128..c8d732de29c 100644
--- a/src/mame/drivers/cv1k.c
+++ b/src/mame/drivers/cv1k.c
@@ -453,10 +453,10 @@ static MACHINE_CONFIG_START( cv1k, cv1k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x200, 0x200)
MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xf0-1)
+ MCFG_SCREEN_UPDATE_DRIVER(cv1k_state, screen_update_cv1k)
- MCFG_PALETTE_LENGTH(0x10000)
- MCFG_SCREEN_UPDATE_DRIVER(cv1k_state, screen_update_cv1k)
+ MCFG_PALETTE_ADD("palette", 0x10000)
MCFG_MACHINE_RESET_OVERRIDE(cv1k_state, cv1k)
diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c
index 2b87944b73a..a8d31b2fe64 100644
--- a/src/mame/drivers/cvs.c
+++ b/src/mame/drivers/cvs.c
@@ -1028,8 +1028,9 @@ static MACHINE_CONFIG_START( cvs, cvs_state )
MCFG_VIDEO_START_OVERRIDE(cvs_state,cvs)
MCFG_GFXDECODE_ADD("gfxdecode", cvs)
- MCFG_PALETTE_LENGTH((256+4)*8+8+1)
- MCFG_PALETTE_INIT_OVERRIDE(cvs_state,cvs)
+
+ MCFG_PALETTE_ADD("palette", (256+4)*8+8+1)
+ MCFG_PALETTE_INIT_OWNER(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 2750047f544..56fdf254a71 100644
--- a/src/mame/drivers/cyberbal.c
+++ b/src/mame/drivers/cyberbal.c
@@ -411,7 +411,7 @@ static MACHINE_CONFIG_START( cyberbal, cyberbal_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", interleaved)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, cyberbal_state, get_playfield_tile_info, 16,8, SCAN_ROWS, 64,64)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, cyberbal_state, get_alpha_tile_info, 16,8, SCAN_ROWS, 64,32, 0)
@@ -475,7 +475,7 @@ static MACHINE_CONFIG_START( cyberbal2p, cyberbal_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", cyberbal)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, cyberbal_state, get_playfield_tile_info, 16,8, SCAN_ROWS, 64,64)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, cyberbal_state, get_alpha_tile_info, 16,8, SCAN_ROWS, 64,32, 0)
diff --git a/src/mame/drivers/cybertnk.c b/src/mame/drivers/cybertnk.c
index a6bcd433a70..62237f7e4de 100644
--- a/src/mame/drivers/cybertnk.c
+++ b/src/mame/drivers/cybertnk.c
@@ -312,7 +312,7 @@ static void draw_road(screen_device &screen, bitmap_ind16 &bitmap, const rectang
// seems to be priority related, cases seen are 0xc0 and 0x00 (once the palette bits are masked out)
if ((param2&0x80) == pri)
{
- gfx->transpen(bitmap,cliprect,param1,col,0,0,-param3+screen_shift,i/4,0);
+ gfx->transpen(state->m_palette,bitmap,cliprect,param1,col,0,0,-param3+screen_shift,i/4,0);
}
@@ -324,7 +324,7 @@ static void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rect
{
cybertnk_state *state = screen.machine().driver_data<cybertnk_state>();
const UINT32 *sprrom = (UINT32*)screen.memregion(":spr_gfx")->base();
- const pen_t *paldata = screen.machine().pens;
+ const pen_t *paldata = state->m_palette->pens();
int miny = cliprect.min_y;
int maxy = cliprect.max_y;
@@ -489,7 +489,7 @@ static UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const r
- bitmap.fill(get_black_pen(screen.machine()), cliprect);
+ bitmap.fill(state->m_palette->black_pen(), cliprect);
draw_road(screen,bitmap,cliprect,screen_shift, 0x00);
@@ -609,7 +609,7 @@ static ADDRESS_MAP_START( master_mem, AS_PROGRAM, 16, cybertnk_state )
AM_RANGE(0x0c4000, 0x0c5fff) AM_RAM_WRITE(tilemap1_vram_w) AM_SHARE("tilemap1_vram")
AM_RANGE(0x0c8000, 0x0c9fff) AM_RAM_WRITE(tilemap2_vram_w) AM_SHARE("tilemap2_vram")
AM_RANGE(0x0e0000, 0x0e0fff) AM_RAM AM_SHARE("sharedram")
- AM_RANGE(0x100000, 0x107fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* 2x palettes, one for each screen */
+ AM_RANGE(0x100000, 0x107fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* 2x palettes, one for each screen */
AM_RANGE(0x110000, 0x110001) AM_WRITE8(cybertnk_sound_cmd_w,0xffff)
AM_RANGE(0x110002, 0x110003) AM_READ_PORT("DSW1") AM_WRITENOP// watchdog?
@@ -861,8 +861,8 @@ static MACHINE_CONFIG_START( cybertnk, cybertnk_state )
MCFG_SCREEN_UPDATE_DRIVER(cybertnk_state, screen_update_cybertnk_right)
MCFG_GFXDECODE_ADD("gfxdecode", cybertnk)
- MCFG_PALETTE_LENGTH(0x4000)
-
+ MCFG_PALETTE_ADD("palette", 0x4000)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/cyclemb.c b/src/mame/drivers/cyclemb.c
index 0dc2baf33a7..08d6c13ca53 100644
--- a/src/mame/drivers/cyclemb.c
+++ b/src/mame/drivers/cyclemb.c
@@ -122,7 +122,7 @@ public:
DECLARE_DRIVER_INIT(cyclemb);
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(cyclemb);
UINT32 screen_update_cyclemb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_skydest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void cyclemb_draw_tilemap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -134,7 +134,7 @@ public:
-void cyclemb_state::palette_init()
+PALETTE_INIT_MEMBER(cyclemb_state, cyclemb)
{
const UINT8 *color_prom = memregion("proms")->base();
int i,r,g,b,val;
@@ -157,7 +157,7 @@ void cyclemb_state::palette_init()
bit2 = (val >> 2) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -188,15 +188,15 @@ void cyclemb_state::cyclemb_draw_tilemap(screen_device &screen, bitmap_ind16 &bi
if(flip_screen())
{
- gfx->opaque(bitmap,cliprect,tile,color,1,1,512-(x*8)-scrollx,256-(y*8));
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color,1,1,512-(x*8)-scrollx,256-(y*8));
/* wrap-around */
- gfx->opaque(bitmap,cliprect,tile,color,1,1,512-(x*8)-scrollx+512,256-(y*8));
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color,1,1,512-(x*8)-scrollx+512,256-(y*8));
}
else
{
- gfx->opaque(bitmap,cliprect,tile,color,0,0,(x*8)-scrollx,(y*8));
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,(x*8)-scrollx,(y*8));
/* wrap-around */
- gfx->opaque(bitmap,cliprect,tile,color,0,0,(x*8)-scrollx+512,(y*8));
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,(x*8)-scrollx+512,(y*8));
}
count++;
@@ -257,7 +257,7 @@ void cyclemb_state::cyclemb_draw_sprites(screen_device &screen, bitmap_ind16 &bi
fx = !fx;
fy = !fy;
}
- m_gfxdecode->gfx(region)->transpen(bitmap,cliprect,spr_offs,col,fx,fy,x,y,0);
+ m_gfxdecode->gfx(region)->transpen(m_palette,bitmap,cliprect,spr_offs,col,fx,fy,x,y,0);
}
}
@@ -295,9 +295,9 @@ void cyclemb_state::skydest_draw_tilemap(screen_device &screen, bitmap_ind16 &bi
scrolly = m_vram[(x-32)*64+1];
- gfx->opaque(bitmap,cliprect,tile,color,0,0,x*8+scrollx,((y*8)-scrolly)&0xff);
- gfx->opaque(bitmap,cliprect,tile,color,0,0,x*8+scrollx-480,((y*8)-scrolly)&0xff);
- gfx->opaque(bitmap,cliprect,tile,color,0,0,x*8+scrollx+480,((y*8)-scrolly)&0xff);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*8+scrollx,((y*8)-scrolly)&0xff);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*8+scrollx-480,((y*8)-scrolly)&0xff);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*8+scrollx+480,((y*8)-scrolly)&0xff);
}
@@ -353,7 +353,7 @@ void cyclemb_state::skydest_draw_sprites(screen_device &screen, bitmap_ind16 &bi
fx = !fx;
fy = !fy;
}
- m_gfxdecode->gfx(region)->transpen(bitmap,cliprect,spr_offs,col,fx,fy,x,y,0);
+ m_gfxdecode->gfx(region)->transpen(m_palette,bitmap,cliprect,spr_offs,col,fx,fy,x,y,0);
}
}
@@ -917,8 +917,8 @@ static MACHINE_CONFIG_START( cyclemb, cyclemb_state )
MCFG_SCREEN_UPDATE_DRIVER(cyclemb_state, screen_update_cyclemb)
MCFG_GFXDECODE_ADD("gfxdecode", cyclemb)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(cyclemb_state, cyclemb)
/* sound hardware */
@@ -937,7 +937,7 @@ static MACHINE_CONFIG_DERIVED( skydest, cyclemb )
MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(cyclemb_state, screen_update_skydest)
-// MCFG_PALETTE_INIT_OVERRIDE(cyclemb_state,skydest)
+// MCFG_PALETTE_INIT_OWNER(cyclemb_state,skydest)
MACHINE_CONFIG_END
/***************************************************************************
diff --git a/src/mame/drivers/d9final.c b/src/mame/drivers/d9final.c
index f411f192d6b..f8744dfbee5 100644
--- a/src/mame/drivers/d9final.c
+++ b/src/mame/drivers/d9final.c
@@ -119,8 +119,8 @@ static ADDRESS_MAP_START( d9final_map, AS_PROGRAM, 8, d9final_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_RAM
- AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0xc800, 0xcbff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0xcc00, 0xcfff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(sc0_lovram) AM_SHARE("lo_vram")
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(sc0_hivram) AM_SHARE("hi_vram")
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(sc0_cram) AM_SHARE("cram")
@@ -302,9 +302,8 @@ static MACHINE_CONFIG_START( d9final, d9final_state )
MCFG_SCREEN_UPDATE_DRIVER(d9final_state, screen_update_d9final)
MCFG_GFXDECODE_ADD("gfxdecode", d9final)
- MCFG_PALETTE_LENGTH(0x400)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
-
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x400)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dacholer.c b/src/mame/drivers/dacholer.c
index 7acfb5985f9..76201b601b0 100644
--- a/src/mame/drivers/dacholer.c
+++ b/src/mame/drivers/dacholer.c
@@ -93,7 +93,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(dacholer);
UINT32 screen_update_dacholer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(sound_irq);
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
@@ -151,7 +151,7 @@ void dacholer_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
flipy = !flipy;
}
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect,
code,
0,
flipx,flipy,
@@ -607,7 +607,7 @@ void dacholer_state::machine_reset()
}
/* guess: use the same resistor values as Crazy Climber (needs checking on the real HW) */
-void dacholer_state::palette_init()
+PALETTE_INIT_MEMBER(dacholer_state, dacholer)
{
const UINT8 *color_prom = memregion("proms")->base();
static const int resistances_rg[3] = { 1000, 470, 220 };
@@ -621,7 +621,7 @@ void dacholer_state::palette_init()
2, resistances_b, weights_b, 0, 0,
0, 0, 0, 0, 0);
- for (i = 0;i < machine().total_colors(); i++)
+ for (i = 0;i < palette.entries(); i++)
{
int bit0, bit1, bit2;
int r, g, b;
@@ -643,7 +643,7 @@ void dacholer_state::palette_init()
bit1 = (color_prom[i] >> 7) & 0x01;
b = combine_2_weights(weights_b, bit0, bit1);
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -670,7 +670,8 @@ static MACHINE_CONFIG_START( dacholer, dacholer_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16)
MCFG_SCREEN_UPDATE_DRIVER(dacholer_state, screen_update_dacholer)
- MCFG_PALETTE_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(dacholer_state, dacholer)
MCFG_GFXDECODE_ADD("gfxdecode", dacholer)
diff --git a/src/mame/drivers/dambustr.c b/src/mame/drivers/dambustr.c
index f4366bc1dd8..73b6ab92c60 100644
--- a/src/mame/drivers/dambustr.c
+++ b/src/mame/drivers/dambustr.c
@@ -268,9 +268,9 @@ static MACHINE_CONFIG_START( dambustr, dambustr_state )
MCFG_SCREEN_UPDATE_DRIVER(dambustr_state, screen_update_dambustr)
MCFG_GFXDECODE_ADD("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_ADD("palette", 32+2+64+8) /* 32 for the characters, 2 for the bullets, 64 for the stars, 8 for the background */
- MCFG_PALETTE_INIT_OVERRIDE(dambustr_state,dambustr)
+ MCFG_PALETTE_INIT_OWNER(dambustr_state,dambustr)
MCFG_VIDEO_START_OVERRIDE(dambustr_state,dambustr)
/* sound hardware */
diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c
index 7524e706c61..f14efda4435 100644
--- a/src/mame/drivers/darius.c
+++ b/src/mame/drivers/darius.c
@@ -243,7 +243,7 @@ static ADDRESS_MAP_START( darius_map, AS_PROGRAM, 16, darius_state )
AM_RANGE(0xd20000, 0xd20003) AM_DEVWRITE("pc080sn", pc080sn_device, yscroll_word_w)
AM_RANGE(0xd40000, 0xd40003) AM_DEVWRITE("pc080sn", pc080sn_device, xscroll_word_w)
AM_RANGE(0xd50000, 0xd50003) AM_DEVWRITE("pc080sn", pc080sn_device, ctrl_word_w)
- AM_RANGE(0xd80000, 0xd80fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")/* palette */
+ AM_RANGE(0xd80000, 0xd80fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* palette */
AM_RANGE(0xe00100, 0xe00fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe01000, 0xe02fff) AM_RAM AM_SHARE("share2")
AM_RANGE(0xe08000, 0xe0ffff) AM_RAM_WRITE(darius_fg_layer_w) AM_SHARE("fg_ram")
@@ -254,7 +254,7 @@ static ADDRESS_MAP_START( darius_cpub_map, AS_PROGRAM, 16, darius_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x04ffff) AM_RAM /* local RAM */
AM_RANGE(0xc00000, 0xc0007f) AM_WRITE(darius_ioc_w) /* only writes $c00050 (?) */
- AM_RANGE(0xd80000, 0xd80fff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w)
+ AM_RANGE(0xd80000, 0xd80fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xe00100, 0xe00fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe01000, 0xe02fff) AM_RAM AM_SHARE("share2")
AM_RANGE(0xe08000, 0xe0ffff) AM_RAM_WRITE(darius_fg_layer_w) AM_SHARE("fg_ram")
@@ -874,7 +874,8 @@ static MACHINE_CONFIG_START( darius, darius_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", darius)
- MCFG_PALETTE_LENGTH(4096*2)
+ MCFG_PALETTE_ADD("palette", 4096*2)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEFAULT_LAYOUT(layout_darius)
MCFG_SCREEN_ADD("lscreen", RASTER)
@@ -901,6 +902,7 @@ static MACHINE_CONFIG_START( darius, darius_state )
MCFG_PC080SN_ADD("pc080sn", darius_pc080sn_intf)
MCFG_PC080SN_GFXDECODE("gfxdecode")
+ MCFG_PC080SN_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/darkmist.c b/src/mame/drivers/darkmist.c
index 06704f29e87..3776bdff2ea 100644
--- a/src/mame/drivers/darkmist.c
+++ b/src/mame/drivers/darkmist.c
@@ -243,7 +243,8 @@ static MACHINE_CONFIG_START( darkmist, darkmist_state )
MCFG_SCREEN_UPDATE_DRIVER(darkmist_state, screen_update_darkmist)
MCFG_GFXDECODE_ADD("gfxdecode", darkmist)
- MCFG_PALETTE_LENGTH(0x100*4)
+ MCFG_PALETTE_ADD("palette", 0x100*4)
+ MCFG_PALETTE_INIT_OWNER(darkmist_state, darkmist)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/darkseal.c b/src/mame/drivers/darkseal.c
index ce0c7753d6b..861cb7866a9 100644
--- a/src/mame/drivers/darkseal.c
+++ b/src/mame/drivers/darkseal.c
@@ -263,19 +263,22 @@ static MACHINE_CONFIG_START( darkseal, darkseal_state )
MCFG_SCREEN_UPDATE_DRIVER(darkseal_state, screen_update_darkseal)
MCFG_GFXDECODE_ADD("gfxdecode", darkseal)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_DECO16IC_ADD("tilegen1", darkseal_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", darkseal_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 4);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
diff --git a/src/mame/drivers/dassault.c b/src/mame/drivers/dassault.c
index 40bee4df1fa..188da91ff27 100644
--- a/src/mame/drivers/dassault.c
+++ b/src/mame/drivers/dassault.c
@@ -505,7 +505,7 @@ static MACHINE_CONFIG_START( dassault, dassault_state )
MCFG_GFXDECODE_ADD("gfxdecode", dassault)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2")
@@ -514,17 +514,21 @@ static MACHINE_CONFIG_START( dassault, dassault_state )
MCFG_DECO16IC_ADD("tilegen1", dassault_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", dassault_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 4);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
/* sound hardware */
diff --git a/src/mame/drivers/dblcrown.c b/src/mame/drivers/dblcrown.c
index fe0a428f028..b653fb9c3ba 100644
--- a/src/mame/drivers/dblcrown.c
+++ b/src/mame/drivers/dblcrown.c
@@ -90,14 +90,13 @@ public:
DECLARE_WRITE8_MEMBER(lamps_w);
TIMER_DEVICE_CALLBACK_MEMBER(dblcrown_irq_scanline);
-
+ DECLARE_PALETTE_INIT(dblcrown);
protected:
// driver_device overrides
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
};
void dblcrown_state::video_start()
@@ -124,7 +123,7 @@ UINT32 dblcrown_state::screen_update( screen_device &screen, bitmap_ind16 &bitma
UINT16 tile = ((m_vram[count])|(m_vram[count+1]<<8)) & 0xfff;
UINT8 col = (m_vram[count+1] >> 4);
- gfx_2->opaque(bitmap,cliprect,tile,col,0,0,x*16,y*16);
+ gfx_2->opaque(m_palette,bitmap,cliprect,tile,col,0,0,x*16,y*16);
count+=2;
}
@@ -139,7 +138,7 @@ UINT32 dblcrown_state::screen_update( screen_device &screen, bitmap_ind16 &bitma
UINT16 tile = ((m_vram[count])|(m_vram[count+1]<<8)) & 0xfff;
UINT8 col = (m_vram[count+1] >> 4); // ok?
- gfx->transpen(bitmap,cliprect,tile,col,0,0,x*8,y*8,0);
+ gfx->transpen(m_palette,bitmap,cliprect,tile,col,0,0,x*8,y*8,0);
count+=2;
}
@@ -194,7 +193,7 @@ WRITE8_MEMBER( dblcrown_state::palette_w)
b = ((datax)&0x0f00)>>8;
/* TODO: remaining bits */
- palette_set_color_rgb(machine(), offset, pal4bit(r), pal4bit(g), pal4bit(b));
+ m_palette->set_pen_color(offset, pal4bit(r), pal4bit(g), pal4bit(b));
}
@@ -510,7 +509,7 @@ void dblcrown_state::machine_reset()
}
-void dblcrown_state::palette_init()
+PALETTE_INIT_MEMBER(dblcrown_state, dblcrown)
{
}
@@ -575,7 +574,8 @@ static MACHINE_CONFIG_START( dblcrown, dblcrown_state )
MCFG_GFXDECODE_ADD("gfxdecode", dblcrown)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(dblcrown_state, dblcrown)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/dblewing.c b/src/mame/drivers/dblewing.c
index 2ad71bca17d..47961e8dbf8 100644
--- a/src/mame/drivers/dblewing.c
+++ b/src/mame/drivers/dblewing.c
@@ -177,7 +177,7 @@ static ADDRESS_MAP_START( dblewing_map, AS_PROGRAM, 16, dblewing_state )
AM_RANGE(0x288000, 0x288001) AM_RAM
AM_RANGE(0x28c000, 0x28c00f) AM_RAM_DEVWRITE("tilegen1", deco16ic_device, pf_control_w)
AM_RANGE(0x300000, 0x3007ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x320000, 0x3207ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x320000, 0x3207ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xff0000, 0xff3fff) AM_MIRROR(0xc000) AM_RAM
ADDRESS_MAP_END
@@ -386,16 +386,19 @@ static MACHINE_CONFIG_START( dblewing, dblewing_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(dblewing_state, screen_update_dblewing)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", dblewing)
MCFG_DECO16IC_ADD("tilegen1", dblewing_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 2);
decospr_device::set_pri_callback(*device, dblwings_pri_callback);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO104_ADD("ioprot104")
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE
diff --git a/src/mame/drivers/dbz.c b/src/mame/drivers/dbz.c
index 4074b3cac92..96650cf5219 100644
--- a/src/mame/drivers/dbz.c
+++ b/src/mame/drivers/dbz.c
@@ -110,7 +110,7 @@ static ADDRESS_MAP_START( dbz_map, AS_PROGRAM, 16, dbz_state )
AM_RANGE(0x498000, 0x49ffff) AM_DEVREAD("k056832", k056832_device, rom_word_8000_r) // code near a60 in dbz2, subroutine at 730 in dbz
AM_RANGE(0x4a0000, 0x4a0fff) AM_DEVREADWRITE("k053246", k053247_device, k053247_word_r, k053247_word_w)
AM_RANGE(0x4a1000, 0x4a3fff) AM_RAM
- AM_RANGE(0x4a8000, 0x4abfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // palette
+ AM_RANGE(0x4a8000, 0x4abfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette
AM_RANGE(0x4c0000, 0x4c0001) AM_DEVREAD("k053246", k053247_device, k053246_word_r)
AM_RANGE(0x4c0000, 0x4c0007) AM_DEVWRITE("k053246", k053247_device, k053246_word_w)
AM_RANGE(0x4c4000, 0x4c4007) AM_DEVWRITE("k053246", k053247_device, k053246_word_w)
@@ -363,8 +363,6 @@ static MACHINE_CONFIG_START( dbz, dbz_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(55)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -374,12 +372,16 @@ static MACHINE_CONFIG_START( dbz, dbz_state )
MCFG_GFXDECODE_ADD("gfxdecode", dbz)
- MCFG_PALETTE_LENGTH(0x4000/2)
+ MCFG_PALETTE_ADD("palette", 0x4000/2)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_K056832_ADD("k056832", dbz_k056832_intf)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K053246_ADD("k053246", dbz_k053246_intf)
MCFG_K053246_GFXDECODE("gfxdecode")
+ MCFG_K053246_PALETTE("palette")
MCFG_K053251_ADD("k053251")
MCFG_K053936_ADD("k053936_1", dbz_k053936_intf)
MCFG_K053936_ADD("k053936_2", dbz_k053936_intf)
diff --git a/src/mame/drivers/dcheese.c b/src/mame/drivers/dcheese.c
index 7e5c6f6d7b7..64a61c56779 100644
--- a/src/mame/drivers/dcheese.c
+++ b/src/mame/drivers/dcheese.c
@@ -417,8 +417,8 @@ static MACHINE_CONFIG_START( dcheese, dcheese_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(dcheese_state, screen_update_dcheese)
- MCFG_PALETTE_LENGTH(65534)
-
+ MCFG_PALETTE_ADD("palette", 65534)
+ MCFG_PALETTE_INIT_OWNER(dcheese_state, dcheese)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/dcon.c b/src/mame/drivers/dcon.c
index f3911fa5a19..e0399f9f80c 100644
--- a/src/mame/drivers/dcon.c
+++ b/src/mame/drivers/dcon.c
@@ -30,7 +30,7 @@ static ADDRESS_MAP_START( dcon_map, AS_PROGRAM, 16, dcon_state )
AM_RANGE(0x8c800, 0x8cfff) AM_RAM_WRITE(dcon_foreground_w) AM_SHARE("fore_data")
AM_RANGE(0x8d000, 0x8d7ff) AM_RAM_WRITE(dcon_midground_w) AM_SHARE("mid_data")
AM_RANGE(0x8d800, 0x8e7ff) AM_RAM_WRITE(dcon_text_w) AM_SHARE("textram")
- AM_RANGE(0x8e800, 0x8f7ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x8e800, 0x8f7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x8f800, 0x8ffff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x9d000, 0x9d7ff) AM_WRITE(dcon_gfxbank_w)
@@ -284,7 +284,8 @@ static MACHINE_CONFIG_START( dcon, dcon_state )
MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0)
MCFG_GFXDECODE_ADD("gfxdecode", dcon)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(4000000,1320000)
@@ -310,7 +311,8 @@ static MACHINE_CONFIG_START( sdgndmps, dcon_state )
MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0)
MCFG_GFXDECODE_ADD("gfxdecode", dcon)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* 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 c3c743dc86a..2ee0717cc74 100644
--- a/src/mame/drivers/dday.c
+++ b/src/mame/drivers/dday.c
@@ -268,9 +268,9 @@ static MACHINE_CONFIG_START( dday, dday_state )
MCFG_SCREEN_UPDATE_DRIVER(dday_state, screen_update_dday)
MCFG_GFXDECODE_ADD("gfxdecode", dday)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_INIT_OWNER(dday_state, dday)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ddayjlc.c b/src/mame/drivers/ddayjlc.c
index bc812dbfc8f..d3bfa2d2f3b 100644
--- a/src/mame/drivers/ddayjlc.c
+++ b/src/mame/drivers/ddayjlc.c
@@ -107,7 +107,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(ddayjlc);
UINT32 screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(ddayjlc_interrupt);
INTERRUPT_GEN_MEMBER(ddayjlc_snd_interrupt);
@@ -408,7 +408,7 @@ UINT32 ddayjlc_state::screen_update_ddayjlc(screen_device &screen, bitmap_ind16
code = (code & 0x7f) | ((flags & 0x30) << 3);
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, code, color, xflip, yflip, x, y, 0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, code, color, xflip, yflip, x, y, 0);
}
{
@@ -419,9 +419,9 @@ UINT32 ddayjlc_state::screen_update_ddayjlc(screen_device &screen, bitmap_ind16
{
c = m_videoram[y * 32 + x];
if (x > 1 && x < 30)
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8, 0);
else
- m_gfxdecode->gfx(1)->opaque(bitmap,cliprect, c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8);
+ m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect, c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8);
}
}
return 0;
@@ -483,7 +483,7 @@ void ddayjlc_state::machine_reset()
}
}
-void ddayjlc_state::palette_init()
+PALETTE_INIT_MEMBER(ddayjlc_state, ddayjlc)
{
const UINT8 *color_prom = memregion("proms")->base();
int i,r,g,b,val;
@@ -506,7 +506,7 @@ void ddayjlc_state::palette_init()
bit2 = (val >> 2) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -533,8 +533,8 @@ static MACHINE_CONFIG_START( ddayjlc, ddayjlc_state )
MCFG_SCREEN_UPDATE_DRIVER(ddayjlc_state, screen_update_ddayjlc)
MCFG_GFXDECODE_ADD("gfxdecode", ddayjlc)
- MCFG_PALETTE_LENGTH(0x200)
-
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_INIT_OWNER(ddayjlc_state, ddayjlc)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ddealer.c b/src/mame/drivers/ddealer.c
index cfd0f9689d5..942724077a2 100644
--- a/src/mame/drivers/ddealer.c
+++ b/src/mame/drivers/ddealer.c
@@ -224,7 +224,7 @@ void ddealer_state::ddealer_draw_video_layer( UINT16* vreg_base, UINT16* top, UI
UINT16 tile = (src[count] & 0x0fff);
UINT16 colr = (src[count] & 0xf000) >> 12;
count++;
- gfx->transpen(bitmap,cliprect, tile, colr, 0, flipy, (x * 16) - sx, (y * 16) - sy, 15);
+ gfx->transpen(m_palette,bitmap,cliprect, tile, colr, 0, flipy, (x * 16) - sx, (y * 16) - sy, 15);
}
}
count = 0;
@@ -237,7 +237,7 @@ void ddealer_state::ddealer_draw_video_layer( UINT16* vreg_base, UINT16* top, UI
UINT16 tile = (src[count] & 0x0fff);
UINT16 colr = (src[count] & 0xf000) >> 12;
count++;
- gfx->transpen(bitmap,cliprect, tile, colr, 0, flipy, (x * 16) - sx, (y * 16) - sy, 15);
+ gfx->transpen(m_palette,bitmap,cliprect, tile, colr, 0, flipy, (x * 16) - sx, (y * 16) - sy, 15);
}
}
}
@@ -256,7 +256,7 @@ void ddealer_state::ddealer_draw_video_layer( UINT16* vreg_base, UINT16* top, UI
UINT16 tile = (src[count] & 0x0fff);
UINT16 colr = (src[count] & 0xf000) >> 12;
count++;
- gfx->transpen(bitmap,cliprect, tile, colr, flipy, flipy, (x * 16) + sx, (y * 16) + sy, 15);
+ gfx->transpen(m_palette,bitmap,cliprect, tile, colr, flipy, flipy, (x * 16) + sx, (y * 16) + sy, 15);
}
}
count = 0;
@@ -269,7 +269,7 @@ void ddealer_state::ddealer_draw_video_layer( UINT16* vreg_base, UINT16* top, UI
UINT16 tile = (src[count] & 0x0fff);
UINT16 colr = (src[count] & 0xf000) >> 12;
count++;
- gfx->transpen(bitmap,cliprect, tile, colr, flipy, flipy, (x * 16) + sx, (y * 16) + sy, 15);
+ gfx->transpen(m_palette,bitmap,cliprect, tile, colr, flipy, flipy, (x * 16) + sx, (y * 16) + sy, 15);
}
}
}
@@ -479,7 +479,7 @@ static ADDRESS_MAP_START( ddealer, AS_PROGRAM, 16, ddealer_state )
AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSW1")
AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("UNK")
AM_RANGE(0x084000, 0x084003) AM_DEVWRITE8("ymsnd", ym2203_device, write, 0x00ff) // ym ?
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") // palette ram
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette ram
AM_RANGE(0x08c000, 0x08cfff) AM_RAM_WRITE(ddealer_vregs_w) AM_SHARE("vregs") // palette ram
/* this might actually be 1 tilemap with some funky rowscroll / columnscroll enabled, I'm not sure */
@@ -638,8 +638,8 @@ static MACHINE_CONFIG_START( ddealer, ddealer_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(ddealer_state, screen_update_ddealer)
- MCFG_PALETTE_LENGTH(0x400)
-
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_TIMER_DRIVER_ADD_PERIODIC("coinsim", ddealer_state, ddealer_mcu_sim, attotime::from_hz(10000))
diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c
index 073454f2035..0843ed9c97a 100644
--- a/src/mame/drivers/ddenlovr.c
+++ b/src/mame/drivers/ddenlovr.c
@@ -1654,7 +1654,7 @@ WRITE8_MEMBER(ddenlovr_state::rongrong_palette_w)
/* what were they smoking??? */
b = ((d1 & 0xe0) >> 5) | (d2 & 0xc0) >> 3;
- palette_set_color_rgb(machine(), indx, pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color(indx, pal5bit(r), pal5bit(g), pal5bit(b));
}
WRITE16_MEMBER(ddenlovr_state::ddenlovr_palette_w)
@@ -2711,7 +2711,7 @@ WRITE8_MEMBER(ddenlovr_state::hanakanz_palette_w)
int g = m_ddenlovr_blit_latch & 0x1f;
int r = data & 0x1f;
int b = ((data & 0xe0) >> 5) | ((m_ddenlovr_blit_latch & 0x60) >> 2);
- palette_set_color_rgb(machine(), (m_palette_index++) & 0x1ff, pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color((m_palette_index++) & 0x1ff, pal5bit(r), pal5bit(g), pal5bit(b));
}
}
@@ -2919,7 +2919,7 @@ WRITE8_MEMBER(ddenlovr_state::mjchuuka_palette_w)
int r = (rgb >> 0) & 0x1f;
int g = (rgb >> 8) & 0x1f;
int b = ((rgb >> 5) & 0x07) | ((rgb & 0x6000) >> 10);
- palette_set_color_rgb(machine(), (m_palette_index++) & 0x1ff, pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color((m_palette_index++) & 0x1ff, pal5bit(r), pal5bit(g), pal5bit(b));
}
}
@@ -4226,7 +4226,7 @@ static MACHINE_CONFIG_START( htengoku, ddenlovr_state )
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+8, 256-1-8)
MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_htengoku)
- MCFG_PALETTE_LENGTH(16*256)
+ MCFG_PALETTE_ADD("palette", 16*256)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,htengoku)
@@ -9443,7 +9443,7 @@ static MACHINE_CONFIG_START( ddenlovr, ddenlovr_state )
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1)
MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,ddenlovr)
@@ -9574,7 +9574,7 @@ static MACHINE_CONFIG_START( quizchq, ddenlovr_state )
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1)
MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,ddenlovr)
@@ -9661,7 +9661,7 @@ static MACHINE_CONFIG_START( mmpanic, ddenlovr_state )
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1)
MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,mmpanic) // extra layers
@@ -9741,7 +9741,7 @@ static MACHINE_CONFIG_START( hanakanz, ddenlovr_state )
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1)
MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,hanakanz) // blitter commands in the roms are shuffled around
@@ -9785,7 +9785,7 @@ static MACHINE_CONFIG_START( kotbinyo, ddenlovr_state )
MCFG_SCREEN_VISIBLE_AREA(0, 336-1-1, 1+4, 256-15-1+4)
MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,hanakanz) // blitter commands in the roms are shuffled around
@@ -10186,7 +10186,7 @@ static MACHINE_CONFIG_START( jongtei, ddenlovr_state )
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1)
MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,hanakanz) // blitter commands in the roms are shuffled around
@@ -10227,7 +10227,7 @@ static MACHINE_CONFIG_START( sryudens, ddenlovr_state )
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1)
MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,mjflove) // blitter commands in the roms are shuffled around
@@ -10272,7 +10272,7 @@ static MACHINE_CONFIG_START( janshinp, ddenlovr_state )
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1)
MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,ddenlovr)
@@ -10346,7 +10346,7 @@ static MACHINE_CONFIG_START( seljan2, ddenlovr_state )
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1)
MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,mjflove) // blitter commands in the roms are shuffled around
@@ -10393,7 +10393,7 @@ static MACHINE_CONFIG_START( daimyojn, ddenlovr_state )
MCFG_SCREEN_VISIBLE_AREA(0, 336-1-1, 1, 256-15-1)
MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,hanakanz) // blitter commands in the roms are shuffled around
diff --git a/src/mame/drivers/ddragon.c b/src/mame/drivers/ddragon.c
index 58ffdb527f2..487e4d318a5 100644
--- a/src/mame/drivers/ddragon.c
+++ b/src/mame/drivers/ddragon.c
@@ -495,8 +495,8 @@ READ8_MEMBER(ddragon_state::dd_adpcm_status_r)
static ADDRESS_MAP_START( ddragon_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("rambase")
- AM_RANGE(0x1000, 0x11ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x1200, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x1000, 0x11ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x1200, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(ddragon_fgvideoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0x2000, 0x21ff) AM_READWRITE(ddragon_comram_r, ddragon_comram_w) AM_SHARE("comram") AM_MIRROR(0x0600)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram")
@@ -530,8 +530,8 @@ static ADDRESS_MAP_START( dd2_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x3809, 0x3809) AM_WRITEONLY AM_SHARE("scrollx_lo")
AM_RANGE(0x380a, 0x380a) AM_WRITEONLY AM_SHARE("scrolly_lo")
AM_RANGE(0x380b, 0x380f) AM_READWRITE(ddragon_interrupt_r, ddragon_interrupt_w)
- AM_RANGE(0x3c00, 0x3dff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x3e00, 0x3fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x3c00, 0x3dff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x3e00, 0x3fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -983,7 +983,8 @@ static MACHINE_CONFIG_START( ddragon, ddragon_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", ddragon)
- MCFG_PALETTE_LENGTH(384)
+ MCFG_PALETTE_ADD("palette", 384)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)
@@ -1046,7 +1047,8 @@ static MACHINE_CONFIG_START( ddragon6809, ddragon_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", ddragon)
- MCFG_PALETTE_LENGTH(384)
+ MCFG_PALETTE_ADD("palette", 384)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)
@@ -1092,7 +1094,8 @@ static MACHINE_CONFIG_START( ddragon2, ddragon_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", ddragon)
- MCFG_PALETTE_LENGTH(384)
+ MCFG_PALETTE_ADD("palette", 384)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)
diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c
index b4c75d7d2bf..ff586357dc1 100644
--- a/src/mame/drivers/ddragon3.c
+++ b/src/mame/drivers/ddragon3.c
@@ -271,7 +271,7 @@ READ16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r)
WRITE16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w)
{
offset = (offset & 0x000f) | (offset & 0x7fc0) >> 2;
- paletteram_xxxxBBBBGGGGRRRR_word_w (space, offset, data, mem_mask);
+ m_palette->write(space, offset, data, mem_mask);
}
/*- Priority Control -*/
@@ -316,7 +316,7 @@ static ADDRESS_MAP_START( ddragon3_map, AS_PROGRAM, 16, ddragon3_state )
AM_RANGE(0x100004, 0x100005) AM_READ_PORT("DSW")
AM_RANGE(0x100006, 0x100007) AM_READ_PORT("P3")
AM_RANGE(0x100000, 0x10000f) AM_WRITE(ddragon3_io_w)
- AM_RANGE(0x140000, 0x1405ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette RAM */
+ AM_RANGE(0x140000, 0x1405ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette RAM */
AM_RANGE(0x180000, 0x180fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* working RAM */
ADDRESS_MAP_END
@@ -327,7 +327,7 @@ static ADDRESS_MAP_START( dd3b_map, AS_PROGRAM, 16, ddragon3_state )
AM_RANGE(0x081000, 0x081fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x082000, 0x0827ff) AM_RAM_WRITE(ddragon3_bg_videoram_w) AM_SHARE("bg_videoram") /* Background (32x32 Tiles - 2 by per tile) */
AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE(ddragon3_scroll_w)
- AM_RANGE(0x100000, 0x1005ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette RAM */
+ AM_RANGE(0x100000, 0x1005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette RAM */
AM_RANGE(0x140000, 0x14000f) AM_WRITE(ddragon3_io_w)
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN0")
AM_RANGE(0x180002, 0x180003) AM_READ_PORT("IN1")
@@ -343,7 +343,7 @@ static ADDRESS_MAP_START( ctribe_map, AS_PROGRAM, 16, ddragon3_state )
AM_RANGE(0x082000, 0x0827ff) AM_RAM_WRITE(ddragon3_bg_videoram_w) AM_SHARE("bg_videoram") /* Background (32x32 Tiles - 2 by per tile) */
AM_RANGE(0x082800, 0x082fff) AM_RAM
AM_RANGE(0x0c0000, 0x0c000f) AM_READWRITE(ddragon3_scroll_r, ddragon3_scroll_w)
- AM_RANGE(0x100000, 0x1005ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") /* Palette RAM */
+ AM_RANGE(0x100000, 0x1005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette RAM */
AM_RANGE(0x140000, 0x14000f) AM_WRITE(ddragon3_io_w)
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN0")
AM_RANGE(0x180002, 0x180003) AM_READ_PORT("IN1")
@@ -841,7 +841,8 @@ static MACHINE_CONFIG_START( ddragon3, ddragon3_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", ddragon3)
- MCFG_PALETTE_LENGTH(768)
+ MCFG_PALETTE_ADD("palette", 768)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -872,6 +873,9 @@ static MACHINE_CONFIG_DERIVED( ctribe, ddragon3 )
MCFG_CPU_MODIFY("audiocpu")
MCFG_CPU_PROGRAM_MAP(ctribe_sound_map)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
+
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(ddragon3_state, screen_update_ctribe)
@@ -906,7 +910,8 @@ static MACHINE_CONFIG_START( wwfwfest, wwfwfest_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", wwfwfest)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ddribble.c b/src/mame/drivers/ddribble.c
index 1dfe29d47b6..28291ef7ef9 100644
--- a/src/mame/drivers/ddribble.c
+++ b/src/mame/drivers/ddribble.c
@@ -286,8 +286,8 @@ static MACHINE_CONFIG_START( ddribble, ddribble_state )
MCFG_SCREEN_UPDATE_DRIVER(ddribble_state, screen_update_ddribble)
MCFG_GFXDECODE_ADD("gfxdecode", ddribble)
- MCFG_PALETTE_LENGTH(64 + 256)
-
+ MCFG_PALETTE_ADD("palette", 64 + 256)
+ MCFG_PALETTE_INIT_OWNER(ddribble_state, ddribble)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ddz.c b/src/mame/drivers/ddz.c
index 173beb29bd9..cdce25f2427 100644
--- a/src/mame/drivers/ddz.c
+++ b/src/mame/drivers/ddz.c
@@ -82,7 +82,7 @@ static MACHINE_CONFIG_START( ddz, ddz_state )
MCFG_SCREEN_UPDATE_DRIVER(ddz_state, screen_update_ddz)
MCFG_SCREEN_VBLANK_DRIVER(ddz_state, screen_eof_ddz)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/deadang.c b/src/mame/drivers/deadang.c
index 9c69e7c40bc..8190f7e861a 100644
--- a/src/mame/drivers/deadang.c
+++ b/src/mame/drivers/deadang.c
@@ -67,7 +67,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, deadang_state )
AM_RANGE(0x08800, 0x0bfff) AM_WRITEONLY
AM_RANGE(0x0a000, 0x0a001) AM_READ_PORT("P1_P2")
AM_RANGE(0x0a002, 0x0a003) AM_READ_PORT("DSW")
- AM_RANGE(0x0c000, 0x0cfff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c000, 0x0cfff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0d000, 0x0dfff) AM_WRITEONLY
AM_RANGE(0x0e000, 0x0e0ff) AM_WRITEONLY AM_SHARE("scroll_ram")
AM_RANGE(0x0e100, 0x0ffff) AM_WRITEONLY
@@ -254,7 +254,8 @@ static MACHINE_CONFIG_START( deadang, deadang_state )
MCFG_SCREEN_UPDATE_DRIVER(deadang_state, screen_update_deadang)
MCFG_GFXDECODE_ADD("gfxdecode", deadang)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
diff --git a/src/mame/drivers/dec0.c b/src/mame/drivers/dec0.c
index 66525925def..f22e519b53a 100644
--- a/src/mame/drivers/dec0.c
+++ b/src/mame/drivers/dec0.c
@@ -500,7 +500,7 @@ static ADDRESS_MAP_START( slyspy_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0x304000, 0x307fff) AM_RAM AM_SHARE("ram") /* Sly spy main ram */
AM_RANGE(0x308000, 0x3087ff) AM_RAM AM_SHARE("spriteram") /* Sprites */
- AM_RANGE(0x310000, 0x3107ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x310000, 0x3107ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x314000, 0x314003) AM_WRITE(slyspy_control_w)
AM_RANGE(0x314008, 0x31400f) AM_READ(slyspy_controls_r)
AM_RANGE(0x31c000, 0x31c00f) AM_READ(slyspy_protection_r) AM_WRITENOP
@@ -511,7 +511,7 @@ static ADDRESS_MAP_START( midres_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("ram")
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x140000, 0x1407ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x1407ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x160000, 0x160001) AM_WRITE(dec0_priority_w)
AM_RANGE(0x180000, 0x18000f) AM_READ(midres_controls_r)
AM_RANGE(0x180008, 0x18000f) AM_WRITENOP /* ?? watchdog ?? */
@@ -587,7 +587,7 @@ READ16_MEMBER( dec0_automat_state::automat_palette_r )
WRITE16_MEMBER( dec0_automat_state::automat_palette_w )
{
offset ^=0xf;
- paletteram_xxxxBBBBGGGGRRRR_word_w(space, offset, data, mem_mask);
+ m_palette->write(space, offset, data, mem_mask);
}
@@ -1308,7 +1308,8 @@ WRITE_LINE_MEMBER(dec0_state::sound_irq2)
static MACHINE_CONFIG_START( dec0_base, dec0_state )
MCFG_GFXDECODE_ADD("gfxdecode", dec0)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
deco_bac06_device::set_gfx_region_wide(*device,0,0,0);
@@ -1323,6 +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_DECO_MXC06_GFXDECODE("gfxdecode")
+ MCFG_DECO_MXC06_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0)
MACHINE_CONFIG_END
@@ -1428,8 +1430,9 @@ static MACHINE_CONFIG_START( automat, dec0_automat_state )
MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
deco_mxc06_device::set_gfx_region(*device, 3);
MCFG_DECO_MXC06_GFXDECODE("gfxdecode")
+ MCFG_DECO_MXC06_PALETTE("palette")
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_GFXDECODE_ADD("gfxdecode", automat)
/* sound hardware */
@@ -1484,8 +1487,10 @@ static MACHINE_CONFIG_START( secretab, dec0_automat_state )
MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
deco_mxc06_device::set_gfx_region(*device, 3);
MCFG_DECO_MXC06_GFXDECODE("gfxdecode")
+ MCFG_DECO_MXC06_PALETTE("palette")
+
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_GFXDECODE_ADD("gfxdecode", secretab)
/* sound hardware */
diff --git a/src/mame/drivers/dec8.c b/src/mame/drivers/dec8.c
index 0ffa85a3f82..5a80f04af14 100644
--- a/src/mame/drivers/dec8.c
+++ b/src/mame/drivers/dec8.c
@@ -561,8 +561,8 @@ WRITE8_MEMBER(dec8_state::flip_screen_w){ flip_screen_set(data); }
static ADDRESS_MAP_START( lastmisn_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x1000, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x1400, 0x17ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x1800, 0x1800) AM_READ_PORT("IN0")
AM_RANGE(0x1801, 0x1801) AM_READ_PORT("IN1")
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN2")
@@ -587,8 +587,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( lastmisn_sub_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x1000, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x1400, 0x17ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x1800, 0x1800) AM_READ_PORT("IN0")
AM_RANGE(0x1801, 0x1801) AM_READ_PORT("IN1")
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN2")
@@ -607,8 +607,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( shackled_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x1000, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x1400, 0x17ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x1800, 0x1800) AM_READ_PORT("IN0")
AM_RANGE(0x1801, 0x1801) AM_READ_PORT("IN1")
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN2")
@@ -631,8 +631,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( shackled_sub_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x1000, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x1400, 0x17ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x1800, 0x1800) AM_READ_PORT("IN0")
AM_RANGE(0x1801, 0x1801) AM_READ_PORT("IN1")
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN2")
@@ -658,8 +658,8 @@ static ADDRESS_MAP_START( gondo_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(dec8_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x2000, 0x27ff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_SHARE("bg_data")
- AM_RANGE(0x2800, 0x2bff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x2c00, 0x2fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x2800, 0x2bff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x2c00, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("spriteram") /* Sprites */
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("DSW0") /* Dip 1 */
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("DSW1") /* Dip 2 */
@@ -681,8 +681,8 @@ static ADDRESS_MAP_START( garyoret_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(dec8_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x2000, 0x27ff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_SHARE("bg_data")
- AM_RANGE(0x2800, 0x2bff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x2c00, 0x2fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x2800, 0x2bff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x2c00, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("spriteram") /* Sprites */
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("DSW0") /* Dip 1 */
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("DSW1") /* Dip 2 */
@@ -725,8 +725,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( csilver_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x1000, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x1400, 0x17ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x1800, 0x1800) AM_READ_PORT("IN1")
AM_RANGE(0x1801, 0x1801) AM_READ_PORT("IN0")
AM_RANGE(0x1803, 0x1803) AM_READ_PORT("IN2")
@@ -750,8 +750,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( csilver_sub_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x1000, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x1400, 0x17ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x1803, 0x1803) AM_READ_PORT("IN2")
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("DSW1")
AM_RANGE(0x1800, 0x1804) AM_WRITE(shackled_int_w)
@@ -771,7 +771,7 @@ static ADDRESS_MAP_START( oscar_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(dec8_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x2800, 0x2fff) AM_DEVREADWRITE("tilegen1", deco_bac06_device, pf_data_8bit_r, pf_data_8bit_w)
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("spriteram") /* Sprites */
- AM_RANGE(0x3800, 0x3bff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x3800, 0x3bff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x3c00, 0x3c00) AM_READ_PORT("IN0")
AM_RANGE(0x3c01, 0x3c01) AM_READ_PORT("IN1")
AM_RANGE(0x3c02, 0x3c02) AM_READ_PORT("IN2") /* VBL & coins */
@@ -809,8 +809,8 @@ static ADDRESS_MAP_START( srdarwin_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x1805, 0x1806) AM_WRITE(srdarwin_control_w) /* Scroll & Bank */
AM_RANGE(0x2000, 0x2000) AM_READWRITE(i8751_h_r, dec8_sound_w) /* Sound */
AM_RANGE(0x2001, 0x2001) AM_READWRITE(i8751_l_r, flip_screen_w) /* Flipscreen */
- AM_RANGE(0x2800, 0x288f) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x3000, 0x308f) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x2800, 0x288f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x3000, 0x308f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette_ext")
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("DSW0") /* Dip 1 */
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("IN0") /* Player 1 */
AM_RANGE(0x3802, 0x3802) AM_READ_PORT("IN1") /* Player 2 (cocktail) + VBL */
@@ -826,7 +826,7 @@ static ADDRESS_MAP_START( cobra_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x1800, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(dec8_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x3000, 0x31ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x3000, 0x31ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x3200, 0x37ff) AM_WRITEONLY /* Unused */
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("IN0") /* Player 1 */
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("IN1") /* Player 2 */
@@ -2016,6 +2016,7 @@ static MACHINE_CONFIG_START( lastmisn, dec8_state )
MCFG_DEVICE_ADD("spritegen_krn", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 1);
MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode")
+ MCFG_DECO_KARNOVSPRITES_PALETTE("palette")
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(58)
@@ -2026,7 +2027,8 @@ static MACHINE_CONFIG_START( lastmisn, dec8_state )
MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_lastmisn)
MCFG_GFXDECODE_ADD("gfxdecode", shackled)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(dec8_state,lastmisn)
@@ -2066,6 +2068,7 @@ static MACHINE_CONFIG_START( shackled, dec8_state )
MCFG_DEVICE_ADD("spritegen_krn", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 1);
MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode")
+ MCFG_DECO_KARNOVSPRITES_PALETTE("palette")
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(58)
@@ -2076,7 +2079,8 @@ static MACHINE_CONFIG_START( shackled, dec8_state )
MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_shackled)
MCFG_GFXDECODE_ADD("gfxdecode", shackled)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(dec8_state,shackled)
@@ -2115,6 +2119,7 @@ static MACHINE_CONFIG_START( gondo, dec8_state )
MCFG_DEVICE_ADD("spritegen_krn", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 1);
MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode")
+ MCFG_DECO_KARNOVSPRITES_PALETTE("palette")
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(58)
@@ -2126,7 +2131,8 @@ static MACHINE_CONFIG_START( gondo, dec8_state )
MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8)
MCFG_GFXDECODE_ADD("gfxdecode", gondo)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(dec8_state,gondo)
@@ -2165,6 +2171,7 @@ static MACHINE_CONFIG_START( garyoret, dec8_state )
MCFG_DEVICE_ADD("spritegen_krn", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 1);
MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode")
+ MCFG_DECO_KARNOVSPRITES_PALETTE("palette")
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(58)
@@ -2176,7 +2183,8 @@ static MACHINE_CONFIG_START( garyoret, dec8_state )
MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8)
MCFG_GFXDECODE_ADD("gfxdecode", gondo)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(dec8_state,garyoret)
@@ -2219,6 +2227,7 @@ static MACHINE_CONFIG_START( ghostb, dec8_state )
MCFG_DEVICE_ADD("spritegen_krn", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 1);
MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode")
+ MCFG_DECO_KARNOVSPRITES_PALETTE("palette")
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(58)
@@ -2230,9 +2239,10 @@ static MACHINE_CONFIG_START( ghostb, dec8_state )
MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8)
MCFG_GFXDECODE_ADD("gfxdecode", ghostb)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
- MCFG_PALETTE_INIT_OVERRIDE(dec8_state,ghostb)
+ MCFG_PALETTE_INIT_OWNER(dec8_state,ghostb)
MCFG_VIDEO_START_OVERRIDE(dec8_state,ghostb)
/* sound hardware */
@@ -2276,6 +2286,7 @@ static MACHINE_CONFIG_START( csilver, dec8_state )
MCFG_DEVICE_ADD("spritegen_krn", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 1);
MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode")
+ MCFG_DECO_KARNOVSPRITES_PALETTE("palette")
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(58)
@@ -2286,7 +2297,8 @@ static MACHINE_CONFIG_START( csilver, dec8_state )
MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_lastmisn)
MCFG_GFXDECODE_ADD("gfxdecode", shackled)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(dec8_state,lastmisn)
@@ -2334,6 +2346,7 @@ static MACHINE_CONFIG_START( oscar, dec8_state )
MCFG_DEVICE_ADD("spritegen_mxc", DECO_MXC06, 0)
deco_mxc06_device::set_gfx_region(*device, 1);
MCFG_DECO_MXC06_GFXDECODE("gfxdecode")
+ MCFG_DECO_MXC06_PALETTE("palette")
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(58)
@@ -2344,7 +2357,8 @@ static MACHINE_CONFIG_START( oscar, dec8_state )
MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_oscar)
MCFG_GFXDECODE_ADD("gfxdecode", oscar)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(dec8_state,oscar)
@@ -2386,7 +2400,8 @@ static MACHINE_CONFIG_START( srdarwin, dec8_state )
MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_srdarwin)
MCFG_GFXDECODE_ADD("gfxdecode", srdarwin)
- MCFG_PALETTE_LENGTH(144)
+ MCFG_PALETTE_ADD("palette", 144)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(dec8_state,srdarwin)
@@ -2429,6 +2444,7 @@ static MACHINE_CONFIG_START( cobracom, dec8_state )
MCFG_DEVICE_ADD("spritegen_mxc", DECO_MXC06, 0)
deco_mxc06_device::set_gfx_region(*device, 1);
MCFG_DECO_MXC06_GFXDECODE("gfxdecode")
+ MCFG_DECO_MXC06_PALETTE("palette")
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2440,7 +2456,8 @@ static MACHINE_CONFIG_START( cobracom, dec8_state )
MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_cobracom)
MCFG_GFXDECODE_ADD("gfxdecode", cobracom)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(dec8_state,cobracom)
diff --git a/src/mame/drivers/deco156.c b/src/mame/drivers/deco156.c
index 6bdd2208f92..4bf6936c462 100644
--- a/src/mame/drivers/deco156.c
+++ b/src/mame/drivers/deco156.c
@@ -112,7 +112,7 @@ WRITE32_MEMBER(deco156_state::hvysmsh_oki_0_bank_w)
WRITE32_MEMBER(deco156_state::wcvol95_nonbuffered_palette_w)
{
COMBINE_DATA(&m_generic_paletteram_32[offset]);
- palette_set_color_rgb(machine(),offset,pal5bit(m_generic_paletteram_32[offset] >> 0),pal5bit(m_generic_paletteram_32[offset] >> 5),pal5bit(m_generic_paletteram_32[offset] >> 10));
+ m_palette->set_pen_color(offset,pal5bit(m_generic_paletteram_32[offset] >> 0),pal5bit(m_generic_paletteram_32[offset] >> 5),pal5bit(m_generic_paletteram_32[offset] >> 10));
}
/* This is the same as deco32_nonbuffered_palette_w in video/deco32.c */
@@ -126,7 +126,7 @@ WRITE32_MEMBER(deco156_state::deco156_nonbuffered_palette_w)
g = (m_generic_paletteram_32[offset] >> 8) & 0xff;
r = (m_generic_paletteram_32[offset] >> 0) & 0xff;
- palette_set_color(machine(),offset,rgb_t(r,g,b));
+ m_palette->set_pen_color(offset,rgb_t(r,g,b));
}
READ32_MEMBER(deco156_state::wcvol95_pf1_rowscroll_r){ return m_pf1_rowscroll[offset] ^ 0xffff0000; }
@@ -366,16 +366,18 @@ static MACHINE_CONFIG_START( hvysmsh, deco156_state )
MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update_wcvol95)
MCFG_GFXDECODE_ADD("gfxdecode", hvysmsh)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_DECO16IC_ADD("tilegen1", deco156_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 2);
decospr_device::set_pri_callback(*device, deco156_pri_callback);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -406,16 +408,18 @@ static MACHINE_CONFIG_START( wcvol95, deco156_state )
MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update_wcvol95)
MCFG_GFXDECODE_ADD("gfxdecode", hvysmsh)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_DECO16IC_ADD("tilegen1", deco156_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 2);
decospr_device::set_pri_callback(*device, deco156_pri_callback);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c
index 724fb58effb..9c52c4c3af1 100644
--- a/src/mame/drivers/deco32.c
+++ b/src/mame/drivers/deco32.c
@@ -1753,18 +1753,21 @@ static MACHINE_CONFIG_START( captaven, deco32_state )
MCFG_SCREEN_VBLANK_DRIVER(deco32_state, screen_eof_captaven)
MCFG_GFXDECODE_ADD("gfxdecode", captaven)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_DECO16IC_ADD("tilegen1", captaven_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", captaven_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
decospr_device::set_pri_callback(*device, captaven_pri_callback);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO146_ADD("ioprot")
MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, deco32_sound_cb)
@@ -1825,17 +1828,20 @@ static MACHINE_CONFIG_START( fghthist, deco32_state ) /* DE-0380-2 PCB */
MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_fghthist)
MCFG_GFXDECODE_ADD("gfxdecode", fghthist)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_DECO16IC_ADD("tilegen1", fghthist_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", fghthist_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO146_ADD("ioprot")
MCFG_DECO146_SET_PORTA_CALLBACK( deco32_state, port_a_fghthist )
@@ -1884,17 +1890,20 @@ static MACHINE_CONFIG_START( fghthsta, deco32_state ) /* DE-0395-1 PCB */
MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_fghthist)
MCFG_GFXDECODE_ADD("gfxdecode", fghthist)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_DECO16IC_ADD("tilegen1", fghthist_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", fghthist_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO146_ADD("ioprot")
MCFG_DECO146_SET_PORTA_CALLBACK( deco32_state, port_a_fghthist )
@@ -2009,12 +2018,14 @@ static MACHINE_CONFIG_START( dragngun, dragngun_state )
MCFG_DECO16IC_ADD("tilegen1", dragngun_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", dragngun_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", dragngun)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_VIDEO_START_OVERRIDE(dragngun_state,dragngun)
@@ -2094,12 +2105,14 @@ static MACHINE_CONFIG_START( lockload, dragngun_state )
MCFG_DECO16IC_ADD("tilegen1", lockload_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", lockload_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", dragngun)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_VIDEO_START_OVERRIDE(dragngun_state,lockload)
@@ -2182,20 +2195,24 @@ static MACHINE_CONFIG_START( tattass, deco32_state )
MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 4);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", tattass)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_DECO104_ADD("ioprot104")
MCFG_DECO146_SET_PORTB_CALLBACK( deco32_state, port_b_tattass )
@@ -2231,20 +2248,24 @@ static MACHINE_CONFIG_START( nslasher, deco32_state )
MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 4);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", nslasher)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_VIDEO_START_OVERRIDE(deco32_state,nslasher)
diff --git a/src/mame/drivers/deco_ld.c b/src/mame/drivers/deco_ld.c
index afd01ba70c1..c4d032a93a8 100644
--- a/src/mame/drivers/deco_ld.c
+++ b/src/mame/drivers/deco_ld.c
@@ -181,7 +181,7 @@ void deco_ld_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect
fx = (spriteram[i+0] & 0x04) ? 1 : 0;
fy = (spriteram[i+0] & 0x02) ? 1 : 0;
- gfx->transpen(bitmap,cliprect,spr_offs,col,fx,fy,x,y,0);
+ gfx->transpen(m_palette,bitmap,cliprect,spr_offs,col,fx,fy,x,y,0);
}
for(i=0x3e0;i<0x400;i+=4)
@@ -196,7 +196,7 @@ void deco_ld_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect
fx = (spriteram[i+0] & 0x04) ? 1 : 0;
fy = (spriteram[i+0] & 0x02) ? 1 : 0;
- gfx->transpen(bitmap,cliprect,spr_offs,col,fx,fy,x,y,0);
+ gfx->transpen(m_palette,bitmap,cliprect,spr_offs,col,fx,fy,x,y,0);
}
}
@@ -218,7 +218,7 @@ UINT32 deco_ld_state::screen_update_rblaster(screen_device &screen, bitmap_rgb32
int tile = m_vram0[x+y*32] | ((attr & 3) << 8);
int colour = (6 & 0x7); /* TODO */
- gfx->transpen(bitmap,cliprect,tile|0x400,colour,0,0,x*8,y*8,0);
+ gfx->transpen(m_palette,bitmap,cliprect,tile|0x400,colour,0,0,x*8,y*8,0);
}
}
@@ -230,7 +230,7 @@ UINT32 deco_ld_state::screen_update_rblaster(screen_device &screen, bitmap_rgb32
int tile = m_vram1[x+y*32] | ((attr & 3) << 8);
int colour = (6 & 0x7); /* TODO */
- gfx->transpen(bitmap,cliprect,tile,colour,0,0,x*8,y*8,0);
+ gfx->transpen(m_palette,bitmap,cliprect,tile,colour,0,0,x*8,y*8,0);
}
}
@@ -262,7 +262,7 @@ WRITE8_MEMBER(deco_ld_state::decold_sound_cmd_w)
/* same as Burger Time HW */
WRITE8_MEMBER(deco_ld_state::decold_palette_w)
{
- paletteram_BBGGGRRR_byte_w(space, offset, ~data);
+ m_palette->write(space, offset, UINT8(~data));
}
/* unknown, but certainly related to audiocpu somehow */
@@ -479,7 +479,7 @@ static MACHINE_CONFIG_START( rblaster, deco_ld_state )
/* video hardware */
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
MCFG_GFXDECODE_ADD("gfxdecode", rblaster)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
/* sound hardware */
/* TODO: mixing */
diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c
index ab120062881..7ad7c6d232a 100644
--- a/src/mame/drivers/deco_mlc.c
+++ b/src/mame/drivers/deco_mlc.c
@@ -190,7 +190,7 @@ WRITE32_MEMBER(deco_mlc_state::avengrs_palette_w)
{
COMBINE_DATA(&m_generic_paletteram_32[offset]);
/* x bbbbb ggggg rrrrr */
- palette_set_color_rgb(machine(),offset,pal5bit(m_generic_paletteram_32[offset] >> 0),pal5bit(m_generic_paletteram_32[offset] >> 5),pal5bit(m_generic_paletteram_32[offset] >> 10));
+ m_palette->set_pen_color(offset,pal5bit(m_generic_paletteram_32[offset] >> 0),pal5bit(m_generic_paletteram_32[offset] >> 5),pal5bit(m_generic_paletteram_32[offset] >> 10));
}
@@ -496,7 +496,7 @@ static MACHINE_CONFIG_START( avengrgs, deco_mlc_state )
MCFG_SCREEN_VBLANK_DRIVER(deco_mlc_state, screen_eof_mlc)
MCFG_GFXDECODE_ADD("gfxdecode", deco_mlc)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
MCFG_VIDEO_START_OVERRIDE(deco_mlc_state,mlc)
@@ -529,7 +529,7 @@ static MACHINE_CONFIG_START( mlc, deco_mlc_state )
MCFG_SCREEN_VBLANK_DRIVER(deco_mlc_state, screen_eof_mlc)
MCFG_GFXDECODE_ADD("gfxdecode", deco_mlc)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
MCFG_VIDEO_START_OVERRIDE(deco_mlc_state,mlc)
diff --git a/src/mame/drivers/decocass.c b/src/mame/drivers/decocass.c
index 21735d1b2ef..19f5b85cd9f 100644
--- a/src/mame/drivers/decocass.c
+++ b/src/mame/drivers/decocass.c
@@ -684,32 +684,30 @@ static GFXDECODE_START( decocass )
GFXDECODE_ENTRY( NULL, 0xd800, objlayout, 48, 4 ) /* object */
GFXDECODE_END
-void decocass_state::palette_init()
+PALETTE_INIT_MEMBER(decocass_state, decocass)
{
int i;
- 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);
+ palette.set_pen_indirect(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));
+ palette.set_pen_indirect(32+i, 3*8+i);
+ palette.set_pen_indirect(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); /* ???? */
+ palette.set_pen_indirect(48+0*2+0, 0);
+ palette.set_pen_indirect(48+0*2+1, 25); /* testtape red from 4th palette section? */
+ palette.set_pen_indirect(48+1*2+0, 0);
+ palette.set_pen_indirect(48+1*2+1, 28); /* testtape blue from 4th palette section? */
+ palette.set_pen_indirect(48+2*2+0, 0);
+ palette.set_pen_indirect(48+2*2+1, 26); /* testtape green from 4th palette section? */
+ palette.set_pen_indirect(48+3*2+0, 0);
+ palette.set_pen_indirect(48+3*2+1, 23); /* ???? */
}
@@ -737,7 +735,8 @@ static MACHINE_CONFIG_START( decocass, decocass_state )
MCFG_SCREEN_UPDATE_DRIVER(decocass_state, screen_update_decocass)
MCFG_GFXDECODE_ADD("gfxdecode", decocass)
- MCFG_PALETTE_LENGTH(32+2*8+2*4)
+ MCFG_PALETTE_ADD("palette", 32+2*8+2*4)
+ MCFG_PALETTE_INIT_OWNER(decocass_state, decocass)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/deniam.c b/src/mame/drivers/deniam.c
index e37fd5aeabb..3908653366b 100644
--- a/src/mame/drivers/deniam.c
+++ b/src/mame/drivers/deniam.c
@@ -281,7 +281,7 @@ static MACHINE_CONFIG_START( deniam16b, deniam_state )
MCFG_SCREEN_UPDATE_DRIVER(deniam_state, screen_update_deniam)
MCFG_GFXDECODE_ADD("gfxdecode", deniam)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
@@ -313,7 +313,7 @@ static MACHINE_CONFIG_START( deniam16c, deniam_state )
MCFG_SCREEN_UPDATE_DRIVER(deniam_state, screen_update_deniam)
MCFG_GFXDECODE_ADD("gfxdecode", deniam)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
diff --git a/src/mame/drivers/deshoros.c b/src/mame/drivers/deshoros.c
index 6d91f3ddee5..58e59133ca8 100644
--- a/src/mame/drivers/deshoros.c
+++ b/src/mame/drivers/deshoros.c
@@ -274,7 +274,7 @@ static MACHINE_CONFIG_START( destiny, destiny_state )
MCFG_SCREEN_SIZE(48*8, 16*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 16*8-1)
MCFG_SCREEN_UPDATE_DRIVER(destiny_state, screen_update_destiny)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
/* sound hardware */
diff --git a/src/mame/drivers/destroyr.c b/src/mame/drivers/destroyr.c
index e4ecb5d18ae..7a82dafa039 100644
--- a/src/mame/drivers/destroyr.c
+++ b/src/mame/drivers/destroyr.c
@@ -61,7 +61,7 @@ public:
DECLARE_READ8_MEMBER(destroyr_scanline_r);
virtual void machine_start();
virtual void machine_reset();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(destroyr);
UINT32 screen_update_destroyr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(destroyr_dial_callback);
TIMER_CALLBACK_MEMBER(destroyr_frame_callback);
@@ -98,7 +98,7 @@ UINT32 destroyr_state::screen_update_destroyr(screen_device &screen, bitmap_ind1
continue;
}
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, num, 0, flipx, 0, horz, 16 * i, 0);
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, num, 0, flipx, 0, horz, 16 * i, 0);
}
/* draw alpha numerics */
@@ -108,7 +108,7 @@ UINT32 destroyr_state::screen_update_destroyr(screen_device &screen, bitmap_ind1
{
int num = m_alpha_num_ram[32 * i + j];
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, num, 0, 0, 0, 8 * j, 8 * i, 0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, num, 0, 0, 0, 8 * j, 8 * i, 0);
}
}
@@ -119,13 +119,13 @@ UINT32 destroyr_state::screen_update_destroyr(screen_device &screen, bitmap_ind1
int horz = 256 - m_minor_obj_ram[i + 2];
int vert = 256 - m_minor_obj_ram[i + 4];
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, num, 0, 0, 0, horz, vert, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, num, 0, 0, 0, horz, vert, 0);
}
/* draw waves */
for (i = 0; i < 4; i++)
{
- m_gfxdecode->gfx(3)->transpen(bitmap,cliprect, m_wavemod ? 1 : 0, 0, 0, 0, 64 * i, 0x4e, 0);
+ m_gfxdecode->gfx(3)->transpen(m_palette,bitmap,cliprect, m_wavemod ? 1 : 0, 0, 0, 0, 64 * i, 0x4e, 0);
}
/* draw cursor */
@@ -448,16 +448,16 @@ static GFXDECODE_START( destroyr )
GFXDECODE_END
-void destroyr_state::palette_init()
+PALETTE_INIT_MEMBER(destroyr_state, destroyr)
{
- palette_set_color(machine(), 0, rgb_t(0x00, 0x00, 0x00)); /* major objects */
- palette_set_color(machine(), 1, rgb_t(0x50, 0x50, 0x50));
- palette_set_color(machine(), 2, rgb_t(0xAF, 0xAF, 0xAF));
- palette_set_color(machine(), 3, rgb_t(0xFF ,0xFF, 0xFF));
- palette_set_color(machine(), 4, rgb_t(0x00, 0x00, 0x00)); /* alpha numerics, waves, minor objects */
- palette_set_color(machine(), 5, rgb_t(0xFF, 0xFF, 0xFF));
- palette_set_color(machine(), 6, rgb_t(0x00, 0x00, 0x00)); /* cursor */
- palette_set_color(machine(), 7, rgb_t(0x78, 0x78, 0x78));
+ palette.set_pen_color(0, rgb_t(0x00, 0x00, 0x00)); /* major objects */
+ palette.set_pen_color(1, rgb_t(0x50, 0x50, 0x50));
+ palette.set_pen_color(2, rgb_t(0xAF, 0xAF, 0xAF));
+ palette.set_pen_color(3, rgb_t(0xFF ,0xFF, 0xFF));
+ palette.set_pen_color(4, rgb_t(0x00, 0x00, 0x00)); /* alpha numerics, waves, minor objects */
+ palette.set_pen_color(5, rgb_t(0xFF, 0xFF, 0xFF));
+ palette.set_pen_color(6, rgb_t(0x00, 0x00, 0x00)); /* cursor */
+ palette.set_pen_color(7, rgb_t(0x78, 0x78, 0x78));
}
@@ -488,7 +488,8 @@ static MACHINE_CONFIG_START( destroyr, destroyr_state )
MCFG_SCREEN_UPDATE_DRIVER(destroyr_state, screen_update_destroyr)
MCFG_GFXDECODE_ADD("gfxdecode", destroyr)
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(destroyr_state, destroyr)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/dfruit.c b/src/mame/drivers/dfruit.c
index ca0a297d234..db12a6a2028 100644
--- a/src/mame/drivers/dfruit.c
+++ b/src/mame/drivers/dfruit.c
@@ -400,11 +400,12 @@ static MACHINE_CONFIG_START( dfruit, dfruit_state )
MCFG_SCREEN_UPDATE_DRIVER(dfruit_state, screen_update)
MCFG_SCREEN_VBLANK_DRIVER(dfruit_state, screen_eof)
- MCFG_GFXDECODE_ADD("gfxdecode", dfruit )
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_GFXDECODE_ADD("gfxdecode", dfruit )
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_DEVICE_ADD("tc0091lvc", TC0091LVC, 0)
MCFG_TC0091LVC_GFXDECODE("gfxdecode")
+ MCFG_TC0091LVC_PALETTE("palette")
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_intf )
diff --git a/src/mame/drivers/dgpix.c b/src/mame/drivers/dgpix.c
index 49da6494d58..d24994e6361 100644
--- a/src/mame/drivers/dgpix.c
+++ b/src/mame/drivers/dgpix.c
@@ -318,8 +318,7 @@ static MACHINE_CONFIG_START( dgpix, dgpix_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(dgpix_state, screen_update_dgpix)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, BBBBB_GGGGG_RRRRR)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD_BBBBBGGGGGRRRRR("palette")
/* sound hardware */
diff --git a/src/mame/drivers/dietgo.c b/src/mame/drivers/dietgo.c
index 630675845b3..da4cbb23e91 100644
--- a/src/mame/drivers/dietgo.c
+++ b/src/mame/drivers/dietgo.c
@@ -229,17 +229,19 @@ static MACHINE_CONFIG_START( dietgo, dietgo_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(dietgo_state, screen_update_dietgo)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_GFXDECODE_ADD("gfxdecode", dietgo)
MCFG_DECOCOMN_ADD("deco_common")
MCFG_DECO16IC_ADD("tilegen1", dietgo_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 2);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO104_ADD("ioprot104")
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE
diff --git a/src/mame/drivers/discoboy.c b/src/mame/drivers/discoboy.c
index e2befa673a7..7eb943f1528 100644
--- a/src/mame/drivers/discoboy.c
+++ b/src/mame/drivers/discoboy.c
@@ -143,7 +143,7 @@ void discoboy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
}
}
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
code,
color,
flipscreen,0,
@@ -168,7 +168,7 @@ UINT32 discoboy_state::screen_update_discoboy(screen_device &screen, bitmap_ind1
g = ((pal >> 4) & 0xf) << 4;
r = ((pal >> 8) & 0xf) << 4;
- palette_set_color(machine(), i / 2, rgb_t(r, g, b));
+ m_palette->set_pen_color(i / 2, rgb_t(r, g, b));
}
for (i = 0; i < 0x800; i += 2)
@@ -181,7 +181,7 @@ UINT32 discoboy_state::screen_update_discoboy(screen_device &screen, bitmap_ind1
g = ((pal >> 4) & 0xf) << 4;
r = ((pal >> 8) & 0xf) << 4;
- palette_set_color(machine(), (i / 2) + 0x400, rgb_t(r, g, b));
+ m_palette->set_pen_color((i / 2) + 0x400, rgb_t(r, g, b));
}
bitmap.fill(0x3ff, cliprect);
@@ -200,7 +200,7 @@ UINT32 discoboy_state::screen_update_discoboy(screen_device &screen, bitmap_ind1
tileno = 0x2000 + (tileno & 0x1fff) + 0x0000;
}
- m_gfxdecode->gfx(1)->opaque(bitmap,cliprect, tileno, m_ram_att[count / 2], 0, 0, x*8, y*8);
+ m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect, tileno, m_ram_att[count / 2], 0, 0, x*8, y*8);
count += 2;
}
}
@@ -510,7 +510,7 @@ static MACHINE_CONFIG_START( discoboy, discoboy_state )
MCFG_SCREEN_UPDATE_DRIVER(discoboy_state, screen_update_discoboy)
MCFG_GFXDECODE_ADD("gfxdecode", discoboy)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
/* sound hardware */
diff --git a/src/mame/drivers/diverboy.c b/src/mame/drivers/diverboy.c
index b51ee05ca1c..798b2adf499 100644
--- a/src/mame/drivers/diverboy.c
+++ b/src/mame/drivers/diverboy.c
@@ -109,7 +109,7 @@ void diverboy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipr
if (!flash || (m_screen->frame_number() & 1))
{
- m_gfxdecode->gfx(bank)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(bank)->transpen(m_palette,bitmap,cliprect,
number,
colr,
0,0,
@@ -123,7 +123,7 @@ void diverboy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipr
UINT32 diverboy_state::screen_update_diverboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
-// bitmap.fill(get_black_pen(machine()), cliprect);
+// bitmap.fill(m_palette->black_pen(), cliprect);
draw_sprites(bitmap, cliprect);
return 0;
}
@@ -152,7 +152,7 @@ static ADDRESS_MAP_START( diverboy_map, AS_PROGRAM, 16, diverboy_state )
AM_RANGE(0x040000, 0x04ffff) AM_RAM
AM_RANGE(0x080000, 0x083fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x100000, 0x100001) AM_WRITE(soundcmd_w)
- AM_RANGE(0x140000, 0x1407ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x1407ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("P1_P2")
AM_RANGE(0x180002, 0x180003) AM_READ_PORT("DSW")
AM_RANGE(0x180008, 0x180009) AM_READ_PORT("COINS")
@@ -273,7 +273,8 @@ static MACHINE_CONFIG_START( diverboy, diverboy_state )
MCFG_SCREEN_VISIBLE_AREA(0*8+4, 40*8+1, 2*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(diverboy_state, screen_update_diverboy)
- MCFG_PALETTE_LENGTH(0x400)
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/djboy.c b/src/mame/drivers/djboy.c
index 3f0d387646a..f81cada472d 100644
--- a/src/mame/drivers/djboy.c
+++ b/src/mame/drivers/djboy.c
@@ -581,10 +581,11 @@ static MACHINE_CONFIG_START( djboy, djboy_state )
MCFG_SCREEN_VBLANK_DRIVER(djboy_state, screen_eof_djboy)
MCFG_GFXDECODE_ADD("gfxdecode", djboy)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
MCFG_KANEKO_PANDORA_ADD("pandora", djboy_pandora_config)
MCFG_KANEKO_PANDORA_GFXDECODE("gfxdecode")
+ MCFG_KANEKO_PANDORA_PALETTE("palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c
index 21dee24f4d6..7b2f848d83b 100644
--- a/src/mame/drivers/djmain.c
+++ b/src/mame/drivers/djmain.c
@@ -95,7 +95,7 @@ WRITE32_MEMBER(djmain_state::paletteram32_w)
g = (data >> 8) & 0xff;
b = (data >> 16) & 0xff;
- palette_set_color(machine(), offset, rgb_t(r, g, b));
+ m_palette->set_pen_color(offset, rgb_t(r, g, b));
}
@@ -1420,11 +1420,12 @@ static MACHINE_CONFIG_START( djmain, djmain_state )
MCFG_SCREEN_VISIBLE_AREA(12, 512-12-1, 0, 384-1)
MCFG_SCREEN_UPDATE_DRIVER(djmain_state, screen_update_djmain)
- MCFG_PALETTE_LENGTH(0x4440/4)
+ MCFG_PALETTE_ADD("palette", 0x4440/4)
MCFG_GFXDECODE_ADD("gfxdecode", djmain)
MCFG_K056832_ADD("k056832", djmain_k056832_intf)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K055555_ADD("k055555")
/* sound hardware */
diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c
index 1c3fb777eb5..23cd715c7c5 100644
--- a/src/mame/drivers/dkong.c
+++ b/src/mame/drivers/dkong.c
@@ -1668,9 +1668,9 @@ static MACHINE_CONFIG_START( dkong_base, dkong_state )
MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_dkong)
MCFG_GFXDECODE_ADD("gfxdecode", dkong)
- MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", DK2B_PALETTE_LENGTH)
- MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong2b)
+ MCFG_PALETTE_INIT_OWNER(dkong_state,dkong2b)
MCFG_VIDEO_START_OVERRIDE(dkong_state,dkong)
MACHINE_CONFIG_END
@@ -1678,8 +1678,9 @@ static MACHINE_CONFIG_DERIVED( radarscp, dkong_base )
/* basic machine hardware */
MCFG_MACHINE_START_OVERRIDE(dkong_state,radarscp)
- MCFG_PALETTE_LENGTH(RS_PALETTE_LENGTH)
- MCFG_PALETTE_INIT_OVERRIDE(dkong_state,radarscp)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", RS_PALETTE_LENGTH)
+ MCFG_PALETTE_INIT_OWNER(dkong_state,radarscp)
/* sound hardware */
MCFG_FRAGMENT_ADD(radarscp_audio)
@@ -1689,8 +1690,9 @@ static MACHINE_CONFIG_DERIVED( radarscp1, dkong_base )
/* basic machine hardware */
MCFG_MACHINE_START_OVERRIDE(dkong_state,radarscp1)
- MCFG_PALETTE_LENGTH(RS_PALETTE_LENGTH)
- MCFG_PALETTE_INIT_OVERRIDE(dkong_state,radarscp1)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", RS_PALETTE_LENGTH)
+ MCFG_PALETTE_INIT_OWNER(dkong_state,radarscp1)
/* sound hardware */
MCFG_FRAGMENT_ADD(radarscp1_audio)
@@ -1701,7 +1703,8 @@ static MACHINE_CONFIG_DERIVED( dkong2b, dkong_base )
/* basic machine hardware */
MCFG_MACHINE_START_OVERRIDE(dkong_state,dkong2b)
- MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", DK2B_PALETTE_LENGTH)
/* sound hardware */
MCFG_FRAGMENT_ADD(dkong2b_audio)
@@ -1729,10 +1732,10 @@ static MACHINE_CONFIG_START( dkong3, dkong_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_dkong)
- MCFG_GFXDECODE_ADD("gfxdecode", dkong)
- MCFG_PALETTE_LENGTH(DK3_PALETTE_LENGTH)
+ MCFG_GFXDECODE_ADD("gfxdecode", dkong)
+ MCFG_PALETTE_ADD("palette", DK3_PALETTE_LENGTH)
- MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong3)
+ MCFG_PALETTE_INIT_OWNER(dkong_state,dkong3)
MCFG_VIDEO_START_OVERRIDE(dkong_state,dkong)
/* sound hardware */
@@ -1752,16 +1755,18 @@ static MACHINE_CONFIG_DERIVED( pestplce, dkongjr )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", pestplce)
- MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH)
- MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong2b) /* wrong! */
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", DK2B_PALETTE_LENGTH)
+ MCFG_PALETTE_INIT_OWNER(dkong_state,dkong2b) /* wrong! */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_pestplce)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( dkong3b, dkongjr )
- /* basic machine hardware */
- MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong3)
+ /* basic machine hardware */
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(dkong_state,dkong3)
MACHINE_CONFIG_END
/*************************************
diff --git a/src/mame/drivers/dlair.c b/src/mame/drivers/dlair.c
index 50b2876b06e..28c109d5845 100644
--- a/src/mame/drivers/dlair.c
+++ b/src/mame/drivers/dlair.c
@@ -233,8 +233,8 @@ PALETTE_INIT_MEMBER(dlair_state,dleuro)
for (i = 0; i < 8; i++)
{
- palette_set_color(machine(), 2 * i + 0, rgb_t(0, 0, 0));
- palette_set_color_rgb(machine(), 2 * i + 1, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
+ palette.set_pen_color(2 * i + 0, rgb_t(0, 0, 0));
+ palette.set_pen_color(2 * i + 1, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
}
}
@@ -256,7 +256,7 @@ UINT32 dlair_state::screen_update_dleuro(screen_device &screen, bitmap_ind16 &bi
for (x = 0; x < 32; x++)
{
UINT8 *base = &videoram[y * 64 + x * 2 + 1];
- m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, base[0], base[1], 0, 0, 10 * x, 16 * y);
+ m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, base[0], base[1], 0, 0, 10 * x, 16 * y);
}
return 0;
@@ -775,9 +775,9 @@ static MACHINE_CONFIG_START( dleuro, dlair_state )
MCFG_LASERDISC_SCREEN_ADD_PAL("screen", "ld_22vp932")
MCFG_GFXDECODE_ADD("gfxdecode", dlair)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
- MCFG_PALETTE_INIT_OVERRIDE(dlair_state,dleuro)
+ MCFG_PALETTE_INIT_OWNER(dlair_state,dleuro)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/dlair2.c b/src/mame/drivers/dlair2.c
index dfa9d5aee5f..e0d6ed00e67 100644
--- a/src/mame/drivers/dlair2.c
+++ b/src/mame/drivers/dlair2.c
@@ -45,13 +45,14 @@ public:
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(dlair2_timer_irq);
+ DECLARE_PALETTE_INIT(dlair2);
+
protected:
// driver_device overrides
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
};
void dlair2_state::video_start()
@@ -157,7 +158,7 @@ void dlair2_state::machine_reset()
{
}
-void dlair2_state::palette_init()
+PALETTE_INIT_MEMBER(dlair2_state, dlair2)
{
}
@@ -184,7 +185,8 @@ static MACHINE_CONFIG_START( dlair2, dlair2_state )
// MCFG_GFXDECODE_ADD("gfxdecode", dlair2)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(dlair2_state, dlair2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dmndrby.c b/src/mame/drivers/dmndrby.c
index 87b07fb225b..3cfb50d3f35 100644
--- a/src/mame/drivers/dmndrby.c
+++ b/src/mame/drivers/dmndrby.c
@@ -84,7 +84,7 @@ public:
DECLARE_WRITE8_MEMBER(output_w);
TILE_GET_INFO_MEMBER(get_dmndrby_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(dmndrby);
UINT32 screen_update_dderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(dderby_irq);
INTERRUPT_GEN_MEMBER(dderby_timer_irq);
@@ -364,7 +364,7 @@ UINT32 dmndrby_state::screen_update_dderby(screen_device &screen, bitmap_ind16 &
gfx_element *sprites = m_gfxdecode->gfx(1);
gfx_element *track = m_gfxdecode->gfx(2);
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
/* Draw racetrack
@@ -383,13 +383,13 @@ can we draw it with the tilemap? maybe not, the layout is a litle strange
int chr = m_racetrack_tilemap_rom[off];
int col = m_racetrack_tilemap_rom[off+0x2000]&0x1f;
int flipx = m_racetrack_tilemap_rom[off+0x2000]&0x40;
- track->opaque(bitmap,cliprect,chr,col,flipx,0,y*16+scrolly,x*16);
+ track->opaque(m_palette,bitmap,cliprect,chr,col,flipx,0,y*16+scrolly,x*16);
// draw another bit of track
// a rubbish way of doing it
chr = m_racetrack_tilemap_rom[off-0x100];
col = m_racetrack_tilemap_rom[off+0x1f00]&0x1f;
flipx = m_racetrack_tilemap_rom[off+0x1f00]&0x40;
- track->opaque(bitmap,cliprect,chr,col,flipx,0,y*16-256+scrolly,x*16);
+ track->opaque(m_palette,bitmap,cliprect,chr,col,flipx,0,y*16-256+scrolly,x*16);
off++;
}
}
@@ -419,13 +419,13 @@ wouldnt like to say its the most effective way though...
for (a=0;a<8 ;a++)
{
for(b=0;b<7;b++) {
- sprites->transpen(bitmap,cliprect,anim+a*8+b,col,0,0,sprx+a*8,spry+b*8,0);
+ sprites->transpen(m_palette,bitmap,cliprect,anim+a*8+b,col,0,0,sprx+a*8,spry+b*8,0);
}
}
// draw the horse number
a=3;
b=3;
- sprites->transpen(bitmap,cliprect,anim+horse,col,0,0,sprx+a*8,spry+b*8,0);
+ sprites->transpen(m_palette,bitmap,cliprect,anim+horse,col,0,0,sprx+a*8,spry+b*8,0);
}
@@ -442,7 +442,7 @@ wouldnt like to say its the most effective way though...
tileno|=(bank<<8);
color=((m_dderby_vidattribs[count])&0x1f);
- gfx->transpen(bitmap,cliprect,tileno,color,0,0,x*8,y*8,(tileno == 0x38) ? 0 : -1);
+ gfx->transpen(m_palette,bitmap,cliprect,tileno,color,0,0,x*8,y*8,(tileno == 0x38) ? 0 : -1);
count++;
}
@@ -453,7 +453,7 @@ wouldnt like to say its the most effective way though...
}
// copied from elsewhere. surely incorrect
-void dmndrby_state::palette_init()
+PALETTE_INIT_MEMBER(dmndrby_state, dmndrby)
{
const UINT8 *color_prom = memregion("proms")->base();
static const int resistances_rg[3] = { 1000, 470, 220 };
@@ -467,9 +467,6 @@ void dmndrby_state::palette_init()
3, &resistances_rg[0], gweights, 470, 0,
2, &resistances_b[0], bweights, 470, 0);
- /* allocate the colortable */
- machine().colortable = colortable_alloc(machine(), 0x20);
-
/* create a lookup table for the palette */
for (i = 0; i < 0x20; i++)
{
@@ -493,7 +490,7 @@ void dmndrby_state::palette_init()
bit1 = (color_prom[i] >> 7) & 0x01;
b = combine_2_weights(bweights, bit0, bit1);
- colortable_palette_set_color(machine().colortable, i, rgb_t(r, g, b));
+ palette.set_indirect_color(i, rgb_t(r, g, b));
}
/* color_prom now points to the beginning of the lookup table */
@@ -503,7 +500,7 @@ void dmndrby_state::palette_init()
for (i = 0x000; i < 0x300; i++)
{
UINT8 ctabentry = color_prom[i];
- colortable_entry_set_value(machine().colortable, i, ctabentry);
+ palette.set_pen_indirect(i, ctabentry);
}
}
@@ -540,8 +537,8 @@ static MACHINE_CONFIG_START( dderby, dmndrby_state )
MCFG_SCREEN_UPDATE_DRIVER(dmndrby_state, screen_update_dderby)
MCFG_GFXDECODE_ADD("gfxdecode", dmndrby)
- MCFG_PALETTE_LENGTH(0x300)
-
+ MCFG_PALETTE_ADD("palette", 0x300)
+ MCFG_PALETTE_INIT_OWNER(dmndrby_state, dmndrby)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/docastle.c b/src/mame/drivers/docastle.c
index 8c47cbe3af5..3311d49133c 100644
--- a/src/mame/drivers/docastle.c
+++ b/src/mame/drivers/docastle.c
@@ -641,7 +641,8 @@ static MACHINE_CONFIG_START( docastle, docastle_state )
MCFG_SCREEN_UPDATE_DRIVER(docastle_state, screen_update_docastle)
MCFG_GFXDECODE_ADD("gfxdecode", docastle)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(docastle_state, docastle)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dogfgt.c b/src/mame/drivers/dogfgt.c
index b427a148975..11afc6d7463 100644
--- a/src/mame/drivers/dogfgt.c
+++ b/src/mame/drivers/dogfgt.c
@@ -70,7 +70,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, dogfgt_state )
AM_RANGE(0x1830, 0x1830) AM_READ_PORT("DSW2")
AM_RANGE(0x1830, 0x1830) AM_WRITE(dogfgt_soundlatch_w)
AM_RANGE(0x1840, 0x1840) AM_WRITE(dogfgt_soundcontrol_w)
- AM_RANGE(0x1870, 0x187f) AM_WRITE(paletteram_BBGGGRRR_byte_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1870, 0x187f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x2000, 0x3fff) AM_READWRITE(dogfgt_bitmapram_r, dogfgt_bitmapram_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -254,7 +254,9 @@ static MACHINE_CONFIG_START( dogfgt, dogfgt_state )
MCFG_SCREEN_UPDATE_DRIVER(dogfgt_state, screen_update_dogfgt)
MCFG_GFXDECODE_ADD("gfxdecode", dogfgt)
- MCFG_PALETTE_LENGTH(16+64)
+ MCFG_PALETTE_ADD("palette", 16+64)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
+ MCFG_PALETTE_INIT_OWNER(dogfgt_state, dogfgt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dominob.c b/src/mame/drivers/dominob.c
index f979927dc08..e33aa9e6b81 100644
--- a/src/mame/drivers/dominob.c
+++ b/src/mame/drivers/dominob.c
@@ -113,12 +113,12 @@ void dominob_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec
code = m_spriteram[offs + 3] + ((m_spriteram[offs + 2] & 0x03) << 8) ;
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
2 * code,
((m_spriteram[offs + 2] & 0xf8) >> 3) ,
flip_screen_x(),flip_screen_y(),
sx,sy + (flip_screen_y() ? 8 : -8),0);
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
2 * code + 1,
((m_spriteram[offs + 2] & 0xf8) >> 3) ,
flip_screen_x(),flip_screen_y(),
@@ -138,7 +138,7 @@ UINT32 dominob_state::screen_update_dominob(screen_device &screen, bitmap_ind16
for (x = 0; x < 256 / 32; x++)
{
- m_gfxdecode->gfx(1)->opaque(bitmap,
+ m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,
cliprect,
m_bgram[index] + 256 * (m_bgram[index + 1] & 0xf),
m_bgram[index + 1] >> 4,
@@ -153,7 +153,7 @@ UINT32 dominob_state::screen_update_dominob(screen_device &screen, bitmap_ind16
for (x = 0; x < 32; x++)
{
- m_gfxdecode->gfx(0)->transpen(bitmap,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,
cliprect,
m_videoram[(y * 32 + x) * 2 + 1] + (m_videoram[(y * 32 + x) * 2] & 7) * 256,
(m_videoram[(y * 32 + x) * 2] >> 3),
@@ -189,7 +189,7 @@ static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, dominob_state )
AM_RANGE(0xe840, 0xefff) AM_RAM
AM_RANGE(0xf000, 0xf07f) AM_RAM AM_SHARE("bgram")
AM_RANGE(0xf080, 0xf7ff) AM_RAM
- AM_RANGE(0xf800, 0xfbff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf800, 0xfbff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfc00, 0xffff) AM_RAM
ADDRESS_MAP_END
@@ -314,7 +314,8 @@ static MACHINE_CONFIG_START( dominob, dominob_state )
MCFG_SCREEN_UPDATE_DRIVER(dominob_state, screen_update_dominob)
MCFG_GFXDECODE_ADD("gfxdecode", dominob)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c
index 474f1d78aa6..b29ae41444d 100644
--- a/src/mame/drivers/dooyong.c
+++ b/src/mame/drivers/dooyong.c
@@ -126,7 +126,7 @@ static ADDRESS_MAP_START( lastday_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0xc012, 0xc012) AM_WRITE(soundlatch_byte_w)
AM_RANGE(0xc013, 0xc013) AM_READ_PORT("DSWA")
AM_RANGE(0xc014, 0xc014) AM_READ_PORT("DSWB")
- AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xc800, 0xcfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_SHARE("txvideoram")
AM_RANGE(0xe000, 0xefff) AM_RAM
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("spriteram")
@@ -147,7 +147,7 @@ static ADDRESS_MAP_START( pollux_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0xf010, 0xf010) AM_WRITE(soundlatch_byte_w)
AM_RANGE(0xf018, 0xf01f) AM_WRITE(dooyong_bgscroll8_w)
AM_RANGE(0xf020, 0xf027) AM_WRITE(dooyong_fgscroll8_w)
- AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf800, 0xffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8, dooyong_state )
@@ -166,7 +166,7 @@ static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0xf010, 0xf010) AM_WRITE(soundlatch_byte_w)
AM_RANGE(0xf018, 0xf01f) AM_WRITE(dooyong_bgscroll8_w)
AM_RANGE(0xf020, 0xf027) AM_WRITE(dooyong_fgscroll8_w)
- AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf800, 0xffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8, dooyong_state )
@@ -183,7 +183,7 @@ static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0xc018, 0xc01f) AM_WRITE(dooyong_fg2scroll8_w)
AM_RANGE(0xc040, 0xc047) AM_WRITE(dooyong_bgscroll8_w)
AM_RANGE(0xc048, 0xc04f) AM_WRITE(dooyong_fgscroll8_w)
- AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xc800, 0xcfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_SHARE("txvideoram")
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xf000, 0xffff) AM_RAM
@@ -214,7 +214,7 @@ static ADDRESS_MAP_START( primella_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd3ff) AM_RAM /* what is this? looks like a palette? scratchpad RAM maybe? */
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_SHARE("txvideoram")
- AM_RANGE(0xf000, 0xf7ff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf000, 0xf7ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("DSWA")
AM_RANGE(0xf800, 0xf800) AM_WRITE(primella_ctrl_w) /* bank switch, flip screen etc */
AM_RANGE(0xf810, 0xf810) AM_READ_PORT("DSWB")
@@ -237,7 +237,7 @@ static ADDRESS_MAP_START( rshark_map, AS_PROGRAM, 16, dooyong_state )
AM_RANGE(0x0c0006, 0x0c0007) AM_READ_PORT("SYSTEM")
AM_RANGE(0x0c4000, 0x0c400f) AM_WRITE(dooyong_bgscroll16_w)
AM_RANGE(0x0c4010, 0x0c401f) AM_WRITE(dooyong_bg2scroll16_w)
- AM_RANGE(0x0c8000, 0x0c8fff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c8000, 0x0c8fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0c0012, 0x0c0013) AM_WRITE(soundlatch_word_w)
AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(rshark_ctrl_w) /* flip screen + unknown stuff */
AM_RANGE(0x0cc000, 0x0cc00f) AM_WRITE(dooyong_fgscroll16_w)
@@ -255,7 +255,7 @@ static ADDRESS_MAP_START( superx_map, AS_PROGRAM, 16, dooyong_state )
AM_RANGE(0x080006, 0x080007) AM_READ_PORT("SYSTEM")
AM_RANGE(0x084000, 0x08400f) AM_WRITE(dooyong_bgscroll16_w)
AM_RANGE(0x084010, 0x08401f) AM_WRITE(dooyong_bg2scroll16_w)
- AM_RANGE(0x088000, 0x088fff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x088fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x080012, 0x080013) AM_WRITE(soundlatch_word_w)
AM_RANGE(0x080014, 0x080015) AM_WRITE(rshark_ctrl_w) /* flip screen + unknown stuff */
AM_RANGE(0x08c000, 0x08c00f) AM_WRITE(dooyong_fgscroll16_w)
@@ -276,7 +276,7 @@ static ADDRESS_MAP_START( popbingo_map, AS_PROGRAM, 16, dooyong_state )
AM_RANGE(0x0c0018, 0x0c001b) AM_WRITENOP // ?
AM_RANGE(0x0c4000, 0x0c400f) AM_WRITE(dooyong_bgscroll16_w)
AM_RANGE(0x0c4010, 0x0c401f) AM_WRITE(dooyong_bg2scroll16_w) // not used atm
- AM_RANGE(0x0c8000, 0x0c8fff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c8000, 0x0c8fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0cc000, 0x0cc00f) AM_WRITE(dooyong_fgscroll16_w) // not used atm
AM_RANGE(0x0cc010, 0x0cc01f) AM_WRITE(dooyong_fg2scroll16_w) // not used atm
AM_RANGE(0x0dc000, 0x0dc01f) AM_RAM // registers of some kind?
@@ -874,7 +874,8 @@ static MACHINE_CONFIG_START( lastday, dooyong_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", lastday)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(dooyong_state,lastday)
@@ -918,7 +919,8 @@ static MACHINE_CONFIG_START( gulfstrm, dooyong_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", lastday)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(dooyong_state,gulfstrm)
@@ -951,7 +953,8 @@ static MACHINE_CONFIG_START( pollux, dooyong_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", lastday)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(dooyong_state,pollux)
@@ -983,7 +986,8 @@ static MACHINE_CONFIG_START( bluehawk, dooyong_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", bluehawk)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(dooyong_state,bluehawk)
@@ -1015,7 +1019,8 @@ static MACHINE_CONFIG_START( flytiger, dooyong_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", flytiger)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(dooyong_state,flytiger)
@@ -1044,7 +1049,8 @@ static MACHINE_CONFIG_START( primella, dooyong_state )
MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_primella)
MCFG_GFXDECODE_ADD("gfxdecode", primella)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(dooyong_state,primella)
@@ -1086,7 +1092,8 @@ static MACHINE_CONFIG_START( rshark, dooyong_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", rshark)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(dooyong_state,rshark)
@@ -1116,7 +1123,8 @@ static MACHINE_CONFIG_START( superx, dooyong_state ) // dif mem map
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", rshark)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(dooyong_state,rshark)
@@ -1146,7 +1154,8 @@ static MACHINE_CONFIG_START( popbingo, dooyong_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", popbingo)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(dooyong_state,popbingo)
diff --git a/src/mame/drivers/dragrace.c b/src/mame/drivers/dragrace.c
index 247a97b4705..1a231746aef 100644
--- a/src/mame/drivers/dragrace.c
+++ b/src/mame/drivers/dragrace.c
@@ -287,24 +287,24 @@ static GFXDECODE_START( dragrace )
GFXDECODE_END
-void dragrace_state::palette_init()
+PALETTE_INIT_MEMBER(dragrace_state, dragrace)
{
- palette_set_color(machine(), 0, rgb_t(0xFF, 0xFF, 0xFF)); /* 2 color tiles */
- palette_set_color(machine(), 1, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), 2, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), 3, rgb_t(0xFF, 0xFF, 0xFF));
- palette_set_color(machine(), 4, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), 5, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), 6, rgb_t(0xFF, 0xFF, 0xFF));
- palette_set_color(machine(), 7, rgb_t(0xFF, 0xFF, 0xFF));
- palette_set_color(machine(), 8, rgb_t(0xFF, 0xFF, 0xFF)); /* 4 color tiles */
- palette_set_color(machine(), 9, rgb_t(0xB0, 0xB0, 0xB0));
- palette_set_color(machine(), 10,rgb_t(0x5F, 0x5F, 0x5F));
- palette_set_color(machine(), 11,rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), 12,rgb_t(0xFF, 0xFF, 0xFF));
- palette_set_color(machine(), 13,rgb_t(0x5F, 0x5F, 0x5F));
- palette_set_color(machine(), 14,rgb_t(0xB0, 0xB0, 0xB0));
- palette_set_color(machine(), 15,rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(0, rgb_t(0xFF, 0xFF, 0xFF)); /* 2 color tiles */
+ palette.set_pen_color(1, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(2, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(3, rgb_t(0xFF, 0xFF, 0xFF));
+ palette.set_pen_color(4, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(5, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(6, rgb_t(0xFF, 0xFF, 0xFF));
+ palette.set_pen_color(7, rgb_t(0xFF, 0xFF, 0xFF));
+ palette.set_pen_color(8, rgb_t(0xFF, 0xFF, 0xFF)); /* 4 color tiles */
+ palette.set_pen_color(9, rgb_t(0xB0, 0xB0, 0xB0));
+ palette.set_pen_color(10,rgb_t(0x5F, 0x5F, 0x5F));
+ palette.set_pen_color(11,rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(12,rgb_t(0xFF, 0xFF, 0xFF));
+ palette.set_pen_color(13,rgb_t(0x5F, 0x5F, 0x5F));
+ palette.set_pen_color(14,rgb_t(0xB0, 0xB0, 0xB0));
+ palette.set_pen_color(15,rgb_t(0x00, 0x00, 0x00));
}
@@ -339,7 +339,8 @@ static MACHINE_CONFIG_START( dragrace, dragrace_state )
MCFG_SCREEN_UPDATE_DRIVER(dragrace_state, screen_update_dragrace)
MCFG_GFXDECODE_ADD("gfxdecode", dragrace)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_INIT_OWNER(dragrace_state, dragrace)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/dreambal.c b/src/mame/drivers/dreambal.c
index 3bdb59c9561..3e8c0ee196f 100644
--- a/src/mame/drivers/dreambal.c
+++ b/src/mame/drivers/dreambal.c
@@ -114,7 +114,7 @@ static ADDRESS_MAP_START( dreambal_map, AS_PROGRAM, 16, dreambal_state )
AM_RANGE(0x103000, 0x103fff) AM_RAM
AM_RANGE(0x120000, 0x123fff) AM_RAM
- AM_RANGE(0x140000, 0x1403ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x1403ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x161000, 0x16100f) AM_DEVWRITE("tilegen1", deco16ic_device, pf_control_w)
AM_RANGE(0x160000, 0x163fff) AM_READWRITE(dreambal_protection_region_0_104_r,dreambal_protection_region_0_104_w)AM_SHARE("prot16ram") /* Protection device */
@@ -325,7 +325,8 @@ static MACHINE_CONFIG_START( dreambal, dreambal_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(dreambal_state, screen_update_dreambal)
- MCFG_PALETTE_LENGTH(0x400/2)
+ MCFG_PALETTE_ADD("palette", 0x400/2)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", dreambal)
MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") // 93lc46b
@@ -334,6 +335,7 @@ static MACHINE_CONFIG_START( dreambal, dreambal_state )
MCFG_DECO16IC_ADD("tilegen1", dreambal_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dreamwld.c b/src/mame/drivers/dreamwld.c
index 9817120930e..193ba3577e6 100644
--- a/src/mame/drivers/dreamwld.c
+++ b/src/mame/drivers/dreamwld.c
@@ -224,10 +224,10 @@ void dreamwld_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
{
for (xct = 0; xct < xsize; xct++)
{
- gfx->transpen(bitmap,cliprect, redirect[tileno], colour, xflip, yflip, xpos + xct * xinc, ypos + yct * yinc, 0);
- gfx->transpen(bitmap,cliprect, redirect[tileno], colour, xflip, yflip, (xpos + xct * xinc) - 0x200, ypos + yct * yinc, 0);
- gfx->transpen(bitmap,cliprect, redirect[tileno], colour, xflip, yflip, (xpos + xct * xinc) - 0x200, (ypos + yct * yinc) - 0x200, 0);
- gfx->transpen(bitmap,cliprect, redirect[tileno], colour, xflip, yflip, xpos + xct * xinc, (ypos + yct * yinc) - 0x200 , 0);
+ gfx->transpen(m_palette,bitmap,cliprect, redirect[tileno], colour, xflip, yflip, xpos + xct * xinc, ypos + yct * yinc, 0);
+ gfx->transpen(m_palette,bitmap,cliprect, redirect[tileno], colour, xflip, yflip, (xpos + xct * xinc) - 0x200, ypos + yct * yinc, 0);
+ gfx->transpen(m_palette,bitmap,cliprect, redirect[tileno], colour, xflip, yflip, (xpos + xct * xinc) - 0x200, (ypos + yct * yinc) - 0x200, 0);
+ gfx->transpen(m_palette,bitmap,cliprect, redirect[tileno], colour, xflip, yflip, xpos + xct * xinc, (ypos + yct * yinc) - 0x200 , 0);
tileno++;
}
@@ -455,10 +455,10 @@ WRITE32_MEMBER(dreamwld_state::dreamwld_palette_w)
color = offset * 2;
dat = m_paletteram[offset] & 0x7fff;
- palette_set_color_rgb(machine(), color+1, pal5bit(dat >> 10), pal5bit(dat >> 5), pal5bit(dat >> 0));
+ m_palette->set_pen_color(color+1, pal5bit(dat >> 10), pal5bit(dat >> 5), pal5bit(dat >> 0));
dat = (m_paletteram[offset] >> 16) & 0x7fff;
- palette_set_color_rgb(machine(), color, pal5bit(dat >> 10), pal5bit(dat >> 5), pal5bit(dat >> 0));
+ m_palette->set_pen_color(color, pal5bit(dat >> 10), pal5bit(dat >> 5), pal5bit(dat >> 0));
}
@@ -602,7 +602,7 @@ static MACHINE_CONFIG_START( baryon, dreamwld_state )
MCFG_SCREEN_UPDATE_DRIVER(dreamwld_state, screen_update_dreamwld)
MCFG_SCREEN_VBLANK_DRIVER(dreamwld_state, screen_eof_dreamwld)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
MCFG_GFXDECODE_ADD("gfxdecode", dreamwld)
diff --git a/src/mame/drivers/drgnmst.c b/src/mame/drivers/drgnmst.c
index beaf1da5194..5691560c22a 100644
--- a/src/mame/drivers/drgnmst.c
+++ b/src/mame/drivers/drgnmst.c
@@ -197,7 +197,7 @@ static ADDRESS_MAP_START( drgnmst_main_map, AS_PROGRAM, 16, drgnmst_state )
AM_RANGE(0x800180, 0x800181) AM_WRITE(drgnmst_snd_command_w)
AM_RANGE(0x800188, 0x800189) AM_WRITE(drgnmst_snd_flag_w)
AM_RANGE(0x8001e0, 0x8001e1) AM_WRITENOP
- AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x900000, 0x903fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x904000, 0x907fff) AM_RAM_WRITE(drgnmst_md_videoram_w) AM_SHARE("md_videoram")
AM_RANGE(0x908000, 0x90bfff) AM_RAM_WRITE(drgnmst_bg_videoram_w) AM_SHARE("bg_videoram")
AM_RANGE(0x90c000, 0x90ffff) AM_RAM_WRITE(drgnmst_fg_videoram_w) AM_SHARE("fg_videoram")
@@ -409,8 +409,8 @@ static MACHINE_CONFIG_START( drgnmst, drgnmst_state )
MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(drgnmst_state, screen_update_drgnmst)
- MCFG_PALETTE_LENGTH(0x2000)
-
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/dribling.c b/src/mame/drivers/dribling.c
index debaf209333..8bc4301cc20 100644
--- a/src/mame/drivers/dribling.c
+++ b/src/mame/drivers/dribling.c
@@ -314,8 +314,8 @@ static MACHINE_CONFIG_START( dribling, dribling_state )
MCFG_SCREEN_VISIBLE_AREA(0, 255, 40, 255)
MCFG_SCREEN_UPDATE_DRIVER(dribling_state, screen_update_dribling)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(dribling_state, dribling)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/drmicro.c b/src/mame/drivers/drmicro.c
index 6eafe6fb0df..f6c2f4b0214 100644
--- a/src/mame/drivers/drmicro.c
+++ b/src/mame/drivers/drmicro.c
@@ -259,8 +259,8 @@ static MACHINE_CONFIG_START( drmicro, drmicro_state )
MCFG_SCREEN_UPDATE_DRIVER(drmicro_state, screen_update_drmicro)
MCFG_GFXDECODE_ADD("gfxdecode", drmicro)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(drmicro_state, drmicro)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/drtomy.c b/src/mame/drivers/drtomy.c
index b7fc0fd3f09..8792189ccfe 100644
--- a/src/mame/drivers/drtomy.c
+++ b/src/mame/drivers/drtomy.c
@@ -120,7 +120,7 @@ void drtomy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect
ex = xflip ? (spr_size - 1 - x) : x;
ey = yflip ? (spr_size - 1 - y) : y;
- gfx->transpen(bitmap,cliprect,number + x_offset[ex] + y_offset[ey],
+ gfx->transpen(m_palette,bitmap,cliprect,number + x_offset[ex] + y_offset[ey],
color,xflip,yflip,
sx-0x09+x*8,sy+y*8,0);
}
@@ -171,7 +171,7 @@ static ADDRESS_MAP_START( drtomy_map, AS_PROGRAM, 16, drtomy_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(drtomy_vram_fg_w) AM_SHARE("videorafg") /* Video RAM FG */
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(drtomy_vram_bg_w) AM_SHARE("videorabg") /* Video RAM BG */
- AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") /* Palette */
+ AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW1")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW2")
@@ -311,7 +311,8 @@ static MACHINE_CONFIG_START( drtomy, drtomy_state )
MCFG_SCREEN_UPDATE_DRIVER(drtomy_state, screen_update_drtomy)
MCFG_GFXDECODE_ADD("gfxdecode", drtomy)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/drw80pkr.c b/src/mame/drivers/drw80pkr.c
index 451ed646f08..5048bbe7c50 100644
--- a/src/mame/drivers/drw80pkr.c
+++ b/src/mame/drivers/drw80pkr.c
@@ -71,7 +71,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void machine_start();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(drw80pkr);
UINT32 screen_update_drw80pkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -350,12 +350,12 @@ UINT32 drw80pkr_state::screen_update_drw80pkr(screen_device &screen, bitmap_ind1
return 0;
}
-void drw80pkr_state::palette_init()
+PALETTE_INIT_MEMBER(drw80pkr_state, drw80pkr)
{
const UINT8 *color_prom = memregion("proms")->base();
int j;
- for (j = 0; j < machine().total_colors(); j++)
+ for (j = 0; j < palette.entries(); j++)
{
int r, g, b, tr, tg, tb, i;
@@ -374,7 +374,7 @@ void drw80pkr_state::palette_init()
tb = 0xf0 - (0xf0 * ((color_prom[j] >> 2) & 0x01));
b = tb - (i * (tb / 5));
- palette_set_color(machine(), j, rgb_t(r, g, b));
+ palette.set_pen_color(j, rgb_t(r, g, b));
}
}
@@ -483,8 +483,8 @@ static MACHINE_CONFIG_START( drw80pkr, drw80pkr_state )
MCFG_SCREEN_UPDATE_DRIVER(drw80pkr_state, screen_update_drw80pkr)
MCFG_GFXDECODE_ADD("gfxdecode", drw80pkr)
- MCFG_PALETTE_LENGTH(16*16)
-
+ MCFG_PALETTE_ADD("palette", 16*16)
+ MCFG_PALETTE_INIT_OWNER(drw80pkr_state, drw80pkr)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/dunhuang.c b/src/mame/drivers/dunhuang.c
index 27b2e0b73a4..ad04a3a4074 100644
--- a/src/mame/drivers/dunhuang.c
+++ b/src/mame/drivers/dunhuang.c
@@ -177,7 +177,7 @@ if (machine().input().code_pressed(KEYCODE_Z))
}
#endif
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
switch (m_layers)
{
@@ -403,7 +403,7 @@ WRITE8_MEMBER(dunhuang_state::dunhuang_paldata_w)
{
m_paldata[m_paloffs] = data;
- palette_set_color_rgb( machine(), m_paloffs/3,
+ m_palette->set_pen_color( m_paloffs/3,
pal6bit(m_paldata[(m_paloffs/3)*3+0]),
pal6bit(m_paldata[(m_paloffs/3)*3+1]),
pal6bit(m_paldata[(m_paloffs/3)*3+2])
@@ -835,7 +835,7 @@ static MACHINE_CONFIG_START( dunhuang, dunhuang_state )
MCFG_SCREEN_UPDATE_DRIVER(dunhuang_state, screen_update_dunhuang)
MCFG_GFXDECODE_ADD("gfxdecode", dunhuang)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
/* sound hardware */
diff --git a/src/mame/drivers/dwarfd.c b/src/mame/drivers/dwarfd.c
index 0a91dc745d6..89b711d57e6 100644
--- a/src/mame/drivers/dwarfd.c
+++ b/src/mame/drivers/dwarfd.c
@@ -351,7 +351,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(dwarfd);
UINT32 screen_update_dwarfd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(dwarfd_interrupt);
void drawCrt( bitmap_rgb32 &bitmap,const rectangle &cliprect );
@@ -837,7 +837,7 @@ void dwarfd_state::drawCrt( bitmap_rgb32 &bitmap,const rectangle &cliprect )
else
b = 1;
}
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
tile + (m_bank + bank2) * 128,
0,
0, 0,
@@ -849,7 +849,7 @@ void dwarfd_state::drawCrt( bitmap_rgb32 &bitmap,const rectangle &cliprect )
UINT32 dwarfd_state::screen_update_dwarfd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
drawCrt(bitmap, cliprect);
return 0;
}
@@ -978,7 +978,7 @@ static GFXDECODE_START( dwarfd )
GFXDECODE_ENTRY( "gfx2", 0, tiles8x8_layout3, 0, 16 )
GFXDECODE_END
-void dwarfd_state::palette_init()
+PALETTE_INIT_MEMBER(dwarfd_state, dwarfd)
{
int i;
@@ -989,12 +989,12 @@ void dwarfd_state::palette_init()
int b = machine().rand()|0x80;
if (i == 0) r = g = b = 0;
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
}
- palette_set_color(machine(), 8, rgb_t(255, 255, 0));
- palette_set_color(machine(), 12, rgb_t(127, 127, 255));
- palette_set_color(machine(), 4, rgb_t(0, 255, 0));
- palette_set_color(machine(), 6, rgb_t(255, 0, 0));
+ palette.set_pen_color(8, rgb_t(255, 255, 0));
+ palette.set_pen_color(12, rgb_t(127, 127, 255));
+ palette.set_pen_color(4, rgb_t(0, 255, 0));
+ palette.set_pen_color(6, rgb_t(255, 0, 0));
}
static const ay8910_interface ay8910_config =
@@ -1070,8 +1070,8 @@ static MACHINE_CONFIG_START( dwarfd, dwarfd_state )
MCFG_SCREEN_UPDATE_DRIVER(dwarfd_state, screen_update_dwarfd)
MCFG_GFXDECODE_ADD("gfxdecode", dwarfd)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(dwarfd_state, 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 7f1c6efceef..ea4f774ec02 100644
--- a/src/mame/drivers/dynadice.c
+++ b/src/mame/drivers/dynadice.c
@@ -66,7 +66,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(dynadice);
UINT32 screen_update_dynadice(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -225,11 +225,11 @@ UINT32 dynadice_state::screen_update_dynadice(screen_device &screen, bitmap_ind1
return 0;
}
-void dynadice_state::palette_init()
+PALETTE_INIT_MEMBER(dynadice_state, dynadice)
{
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_pen_color(i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
}
void dynadice_state::machine_start()
@@ -265,8 +265,8 @@ static MACHINE_CONFIG_START( dynadice, dynadice_state )
MCFG_SCREEN_UPDATE_DRIVER(dynadice_state, screen_update_dynadice)
MCFG_GFXDECODE_ADD("gfxdecode", dynadice)
- MCFG_PALETTE_LENGTH(8)
-
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(dynadice_state, dynadice)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c
index 9c67fd4bab1..1543e389d55 100644
--- a/src/mame/drivers/dynax.c
+++ b/src/mame/drivers/dynax.c
@@ -325,7 +325,7 @@ WRITE8_MEMBER(dynax_state::hnoridur_palette_w)
int r = BITSWAP8((x >> 0) & 0x1f, 7, 6, 5, 0, 1, 2, 3, 4);
int g = BITSWAP8((x >> 5) & 0x1f, 7, 6, 5, 0, 1, 2, 3, 4);
int b = BITSWAP8((x >> 10) & 0x1f, 7, 6, 5, 0, 1, 2, 3, 4);
- palette_set_color_rgb(machine(), 256 * m_palbank + offset, pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color(256 * m_palbank + offset, pal5bit(r), pal5bit(g), pal5bit(b));
}
}
@@ -358,7 +358,7 @@ WRITE8_MEMBER(dynax_state::yarunara_palette_w)
int r = br & 0x1f;
int g = bg & 0x1f;
int b = ((bg & 0xc0) >> 3) | ((br & 0xe0) >> 5);
- palette_set_color_rgb(machine(), 256 * m_palbank + ((offset & 0x0f) | ((offset & 0x1e0) >> 1)), pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color(256 * m_palbank + ((offset & 0x0f) | ((offset & 0x1e0) >> 1)), pal5bit(r), pal5bit(g), pal5bit(b));
}
}
@@ -385,7 +385,7 @@ WRITE8_MEMBER(dynax_state::nanajign_palette_w)
int r = br & 0x1f;
int g = bg & 0x1f;
int b = ((bg & 0xc0) >> 3) | ((br & 0xe0) >> 5);
- palette_set_color_rgb(machine(), 256 * m_palbank + offset, pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color(256 * m_palbank + offset, pal5bit(r), pal5bit(g), pal5bit(b));
}
}
@@ -1211,7 +1211,7 @@ WRITE8_MEMBER(dynax_state::tenkai_palette_w)
int r = br & 0x1f;
int g = bg & 0x1f;
int b = ((bg & 0xc0) >> 3) | ((br & 0xe0) >> 5);
- palette_set_color_rgb(machine(), 256 * m_palbank + ((offset & 0xf) | ((offset & 0x1e0) >> 1)), pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color(256 * m_palbank + ((offset & 0xf) | ((offset & 0x1e0) >> 1)), pal5bit(r), pal5bit(g), pal5bit(b));
}
}
@@ -4103,9 +4103,9 @@ static MACHINE_CONFIG_START( hanamai, dynax_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16+8, 255-8)
MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hanamai)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
- MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
+ MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette
MCFG_VIDEO_START_OVERRIDE(dynax_state,hanamai)
/* sound hardware */
@@ -4161,7 +4161,7 @@ static MACHINE_CONFIG_START( hnoridur, dynax_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur)
- MCFG_PALETTE_LENGTH(16*256)
+ MCFG_PALETTE_ADD("palette", 16*256)
MCFG_VIDEO_START_OVERRIDE(dynax_state,hnoridur)
@@ -4206,7 +4206,7 @@ static MACHINE_CONFIG_START( hjingi, dynax_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur)
- MCFG_PALETTE_LENGTH(16*256)
+ MCFG_PALETTE_ADD("palette", 16*256)
MCFG_VIDEO_START_OVERRIDE(dynax_state,hnoridur)
@@ -4261,9 +4261,9 @@ static MACHINE_CONFIG_START( sprtmtch, dynax_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_sprtmtch)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
- MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
+ MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette
MCFG_VIDEO_START_OVERRIDE(dynax_state,sprtmtch)
/* sound hardware */
@@ -4304,9 +4304,9 @@ static MACHINE_CONFIG_START( mjfriday, dynax_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_mjdialq2)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
- MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
+ MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette
MCFG_VIDEO_START_OVERRIDE(dynax_state,mjdialq2)
/* sound hardware */
@@ -4454,7 +4454,8 @@ static MACHINE_CONFIG_START( jantouki, dynax_state )
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette
MCFG_DEFAULT_LAYOUT(layout_dualhuov)
MCFG_SCREEN_ADD("top", RASTER)
@@ -4471,7 +4472,6 @@ static MACHINE_CONFIG_START( jantouki, dynax_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_jantouki_bottom)
- MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
MCFG_VIDEO_START_OVERRIDE(dynax_state,jantouki)
/* sound hardware */
@@ -4497,7 +4497,8 @@ static MACHINE_CONFIG_START( jantouki, dynax_state )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( janyuki, jantouki )
- MCFG_PALETTE_INIT_OVERRIDE(dynax_state,janyuki) // static palette
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(dynax_state,janyuki) // static palette
MACHINE_CONFIG_END
@@ -4660,7 +4661,7 @@ static MACHINE_CONFIG_START( tenkai, dynax_state )
MCFG_SCREEN_VISIBLE_AREA(4, 512-1, 4, 255-8-4) // hide first 4 horizontal pixels (see scroll of gal 4 in test mode)
MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur)
- MCFG_PALETTE_LENGTH(16*256)
+ MCFG_PALETTE_ADD("palette", 16*256)
MCFG_VIDEO_START_OVERRIDE(dynax_state,mjelctrn)
@@ -4679,8 +4680,9 @@ static MACHINE_CONFIG_START( tenkai, dynax_state )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( majrjhdx, tenkai )
- MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette
MACHINE_CONFIG_END
/***************************************************************************
@@ -4727,8 +4729,8 @@ static MACHINE_CONFIG_START( gekisha, dynax_state )
MCFG_SCREEN_VISIBLE_AREA(2, 256-1, 16, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_mjdialq2)
- MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette
MCFG_VIDEO_START_OVERRIDE(dynax_state,mjdialq2)
/* sound hardware */
diff --git a/src/mame/drivers/dynduke.c b/src/mame/drivers/dynduke.c
index 91b79f0d61a..041c4176969 100644
--- a/src/mame/drivers/dynduke.c
+++ b/src/mame/drivers/dynduke.c
@@ -296,7 +296,7 @@ static MACHINE_CONFIG_START( dynduke, dynduke_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", dynduke)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
// sound hardware
diff --git a/src/mame/drivers/egghunt.c b/src/mame/drivers/egghunt.c
index fbb22c082b1..289bb88ac64 100644
--- a/src/mame/drivers/egghunt.c
+++ b/src/mame/drivers/egghunt.c
@@ -121,7 +121,7 @@ void egghunt_state::draw_sprites( bitmap_ind16 &bitmap,const rectangle &cliprect
sx = 496 - sx;
sy = 240 - sy;
}
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,
code,
color,
flipscreen,flipscreen,
@@ -227,7 +227,7 @@ WRITE8_MEMBER(egghunt_state::egghunt_okibanking_w)
static ADDRESS_MAP_START( egghunt_map, AS_PROGRAM, 8, egghunt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xc000, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(egghunt_atram_w) AM_SHARE("atram")
AM_RANGE(0xd000, 0xdfff) AM_READWRITE(egghunt_bgram_r, egghunt_bgram_w)
AM_RANGE(0xe000, 0xffff) AM_RAM
@@ -429,8 +429,9 @@ static MACHINE_CONFIG_START( egghunt, egghunt_state )
MCFG_SCREEN_UPDATE_DRIVER(egghunt_state, screen_update_egghunt)
MCFG_GFXDECODE_ADD("gfxdecode", egghunt)
- MCFG_PALETTE_LENGTH(0x400)
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/eolith.c b/src/mame/drivers/eolith.c
index 8ccf2ede085..4c166abbdbd 100644
--- a/src/mame/drivers/eolith.c
+++ b/src/mame/drivers/eolith.c
@@ -592,8 +592,7 @@ static MACHINE_CONFIG_START( eolith45, eolith_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(eolith_state, screen_update_eolith)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
MCFG_VIDEO_START_OVERRIDE(eolith_state,eolith)
diff --git a/src/mame/drivers/eolith16.c b/src/mame/drivers/eolith16.c
index d9edbc83801..ce511d71275 100644
--- a/src/mame/drivers/eolith16.c
+++ b/src/mame/drivers/eolith16.c
@@ -158,7 +158,7 @@ PALETTE_INIT_MEMBER(eolith16_state,eolith16)
bit1 = (c >> 7) & 0x01;
b = 0x55 * bit0 + 0xaa * bit1;
- palette_set_color(machine(),c,rgb_t(r,g,b));
+ palette.set_pen_color(c,rgb_t(r,g,b));
}
}
@@ -179,9 +179,9 @@ static MACHINE_CONFIG_START( eolith16, eolith16_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 199)
MCFG_SCREEN_UPDATE_DRIVER(eolith16_state, screen_update_eolith16)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
- MCFG_PALETTE_INIT_OVERRIDE(eolith16_state,eolith16)
+ MCFG_PALETTE_INIT_OWNER(eolith16_state,eolith16)
MCFG_VIDEO_START_OVERRIDE(eolith16_state,eolith16)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/eprom.c b/src/mame/drivers/eprom.c
index a528a039829..05d665cd801 100644
--- a/src/mame/drivers/eprom.c
+++ b/src/mame/drivers/eprom.c
@@ -398,7 +398,7 @@ static MACHINE_CONFIG_START( eprom, eprom_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", eprom)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, eprom_state, get_playfield_tile_info, 8,8, SCAN_COLS, 64,64)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, eprom_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0)
@@ -439,7 +439,7 @@ static MACHINE_CONFIG_START( klaxp, eprom_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", eprom)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, eprom_state, get_playfield_tile_info, 8,8, SCAN_COLS, 64,64)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, eprom_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0)
@@ -479,7 +479,7 @@ static MACHINE_CONFIG_START( guts, eprom_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", guts)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, eprom_state, guts_get_playfield_tile_info, 8,8, SCAN_COLS, 64,64)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, eprom_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0)
diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c
index 832bd34fdfa..caa73799646 100644
--- a/src/mame/drivers/equites.c
+++ b/src/mame/drivers/equites.c
@@ -1240,8 +1240,8 @@ static MACHINE_CONFIG_START( equites, equites_state )
MCFG_SCREEN_UPDATE_DRIVER(equites_state, screen_update_equites)
MCFG_GFXDECODE_ADD("gfxdecode", equites)
- MCFG_PALETTE_LENGTH(0x180)
- MCFG_PALETTE_INIT_OVERRIDE(equites_state,equites)
+ MCFG_PALETTE_ADD("palette", 0x180)
+ MCFG_PALETTE_INIT_OWNER(equites_state,equites)
MCFG_VIDEO_START_OVERRIDE(equites_state,equites)
MCFG_MACHINE_START_OVERRIDE(equites_state,equites)
@@ -1277,8 +1277,8 @@ static MACHINE_CONFIG_START( splndrbt, equites_state )
MCFG_SCREEN_UPDATE_DRIVER(equites_state, screen_update_splndrbt)
MCFG_GFXDECODE_ADD("gfxdecode", splndrbt)
- MCFG_PALETTE_LENGTH(0x280)
- MCFG_PALETTE_INIT_OVERRIDE(equites_state,splndrbt)
+ MCFG_PALETTE_ADD("palette", 0x280)
+ MCFG_PALETTE_INIT_OWNER(equites_state,splndrbt)
MCFG_VIDEO_START_OVERRIDE(equites_state,splndrbt)
MCFG_MACHINE_START_OVERRIDE(equites_state,equites)
diff --git a/src/mame/drivers/ertictac.c b/src/mame/drivers/ertictac.c
index ea7a1140014..75ad4014c0a 100644
--- a/src/mame/drivers/ertictac.c
+++ b/src/mame/drivers/ertictac.c
@@ -239,7 +239,7 @@ static MACHINE_CONFIG_START( ertictac, ertictac_state )
MCFG_SCREEN_VISIBLE_AREA(0, 1280-1, 0, 1024-1)
MCFG_SCREEN_UPDATE_DRIVER(archimedes_state, screen_update)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_DAC_ADD("dac0")
diff --git a/src/mame/drivers/esd16.c b/src/mame/drivers/esd16.c
index aaeaa179bcb..37b167fa9d8 100644
--- a/src/mame/drivers/esd16.c
+++ b/src/mame/drivers/esd16.c
@@ -146,7 +146,7 @@ WRITE16_MEMBER(esd16_state::esd_eeprom_w)
AM_RANGE(_BASE + 0xc, _BASE + 0xd) AM_WRITENOP \
AM_RANGE(_BASE + 0xe, _BASE + 0xf) AM_WRITEONLY AM_SHARE("head_layersize")
#define ESD16_PALETTE_AREA( _BASE ) \
- AM_RANGE(_BASE + 0x000, _BASE + 0xfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(_BASE + 0x000, _BASE + 0xfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
#define ESD16_SPRITE_AREA( _BASE ) \
AM_RANGE(_BASE + 0x000, _BASE + 0x7ff) AM_WRITEONLY AM_SHARE("spriteram") AM_MIRROR(0x000800)
#define ESD16_VRAM_AREA( _BASE ) \
@@ -627,9 +627,11 @@ static MACHINE_CONFIG_START( esd16, esd16_state )
decospr_device::set_pri_callback(*device, esd16_state::hedpanic_pri_callback);
decospr_device::set_flipallx(*device, 1);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", esd16)
- MCFG_PALETTE_LENGTH(0x1000/2)
+ MCFG_PALETTE_ADD("palette", 0x1000/2)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/esh.c b/src/mame/drivers/esh.c
index 391e4309b6b..705c88b5bc2 100644
--- a/src/mame/drivers/esh.c
+++ b/src/mame/drivers/esh.c
@@ -55,7 +55,7 @@ public:
DECLARE_WRITE8_MEMBER(nmi_line_w);
DECLARE_DRIVER_INIT(esh);
virtual void machine_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(esh);
UINT32 screen_update_esh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vblank_callback_esh);
required_device<cpu_device> m_maincpu;
@@ -90,7 +90,7 @@ UINT32 esh_state::screen_update_esh(screen_device &screen, bitmap_rgb32 &bitmap,
//int blinkLine = (m_tile_control_ram[current_screen_character] & 0x40) >> 6;
//int blinkChar = (m_tile_control_ram[current_screen_character] & 0x80) >> 7;
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
m_tile_ram[current_screen_character] + (0x100 * tileOffs),
palIndex,
0, 0, charx*8, chary*8, 0);
@@ -238,13 +238,13 @@ static INPUT_PORTS_START( esh )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
-void esh_state::palette_init()
+PALETTE_INIT_MEMBER(esh_state, esh)
{
const UINT8 *color_prom = 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 < palette.entries(); i++)
{
int r,g,b;
int bit0,bit1,bit2;
@@ -269,11 +269,11 @@ void esh_state::palette_init()
bit2 = (color_prom[i+0x100] >> 6) & 0x01;
b = (0x97 * bit2) + (0x47 * bit1) + (0x21 * bit0);
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
}
/* make color 0 transparent */
- palette_set_color(machine(), 0, rgb_t(0,0,0,0));
+ palette.set_pen_color(0, rgb_t(0,0,0,0));
}
static const gfx_layout esh_gfx_layout =
@@ -333,7 +333,8 @@ static MACHINE_CONFIG_START( esh, esh_state )
/* video hardware */
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(esh_state, esh)
MCFG_GFXDECODE_ADD("gfxdecode", esh)
diff --git a/src/mame/drivers/espial.c b/src/mame/drivers/espial.c
index da47b8c1b65..310e6bc30bc 100644
--- a/src/mame/drivers/espial.c
+++ b/src/mame/drivers/espial.c
@@ -332,8 +332,8 @@ static MACHINE_CONFIG_START( espial, espial_state )
MCFG_SCREEN_UPDATE_DRIVER(espial_state, screen_update_espial)
MCFG_GFXDECODE_ADD("gfxdecode", espial)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(espial_state, espial)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c
index 6ca896618be..975b805a49b 100644
--- a/src/mame/drivers/ettrivia.c
+++ b/src/mame/drivers/ettrivia.c
@@ -61,7 +61,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_bg);
TILE_GET_INFO_MEMBER(get_tile_info_fg);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(ettrivia);
UINT32 screen_update_ettrivia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(ettrivia_interrupt);
inline void get_tile_info(tile_data &tileinfo, int tile_index, UINT8 *vidram, int gfx_code);
@@ -221,7 +221,7 @@ TILE_GET_INFO_MEMBER(ettrivia_state::get_tile_info_fg)
get_tile_info(tileinfo, tile_index, m_fg_videoram, 1);
}
-void ettrivia_state::palette_init()
+PALETTE_INIT_MEMBER(ettrivia_state, ettrivia)
{
const UINT8 *color_prom = memregion("proms")->base();
static const int resistances[2] = { 270, 130 };
@@ -234,7 +234,7 @@ void ettrivia_state::palette_init()
2, resistances, weights, 0, 0,
0, 0, 0, 0, 0);
- for (i = 0;i < machine().total_colors(); i++)
+ for (i = 0;i < palette.entries(); i++)
{
int bit0, bit1;
int r, g, b;
@@ -254,7 +254,7 @@ void ettrivia_state::palette_init()
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), rgb_t(r, g, b));
+ palette.set_pen_color(BITSWAP8(i,5,7,6,2,1,0,4,3), rgb_t(r, g, b));
}
}
@@ -319,8 +319,8 @@ static MACHINE_CONFIG_START( ettrivia, ettrivia_state )
MCFG_SCREEN_UPDATE_DRIVER(ettrivia_state, screen_update_ettrivia)
MCFG_GFXDECODE_ADD("gfxdecode", ettrivia)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(ettrivia_state, ettrivia)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/exedexes.c b/src/mame/drivers/exedexes.c
index 1f586d4e782..1690d918b5d 100644
--- a/src/mame/drivers/exedexes.c
+++ b/src/mame/drivers/exedexes.c
@@ -235,8 +235,9 @@ static MACHINE_CONFIG_START( exedexes, exedexes_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", exedexes)
- MCFG_PALETTE_LENGTH(64*4+64*4+16*16+16*16)
-
+
+ MCFG_PALETTE_ADD("palette", 64*4+64*4+16*16+16*16)
+ MCFG_PALETTE_INIT_OWNER(exedexes_state, exedexes)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/exerion.c b/src/mame/drivers/exerion.c
index 3816735a5c4..66c80903dcc 100644
--- a/src/mame/drivers/exerion.c
+++ b/src/mame/drivers/exerion.c
@@ -420,8 +420,8 @@ static MACHINE_CONFIG_START( exerion, exerion_state )
MCFG_SCREEN_UPDATE_DRIVER(exerion_state, screen_update_exerion)
MCFG_GFXDECODE_ADD("gfxdecode", exerion)
- MCFG_PALETTE_LENGTH(256*3)
-
+ MCFG_PALETTE_ADD("palette", 256*3)
+ MCFG_PALETTE_INIT_OWNER(exerion_state, exerion)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/exidy.c b/src/mame/drivers/exidy.c
index 900a7b2043f..19c11aefb00 100644
--- a/src/mame/drivers/exidy.c
+++ b/src/mame/drivers/exidy.c
@@ -812,7 +812,7 @@ static MACHINE_CONFIG_START( base, exidy_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_GFXDECODE_ADD("gfxdecode", exidy)
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette", 8)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(EXIDY_PIXEL_CLOCK, EXIDY_HTOTAL, EXIDY_HBEND, EXIDY_HBSTART, EXIDY_VTOTAL, EXIDY_VBEND, EXIDY_VBSTART)
diff --git a/src/mame/drivers/expro02.c b/src/mame/drivers/expro02.c
index e7939d3fa42..f506c1a79b0 100644
--- a/src/mame/drivers/expro02.c
+++ b/src/mame/drivers/expro02.c
@@ -181,14 +181,14 @@ public:
DECLARE_DRIVER_INIT(galsnew);
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(expro02);
UINT32 screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(expro02_scanline);
required_device<cpu_device> m_maincpu;
};
-void expro02_state::palette_init()
+PALETTE_INIT_MEMBER(expro02_state, expro02)
{
int i;
@@ -196,7 +196,7 @@ void expro02_state::palette_init()
/* 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_pen_color(2048 + i,pal5bit(i >> 5),pal5bit(i >> 10),pal5bit(i >> 0));
}
UINT32 expro02_state::screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -418,7 +418,7 @@ WRITE16_MEMBER(expro02_state::galsnew_6295_bankswitch_w)
WRITE16_MEMBER(expro02_state::galsnew_paletteram_w)
{
data = COMBINE_DATA(&m_generic_paletteram_16[offset]);
- palette_set_color_rgb(machine(),offset,pal5bit(data >> 6),pal5bit(data >> 11),pal5bit(data >> 1));
+ m_palette->set_pen_color(offset,pal5bit(data >> 6),pal5bit(data >> 11),pal5bit(data >> 1));
}
@@ -560,7 +560,8 @@ static MACHINE_CONFIG_START( galsnew, expro02_state )
MCFG_SCREEN_UPDATE_DRIVER(expro02_state, screen_update_galsnew)
MCFG_GFXDECODE_ADD("gfxdecode", 1x4bit_1x4bit)
- MCFG_PALETTE_LENGTH(2048 + 32768)
+ MCFG_PALETTE_ADD("palette", 2048 + 32768)
+ MCFG_PALETTE_INIT_OWNER(expro02_state, expro02)
MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0)
kaneko_view2_tilemap_device::set_gfx_region(*device, 1);
diff --git a/src/mame/drivers/exprraid.c b/src/mame/drivers/exprraid.c
index 7e3cf4e649d..25e29e99e99 100644
--- a/src/mame/drivers/exprraid.c
+++ b/src/mame/drivers/exprraid.c
@@ -517,9 +517,7 @@ static MACHINE_CONFIG_START( exprraid, exprraid_state )
MCFG_SCREEN_UPDATE_DRIVER(exprraid_state, screen_update_exprraid)
MCFG_GFXDECODE_ADD("gfxdecode", exprraid)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/exterm.c b/src/mame/drivers/exterm.c
index d3f771a0581..74c9187c379 100644
--- a/src/mame/drivers/exterm.c
+++ b/src/mame/drivers/exterm.c
@@ -283,7 +283,7 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 16, exterm_state )
AM_RANGE(0x01500000, 0x0153ffff) AM_MIRROR(0xfc000000) AM_WRITE(exterm_output_port_0_w)
AM_RANGE(0x01580000, 0x015bffff) AM_MIRROR(0xfc000000) AM_WRITE(sound_latch_w)
AM_RANGE(0x015c0000, 0x015fffff) AM_MIRROR(0xfc000000) AM_WRITE(watchdog_reset16_w)
- AM_RANGE(0x01800000, 0x01807fff) AM_MIRROR(0xfc7f8000) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x01800000, 0x01807fff) AM_MIRROR(0xfc7f8000) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x02800000, 0x02807fff) AM_MIRROR(0xfc7f8000) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x03000000, 0x03ffffff) AM_MIRROR(0xfc000000) AM_ROM AM_REGION("user1", 0)
ADDRESS_MAP_END
@@ -458,7 +458,9 @@ static MACHINE_CONFIG_START( exterm, exterm_state )
MCFG_TIMER_DRIVER_ADD("snd_nmi_timer", exterm_state, master_sound_nmi_callback)
/* video hardware */
- MCFG_PALETTE_LENGTH(2048+32768)
+ MCFG_PALETTE_ADD("palette", 2048+32768)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ MCFG_PALETTE_INIT_OWNER(exterm_state, exterm)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(40000000/8, 318, 0, 256, 264, 0, 240)
diff --git a/src/mame/drivers/exzisus.c b/src/mame/drivers/exzisus.c
index 4bde78db4ce..ecc6d286139 100644
--- a/src/mame/drivers/exzisus.c
+++ b/src/mame/drivers/exzisus.c
@@ -287,9 +287,7 @@ static MACHINE_CONFIG_START( exzisus, exzisus_state )
MCFG_SCREEN_UPDATE_DRIVER(exzisus_state, screen_update_exzisus)
MCFG_GFXDECODE_ADD("gfxdecode", exzisus)
- MCFG_PALETTE_LENGTH(1024)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 1024)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/f-32.c b/src/mame/drivers/f-32.c
index 1b693821c6a..600d872ad48 100644
--- a/src/mame/drivers/f-32.c
+++ b/src/mame/drivers/f-32.c
@@ -149,8 +149,7 @@ static MACHINE_CONFIG_START( mosaicf2, mosaicf2_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 223)
MCFG_SCREEN_UPDATE_DRIVER(mosaicf2_state, screen_update_mosaicf2)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c
index 480e2f01e37..ced59e427ea 100644
--- a/src/mame/drivers/f1gp.c
+++ b/src/mame/drivers/f1gp.c
@@ -102,7 +102,7 @@ static ADDRESS_MAP_START( f1gp_cpu1_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0xff8000, 0xffbfff) AM_RAM // WORK RAM-1
AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_SHARE("sharedram") // DUAL RAM
AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(f1gp_fgvideoram_w) AM_SHARE("fgvideoram") // CHARACTER
- AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // PALETTE
+ AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // PALETTE
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS")
AM_RANGE(0xfff000, 0xfff001) AM_WRITE(f1gp_gfxctrl_w)
// AM_RANGE(0xfff002, 0xfff003) analog wheel?
@@ -124,7 +124,7 @@ static ADDRESS_MAP_START( f1gp2_cpu1_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0xff8000, 0xffbfff) AM_RAM // WORK RAM-1
AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_SHARE("sharedram") // DUAL RAM
AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(f1gp_fgvideoram_w) AM_SHARE("fgvideoram") // CHARACTER
- AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // PALETTE
+ AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // PALETTE
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS") AM_WRITE(f1gp2_gfxctrl_w)
// AM_RANGE(0xfff002, 0xfff003) analog wheel?
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW1")
@@ -197,7 +197,7 @@ static ADDRESS_MAP_START( f1gpb_cpu1_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0xff8000, 0xffbfff) AM_RAM
AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_SHARE("sharedram")
AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(f1gp_fgvideoram_w) AM_SHARE("fgvideoram")
- AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS")
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW1")
AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("DSW2")
@@ -462,19 +462,22 @@ static MACHINE_CONFIG_START( f1gp, f1gp_state )
MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gp)
MCFG_GFXDECODE_ADD("gfxdecode", f1gp)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( f1gp_state, f1gp_old_tile_callback )
MCFG_VSYSTEM_SPR2_SET_GFXREGION(1)
MCFG_VSYSTEM_SPR2_SET_PRITYPE(2)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( f1gp_state, f1gp_ol2_tile_callback )
MCFG_VSYSTEM_SPR2_SET_GFXREGION(2)
MCFG_VSYSTEM_SPR2_SET_PRITYPE(2)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(f1gp_state,f1gp)
@@ -517,7 +520,8 @@ static MACHINE_CONFIG_START( f1gpb, f1gp_state )
MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gpb)
MCFG_GFXDECODE_ADD("gfxdecode", f1gp)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(f1gp_state,f1gpb)
@@ -547,6 +551,7 @@ static MACHINE_CONFIG_DERIVED( f1gp2, f1gp )
MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( f1gp_state, f1gp2_tile_callback )
MCFG_VSYSTEM_SPR_SET_GFXREGION(1)
MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR_PALETTE("palette")
MCFG_DEVICE_REMOVE("k053936")
MCFG_K053936_ADD("k053936", f1gp2_k053936_intf)
diff --git a/src/mame/drivers/famibox.c b/src/mame/drivers/famibox.c
index ea2c058ead0..e35eab57dd2 100644
--- a/src/mame/drivers/famibox.c
+++ b/src/mame/drivers/famibox.c
@@ -116,7 +116,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(famibox);
UINT32 screen_update_famibox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(famicombox_attract_timer_callback);
TIMER_CALLBACK_MEMBER(famicombox_gameplay_timer_callback);
@@ -516,9 +516,9 @@ static const nesapu_interface famibox_interface_1 =
"maincpu"
};
-void famibox_state::palette_init()
+PALETTE_INIT_MEMBER(famibox_state, famibox)
{
- m_ppu->init_palette(machine(), 0);
+ m_ppu->init_palette(palette, 0);
}
void famibox_state::ppu_irq(int *ppu_regs)
@@ -592,7 +592,8 @@ static MACHINE_CONFIG_START( famibox, famibox_state )
MCFG_SCREEN_UPDATE_DRIVER(famibox_state, screen_update_famibox)
MCFG_GFXDECODE_ADD("gfxdecode", famibox)
- MCFG_PALETTE_LENGTH(8*4*16)
+ MCFG_PALETTE_ADD("palette", 8*4*16)
+ MCFG_PALETTE_INIT_OWNER(famibox_state, famibox)
MCFG_PPU2C04_ADD("ppu", ppu_interface)
diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c
index d71641ad8a2..08591b89032 100644
--- a/src/mame/drivers/fantland.c
+++ b/src/mame/drivers/fantland.c
@@ -123,7 +123,7 @@ static ADDRESS_MAP_START( fantland_map, AS_PROGRAM, 16, fantland_state )
AM_RANGE( 0x00000, 0x07fff ) AM_RAM
AM_RANGE( 0x08000, 0x7ffff ) AM_ROM
- AM_RANGE( 0xa2000, 0xa21ff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w ) AM_SHARE("paletteram")
+ AM_RANGE( 0xa2000, 0xa21ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE( 0xa3000, 0xa3001 ) AM_READ_PORT("a3000") AM_WRITE(fantland_nmi_enable_16_w )
AM_RANGE( 0xa3002, 0xa3003 ) AM_READ_PORT("a3002") AM_WRITE(fantland_soundlatch_16_w )
@@ -143,7 +143,7 @@ static ADDRESS_MAP_START( galaxygn_map, AS_PROGRAM, 8, fantland_state )
AM_RANGE( 0x00000, 0x07fff ) AM_RAM
AM_RANGE( 0x10000, 0x2ffff ) AM_ROM
- AM_RANGE( 0x52000, 0x521ff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w ) AM_SHARE("paletteram")
+ AM_RANGE( 0x52000, 0x521ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE( 0x53000, 0x53000 ) AM_READ_PORT("P1") AM_WRITE(fantland_nmi_enable_w )
AM_RANGE( 0x53001, 0x53001 ) AM_READ_PORT("P2")
@@ -235,7 +235,7 @@ static ADDRESS_MAP_START( borntofi_map, AS_PROGRAM, 8, fantland_state )
AM_RANGE( 0x00000, 0x07fff ) AM_RAM
AM_RANGE( 0x10000, 0x2ffff ) AM_ROM
- AM_RANGE( 0x52000, 0x521ff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w ) AM_SHARE("paletteram")
+ AM_RANGE( 0x52000, 0x521ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE( 0x53000, 0x53001 ) AM_READWRITE(borntofi_inputs_r, borntofi_nmi_enable_w )
AM_RANGE( 0x53002, 0x53002 ) AM_READ_PORT( "DSW" ) AM_WRITE(fantland_soundlatch_w )
AM_RANGE( 0x53003, 0x53003 ) AM_READ_PORT( "Controls" )
@@ -264,7 +264,7 @@ static ADDRESS_MAP_START( wheelrun_map, AS_PROGRAM, 8, fantland_state )
AM_RANGE(0x30000, 0x3ffff) AM_ROM
AM_RANGE(0x70000, 0x7ffff) AM_ROM
- AM_RANGE(0x52000, 0x521ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w ) AM_SHARE( "paletteram" )
+ AM_RANGE(0x52000, 0x521ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x53000, 0x53000) AM_READ_PORT( "53000" ) AM_WRITE(borntofi_nmi_enable_w )
AM_RANGE(0x53001, 0x53001) AM_READ_PORT( "53001" )
@@ -861,8 +861,8 @@ static MACHINE_CONFIG_START( fantland, fantland_state )
MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland)
MCFG_GFXDECODE_ADD("gfxdecode", fantland)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -905,7 +905,8 @@ static MACHINE_CONFIG_START( galaxygn, fantland_state )
MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland)
MCFG_GFXDECODE_ADD("gfxdecode", fantland)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1003,7 +1004,8 @@ static MACHINE_CONFIG_START( borntofi, fantland_state )
MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland)
MCFG_GFXDECODE_ADD("gfxdecode", fantland)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1038,7 +1040,8 @@ static MACHINE_CONFIG_START( wheelrun, fantland_state )
MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland)
MCFG_GFXDECODE_ADD("gfxdecode", fantland)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/fastfred.c b/src/mame/drivers/fastfred.c
index 25f8f88a2bf..e120a7ec8be 100644
--- a/src/mame/drivers/fastfred.c
+++ b/src/mame/drivers/fastfred.c
@@ -654,9 +654,9 @@ static MACHINE_CONFIG_START( fastfred, fastfred_state )
MCFG_SCREEN_UPDATE_DRIVER(fastfred_state, screen_update_fastfred)
MCFG_GFXDECODE_ADD("gfxdecode", fastfred)
- MCFG_PALETTE_LENGTH(32*8)
+ MCFG_PALETTE_ADD("palette", 32*8)
- MCFG_PALETTE_INIT_OVERRIDE(fastfred_state,fastfred)
+ MCFG_PALETTE_INIT_OWNER(fastfred_state,fastfred)
MCFG_VIDEO_START_OVERRIDE(fastfred_state,fastfred)
/* sound hardware */
@@ -693,7 +693,8 @@ static MACHINE_CONFIG_DERIVED( imago, fastfred )
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_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 256+64+2) /* 256 for characters, 64 for the stars and 2 for the web */
MCFG_GFXDECODE_MODIFY("gfxdecode", imago)
MCFG_VIDEO_START_OVERRIDE(fastfred_state,imago)
diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c
index ae102fb23a1..ac5446b1102 100644
--- a/src/mame/drivers/fastlane.c
+++ b/src/mame/drivers/fastlane.c
@@ -218,9 +218,11 @@ static MACHINE_CONFIG_START( fastlane, fastlane_state )
MCFG_SCREEN_UPDATE_DRIVER(fastlane_state, screen_update_fastlane)
MCFG_GFXDECODE_ADD("gfxdecode", fastlane)
- MCFG_PALETTE_LENGTH(1024*16)
+ MCFG_PALETTE_ADD("palette", 1024*16)
+ MCFG_PALETTE_INIT_OWNER(fastlane_state, fastlane)
MCFG_K007121_ADD("k007121")
+ MCFG_K007121_PALETTE("palette")
MCFG_K051733_ADD("k051733")
/* sound hardware */
diff --git a/src/mame/drivers/fcombat.c b/src/mame/drivers/fcombat.c
index 55a590ddbfc..d4a3eee122e 100644
--- a/src/mame/drivers/fcombat.c
+++ b/src/mame/drivers/fcombat.c
@@ -295,8 +295,8 @@ static MACHINE_CONFIG_START( fcombat, fcombat_state )
MCFG_SCREEN_UPDATE_DRIVER(fcombat_state, screen_update_fcombat)
MCFG_GFXDECODE_ADD("gfxdecode", fcombat)
- MCFG_PALETTE_LENGTH(256*3)
-
+ MCFG_PALETTE_ADD("palette", 256*3)
+ MCFG_PALETTE_INIT_OWNER(fcombat_state, fcombat)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/fcrash.c b/src/mame/drivers/fcrash.c
index cc3dac07410..cb68d823707 100644
--- a/src/mame/drivers/fcrash.c
+++ b/src/mame/drivers/fcrash.c
@@ -513,7 +513,7 @@ void cps_state::fcrash_render_sprites( screen_device &screen, bitmap_ind16 &bitm
ypos = 256 - ypos - 16;
xpos = xpos + m_sprite_x_offset + 49;
- m_gfxdecode->gfx(2)->prio_transpen(bitmap,cliprect, tileno, colour, flipx, flipy, xpos, ypos, screen.priority(), 0x02, 15);
+ m_gfxdecode->gfx(2)->prio_transpen(m_palette,bitmap,cliprect, tileno, colour, flipx, flipy, xpos, ypos, screen.priority(), 0x02, 15);
}
}
}
@@ -571,7 +571,7 @@ void cps_state::fcrash_build_palette()
g = ((palette >> 4) & 0x0f) * 0x11 * bright / 0x2d;
b = ((palette >> 0) & 0x0f) * 0x11 * bright / 0x2d;
- palette_set_color (machine(), offset, rgb_t(r, g, b));
+ m_palette->set_pen_color (offset, rgb_t(r, g, b));
}
}
@@ -1490,7 +1490,7 @@ static MACHINE_CONFIG_START( fcrash, cps_state )
MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE_ADD("gfxdecode", cps1)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
@@ -1548,7 +1548,7 @@ static MACHINE_CONFIG_START( kodb, cps_state )
MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE_ADD("gfxdecode", cps1)
- MCFG_PALETTE_LENGTH(0xc00)
+ MCFG_PALETTE_ADD("palette", 0xc00)
MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
@@ -1588,7 +1588,7 @@ static MACHINE_CONFIG_START( sf2mdt, cps_state )
MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE_ADD("gfxdecode", cps1)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
@@ -1631,7 +1631,7 @@ static MACHINE_CONFIG_START( knightsb, cps_state )
MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE_ADD("gfxdecode", cps1)
- MCFG_PALETTE_LENGTH(0xc00)
+ MCFG_PALETTE_ADD("palette", 0xc00)
MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
@@ -1970,7 +1970,7 @@ static MACHINE_CONFIG_START( dinopic, cps_state )
MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE_ADD("gfxdecode", cps1)
- MCFG_PALETTE_LENGTH(0xc00)
+ MCFG_PALETTE_ADD("palette", 0xc00)
MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
@@ -2122,7 +2122,7 @@ static MACHINE_CONFIG_START( sgyxz, cps_state )
MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE_ADD("gfxdecode", cps1)
- MCFG_PALETTE_LENGTH(0xc00)
+ MCFG_PALETTE_ADD("palette", 0xc00)
MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom")
@@ -2215,7 +2215,7 @@ static MACHINE_CONFIG_START( punipic, cps_state )
MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE_ADD("gfxdecode", cps1)
- MCFG_PALETTE_LENGTH(0xc00)
+ MCFG_PALETTE_ADD("palette", 0xc00)
MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
@@ -2401,7 +2401,7 @@ static MACHINE_CONFIG_START( sf2m1, cps_state )
MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE_ADD("gfxdecode", cps1)
- MCFG_PALETTE_LENGTH(0xc00)
+ MCFG_PALETTE_ADD("palette", 0xc00)
MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
/* sound hardware */
@@ -2605,7 +2605,7 @@ static MACHINE_CONFIG_START( slampic, cps_state )
MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE_ADD("gfxdecode", cps1)
- MCFG_PALETTE_LENGTH(0xc00)
+ MCFG_PALETTE_ADD("palette", 0xc00)
MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
diff --git a/src/mame/drivers/feversoc.c b/src/mame/drivers/feversoc.c
index 0b6ed15238c..2617141d05d 100644
--- a/src/mame/drivers/feversoc.c
+++ b/src/mame/drivers/feversoc.c
@@ -102,7 +102,7 @@ UINT32 feversoc_state::screen_update_feversoc(screen_device &screen, bitmap_ind1
UINT32 *spriteram32 = m_spriteram;
int offs,spr_offs,colour,sx,sy,h,w,dx,dy;
- bitmap.fill(machine().pens[0], cliprect); //black pen
+ bitmap.fill(m_palette->pen(0), cliprect); //black pen
for(offs=(0x2000/4)-2;offs>-1;offs-=2)
{
@@ -120,7 +120,7 @@ UINT32 feversoc_state::screen_update_feversoc(screen_device &screen, bitmap_ind1
for(dx=0;dx<w;dx++)
for(dy=0;dy<h;dy++)
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,spr_offs++,colour,0,0,(sx+dx*16),(sy+dy*16),0x3f);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,spr_offs++,colour,0,0,(sx+dx*16),(sy+dy*16),0x3f);
}
return 0;
@@ -135,13 +135,13 @@ WRITE32_MEMBER(feversoc_state::fs_paletteram_w)
g = ((m_generic_paletteram_32[offset] & 0x03e00000)>>16) >> 2;
b = ((m_generic_paletteram_32[offset] & 0x7c000000)>>16) >> 7;
- palette_set_color(machine(),offset*2+0,rgb_t(r,g,b));
+ m_palette->set_pen_color(offset*2+0,rgb_t(r,g,b));
r = (m_generic_paletteram_32[offset] & 0x001f) << 3;
g = (m_generic_paletteram_32[offset] & 0x03e0) >> 2;
b = (m_generic_paletteram_32[offset] & 0x7c00) >> 7;
- palette_set_color(machine(),offset*2+1,rgb_t(r,g,b));
+ m_palette->set_pen_color(offset*2+1,rgb_t(r,g,b));
}
READ32_MEMBER(feversoc_state::in0_r)
@@ -275,7 +275,7 @@ static MACHINE_CONFIG_START( feversoc, feversoc_state )
MCFG_SCREEN_UPDATE_DRIVER(feversoc_state, screen_update_feversoc)
MCFG_GFXDECODE_ADD("gfxdecode", feversoc)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
/* sound hardware */
diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c
index e123d95ea03..ba22042dc75 100644
--- a/src/mame/drivers/fgoal.c
+++ b/src/mame/drivers/fgoal.c
@@ -44,7 +44,7 @@ int fgoal_state::intensity(int bits)
}
-void fgoal_state::palette_init()
+PALETTE_INIT_MEMBER(fgoal_state, fgoal)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
@@ -54,17 +54,17 @@ void fgoal_state::palette_init()
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_pen_color(i, intensity(color >> 4), intensity(color >> 2), intensity(color >> 0));
}
for (i = 0; i < 8; i++)
{
- palette_set_color(machine(), 128 + 0*8 + i, rgb_t(0x2e,0x80,0x2e));
- palette_set_color(machine(), 128 + 1*8 + i, rgb_t(0x2e,0x2e,0x2e));
+ palette.set_pen_color(128 + 0*8 + i, rgb_t(0x2e,0x80,0x2e));
+ palette.set_pen_color(128 + 1*8 + i, rgb_t(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_pen_color(128 + 16, intensity(0x38 >> 4), intensity(0x38 >> 2), intensity(0x38 >> 0));
}
@@ -378,8 +378,8 @@ static MACHINE_CONFIG_START( fgoal, fgoal_state )
MCFG_SCREEN_UPDATE_DRIVER(fgoal_state, screen_update_fgoal)
MCFG_GFXDECODE_ADD("gfxdecode", fgoal)
- MCFG_PALETTE_LENGTH(128 + 16 + 1)
-
+ MCFG_PALETTE_ADD("palette", 128 + 16 + 1)
+ MCFG_PALETTE_INIT_OWNER(fgoal_state, fgoal)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/finalizr.c b/src/mame/drivers/finalizr.c
index bc3e806bd70..6c96ad091d2 100644
--- a/src/mame/drivers/finalizr.c
+++ b/src/mame/drivers/finalizr.c
@@ -271,8 +271,8 @@ static MACHINE_CONFIG_START( finalizr, finalizr_state )
MCFG_SCREEN_UPDATE_DRIVER(finalizr_state, screen_update_finalizr)
MCFG_GFXDECODE_ADD("gfxdecode", finalizr)
- MCFG_PALETTE_LENGTH(2*16*16)
-
+ MCFG_PALETTE_ADD("palette", 2*16*16)
+ MCFG_PALETTE_INIT_OWNER(finalizr_state, finalizr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/firebeat.c b/src/mame/drivers/firebeat.c
index 9b1c43c4e87..079decc967e 100644
--- a/src/mame/drivers/firebeat.c
+++ b/src/mame/drivers/firebeat.c
@@ -1762,8 +1762,7 @@ static MACHINE_CONFIG_START( firebeat, firebeat_state )
MCFG_DEVICE_CARD_MACHINE_CONFIG( "cdrom", cdrom_config )
/* video hardware */
- MCFG_PALETTE_LENGTH(32768)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -1810,8 +1809,7 @@ static MACHINE_CONFIG_START( firebeat2, firebeat_state )
MCFG_DEVICE_CARD_MACHINE_CONFIG( "cdrom", cdrom_config )
/* video hardware */
- MCFG_PALETTE_LENGTH(32768)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
MCFG_SCREEN_ADD("lscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
diff --git a/src/mame/drivers/firefox.c b/src/mame/drivers/firefox.c
index a2f24f98a14..dd2d9f9a418 100644
--- a/src/mame/drivers/firefox.c
+++ b/src/mame/drivers/firefox.c
@@ -229,7 +229,7 @@ UINT32 firefox_state::screen_update_firefox(screen_device &screen, bitmap_rgb32
int sprite;
int gfxtop = screen.visible_area().min_y;
- bitmap.fill(palette_get_color(machine(), 256), cliprect);
+ bitmap.fill(m_palette->pen_color(256), cliprect);
for( sprite = 0; sprite < 32; sprite++ )
{
@@ -249,7 +249,7 @@ UINT32 firefox_state::screen_update_firefox(screen_device &screen, bitmap_rgb32
int flipx = flags & 0x20;
int code = sprite_data[ 15 - row ] + ( 256 * ( ( flags >> 6 ) & 3 ) );
- m_gfxdecode->gfx( 1 )->transpen(bitmap,cliprect, code, color, flipx, flipy, x + 8, gfxtop + 500 - y - ( row * 16 ), 0 );
+ m_gfxdecode->gfx( 1 )->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, x + 8, gfxtop + 500 - y - ( row * 16 ), 0 );
}
}
}
@@ -273,7 +273,7 @@ void firefox_state::set_rgba( int start, int index, unsigned char *palette_ram )
int b = palette_ram[ index + 512 ];
int a = ( b & 3 ) * 0x55;
- palette_set_color( machine(), start + index, rgb_t( a, r, g, b ) );
+ m_palette->set_pen_color( start + index, rgb_t( a, r, g, b ) );
}
WRITE8_MEMBER(firefox_state::tile_palette_w)
@@ -722,7 +722,7 @@ static MACHINE_CONFIG_START( firefox, firefox_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", firefox)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_LASERDISC_22VP931_ADD("laserdisc")
diff --git a/src/mame/drivers/firetrap.c b/src/mame/drivers/firetrap.c
index ce99197bd41..f11e7ab1316 100644
--- a/src/mame/drivers/firetrap.c
+++ b/src/mame/drivers/firetrap.c
@@ -651,7 +651,8 @@ static MACHINE_CONFIG_START( firetrap, firetrap_state )
MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap)
MCFG_GFXDECODE_ADD("gfxdecode", firetrap)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(firetrap_state, firetrap)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -686,7 +687,8 @@ static MACHINE_CONFIG_START( firetrapbl, firetrap_state )
MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap)
MCFG_GFXDECODE_ADD("gfxdecode", firetrap)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(firetrap_state, firetrap)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c
index 0e91959dbe1..d41ba2042eb 100644
--- a/src/mame/drivers/firetrk.c
+++ b/src/mame/drivers/firetrk.c
@@ -866,7 +866,9 @@ static MACHINE_CONFIG_START( firetrk, firetrk_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_firetrk)
- MCFG_PALETTE_LENGTH(28)
+ MCFG_PALETTE_ADD("palette", 28)
+ MCFG_PALETTE_INIT_OWNER(firetrk_state, firetrk)
+
MCFG_GFXDECODE_ADD("gfxdecode", firetrk)
/* sound hardware */
@@ -890,7 +892,10 @@ static MACHINE_CONFIG_DERIVED( superbug, firetrk )
MCFG_VIDEO_START_OVERRIDE(firetrk_state,superbug)
MCFG_GFXDECODE_MODIFY("gfxdecode", superbug)
- MCFG_PALETTE_LENGTH(28)
+
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 28)
+ MCFG_PALETTE_INIT_OWNER(firetrk_state, firetrk)
/* sound hardware */
MCFG_SOUND_REPLACE("discrete", DISCRETE, 0)
@@ -912,8 +917,9 @@ static MACHINE_CONFIG_DERIVED( montecar, firetrk )
MCFG_VIDEO_START_OVERRIDE(firetrk_state,montecar)
MCFG_GFXDECODE_MODIFY("gfxdecode", montecar)
- MCFG_PALETTE_INIT_OVERRIDE(firetrk_state,montecar)
- MCFG_PALETTE_LENGTH(46)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 46)
+ MCFG_PALETTE_INIT_OWNER(firetrk_state,montecar)
/* sound hardware */
MCFG_SOUND_REPLACE("discrete", DISCRETE, 0)
diff --git a/src/mame/drivers/fitfight.c b/src/mame/drivers/fitfight.c
index f40eed9a69b..590b0e0d585 100644
--- a/src/mame/drivers/fitfight.c
+++ b/src/mame/drivers/fitfight.c
@@ -169,7 +169,7 @@ static ADDRESS_MAP_START( fitfight_main_map, AS_PROGRAM, 16, fitfight_state )
AM_RANGE(0xb14000, 0xb17fff) AM_RAM //used by histryma @0x0000b25a,b270
AM_RANGE(0xb18000, 0xb1bfff) AM_RAM //used by histryma @0x0000b25a,b270,b286
- AM_RANGE(0xc00000, 0xc00fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xc00000, 0xc00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_SHARE("spriteram")
@@ -201,7 +201,7 @@ static ADDRESS_MAP_START( bbprot_main_map, AS_PROGRAM, 16, fitfight_state )
AM_RANGE(0xb0c000, 0xb0ffff) AM_RAM_WRITE(fof_txt_tileram_w) AM_SHARE("fof_txt_tileram")
AM_RANGE(0xc00000, 0xc00fff) AM_READONLY
- AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xc00000, 0xc03fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_SHARE("spriteram")
@@ -744,7 +744,8 @@ static MACHINE_CONFIG_START( fitfight, fitfight_state )
MCFG_SCREEN_VISIBLE_AREA(2*8, 39*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(fitfight_state, screen_update_fitfight)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -769,7 +770,8 @@ static MACHINE_CONFIG_START( bbprot, fitfight_state )
MCFG_SCREEN_VISIBLE_AREA(2*8, 39*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(fitfight_state, screen_update_fitfight)
- MCFG_PALETTE_LENGTH(0x2000)
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/flipjack.c b/src/mame/drivers/flipjack.c
index cf9ad949fee..5d69522a933 100644
--- a/src/mame/drivers/flipjack.c
+++ b/src/mame/drivers/flipjack.c
@@ -126,7 +126,7 @@ public:
DECLARE_READ8_MEMBER(flipjack_soundlatch_r);
DECLARE_WRITE8_MEMBER(flipjack_portc_w);
virtual void machine_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(flipjack);
UINT32 screen_update_flipjack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -137,19 +137,19 @@ public:
***************************************************************************/
-void flipjack_state::palette_init()
+PALETTE_INIT_MEMBER(flipjack_state, flipjack)
{
// from prom
const UINT8 *color_prom = 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_pen_color(2*i+1, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
+ palette.set_pen_color(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_pen_color(i+0x80, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
}
@@ -157,7 +157,7 @@ UINT32 flipjack_state::screen_update_flipjack(screen_device &screen, bitmap_rgb3
{
int x,y,count;
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
// draw playfield
if (m_layer & 2)
@@ -184,7 +184,7 @@ UINT32 flipjack_state::screen_update_flipjack(screen_device &screen, bitmap_rgb3
color = ((pen_r >> (7-xi)) & 1)<<0;
color|= ((pen_g >> (7-xi)) & 1)<<1;
color|= ((pen_b >> (7-xi)) & 1)<<2;
- bitmap.pix32(y, x+xi) = machine().pens[color+0x80];
+ bitmap.pix32(y, x+xi) = m_palette->pen(color+0x80);
}
}
@@ -202,7 +202,7 @@ UINT32 flipjack_state::screen_update_flipjack(screen_device &screen, bitmap_rgb3
int tile = m_bank << 8 | m_vram[x+y*0x100];
int color = m_cram[x+y*0x100] & 0x3f;
- gfx->transpen(bitmap,cliprect, tile, color, 0, 0, x*8, y*8, 0);
+ gfx->transpen(m_palette,bitmap,cliprect, tile, color, 0, 0, x*8, y*8, 0);
}
}
@@ -226,7 +226,7 @@ UINT32 flipjack_state::screen_update_flipjack(screen_device &screen, bitmap_rgb3
{
color = ((pen >> (7-xi)) & 1) ? 0x87 : 0;
if(color)
- bitmap.pix32(y, x+xi) = machine().pens[color];
+ bitmap.pix32(y, x+xi) = m_palette->pen(color);
}
}
@@ -503,7 +503,8 @@ static MACHINE_CONFIG_START( flipjack, flipjack_state )
MCFG_GFXDECODE_ADD("gfxdecode", flipjack)
- MCFG_PALETTE_LENGTH(128+8)
+ MCFG_PALETTE_ADD("palette", 128+8)
+ MCFG_PALETTE_INIT_OWNER(flipjack_state, flipjack)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/flkatck.c b/src/mame/drivers/flkatck.c
index 5800d70c4a3..1348a86cdad 100644
--- a/src/mame/drivers/flkatck.c
+++ b/src/mame/drivers/flkatck.c
@@ -91,7 +91,7 @@ static ADDRESS_MAP_START( flkatck_map, AS_PROGRAM, 8, flkatck_state )
AM_RANGE(0x0000, 0x0007) AM_RAM_WRITE(flkatck_k007121_regs_w) /* 007121 registers */
AM_RANGE(0x0008, 0x03ff) AM_RAM /* RAM */
AM_RANGE(0x0400, 0x041f) AM_READWRITE(flkatck_ls138_r, flkatck_ls138_w) /* inputs, DIPS, bankswitch, counters, sound command */
- AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_le_w) AM_SHARE("paletteram") /* palette */
+ AM_RANGE(0x0800, 0x0bff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* palette */
AM_RANGE(0x1000, 0x1fff) AM_RAM /* RAM */
AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE(flkatck_k007121_w) AM_SHARE("k007121_ram") /* Video RAM (007121) */
AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank1") /* banked ROM */
@@ -230,10 +230,11 @@ static MACHINE_CONFIG_START( flkatck, flkatck_state )
MCFG_SCREEN_UPDATE_DRIVER(flkatck_state, screen_update_flkatck)
MCFG_GFXDECODE_ADD("gfxdecode", flkatck)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_K007121_ADD("k007121")
+ MCFG_K007121_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/flower.c b/src/mame/drivers/flower.c
index 10cb80532ae..e9722444d95 100644
--- a/src/mame/drivers/flower.c
+++ b/src/mame/drivers/flower.c
@@ -274,7 +274,8 @@ static MACHINE_CONFIG_START( flower, flower_state )
MCFG_SCREEN_UPDATE_DRIVER(flower_state, screen_update_flower)
MCFG_GFXDECODE_ADD("gfxdecode", flower)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(flower_state, flower)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c
index bc2a8bf216e..656695d748c 100644
--- a/src/mame/drivers/flstory.c
+++ b/src/mame/drivers/flstory.c
@@ -1086,7 +1086,8 @@ static MACHINE_CONFIG_START( flstory, flstory_state )
MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_flstory)
MCFG_GFXDECODE_ADD("gfxdecode", flstory)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(flstory_state,flstory)
@@ -1143,7 +1144,8 @@ static MACHINE_CONFIG_START( onna34ro, flstory_state )
MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_flstory)
MCFG_GFXDECODE_ADD("gfxdecode", flstory)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(flstory_state,flstory)
@@ -1200,7 +1202,8 @@ static MACHINE_CONFIG_START( victnine, flstory_state )
MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_victnine)
MCFG_GFXDECODE_ADD("gfxdecode", flstory)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(flstory_state,victnine)
@@ -1263,7 +1266,8 @@ static MACHINE_CONFIG_START( rumba, flstory_state )
MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_rumba)
MCFG_GFXDECODE_ADD("gfxdecode", flstory)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(flstory_state,rumba)
diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c
index 3f6807149e0..789901f5b6c 100644
--- a/src/mame/drivers/flyball.c
+++ b/src/mame/drivers/flyball.c
@@ -69,7 +69,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(flyball);
UINT32 screen_update_flyball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(flyball_joystick_callback);
TIMER_CALLBACK_MEMBER(flyball_quarter_callback);
@@ -132,7 +132,7 @@ UINT32 flyball_state::screen_update_flyball(screen_device &screen, bitmap_ind16
m_tmap->draw(screen, bitmap, cliprect, 0, 0);
/* draw pitcher */
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, m_pitcher_pic ^ 0xf, 0, 1, 0, pitcherx, pitchery, 1);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, m_pitcher_pic ^ 0xf, 0, 1, 0, pitcherx, pitchery, 1);
/* draw ball */
@@ -386,12 +386,12 @@ static GFXDECODE_START( flyball )
GFXDECODE_END
-void flyball_state::palette_init()
+PALETTE_INIT_MEMBER(flyball_state, flyball)
{
- palette_set_color(machine(), 0, rgb_t(0x3F, 0x3F, 0x3F)); /* tiles, ball */
- palette_set_color(machine(), 1, rgb_t(0xFF, 0xFF, 0xFF));
- palette_set_color(machine(), 2, rgb_t(0xFF ,0xFF, 0xFF)); /* sprites */
- palette_set_color(machine(), 3, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(0, rgb_t(0x3F, 0x3F, 0x3F)); /* tiles, ball */
+ palette.set_pen_color(1, rgb_t(0xFF, 0xFF, 0xFF));
+ palette.set_pen_color(2, rgb_t(0xFF ,0xFF, 0xFF)); /* sprites */
+ palette.set_pen_color(3, rgb_t(0x00, 0x00, 0x00));
}
@@ -452,8 +452,8 @@ static MACHINE_CONFIG_START( flyball, flyball_state )
MCFG_SCREEN_UPDATE_DRIVER(flyball_state, screen_update_flyball)
MCFG_GFXDECODE_ADD("gfxdecode", flyball)
- MCFG_PALETTE_LENGTH(4)
-
+ MCFG_PALETTE_ADD("palette", 4)
+ MCFG_PALETTE_INIT_OWNER(flyball_state, flyball)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c
index 31fbef0aa4c..c4a9f971e84 100644
--- a/src/mame/drivers/foodf.c
+++ b/src/mame/drivers/foodf.c
@@ -367,7 +367,7 @@ static MACHINE_CONFIG_START( foodf, foodf_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", foodf)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("playfield", 2, foodf_state, get_playfield_tile_info, 8,8, SCAN_COLS, 32,32, 0)
diff --git a/src/mame/drivers/fortecar.c b/src/mame/drivers/fortecar.c
index 8ba05ee1704..8f39e3a2e77 100644
--- a/src/mame/drivers/fortecar.c
+++ b/src/mame/drivers/fortecar.c
@@ -346,7 +346,7 @@ public:
DECLARE_DRIVER_INIT(fortecar);
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(fortecar);
UINT32 screen_update_fortecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<eeprom_serial_93cxx_device> m_eeprom;
required_device<gfxdecode_device> m_gfxdecode;
@@ -375,7 +375,7 @@ UINT32 fortecar_state::screen_update_fortecar(screen_device &screen, bitmap_ind1
if(bpp)
color&=0x3;
- m_gfxdecode->gfx(bpp)->opaque(bitmap,cliprect,tile,color,0,0,x*8,y*8);
+ m_gfxdecode->gfx(bpp)->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*8,y*8);
count++;
}
@@ -384,7 +384,7 @@ UINT32 fortecar_state::screen_update_fortecar(screen_device &screen, bitmap_ind1
return 0;
}
-void fortecar_state::palette_init()
+PALETTE_INIT_MEMBER(fortecar_state, fortecar)
{
const UINT8 *color_prom = memregion("proms")->base();
/* Video resistors...
@@ -431,7 +431,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, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -699,8 +699,8 @@ static MACHINE_CONFIG_START( fortecar, fortecar_state )
MCFG_V3021_ADD("rtc")
MCFG_GFXDECODE_ADD("gfxdecode", fortecar)
- MCFG_PALETTE_LENGTH(0x200)
-
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_INIT_OWNER(fortecar_state, fortecar)
MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf) /* 1.5 MHz, measured */
diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c
index 37825da3608..ead25abeb1b 100644
--- a/src/mame/drivers/freekick.c
+++ b/src/mame/drivers/freekick.c
@@ -638,8 +638,7 @@ static MACHINE_CONFIG_START( base, freekick_state )
MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_pbillrd)
MCFG_GFXDECODE_ADD("gfxdecode", freekick)
- MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x200)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/fresh.c b/src/mame/drivers/fresh.c
index 75b75ae6f9d..8816eaff0a5 100644
--- a/src/mame/drivers/fresh.c
+++ b/src/mame/drivers/fresh.c
@@ -154,7 +154,7 @@ void fresh_state::update_palette( int offset )
UINT16 pal1 = m_paletteram_1[offset];
UINT8 pal2 = m_paletteram_2[offset];
- palette_set_color(machine(),offset,rgb_t(pal1&0xff,(pal1>>8)&0xff,pal2));
+ m_palette->set_pen_color(offset,rgb_t(pal1&0xff,(pal1>>8)&0xff,pal2));
}
WRITE16_MEMBER(fresh_state::fresh_paletteram_1_w)
@@ -626,7 +626,7 @@ static MACHINE_CONFIG_START( fresh, fresh_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(fresh_state, screen_update_fresh)
- MCFG_PALETTE_LENGTH(0x1000) // or 0xc00
+ MCFG_PALETTE_ADD("palette", 0x1000) // or 0xc00
MCFG_GFXDECODE_ADD("gfxdecode", fresh)
/* sound hw? */
diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c
index 870755c6909..fd1656aee74 100644
--- a/src/mame/drivers/fromanc2.c
+++ b/src/mame/drivers/fromanc2.c
@@ -538,7 +538,7 @@ static MACHINE_CONFIG_START( fromanc2, fromanc2_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", fromanc2)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
MCFG_SCREEN_ADD("lscreen", RASTER)
@@ -588,7 +588,7 @@ static MACHINE_CONFIG_START( fromancr, fromanc2_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", fromancr)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
MCFG_SCREEN_ADD("lscreen", RASTER)
@@ -634,7 +634,7 @@ static MACHINE_CONFIG_START( fromanc4, fromanc2_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", fromancr)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
diff --git a/src/mame/drivers/fromance.c b/src/mame/drivers/fromance.c
index 381c1b63f1c..842d5ef3bdc 100644
--- a/src/mame/drivers/fromance.c
+++ b/src/mame/drivers/fromance.c
@@ -1043,7 +1043,7 @@ static MACHINE_CONFIG_START( nekkyoku, fromance_state )
MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
MCFG_GFXDECODE_ADD("gfxdecode", fromance)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_VIDEO_START_OVERRIDE(fromance_state,nekkyoku)
@@ -1081,7 +1081,7 @@ static MACHINE_CONFIG_START( idolmj, fromance_state )
MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
MCFG_GFXDECODE_ADD("gfxdecode", fromance)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_VIDEO_START_OVERRIDE(fromance_state,fromance)
@@ -1119,7 +1119,7 @@ static MACHINE_CONFIG_START( fromance, fromance_state )
MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
MCFG_GFXDECODE_ADD("gfxdecode", fromance)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_VIDEO_START_OVERRIDE(fromance_state,fromance)
diff --git a/src/mame/drivers/funkybee.c b/src/mame/drivers/funkybee.c
index c8b4e1fe924..e124dbf777f 100644
--- a/src/mame/drivers/funkybee.c
+++ b/src/mame/drivers/funkybee.c
@@ -306,8 +306,8 @@ static MACHINE_CONFIG_START( funkybee, funkybee_state )
MCFG_SCREEN_UPDATE_DRIVER(funkybee_state, screen_update_funkybee)
MCFG_GFXDECODE_ADD("gfxdecode", funkybee)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(funkybee_state, funkybee)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/funkyjet.c b/src/mame/drivers/funkyjet.c
index d72c28dce09..1da2c73740b 100644
--- a/src/mame/drivers/funkyjet.c
+++ b/src/mame/drivers/funkyjet.c
@@ -127,7 +127,7 @@ WRITE16_MEMBER( funkyjet_state::funkyjet_protection_region_0_146_w )
static ADDRESS_MAP_START( funkyjet_map, AS_PROGRAM, 16, funkyjet_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x120000, 0x1207ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x140000, 0x143fff) AM_RAM
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(funkyjet_protection_region_0_146_r,funkyjet_protection_region_0_146_w) AM_SHARE("prot16ram") /* Protection device */ // unlikely to be cs0 region
@@ -338,14 +338,17 @@ static MACHINE_CONFIG_START( funkyjet, funkyjet_state )
MCFG_GFXDECODE_ADD("gfxdecode", funkyjet)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_DECO16IC_ADD("tilegen1", funkyjet_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 2);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c
index 3879648b813..712ec3f9701 100644
--- a/src/mame/drivers/funworld.c
+++ b/src/mame/drivers/funworld.c
@@ -2945,8 +2945,8 @@ static MACHINE_CONFIG_START( fw1stpal, funworld_state )
MCFG_GFXDECODE_ADD("gfxdecode", fw1stpal)
- MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT_OVERRIDE(funworld_state, funworld)
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_INIT_OWNER(funworld_state, funworld)
MCFG_VIDEO_START_OVERRIDE(funworld_state, funworld)
MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf) /* 2MHz, veryfied on jollycrd & royalcrd */
diff --git a/src/mame/drivers/funybubl.c b/src/mame/drivers/funybubl.c
index 6e840d4bec8..53c85fdc37c 100644
--- a/src/mame/drivers/funybubl.c
+++ b/src/mame/drivers/funybubl.c
@@ -234,7 +234,7 @@ static MACHINE_CONFIG_START( funybubl, funybubl_state )
MCFG_SCREEN_UPDATE_DRIVER(funybubl_state, screen_update_funybubl)
MCFG_GFXDECODE_ADD("gfxdecode", funybubl)
- MCFG_PALETTE_LENGTH(0x400)
+ MCFG_PALETTE_ADD("palette", 0x400)
/* sound hardware */
diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c
index 9df20d97701..5d37389987d 100644
--- a/src/mame/drivers/fuukifg2.c
+++ b/src/mame/drivers/fuukifg2.c
@@ -91,7 +91,7 @@ static ADDRESS_MAP_START( fuuki16_map, AS_PROGRAM, 16, fuuki16_state )
AM_RANGE(0x504000, 0x505fff) AM_RAM_WRITE(fuuki16_vram_2_w) AM_SHARE("vram.2") //
AM_RANGE(0x506000, 0x507fff) AM_RAM_WRITE(fuuki16_vram_3_w) AM_SHARE("vram.3") //
AM_RANGE(0x600000, 0x601fff) AM_MIRROR(0x008000) AM_RAM AM_SHARE("spriteram") // Sprites, mirrored?
- AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x700000, 0x703fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x810000, 0x810001) AM_READ_PORT("P1_P2")
AM_RANGE(0x880000, 0x880001) AM_READ_PORT("DSW")
@@ -466,7 +466,8 @@ static MACHINE_CONFIG_START( fuuki16, fuuki16_state )
MCFG_SCREEN_UPDATE_DRIVER(fuuki16_state, screen_update_fuuki16)
MCFG_GFXDECODE_ADD("gfxdecode", fuuki16)
- MCFG_PALETTE_LENGTH(0x800*4)
+ MCFG_PALETTE_ADD("palette", 0x800*4)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c
index f9e61d0c5d5..4c08deb2444 100644
--- a/src/mame/drivers/fuukifg3.c
+++ b/src/mame/drivers/fuukifg3.c
@@ -175,7 +175,7 @@ WRITE32_MEMBER(fuuki32_state::paletteram32_xRRRRRGGGGGBBBBB_dword_w)
g = (m_paletteram[offset] & 0x03e00000) >> (5 + 16);
b = (m_paletteram[offset] & 0x001f0000) >> (0 + 16);
- palette_set_color_rgb(machine(), offset * 2, pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color(offset * 2, pal5bit(r), pal5bit(g), pal5bit(b));
}
if(ACCESSING_BITS_0_15)
@@ -187,7 +187,7 @@ WRITE32_MEMBER(fuuki32_state::paletteram32_xRRRRRGGGGGBBBBB_dword_w)
g = (m_paletteram[offset] & 0x000003e0) >> (5);
b = (m_paletteram[offset] & 0x0000001f) >> (0);
- palette_set_color_rgb(machine(), offset * 2 + 1, pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color(offset * 2 + 1, pal5bit(r), pal5bit(g), pal5bit(b));
}
}
@@ -592,7 +592,7 @@ static MACHINE_CONFIG_START( fuuki32, fuuki32_state )
MCFG_SCREEN_VBLANK_DRIVER(fuuki32_state, screen_eof_fuuki32)
MCFG_GFXDECODE_ADD("gfxdecode", fuuki32)
- MCFG_PALETTE_LENGTH(0x4000/2)
+ MCFG_PALETTE_ADD("palette", 0x4000/2)
/* sound hardware */
diff --git a/src/mame/drivers/gaelco.c b/src/mame/drivers/gaelco.c
index 113d2d3f44f..38b73625a68 100644
--- a/src/mame/drivers/gaelco.c
+++ b/src/mame/drivers/gaelco.c
@@ -117,7 +117,7 @@ static ADDRESS_MAP_START( bigkarnk_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x102000, 0x103fff) AM_RAM /* Screen RAM */
AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */
// AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset_w) /* INT 6 ACK/Watchdog timer */
- AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette */
+ AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW1")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW2")
@@ -144,7 +144,7 @@ static ADDRESS_MAP_START( maniacsq_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x102000, 0x103fff) AM_RAM /* Screen RAM */
AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */
// AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset_w) /* INT 6 ACK/Watchdog timer */
- AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette */
+ AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
@@ -161,7 +161,7 @@ static ADDRESS_MAP_START( squash_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(gaelco_encrypted_w) AM_SHARE("screenram") /* Screen RAM */
AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */
// AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset_w) /* INT 6 ACK/Watchdog timer */
- AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette */
+ AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
@@ -178,7 +178,7 @@ static ADDRESS_MAP_START( thoop_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(thoop_encrypted_w) AM_SHARE("screenram") /* Screen RAM */
AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */
// AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset_w) /* INT 6 ACK/Watchdog timer */
- AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette */
+ AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
@@ -516,7 +516,8 @@ static MACHINE_CONFIG_START( bigkarnk, gaelco_state )
MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_bigkarnk)
MCFG_GFXDECODE_ADD("gfxdecode", 0x100000)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(gaelco_state,bigkarnk)
@@ -547,7 +548,8 @@ static MACHINE_CONFIG_START( maniacsq, gaelco_state )
MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq)
MCFG_GFXDECODE_ADD("gfxdecode", 0x100000)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(gaelco_state,maniacsq)
@@ -577,7 +579,8 @@ static MACHINE_CONFIG_START( squash, gaelco_state )
MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq)
MCFG_GFXDECODE_ADD("gfxdecode", 0x100000)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(gaelco_state,maniacsq)
@@ -607,7 +610,8 @@ static MACHINE_CONFIG_START( thoop, gaelco_state )
MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq)
MCFG_GFXDECODE_ADD("gfxdecode", 0x100000)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(gaelco_state,maniacsq)
diff --git a/src/mame/drivers/gaelco2.c b/src/mame/drivers/gaelco2.c
index 453a792bc3e..57483239bfe 100644
--- a/src/mame/drivers/gaelco2.c
+++ b/src/mame/drivers/gaelco2.c
@@ -171,7 +171,7 @@ static MACHINE_CONFIG_START( maniacsq, gaelco2_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", 0x0080000)
- MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
+ MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2)
@@ -291,7 +291,7 @@ static MACHINE_CONFIG_START( bang, gaelco2_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", 0x0200000)
- MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
+ MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2)
@@ -532,7 +532,7 @@ static MACHINE_CONFIG_START( alighunt, gaelco2_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", 0x0400000)
- MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
+ MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2)
@@ -765,7 +765,7 @@ static MACHINE_CONFIG_START( touchgo, gaelco2_state )
/* video hardware */
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_GFXDECODE_ADD("gfxdecode", 0x0400000)
- MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
+ MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
MCFG_SCREEN_ADD("lscreen", RASTER)
@@ -968,7 +968,7 @@ static MACHINE_CONFIG_START( snowboar, gaelco2_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", 0x0400000)
- MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
+ MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2)
@@ -1200,7 +1200,7 @@ static MACHINE_CONFIG_START( wrally2, gaelco2_state )
/* video hardware */
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_GFXDECODE_ADD("gfxdecode", 0x0200000)
- MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
+ MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
MCFG_SCREEN_ADD("lscreen", RASTER)
diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c
index d85f7893943..e0013316cd7 100644
--- a/src/mame/drivers/gaelco3d.c
+++ b/src/mame/drivers/gaelco3d.c
@@ -1009,9 +1009,7 @@ static MACHINE_CONFIG_START( gaelco3d, gaelco3d_state )
MCFG_SCREEN_VISIBLE_AREA(0, 575, 0, 431)
MCFG_SCREEN_UPDATE_DRIVER(gaelco3d_state, screen_update_gaelco3d)
- MCFG_PALETTE_LENGTH(32768)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gaiden.c b/src/mame/drivers/gaiden.c
index 498bb25094b..415bd47e7e6 100644
--- a/src/mame/drivers/gaiden.c
+++ b/src/mame/drivers/gaiden.c
@@ -385,7 +385,7 @@ static ADDRESS_MAP_START( gaiden_map, AS_PROGRAM, 16, gaiden_state )
AM_RANGE(0x072000, 0x073fff) AM_READWRITE(gaiden_videoram2_r, gaiden_videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0x074000, 0x075fff) AM_READWRITE(gaiden_videoram3_r, gaiden_videoram3_w) AM_SHARE("videoram3")
AM_RANGE(0x076000, 0x077fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x078000, 0x079fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x078000, 0x079fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x07a000, 0x07a001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x07a002, 0x07a003) AM_READ_PORT("P1_P2") AM_WRITE(gaiden_sproffsety_w)
AM_RANGE(0x07a004, 0x07a005) AM_READ_PORT("DSW")
@@ -411,7 +411,7 @@ static ADDRESS_MAP_START( drgnbowl_map, AS_PROGRAM, 16, gaiden_state )
AM_RANGE(0x072000, 0x073fff) AM_RAM_WRITE(gaiden_videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0x074000, 0x075fff) AM_RAM_WRITE(gaiden_videoram3_w) AM_SHARE("videoram3")
AM_RANGE(0x076000, 0x077fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x078000, 0x079fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x078000, 0x079fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x07a000, 0x07a001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x07a002, 0x07a003) AM_READ_PORT("P1_P2")
AM_RANGE(0x07a004, 0x07a005) AM_READ_PORT("DSW")
@@ -771,7 +771,8 @@ static MACHINE_CONFIG_START( shadoww, gaiden_state )
MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_gaiden)
MCFG_GFXDECODE_ADD("gfxdecode", gaiden)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(gaiden_state,gaiden)
@@ -828,7 +829,8 @@ static MACHINE_CONFIG_START( drgnbowl, gaiden_state )
MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_drgnbowl)
MCFG_GFXDECODE_ADD("gfxdecode", drgnbowl)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(gaiden_state,drgnbowl)
@@ -904,7 +906,7 @@ static ADDRESS_MAP_START( mastninj_map, AS_PROGRAM, 16, gaiden_state )
AM_RANGE(0x072000, 0x073fff) AM_READWRITE(gaiden_videoram2_r, gaiden_videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0x074000, 0x075fff) AM_READWRITE(gaiden_videoram3_r, gaiden_videoram3_w) AM_SHARE("videoram3")
AM_RANGE(0x076000, 0x077fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x078000, 0x079fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x078000, 0x079fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
// AM_RANGE(0x078800, 0x079fff) AM_RAM
AM_RANGE(0x07a000, 0x07a001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x07a002, 0x07a003) AM_READ_PORT("P1_P2")
@@ -944,7 +946,8 @@ static MACHINE_CONFIG_START( mastninj, gaiden_state )
MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_gaiden)
MCFG_GFXDECODE_ADD("gfxdecode", mastninj)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(gaiden_state,mastninj)
diff --git a/src/mame/drivers/gal3.c b/src/mame/drivers/gal3.c
index ee65bdae491..97197de83c5 100644
--- a/src/mame/drivers/gal3.c
+++ b/src/mame/drivers/gal3.c
@@ -189,7 +189,7 @@ void gal3_state::update_palette( )
g = data1&0xff;
b = data2&0xff;
- palette_set_color( machine(),i, rgb_t(r,g,b) );
+ m_palette->set_pen_color( i, rgb_t(r,g,b) );
}
} /* update_palette */
@@ -631,7 +631,7 @@ static MACHINE_CONFIG_START( gal3, gal3_state )
MCFG_SCREEN_UPDATE_DRIVER(gal3_state, screen_update_gal3)
MCFG_GFXDECODE_ADD("gfxdecode", namcos21)
- MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
+ MCFG_PALETTE_ADD("palette", NAMCOS21_NUM_COLORS)
MCFG_VIDEO_START_OVERRIDE(gal3_state,gal3)
diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c
index 5f0b6cfb238..009bf3d2290 100644
--- a/src/mame/drivers/galaga.c
+++ b/src/mame/drivers/galaga.c
@@ -1696,9 +1696,9 @@ static MACHINE_CONFIG_START( bosco, bosco_state )
MCFG_SCREEN_VBLANK_DRIVER(bosco_state, screen_eof_bosco)
MCFG_GFXDECODE_ADD("gfxdecode", bosco)
- MCFG_PALETTE_LENGTH(64*4+64*4+4+64)
+ MCFG_PALETTE_ADD("palette", 64*4+64*4+4+64)
- MCFG_PALETTE_INIT_OVERRIDE(bosco_state,bosco)
+ MCFG_PALETTE_INIT_OWNER(bosco_state,bosco)
MCFG_VIDEO_START_OVERRIDE(bosco_state,bosco)
/* sound hardware */
@@ -1752,9 +1752,9 @@ static MACHINE_CONFIG_START( galaga, galaga_state )
MCFG_SCREEN_VBLANK_DRIVER(galaga_state, screen_eof_galaga)
MCFG_GFXDECODE_ADD("gfxdecode", galaga)
- MCFG_PALETTE_LENGTH(64*4+64*4+64)
+ MCFG_PALETTE_ADD("palette", 64*4+64*4+64)
- MCFG_PALETTE_INIT_OVERRIDE(galaga_state,galaga)
+ MCFG_PALETTE_INIT_OWNER(galaga_state,galaga)
MCFG_VIDEO_START_OVERRIDE(galaga_state,galaga)
/* sound hardware */
@@ -1829,9 +1829,9 @@ static MACHINE_CONFIG_START( xevious, xevious_state )
MCFG_SCREEN_UPDATE_DRIVER(xevious_state, screen_update_xevious)
MCFG_GFXDECODE_ADD("gfxdecode", xevious)
- MCFG_PALETTE_LENGTH(128*4+64*8+64*2)
+ MCFG_PALETTE_ADD("palette", 128*4+64*8+64*2)
- MCFG_PALETTE_INIT_OVERRIDE(xevious_state,xevious)
+ MCFG_PALETTE_INIT_OWNER(xevious_state,xevious)
MCFG_VIDEO_START_OVERRIDE(xevious_state,xevious)
/* sound hardware */
@@ -1872,7 +1872,8 @@ static MACHINE_CONFIG_DERIVED( battles, xevious )
MCFG_MACHINE_RESET_OVERRIDE(xevious_state,battles)
/* video hardware */
- MCFG_PALETTE_INIT_OVERRIDE(xevious_state,battles)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(xevious_state,battles)
/* sound hardware */
MCFG_DEVICE_REMOVE("discrete")
@@ -1918,9 +1919,9 @@ static MACHINE_CONFIG_START( digdug, digdug_state )
MCFG_SCREEN_UPDATE_DRIVER(digdug_state, screen_update_digdug)
MCFG_GFXDECODE_ADD("gfxdecode", digdug)
- MCFG_PALETTE_LENGTH(16*2+64*4+64*4)
+ MCFG_PALETTE_ADD("palette", 16*2+64*4+64*4)
- MCFG_PALETTE_INIT_OVERRIDE(digdug_state,digdug)
+ MCFG_PALETTE_INIT_OWNER(digdug_state,digdug)
MCFG_VIDEO_START_OVERRIDE(digdug_state,digdug)
/* sound hardware */
diff --git a/src/mame/drivers/galastrm.c b/src/mame/drivers/galastrm.c
index de832cc3cb5..4e086b5e86d 100644
--- a/src/mame/drivers/galastrm.c
+++ b/src/mame/drivers/galastrm.c
@@ -71,7 +71,7 @@ WRITE32_MEMBER(galastrm_state::galastrm_palette_w)
if (ACCESSING_BITS_16_31)
m_tc0110pcr_addr = data >> 16;
if ((ACCESSING_BITS_0_15) && (m_tc0110pcr_addr < 4096))
- palette_set_color_rgb(machine(), m_tc0110pcr_addr, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
+ m_palette->set_pen_color(m_tc0110pcr_addr, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
}
WRITE32_MEMBER(galastrm_state::galastrm_tc0610_0_w)
@@ -313,7 +313,7 @@ static MACHINE_CONFIG_START( galastrm, galastrm_state )
MCFG_SCREEN_UPDATE_DRIVER(galastrm_state, screen_update_galastrm)
MCFG_GFXDECODE_ADD("gfxdecode", galastrm)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_TC0100SCN_ADD("tc0100scn", galastrm_tc0100scn_intf)
diff --git a/src/mame/drivers/galaxi.c b/src/mame/drivers/galaxi.c
index 92c21ec0a9b..f23a6805ea7 100644
--- a/src/mame/drivers/galaxi.c
+++ b/src/mame/drivers/galaxi.c
@@ -204,7 +204,7 @@ UINT32 galaxi_state::screen_update_galaxi(screen_device &screen, bitmap_ind16 &b
#endif
if (layers_ctrl & 1) m_bg1_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- else bitmap.fill(get_black_pen(machine()), cliprect);
+ else bitmap.fill(m_palette->black_pen(), cliprect);
if (layers_ctrl & 2) m_bg2_tmap->draw(screen, bitmap, cliprect, 0, 0);
if (layers_ctrl & 4) m_bg3_tmap->draw(screen, bitmap, cliprect, 0, 0);
if (layers_ctrl & 8) m_bg4_tmap->draw(screen, bitmap, cliprect, 0, 0);
@@ -292,7 +292,7 @@ static ADDRESS_MAP_START( galaxi_map, AS_PROGRAM, 16, galaxi_state )
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(galaxi_fg_w ) AM_SHARE("fg_ram")
AM_RANGE(0x102000, 0x1047ff) AM_READNOP // unknown
- AM_RANGE(0x300000, 0x3007ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x300000, 0x3007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("INPUTS")
AM_RANGE(0x500000, 0x500001) AM_WRITE(galaxi_500000_w)
@@ -419,7 +419,8 @@ static MACHINE_CONFIG_START( galaxi, galaxi_state )
MCFG_SCREEN_UPDATE_DRIVER(galaxi_state, screen_update_galaxi)
MCFG_GFXDECODE_ADD("gfxdecode", galaxi)
- MCFG_PALETTE_LENGTH(0x400)
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c
index a4e04ef2428..0649aa4a006 100644
--- a/src/mame/drivers/galaxia.c
+++ b/src/mame/drivers/galaxia.c
@@ -305,9 +305,9 @@ static MACHINE_CONFIG_START( galaxia, galaxia_state )
MCFG_SCREEN_UPDATE_DRIVER(galaxia_state, screen_update_galaxia)
MCFG_GFXDECODE_ADD("gfxdecode", galaxia)
- MCFG_PALETTE_LENGTH(0x18+2)
+ MCFG_PALETTE_ADD("palette", 0x18+2)
- MCFG_PALETTE_INIT_OVERRIDE(galaxia_state,galaxia)
+ MCFG_PALETTE_INIT_OWNER(galaxia_state,galaxia)
MCFG_VIDEO_START_OVERRIDE(galaxia_state,galaxia)
MCFG_S2636_ADD("s2636_0", galaxia_s2636_config[0])
@@ -341,9 +341,9 @@ static MACHINE_CONFIG_START( astrowar, galaxia_state )
MCFG_SCREEN_UPDATE_DRIVER(galaxia_state, screen_update_astrowar)
MCFG_GFXDECODE_ADD("gfxdecode", astrowar)
- MCFG_PALETTE_LENGTH(0x18+2)
+ MCFG_PALETTE_ADD("palette", 0x18+2)
- MCFG_PALETTE_INIT_OVERRIDE(galaxia_state,astrowar)
+ MCFG_PALETTE_INIT_OWNER(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 666c81ea0b7..d56733f0714 100644
--- a/src/mame/drivers/galaxian.c
+++ b/src/mame/drivers/galaxian.c
@@ -5169,7 +5169,8 @@ static MACHINE_CONFIG_START( galaxian_base, galaxian_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", galaxian)
- MCFG_PALETTE_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(galaxian_state, galaxian)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(GALAXIAN_PIXEL_CLOCK, GALAXIAN_HTOTAL, GALAXIAN_HBEND, GALAXIAN_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART)
@@ -5290,7 +5291,9 @@ static MACHINE_CONFIG_DERIVED( gmgalax, galaxian )
/* banked video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", gmgalax)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 64)
+ MCFG_PALETTE_INIT_OWNER(galaxian_state, galaxian)
MACHINE_CONFIG_END
@@ -5616,7 +5619,8 @@ 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_OVERRIDE(galaxian_state,moonwar) // bullets are less yellow
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(galaxian_state,moonwar) // bullets are less yellow
MACHINE_CONFIG_END
@@ -6054,7 +6058,7 @@ void galaxian_state::tenspot_set_game_bank(running_machine& machine, int bank, i
dstregion = machine.root_device().memregion("proms")->base();
memcpy(dstregion, srcregion, 0x20);
- galaxian_state::palette_init();
+ PALETTE_INIT_NAME(galaxian)(m_palette);
}
DRIVER_INIT_MEMBER(galaxian_state,tenspot)
diff --git a/src/mame/drivers/galaxold.c b/src/mame/drivers/galaxold.c
index d64d1031539..974051b3b57 100644
--- a/src/mame/drivers/galaxold.c
+++ b/src/mame/drivers/galaxold.c
@@ -2346,13 +2346,13 @@ static MACHINE_CONFIG_START( galaxold_base, galaxold_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", galaxian)
- MCFG_PALETTE_LENGTH(32+2+64) /* 32 for the characters, 2 for the bullets, 64 for the stars */
+ MCFG_PALETTE_ADD("palette", 32+2+64) /* 32 for the characters, 2 for the bullets, 64 for the stars */
+ MCFG_PALETTE_INIT_OWNER(galaxold_state,galaxold)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
- MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,galaxold)
MCFG_VIDEO_START_OVERRIDE(galaxold_state,galaxold)
/* sound hardware */
@@ -2403,9 +2403,10 @@ static MACHINE_CONFIG_DERIVED( scramblb, galaxian )
MCFG_CPU_PROGRAM_MAP(scramblb_map)
/* 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_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */
- MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,scrambold)
+ MCFG_PALETTE_INIT_OWNER(galaxold_state,scrambold)
MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold)
MACHINE_CONFIG_END
@@ -2417,9 +2418,10 @@ static MACHINE_CONFIG_DERIVED( scramb2, galaxian )
MCFG_CPU_PROGRAM_MAP(scramb2_map)
/* 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_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */
- MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,scrambold)
+ MCFG_PALETTE_INIT_OWNER(galaxold_state,scrambold)
MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold)
MACHINE_CONFIG_END
@@ -2431,9 +2433,10 @@ static MACHINE_CONFIG_DERIVED( scrambler, galaxian )
MCFG_CPU_PROGRAM_MAP(scrambler_map)
/* 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_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */
- MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,scrambold)
+ MCFG_PALETTE_INIT_OWNER(galaxold_state,scrambold)
MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold)
MACHINE_CONFIG_END
@@ -2445,9 +2448,10 @@ static MACHINE_CONFIG_DERIVED( guttang, galaxian )
MCFG_CPU_PROGRAM_MAP(guttang_map)
/* 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_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */
-// MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,scrambold)
+// MCFG_PALETTE_INIT_OWNER(galaxold_state,scrambold)
MCFG_VIDEO_START_OVERRIDE(galaxold_state,mooncrst)
MACHINE_CONFIG_END
@@ -2498,8 +2502,9 @@ static MACHINE_CONFIG_DERIVED( rockclim, galaxian )
/* video hardware */
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_OVERRIDE(galaxold_state,rockclim)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 64+64+2) /* 64 colors only, but still uses bullets so we need to keep the palette big */
+ MCFG_PALETTE_INIT_OWNER(galaxold_state,rockclim)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(64*8, 32*8)
@@ -2517,8 +2522,9 @@ static MACHINE_CONFIG_DERIVED( ozon1, galaxold_base )
MCFG_MACHINE_RESET_REMOVE()
/* video hardware */
- MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
- MCFG_PALETTE_LENGTH(32)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(galaxold_state,rockclim)
MCFG_VIDEO_START_OVERRIDE(galaxold_state,ozon1)
MCFG_SOUND_ADD("aysnd", AY8910, PIXEL_CLOCK/4)
@@ -2541,12 +2547,12 @@ static MACHINE_CONFIG_START( drivfrcg, galaxold_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
+
+ MCFG_PALETTE_ADD("palette", 64)
+ MCFG_PALETTE_INIT_OWNER(galaxold_state,rockclim)
- MCFG_PALETTE_LENGTH(64)
MCFG_GFXDECODE_ADD("gfxdecode", gmgalax)
- MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
-
MCFG_VIDEO_START_OVERRIDE(galaxold_state,drivfrcg)
/* sound hardware */
@@ -2611,13 +2617,13 @@ static MACHINE_CONFIG_START( racknrol, galaxold_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", galaxian)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(galaxold_state,rockclim)
+
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
- MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol)
/* sound hardware */
@@ -2636,13 +2642,13 @@ static MACHINE_CONFIG_START( hexpoola, galaxold_state )
MCFG_CPU_VBLANK_INT_DRIVER("screen", galaxold_state, hunchbks_vh_interrupt)
MCFG_GFXDECODE_ADD("gfxdecode", galaxian)
- MCFG_PALETTE_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(galaxold_state,rockclim)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
- MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol)
/* sound hardware */
diff --git a/src/mame/drivers/galgame.c b/src/mame/drivers/galgame.c
index 8219b3039fd..0cf0e65483c 100644
--- a/src/mame/drivers/galgame.c
+++ b/src/mame/drivers/galgame.c
@@ -47,7 +47,6 @@ public:
DECLARE_WRITE16_MEMBER(clk_w);
DECLARE_DRIVER_INIT(galaxygame);
virtual void machine_reset();
- virtual void palette_init();
UINT32 screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(galaxygame_irq);
IRQ_CALLBACK_MEMBER(galaxygame_irq_callback);
@@ -173,7 +172,7 @@ WRITE16_MEMBER(galaxygame_state::ke_w)
UINT32 galaxygame_state::screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
for (int i = 0; i < m_point_display_list_index; i++ )
{
bitmap.pix16(m_point_display_list[i].x >> 7, m_point_display_list[i].y >> 7) = 1;
@@ -291,12 +290,6 @@ static ADDRESS_MAP_START( galaxygame_map, AS_PROGRAM, 16, galaxygame_state )
ADDRESS_MAP_END
-void galaxygame_state::palette_init()
-{
- palette_set_color(machine(),0,rgb_t::black); /* black */
- palette_set_color(machine(),1,rgb_t::white); /* white */
-}
-
IRQ_CALLBACK_MEMBER(galaxygame_state::galaxygame_irq_callback)
{
device.execute().set_input_line(0, CLEAR_LINE);
@@ -337,7 +330,7 @@ static MACHINE_CONFIG_START( galaxygame, galaxygame_state )
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 511)
MCFG_SCREEN_UPDATE_DRIVER(galaxygame_state, screen_update_galaxygame)
- MCFG_PALETTE_LENGTH(2)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/galivan.c b/src/mame/drivers/galivan.c
index a7b1b14c328..358879b2f27 100644
--- a/src/mame/drivers/galivan.c
+++ b/src/mame/drivers/galivan.c
@@ -437,8 +437,9 @@ static MACHINE_CONFIG_START( galivan, galivan_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", galivan)
- MCFG_PALETTE_LENGTH(8*16+16*16+256*16)
-
+ MCFG_PALETTE_ADD("palette", 8*16+16*16+256*16)
+ MCFG_PALETTE_INIT_OWNER(galivan_state, galivan)
+
MCFG_VIDEO_START_OVERRIDE(galivan_state,galivan)
/* sound hardware */
@@ -482,7 +483,8 @@ static MACHINE_CONFIG_START( ninjemak, galivan_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", galivan)
- MCFG_PALETTE_LENGTH(8*16+16*16+256*16)
+ MCFG_PALETTE_ADD("palette", 8*16+16*16+256*16)
+ MCFG_PALETTE_INIT_OWNER(galivan_state, galivan)
MCFG_VIDEO_START_OVERRIDE(galivan_state,ninjemak)
diff --git a/src/mame/drivers/galpani2.c b/src/mame/drivers/galpani2.c
index 2cb037a66e8..04e2a37f5e1 100644
--- a/src/mame/drivers/galpani2.c
+++ b/src/mame/drivers/galpani2.c
@@ -343,7 +343,7 @@ static ADDRESS_MAP_START( galpani2_mem1, AS_PROGRAM, 16, galpani2_state )
AM_RANGE(0x314000, 0x314001) AM_WRITENOP // ? flip backgrounds ?
AM_RANGE(0x318000, 0x318001) AM_READWRITE(galpani2_eeprom_r, galpani2_eeprom_w) // EEPROM
AM_RANGE(0x380000, 0x387fff) AM_RAM // Palette?
- AM_RANGE(0x388000, 0x38ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram" ) // Palette
+ AM_RANGE(0x388000, 0x38ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x390000, 0x3901ff) AM_WRITENOP // ? at startup of service mode
AM_RANGE(0x400000, 0x43ffff) AM_RAM_WRITE(galpani2_bg8_0_w) AM_SHARE("bg8.0") // Background 0
@@ -628,7 +628,9 @@ static MACHINE_CONFIG_START( galpani2, galpani2_state )
MCFG_SCREEN_UPDATE_DRIVER(galpani2_state, screen_update_galpani2)
MCFG_GFXDECODE_ADD("gfxdecode", galpani2)
- MCFG_PALETTE_LENGTH(0x4000 + 0x200 + 0x8000) // sprites, bg8, bg15
+ MCFG_PALETTE_ADD("palette", 0x4000 + 0x200 + 0x8000) // sprites, bg8, bg15
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
+ MCFG_PALETTE_INIT_OWNER(galpani2_state, galpani2)
MCFG_DEVICE_ADD_KC002_SPRITES
kaneko16_sprite_device::set_offsets(*device, 0x10000 - 0x16c0 + 0xc00, 0);
diff --git a/src/mame/drivers/galpani3.c b/src/mame/drivers/galpani3.c
index f7cd379748d..4bd6a3a3470 100644
--- a/src/mame/drivers/galpani3.c
+++ b/src/mame/drivers/galpani3.c
@@ -195,7 +195,7 @@ UINT32 galpani3_state::screen_update_galpani3(screen_device &screen, bitmap_rgb3
UINT16* src1;
UINT32* dst;
UINT16 pixdata1;
- const pen_t *paldata = machine().pens;
+ const pen_t *paldata = m_palette->pens();
bitmap.fill(0x0000, cliprect);
@@ -457,7 +457,7 @@ static ADDRESS_MAP_START( galpani3_map, AS_PROGRAM, 16, galpani3_state )
AM_RANGE(0x000000, 0x17ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // area [B] - Work RAM
- AM_RANGE(0x280000, 0x287fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // area [A] - palette for sprites
+ AM_RANGE(0x280000, 0x287fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // area [A] - palette for sprites
AM_RANGE(0x300000, 0x303fff) AM_RAM_WRITE(galpani3_suprnova_sprite32_w) AM_SHARE("spriteram")
AM_RANGE(0x380000, 0x38003f) AM_RAM_WRITE(galpani3_suprnova_sprite32regs_w) AM_SHARE("sprregs")
@@ -508,19 +508,22 @@ static MACHINE_CONFIG_START( galpani3, galpani3_state )
MCFG_DEVICE_ADD("toybox", KANEKO_TOYBOX, 0)
- MCFG_PALETTE_LENGTH(0x4303)
-
+ MCFG_PALETTE_ADD("palette", 0x4303)
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
MCFG_DEVICE_ADD("spritegen", SKNS_SPRITE, 0)
MCFG_DEVICE_ADD("grap2_0", KANEKO_GRAP2, 0)
kaneko_grap2_device::set_chipnum(*device, 0);
+ MCFG_KANEKO_GRAP2_PALETTE("palette")
MCFG_DEVICE_ADD("grap2_1", KANEKO_GRAP2, 0)
kaneko_grap2_device::set_chipnum(*device, 1);
+ MCFG_KANEKO_GRAP2_PALETTE("palette")
MCFG_DEVICE_ADD("grap2_2", KANEKO_GRAP2, 0)
kaneko_grap2_device::set_chipnum(*device, 2);
+ MCFG_KANEKO_GRAP2_PALETTE("palette")
/* sound hardware */
diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c
index 36c60f3d79f..bb7f59e9305 100644
--- a/src/mame/drivers/galpanic.c
+++ b/src/mame/drivers/galpanic.c
@@ -569,10 +569,12 @@ static MACHINE_CONFIG_START( galpanic, galpanic_state )
MCFG_SCREEN_VBLANK_DRIVER(galpanic_state, screen_eof_galpanic)
MCFG_GFXDECODE_ADD("gfxdecode", galpanic)
- MCFG_PALETTE_LENGTH(1024 + 32768)
+ MCFG_PALETTE_ADD("palette", 1024 + 32768)
+ MCFG_PALETTE_INIT_OWNER(galpanic_state,galpanic)
MCFG_KANEKO_PANDORA_ADD("pandora", galpanic_pandora_config)
MCFG_KANEKO_PANDORA_GFXDECODE("gfxdecode")
+ MCFG_KANEKO_PANDORA_PALETTE("palette")
MCFG_DEVICE_ADD("calc1_mcu", KANEKO_HIT, 0)
kaneko_hit_device::set_type(*device, 0);
@@ -580,7 +582,6 @@ static MACHINE_CONFIG_START( galpanic, galpanic_state )
- MCFG_PALETTE_INIT_OVERRIDE(galpanic_state,galpanic)
MCFG_VIDEO_START_OVERRIDE(galpanic_state,galpanic)
/* sound hardware */
diff --git a/src/mame/drivers/galspnbl.c b/src/mame/drivers/galspnbl.c
index a4a6aeb9a4c..a176fb88609 100644
--- a/src/mame/drivers/galspnbl.c
+++ b/src/mame/drivers/galspnbl.c
@@ -67,7 +67,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, galspnbl_state )
AM_RANGE(0x905000, 0x907fff) AM_WRITENOP /* ??? */
AM_RANGE(0x980000, 0x9bffff) AM_RAM AM_SHARE("bgvideoram")
AM_RANGE(0xa00000, 0xa00fff) AM_WRITENOP /* more palette ? */
- AM_RANGE(0xa01000, 0xa017ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa01000, 0xa017ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xa01800, 0xa027ff) AM_WRITENOP /* more palette ? */
AM_RANGE(0xa80000, 0xa80001) AM_READ_PORT("IN0")
AM_RANGE(0xa80010, 0xa80011) AM_READ_PORT("IN1") AM_WRITE(soundcommand_w)
@@ -236,8 +236,10 @@ static MACHINE_CONFIG_START( galspnbl, galspnbl_state )
MCFG_SCREEN_UPDATE_DRIVER(galspnbl_state, screen_update_galspnbl)
MCFG_GFXDECODE_ADD("gfxdecode", galspnbl)
- MCFG_PALETTE_LENGTH(1024 + 32768)
+ MCFG_PALETTE_ADD("palette", 1024 + 32768)
+ MCFG_PALETTE_INIT_OWNER(galspnbl_state, galspnbl)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gambl186.c b/src/mame/drivers/gambl186.c
index 536c3f3b209..29ae8501fb2 100644
--- a/src/mame/drivers/gambl186.c
+++ b/src/mame/drivers/gambl186.c
@@ -73,7 +73,7 @@ static MACHINE_CONFIG_START( gambl186, gambl186_state )
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255)
MCFG_SCREEN_UPDATE_DRIVER(gambl186_state, screen_update_gambl186)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/gamecstl.c b/src/mame/drivers/gamecstl.c
index 8d69b666bfa..60129b34ee3 100644
--- a/src/mame/drivers/gamecstl.c
+++ b/src/mame/drivers/gamecstl.c
@@ -109,7 +109,7 @@ void gamecstl_state::video_start()
{
int i;
for (i=0; i < 16; i++)
- palette_set_color(machine(), i, cga_palette[i]);
+ m_palette->set_pen_color(i, cga_palette[i]);
}
void gamecstl_state::draw_char(bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, int ch, int att, int x, int y)
@@ -449,7 +449,7 @@ static MACHINE_CONFIG_START( gamecstl, gamecstl_state )
MCFG_SCREEN_UPDATE_DRIVER(gamecstl_state, screen_update_gamecstl)
MCFG_GFXDECODE_ADD("gfxdecode", CGA)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/gaplus.c b/src/mame/drivers/gaplus.c
index 6035be6eef5..9913c6bc3bb 100644
--- a/src/mame/drivers/gaplus.c
+++ b/src/mame/drivers/gaplus.c
@@ -596,7 +596,8 @@ static MACHINE_CONFIG_START( gaplus, gaplus_state )
MCFG_SCREEN_VBLANK_DRIVER(gaplus_state, screen_eof_gaplus)
MCFG_GFXDECODE_ADD("gfxdecode", gaplus)
- MCFG_PALETTE_LENGTH(64*4+64*8)
+ MCFG_PALETTE_ADD("palette", 64*4+64*8)
+ MCFG_PALETTE_INIT_OWNER(gaplus_state, gaplus)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gatron.c b/src/mame/drivers/gatron.c
index 380522026ad..ef94335ad88 100644
--- a/src/mame/drivers/gatron.c
+++ b/src/mame/drivers/gatron.c
@@ -570,7 +570,8 @@ static MACHINE_CONFIG_START( gat, gatron_state )
MCFG_SCREEN_UPDATE_DRIVER(gatron_state, screen_update_gat)
MCFG_GFXDECODE_ADD("gfxdecode", gat)
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(gatron_state, gatron)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gauntlet.c b/src/mame/drivers/gauntlet.c
index dcc8f5732fd..e8547746dc2 100644
--- a/src/mame/drivers/gauntlet.c
+++ b/src/mame/drivers/gauntlet.c
@@ -307,7 +307,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, gauntlet_state )
AM_RANGE(0x905f6e, 0x905f6f) AM_MIRROR(0x2c8000) AM_RAM_WRITE(gauntlet_yscroll_w) AM_SHARE("yscroll")
AM_RANGE(0x905000, 0x905f7f) AM_MIRROR(0x2c8000) AM_RAM_DEVWRITE("alpha", tilemap_device, write) AM_SHARE("alpha")
AM_RANGE(0x905f80, 0x905fff) AM_MIRROR(0x2c8000) AM_RAM AM_SHARE("mob:slip")
- AM_RANGE(0x910000, 0x9107ff) AM_MIRROR(0x2cf800) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x910000, 0x9107ff) AM_MIRROR(0x2cf800) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x930000, 0x930001) AM_MIRROR(0x2cfffe) AM_WRITE(gauntlet_xscroll_w) AM_SHARE("xscroll")
ADDRESS_MAP_END
@@ -510,7 +510,9 @@ static MACHINE_CONFIG_START( gauntlet, gauntlet_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", gauntlet)
- MCFG_PALETTE_LENGTH(1024)
+
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(IIIIRRRRGGGGBBBB)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, gauntlet_state, get_playfield_tile_info, 8,8, SCAN_COLS, 64,64)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, gauntlet_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0)
diff --git a/src/mame/drivers/gberet.c b/src/mame/drivers/gberet.c
index c624abce5f4..ab5367ec327 100644
--- a/src/mame/drivers/gberet.c
+++ b/src/mame/drivers/gberet.c
@@ -416,9 +416,9 @@ static MACHINE_CONFIG_START( gberet, gberet_state )
MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberet)
MCFG_GFXDECODE_ADD("gfxdecode", gberet)
- MCFG_PALETTE_LENGTH(2*16*16)
+ MCFG_PALETTE_ADD("palette", 2*16*16)
- MCFG_PALETTE_INIT_OVERRIDE(gberet_state,gberet)
+ MCFG_PALETTE_INIT_OWNER(gberet_state,gberet)
MCFG_VIDEO_START_OVERRIDE(gberet_state,gberet)
/* sound hardware */
@@ -455,9 +455,9 @@ static MACHINE_CONFIG_START( gberetb, gberet_state )
MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberetb)
MCFG_GFXDECODE_ADD("gfxdecode", gberetb)
- MCFG_PALETTE_LENGTH(2*16*16)
+ MCFG_PALETTE_ADD("palette", 2*16*16)
- MCFG_PALETTE_INIT_OVERRIDE(gberet_state,gberet)
+ MCFG_PALETTE_INIT_OWNER(gberet_state,gberet)
MCFG_VIDEO_START_OVERRIDE(gberet_state,gberet)
/* sound hardware */
diff --git a/src/mame/drivers/gbusters.c b/src/mame/drivers/gbusters.c
index 848b44c6df4..5a97cf782d6 100644
--- a/src/mame/drivers/gbusters.c
+++ b/src/mame/drivers/gbusters.c
@@ -35,7 +35,7 @@ READ8_MEMBER(gbusters_state::bankedram_r)
WRITE8_MEMBER(gbusters_state::bankedram_w)
{
if (m_palette_selected)
- paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data);
+ m_palette->write(space, offset, data);
else
m_ram[offset] = data;
}
@@ -294,8 +294,6 @@ static MACHINE_CONFIG_START( gbusters, gbusters_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -303,13 +301,17 @@ static MACHINE_CONFIG_START( gbusters, gbusters_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(gbusters_state, screen_update_gbusters)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", gbusters_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", gbusters_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gcpinbal.c b/src/mame/drivers/gcpinbal.c
index 74defec4daf..67c131935c3 100644
--- a/src/mame/drivers/gcpinbal.c
+++ b/src/mame/drivers/gcpinbal.c
@@ -236,7 +236,7 @@ static ADDRESS_MAP_START( gcpinbal_map, AS_PROGRAM, 16, gcpinbal_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(gcpinbal_tilemaps_word_r, gcpinbal_tilemaps_word_w) AM_SHARE("tilemapram")
AM_RANGE(0xc80000, 0xc80fff) AM_RAM AM_SHARE("spriteram") /* sprite ram */
- AM_RANGE(0xd00000, 0xd00fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd00000, 0xd00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd80000, 0xd800ff) AM_READWRITE(ioc_r, ioc_w) AM_SHARE("ioc_ram")
AM_RANGE(0xff0000, 0xffffff) AM_RAM /* RAM */
ADDRESS_MAP_END
@@ -448,8 +448,8 @@ static MACHINE_CONFIG_START( gcpinbal, gcpinbal_state )
MCFG_GFXDECODE_ADD("gfxdecode", gcpinbal)
- MCFG_PALETTE_LENGTH(4096)
-
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gei.c b/src/mame/drivers/gei.c
index 5b635bcd6a2..9fee1ee7f06 100644
--- a/src/mame/drivers/gei.c
+++ b/src/mame/drivers/gei.c
@@ -139,7 +139,7 @@ public:
DECLARE_READ8_MEMBER(portC_r);
DECLARE_DRIVER_INIT(geimulti);
DECLARE_DRIVER_INIT(setbank);
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(gei);
DECLARE_PALETTE_INIT(quizvid);
INTERRUPT_GEN_MEMBER(vblank_irq);
};
@@ -173,13 +173,13 @@ WRITE8_MEMBER(gei_state::gei_bitmap_w)
m_bitmap.pix16(sy, sx+i) = m_color[8-i-1];
}
-void gei_state::palette_init()
+PALETTE_INIT_MEMBER(gei_state, gei)
{
int i;
for (i = 0; i < 8; i++ )
{
- palette_set_color(machine(), i, rgb_t(pal1bit(i >> 2), pal1bit(i), pal1bit(i >> 1)));
+ palette.set_pen_color(i, rgb_t(pal1bit(i >> 2), pal1bit(i), pal1bit(i >> 1)));
}
}
@@ -189,7 +189,7 @@ PALETTE_INIT_MEMBER(gei_state,quizvid)
for (i = 0; i < 8; i++ )
{
- palette_set_color(machine(), i, rgb_t(pal1bit(i >> 1), pal1bit(i), pal1bit(i >> 2)));
+ palette.set_pen_color(i, rgb_t(pal1bit(i >> 1), pal1bit(i), pal1bit(i >> 2)));
}
}
@@ -1164,7 +1164,8 @@ static MACHINE_CONFIG_START( getrivia, gei_state )
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(48, 511-48, 16, 255-16)
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(gei_state, gei)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -1192,8 +1193,9 @@ static MACHINE_CONFIG_DERIVED( quizvid, findout )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(quizvid_map)
-
- MCFG_PALETTE_INIT_OVERRIDE(gei_state,quizvid)
+
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(gei_state,quizvid)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( gselect, getrivia )
diff --git a/src/mame/drivers/ggconnie.c b/src/mame/drivers/ggconnie.c
index 1a402180103..f27f59e45ae 100644
--- a/src/mame/drivers/ggconnie.c
+++ b/src/mame/drivers/ggconnie.c
@@ -271,8 +271,6 @@ static MACHINE_CONFIG_START( ggconnie, ggconnie_state )
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/3, HUC6260_WPF, 64, 64 + 1024 + 64, HUC6260_LPF, 18, 18 + 242)
MCFG_SCREEN_UPDATE_DRIVER( ggconnie_state, screen_update )
- MCFG_PALETTE_LENGTH( HUC6260_PALETTE_SIZE )
-
MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK/3, sgx_huc6260_config )
MCFG_HUC6270_ADD( "huc6270_0", sgx_huc6270_0_config )
MCFG_HUC6270_ADD( "huc6270_1", sgx_huc6270_1_config )
diff --git a/src/mame/drivers/ghosteo.c b/src/mame/drivers/ghosteo.c
index 52b5ee86381..d7d4c2251ad 100644
--- a/src/mame/drivers/ghosteo.c
+++ b/src/mame/drivers/ghosteo.c
@@ -653,10 +653,10 @@ static MACHINE_CONFIG_START( ghosteo, ghosteo_state )
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DEVICE("s3c2410", s3c2410_device, screen_update)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
- MCFG_S3C2410_ADD("s3c2410", 12000000, bballoon_s3c2410_intf)
+ MCFG_S3C2410_ADD("s3c2410", 12000000, bballoon_s3c2410_intf, "palette")
// MCFG_NAND_ADD("nand", 0xEC, 0x75)
// MCFG_DEVICE_CONFIG(bballoon_nand_intf)
diff --git a/src/mame/drivers/gijoe.c b/src/mame/drivers/gijoe.c
index be15d7bde16..1340d7ee41f 100644
--- a/src/mame/drivers/gijoe.c
+++ b/src/mame/drivers/gijoe.c
@@ -216,7 +216,7 @@ static ADDRESS_MAP_START( gijoe_map, AS_PROGRAM, 16, gijoe_state )
AM_RANGE(0x160000, 0x160007) AM_DEVWRITE("k056832", k056832_device, b_word_w) // VSCCS (board dependent)
AM_RANGE(0x170000, 0x170001) AM_WRITENOP // Watchdog
AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_SHARE("workram") // Main RAM. Spec. 180000-1803ff, 180400-187fff
- AM_RANGE(0x190000, 0x190fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x190000, 0x190fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x1a0000, 0x1a001f) AM_DEVWRITE("k053251", k053251_device, lsb_w)
AM_RANGE(0x1b0000, 0x1b003f) AM_DEVWRITE("k056832", k056832_device, word_w)
AM_RANGE(0x1c000c, 0x1c000d) AM_WRITE(sound_cmd_w)
@@ -338,7 +338,7 @@ static MACHINE_CONFIG_START( gijoe, gijoe_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_UPDATE_BEFORE_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -347,13 +347,17 @@ static MACHINE_CONFIG_START( gijoe, gijoe_state )
MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1)
MCFG_SCREEN_UPDATE_DRIVER(gijoe_state, screen_update_gijoe)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K056832_ADD("k056832", gijoe_k056832_intf)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K053246_ADD("k053246", gijoe_k053247_intf)
MCFG_K053246_GFXDECODE("gfxdecode")
+ MCFG_K053246_PALETTE("palette")
MCFG_K053251_ADD("k053251")
/* sound hardware */
diff --git a/src/mame/drivers/ginganin.c b/src/mame/drivers/ginganin.c
index 5cc68325012..fbf4b6773d5 100644
--- a/src/mame/drivers/ginganin.c
+++ b/src/mame/drivers/ginganin.c
@@ -76,7 +76,7 @@ static ADDRESS_MAP_START( ginganin_map, AS_PROGRAM, 16, ginganin_state )
AM_RANGE(0x020000, 0x023fff) AM_RAM
AM_RANGE(0x030000, 0x0307ff) AM_RAM_WRITE(ginganin_txtram16_w) AM_SHARE("txtram")
AM_RANGE(0x040000, 0x0407ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x050000, 0x0507ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x050000, 0x0507ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x060000, 0x06000f) AM_RAM_WRITE(ginganin_vregs16_w) AM_SHARE("vregs")
AM_RANGE(0x068000, 0x06bfff) AM_RAM_WRITE(ginganin_fgram16_w) AM_SHARE("fgram")
AM_RANGE(0x070000, 0x070001) AM_READ_PORT("P1_P2")
@@ -274,8 +274,8 @@ static MACHINE_CONFIG_START( ginganin, ginganin_state )
MCFG_SCREEN_UPDATE_DRIVER(ginganin_state, screen_update_ginganin)
MCFG_GFXDECODE_ADD("gfxdecode", ginganin)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c
index f8bc5fc45d5..80a749fbe87 100644
--- a/src/mame/drivers/gladiatr.c
+++ b/src/mame/drivers/gladiatr.c
@@ -683,7 +683,7 @@ static MACHINE_CONFIG_START( ppking, gladiatr_state )
MCFG_SCREEN_UPDATE_DRIVER(gladiatr_state, screen_update_ppking)
MCFG_GFXDECODE_ADD("gfxdecode", ppking)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_VIDEO_START_OVERRIDE(gladiatr_state,ppking)
@@ -731,7 +731,7 @@ static MACHINE_CONFIG_START( gladiatr, gladiatr_state )
MCFG_SCREEN_UPDATE_DRIVER(gladiatr_state, screen_update_gladiatr)
MCFG_GFXDECODE_ADD("gfxdecode", gladiatr)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_VIDEO_START_OVERRIDE(gladiatr_state,gladiatr)
diff --git a/src/mame/drivers/glass.c b/src/mame/drivers/glass.c
index 77e899e4f28..323f2fdcfc1 100644
--- a/src/mame/drivers/glass.c
+++ b/src/mame/drivers/glass.c
@@ -81,7 +81,7 @@ static ADDRESS_MAP_START( glass_map, AS_PROGRAM, 16, glass_state )
AM_RANGE(0x102000, 0x102fff) AM_RAM /* Extra Video RAM */
AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */
AM_RANGE(0x108008, 0x108009) AM_WRITE(clr_int_w) /* CLR INT Video */
- AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette */
+ AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
@@ -205,8 +205,8 @@ static MACHINE_CONFIG_START( glass, glass_state )
MCFG_SCREEN_UPDATE_DRIVER(glass_state, screen_update_glass)
MCFG_GFXDECODE_ADD("gfxdecode", glass)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gluck2.c b/src/mame/drivers/gluck2.c
index 1d97c93e149..d0347161be6 100644
--- a/src/mame/drivers/gluck2.c
+++ b/src/mame/drivers/gluck2.c
@@ -303,7 +303,7 @@ PALETTE_INIT_MEMBER(gluck2_state, gluck2)
bit3 = (color_prom[i + 0x200] >> 3) & 0x01;
b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -568,8 +568,8 @@ static MACHINE_CONFIG_START( gluck2, gluck2_state )
MCFG_SCREEN_UPDATE_DRIVER(gluck2_state, screen_update_gluck2)
MCFG_GFXDECODE_ADD("gfxdecode", gluck2)
- MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT_OVERRIDE(gluck2_state, gluck2)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(gluck2_state, gluck2)
MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/16, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/gng.c b/src/mame/drivers/gng.c
index f23654305ab..646c372418f 100644
--- a/src/mame/drivers/gng.c
+++ b/src/mame/drivers/gng.c
@@ -50,8 +50,8 @@ static ADDRESS_MAP_START( gng_map, AS_PROGRAM, 8, gng_state )
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("P2")
AM_RANGE(0x3003, 0x3003) AM_READ_PORT("DSW1")
AM_RANGE(0x3004, 0x3004) AM_READ_PORT("DSW2")
- AM_RANGE(0x3800, 0x38ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_hi_w) AM_SHARE("paletteram2")
- AM_RANGE(0x3900, 0x39ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_lo_w) AM_SHARE("paletteram")
+ AM_RANGE(0x3800, 0x38ff) AM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
+ AM_RANGE(0x3900, 0x39ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x3a00, 0x3a00) AM_WRITE(soundlatch_byte_w)
AM_RANGE(0x3b08, 0x3b09) AM_WRITE(gng_bgscrollx_w)
AM_RANGE(0x3b0a, 0x3b0b) AM_WRITE(gng_bgscrolly_w)
@@ -324,14 +324,14 @@ void gng_state::machine_reset()
For now let's fill everything with white colors until we have better info about it */
for(i=0;i<0x100;i+=4)
{
- 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);
+ m_palette->basemem().write8(i, 0x00); m_palette->extmem().write8(i, 0x00);
+ m_palette->basemem().write8(i+1, 0x55); m_palette->extmem().write8(i+1, 0x55);
+ m_palette->basemem().write8(i+2, 0xaa); m_palette->extmem().write8(i+2, 0xaa);
+ m_palette->basemem().write8(i+3, 0xff); m_palette->extmem().write8(i+3, 0xff);
+ m_palette->set_pen_color(i+0,0x00,0x00,0x00);
+ m_palette->set_pen_color(i+1,0x55,0x55,0x55);
+ m_palette->set_pen_color(i+2,0xaa,0xaa,0xaa);
+ m_palette->set_pen_color(i+3,0xff,0xff,0xff);
}
}
}
@@ -360,8 +360,9 @@ static MACHINE_CONFIG_START( gng, gng_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", gng)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/go2000.c b/src/mame/drivers/go2000.c
index fe8cb2c6854..2b71b135dbd 100644
--- a/src/mame/drivers/go2000.c
+++ b/src/mame/drivers/go2000.c
@@ -73,7 +73,7 @@ static ADDRESS_MAP_START( go2000_map, AS_PROGRAM, 16, go2000_state )
AM_RANGE(0x200000, 0x203fff) AM_RAM
AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0x610000, 0x61ffff) AM_RAM AM_SHARE("videoram2")
- AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x800000, 0x800fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xa00000, 0xa00001) AM_READ_PORT("INPUTS")
AM_RANGE(0xa00002, 0xa00003) AM_READ_PORT("DSW")
AM_RANGE(0x620002, 0x620003) AM_WRITE(sound_cmd_w)
@@ -191,7 +191,7 @@ UINT32 go2000_state::screen_update_go2000(screen_device &screen, bitmap_ind16 &b
{
int tile = m_videoram[count];
int attr = m_videoram2[count];
- m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, tile, attr, 0, 0, x * 8, y * 8);
+ m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, tile, attr, 0, 0, x * 8, y * 8);
count++;
}
}
@@ -203,7 +203,7 @@ UINT32 go2000_state::screen_update_go2000(screen_device &screen, bitmap_ind16 &b
{
int tile = m_videoram[count];
int attr = m_videoram2[count];
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, tile, attr, 0, 0, x * 8, y * 8, 0xf);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, tile, attr, 0, 0, x * 8, y * 8, 0xf);
count++;
}
}
@@ -291,7 +291,7 @@ UINT32 go2000_state::screen_update_go2000(screen_device &screen, bitmap_ind16 &b
tile_flipy = !tile_flipy;
}
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
(tile & 0x1fff) + bank*0x4000,
attr,
tile_flipx, tile_flipy,
@@ -340,7 +340,8 @@ static MACHINE_CONFIG_START( go2000, go2000_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(go2000_state, screen_update_go2000)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/goal92.c b/src/mame/drivers/goal92.c
index 841ea98456b..cf828ab9c53 100644
--- a/src/mame/drivers/goal92.c
+++ b/src/mame/drivers/goal92.c
@@ -53,7 +53,7 @@ static ADDRESS_MAP_START( goal92_map, AS_PROGRAM, 16, goal92_state )
AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(goal92_foreground_w) AM_SHARE("fg_data")
AM_RANGE(0x101800, 0x101fff) AM_RAM // it has tiles for clouds, but they aren't used
AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(goal92_text_w) AM_SHARE("tx_data")
- AM_RANGE(0x103000, 0x103fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x104000, 0x13ffff) AM_RAM
AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x140800, 0x140801) AM_WRITENOP
@@ -324,8 +324,8 @@ static MACHINE_CONFIG_START( goal92, goal92_state )
MCFG_SCREEN_VBLANK_DRIVER(goal92_state, screen_eof_goal92)
MCFG_GFXDECODE_ADD("gfxdecode", goal92)
- MCFG_PALETTE_LENGTH(128*16)
-
+ MCFG_PALETTE_ADD("palette", 128*16)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/goindol.c b/src/mame/drivers/goindol.c
index 4cd44359b0b..35a596bfdd4 100644
--- a/src/mame/drivers/goindol.c
+++ b/src/mame/drivers/goindol.c
@@ -248,9 +248,7 @@ static MACHINE_CONFIG_START( goindol, goindol_state )
MCFG_SCREEN_UPDATE_DRIVER(goindol_state, screen_update_goindol)
MCFG_GFXDECODE_ADD("gfxdecode", goindol)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/goldngam.c b/src/mame/drivers/goldngam.c
index 8ad8426fa23..1cb7fe5c2ca 100644
--- a/src/mame/drivers/goldngam.c
+++ b/src/mame/drivers/goldngam.c
@@ -248,7 +248,7 @@ public:
required_shared_ptr<UINT16> m_videoram;
DECLARE_READ16_MEMBER(unk_r);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(goldngam);
UINT32 screen_update_goldngam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
};
@@ -283,7 +283,7 @@ UINT32 goldngam_state::screen_update_goldngam(screen_device &screen, bitmap_ind1
}
-void goldngam_state::palette_init()
+PALETTE_INIT_MEMBER(goldngam_state, goldngam)
{
}
@@ -571,8 +571,8 @@ static MACHINE_CONFIG_START( swisspkr, goldngam_state )
MCFG_GFXDECODE_ADD("gfxdecode", goldngam)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(goldngam_state, goldngam)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c
index 5c08874d9e9..d153dabce4d 100644
--- a/src/mame/drivers/goldnpkr.c
+++ b/src/mame/drivers/goldnpkr.c
@@ -1076,7 +1076,7 @@ public:
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(goldnpkr);
DECLARE_PALETTE_INIT(witchcrd);
DECLARE_VIDEO_START(wcrdxtnd);
DECLARE_PALETTE_INIT(wcrdxtnd);
@@ -1158,7 +1158,7 @@ UINT32 goldnpkr_state::screen_update_goldnpkr(screen_device &screen, bitmap_ind1
return 0;
}
-void goldnpkr_state::palette_init()
+PALETTE_INIT_MEMBER(goldnpkr_state, goldnpkr)
{
const UINT8 *color_prom = memregion("proms")->base();
/* prom bits
@@ -1174,7 +1174,7 @@ void goldnpkr_state::palette_init()
/* 0000IBGR */
if (color_prom == 0) return;
- for (i = 0;i < machine().total_colors();i++)
+ for (i = 0;i < palette.entries();i++)
{
int bit0, bit1, bit2, r, g, b, inten, intenmin, intenmax;
@@ -1198,7 +1198,7 @@ void goldnpkr_state::palette_init()
b = (bit2 * intenmin) + (inten * (bit2 * (intenmax - intenmin)));
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -1226,7 +1226,7 @@ PALETTE_INIT_MEMBER(goldnpkr_state,witchcrd)
if (color_prom == 0) return;
- for (i = 0;i < machine().total_colors();i++)
+ for (i = 0;i < palette.entries();i++)
{
int bit0, bit1, bit2, bit3, r, g, b, bk;
@@ -1246,7 +1246,7 @@ PALETTE_INIT_MEMBER(goldnpkr_state,witchcrd)
bit2 = (color_prom[i] >> 2) & 0x01;
b = bk * (bit2 * 0xff);
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -1270,7 +1270,7 @@ PALETTE_INIT_MEMBER(goldnpkr_state,wcrdxtnd)
if (color_prom == 0) return;
- for (i = 0;i < machine().total_colors();i++)
+ for (i = 0;i < palette.entries();i++)
{
int bit0, bit1, bit2, bit3, r, g, b, bk;
@@ -1292,7 +1292,7 @@ PALETTE_INIT_MEMBER(goldnpkr_state,wcrdxtnd)
//if ((b == 0) & (bk = 1)) --> needs better implementation
// b = 0x3f;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -3746,7 +3746,8 @@ static MACHINE_CONFIG_START( goldnpkr_base, goldnpkr_state )
MCFG_MC6845_ADD("crtc", MC6845, "screen", CPU_CLOCK, mc6845_intf) /* 68B45 or 6845s @ CPU clock */
MCFG_GFXDECODE_ADD("gfxdecode", goldnpkr)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldnpkr_state, goldnpkr)
MACHINE_CONFIG_END
@@ -3789,7 +3790,8 @@ static MACHINE_CONFIG_DERIVED( witchcrd, goldnpkr_base )
MCFG_PIA_WRITEPA_HANDLER(WRITE8(goldnpkr_state, mux_port_w))
/* video hardware */
- MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(goldnpkr_state,witchcrd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3812,7 +3814,8 @@ static MACHINE_CONFIG_DERIVED( wcfalcon, goldnpkr_base )
MCFG_PIA_WRITEPA_HANDLER(WRITE8(goldnpkr_state, wcfalcon_snd_w)) /* port A out, custom handler due to address + data are muxed */
/* video hardware */
- MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(goldnpkr_state,witchcrd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3834,7 +3837,8 @@ static MACHINE_CONFIG_DERIVED( wildcard, goldnpkr_base )
/* video hardware */
// MCFG_GFXDECODE_MODIFY("gfxdecode", wildcard)
- MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(goldnpkr_state,witchcrd)
// MCFG_VIDEO_START_OVERRIDE(goldnpkr_state,wildcard)
/* sound hardware */
@@ -3857,7 +3861,8 @@ static MACHINE_CONFIG_DERIVED( wcrdxtnd, goldnpkr_base )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", wcrdxtnd)
- MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,wcrdxtnd)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(goldnpkr_state,wcrdxtnd)
MCFG_VIDEO_START_OVERRIDE(goldnpkr_state,wcrdxtnd)
/* sound hardware */
@@ -3886,7 +3891,8 @@ static MACHINE_CONFIG_DERIVED( wildcrdb, goldnpkr_base )
/* video hardware */
// MCFG_GFXDECODE_MODIFY("gfxdecode", wildcard)
- MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(goldnpkr_state,witchcrd)
// MCFG_VIDEO_START_OVERRIDE(goldnpkr_state,wildcard)
/* sound hardware */
@@ -3908,7 +3914,8 @@ static MACHINE_CONFIG_DERIVED( genie, goldnpkr_base )
MCFG_PIA_WRITEPA_HANDLER(WRITE8(goldnpkr_state, mux_port_w))
/* video hardware */
- MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state, witchcrd)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(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 f8997a42ced..7db3e4f96e0 100644
--- a/src/mame/drivers/goldstar.c
+++ b/src/mame/drivers/goldstar.c
@@ -162,7 +162,7 @@ static ADDRESS_MAP_START( goldstar_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0xf840, 0xf840) AM_DEVWRITE("aysnd", ay8910_device, address_w)
AM_RANGE(0xfa00, 0xfa00) AM_WRITE(goldstar_fa00_w)
AM_RANGE(0xfb00, 0xfb00) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xfd00, 0xfdff) AM_RAM_WRITE(paletteram_BBGGGRRR_byte_w) AM_SHARE("paletteram")
+ AM_RANGE(0xfd00, 0xfdff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfe00, 0xfe00) AM_READWRITE(protection_r,protection_w)
ADDRESS_MAP_END
@@ -521,8 +521,8 @@ READ8_MEMBER(goldstar_state::unkch_unk_r)
/* newer / more capable hw */
static ADDRESS_MAP_START( unkch_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
- AM_RANGE(0xc000, 0xc1ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0xc800, 0xc9ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0xc000, 0xc1ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0xc800, 0xc9ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("nvram")
@@ -6245,7 +6245,8 @@ static MACHINE_CONFIG_START( goldstar, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", goldstar)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
@@ -6279,7 +6280,8 @@ static MACHINE_CONFIG_START( goldstbl, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", bl)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
@@ -6312,7 +6314,8 @@ static MACHINE_CONFIG_START( moonlght, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", ml)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
@@ -6345,7 +6348,9 @@ static MACHINE_CONFIG_START( goldfrui, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", goldfrui)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
+
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
@@ -6374,7 +6379,7 @@ PALETTE_INIT_MEMBER(goldstar_state,cm)
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_pen_color(i, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6));
}
}
@@ -6391,7 +6396,7 @@ PALETTE_INIT_MEMBER(goldstar_state,cmast91)
g = proms[0x100 + i] << 4;
r = proms[0x200 + i] << 4;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -6408,7 +6413,7 @@ PALETTE_INIT_MEMBER(goldstar_state,lucky8)
{
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_pen_color(i, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6));
}
proms = memregion("proms2")->base();
@@ -6416,7 +6421,7 @@ PALETTE_INIT_MEMBER(goldstar_state,lucky8)
{
data = proms[i];
- palette_set_color_rgb(machine(), i + 0x80, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6));
+ palette.set_pen_color(i + 0x80, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6));
}
}
@@ -6443,8 +6448,8 @@ static MACHINE_CONFIG_START( chrygld, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", chry10)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
@@ -6484,8 +6489,8 @@ static MACHINE_CONFIG_START( cb3c, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", cb3c)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
@@ -6524,8 +6529,8 @@ static MACHINE_CONFIG_START( ncb3, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", ncb3)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
@@ -6564,8 +6569,8 @@ static MACHINE_CONFIG_START( cm, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", cmbitmap)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
@@ -6604,8 +6609,8 @@ static MACHINE_CONFIG_START( cmnobmp, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", cm)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
@@ -6639,8 +6644,8 @@ static MACHINE_CONFIG_START( cmast91, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_cmast91)
MCFG_GFXDECODE_ADD("gfxdecode", cmast91)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cmast91)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,cmast91)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
@@ -6677,11 +6682,12 @@ 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_OVERRIDE(goldstar_state,lucky8)
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", ncb3)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
@@ -6716,11 +6722,11 @@ 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_OVERRIDE(goldstar_state,lucky8)
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng)
MCFG_GFXDECODE_ADD("gfxdecode", ncb3)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,bingowng)
@@ -6755,11 +6761,11 @@ 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_OVERRIDE(goldstar_state,lucky8)
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng)
MCFG_GFXDECODE_ADD("gfxdecode", bingownga) /* GFX Decode is the only difference with the parent machine */
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,bingowng)
@@ -6788,7 +6794,7 @@ PALETTE_INIT_MEMBER(goldstar_state,magodds)
g = proms[0x100 + i] << 4;
r = proms[0x200 + i] << 4;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -6812,10 +6818,10 @@ 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_DRIVER(goldstar_state, screen_update_magical)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,magodds)
MCFG_GFXDECODE_ADD("gfxdecode", magodds)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,magodds)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,magical)
@@ -6853,10 +6859,10 @@ 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_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
MCFG_GFXDECODE_ADD("gfxdecode", ncb3)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
@@ -6888,10 +6894,10 @@ 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_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
MCFG_GFXDECODE_ADD("gfxdecode", ncb3)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
@@ -6928,10 +6934,10 @@ 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_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
MCFG_GFXDECODE_ADD("gfxdecode", ncb3)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
@@ -6971,8 +6977,8 @@ static MACHINE_CONFIG_START( amcoe1, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", cm)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
@@ -7010,8 +7016,8 @@ static MACHINE_CONFIG_START( amcoe1a, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_amcoe1a)
MCFG_GFXDECODE_ADD("gfxdecode", cm)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
@@ -7049,8 +7055,8 @@ static MACHINE_CONFIG_START( amcoe2, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", cm)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
@@ -7083,8 +7089,8 @@ static MACHINE_CONFIG_START( nfm, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", nfm)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
@@ -7114,7 +7120,8 @@ static MACHINE_CONFIG_START( unkch, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_unkch)
MCFG_GFXDECODE_ADD("gfxdecode", unkch)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
//MCFG_NVRAM_HANDLER(goldstar)
@@ -7162,8 +7169,8 @@ static MACHINE_CONFIG_START( pkrmast, goldstar_state )
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE_ADD("gfxdecode", pkrmast)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,cm)
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym)
@@ -7196,10 +7203,10 @@ static MACHINE_CONFIG_START( megaline, 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_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
MCFG_GFXDECODE_ADD("gfxdecode", megaline)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
// MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
diff --git a/src/mame/drivers/gomoku.c b/src/mame/drivers/gomoku.c
index c67b362d1f4..16b8fb624b1 100644
--- a/src/mame/drivers/gomoku.c
+++ b/src/mame/drivers/gomoku.c
@@ -134,8 +134,8 @@ static MACHINE_CONFIG_START( gomoku, gomoku_state )
MCFG_SCREEN_UPDATE_DRIVER(gomoku_state, screen_update_gomoku)
MCFG_GFXDECODE_ADD("gfxdecode", gomoku)
- MCFG_PALETTE_LENGTH(64)
-
+ MCFG_PALETTE_ADD("palette", 64)
+ MCFG_PALETTE_INIT_OWNER(gomoku_state, gomoku)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/good.c b/src/mame/drivers/good.c
index 98b0f8c0cd0..a1176fb1e4f 100644
--- a/src/mame/drivers/good.c
+++ b/src/mame/drivers/good.c
@@ -117,7 +117,7 @@ static ADDRESS_MAP_START( good_map, AS_PROGRAM, 16, good_state )
AM_RANGE(0x280002, 0x280003) AM_READ_PORT("IN1")
AM_RANGE(0x280004, 0x280005) AM_READ_PORT("IN2")
- AM_RANGE(0x800000, 0x8007ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x800000, 0x8007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x820000, 0x820fff) AM_RAM_WRITE(fg_tilemapram_w) AM_SHARE("fg_tilemapram")
AM_RANGE(0x822000, 0x822fff) AM_RAM_WRITE(bg_tilemapram_w) AM_SHARE("bg_tilemapram")
@@ -294,7 +294,8 @@ static MACHINE_CONFIG_START( good, good_state )
MCFG_SCREEN_VISIBLE_AREA(1*16, 23*16-1, 0*16, 14*16-1)
MCFG_SCREEN_UPDATE_DRIVER(good_state, screen_update_good)
- MCFG_PALETTE_LENGTH(0x400)
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/goodejan.c b/src/mame/drivers/goodejan.c
index 0a83e922c45..4298d77058f 100644
--- a/src/mame/drivers/goodejan.c
+++ b/src/mame/drivers/goodejan.c
@@ -307,11 +307,11 @@ void goodejan_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap
for (ax=0; ax<dx; ax++)
for (ay=0; ay<dy; ay++) {
if (!fx)
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
sprite++,
color,fx,fy,x+ax*16,y+ay*16,15);
else
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
sprite++,
color,fx,fy,x+(dx-1-ax)*16,y+ay*16,15);
}
@@ -334,7 +334,7 @@ void goodejan_state::video_start()
UINT32 goodejan_state::screen_update_goodejan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(screen.machine().pens[0x7ff], cliprect); //black pen
+ bitmap.fill(m_palette->pen(0x7ff), cliprect); //black pen
m_sc0_tilemap->set_scrollx(0, (SEIBU_CRTC_SC0_SX) & 0x1ff );
m_sc0_tilemap->set_scrolly(0, (SEIBU_CRTC_SC0_SY) & 0x1ff );
@@ -395,7 +395,7 @@ static ADDRESS_MAP_START( goodejan_map, AS_PROGRAM, 16, goodejan_state )
AM_RANGE(0x00000, 0x0afff) AM_RAM
AM_RANGE(0x0c000, 0x0c7ff) AM_RAM_WRITE(seibucrtc_sc0vram_w) AM_SHARE("sc0_vram")
AM_RANGE(0x0c800, 0x0cfff) AM_RAM_WRITE(seibucrtc_sc3vram_w) AM_SHARE("sc3_vram")
- AM_RANGE(0x0d000, 0x0dfff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0d000, 0x0dfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
/*Guess: these two aren't used/initialized at all.*/
AM_RANGE(0x0e000, 0x0e7ff) AM_RAM_WRITE(seibucrtc_sc1vram_w) AM_SHARE("sc1_vram")
AM_RANGE(0x0e800, 0x0efff) AM_RAM_WRITE(seibucrtc_sc2vram_w) AM_SHARE("sc2_vram")
@@ -662,7 +662,8 @@ static MACHINE_CONFIG_START( goodejan, goodejan_state )
MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0)
MCFG_GFXDECODE_ADD("gfxdecode", goodejan)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(GOODEJAN_MHZ1/2,GOODEJAN_MHZ2/16)
diff --git a/src/mame/drivers/gotcha.c b/src/mame/drivers/gotcha.c
index d6ceb176ea5..d55ce88244f 100644
--- a/src/mame/drivers/gotcha.c
+++ b/src/mame/drivers/gotcha.c
@@ -99,7 +99,7 @@ static ADDRESS_MAP_START( gotcha_map, AS_PROGRAM, 16, gotcha_state )
AM_RANGE(0x100002, 0x100003) AM_WRITE(gotcha_lamps_w)
AM_RANGE(0x100004, 0x100005) AM_WRITE(gotcha_oki_bank_w)
AM_RANGE(0x120000, 0x12ffff) AM_RAM
- AM_RANGE(0x140000, 0x1405ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x1405ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("INPUTS")
AM_RANGE(0x180002, 0x180003) AM_READ_PORT("SYSTEM")
@@ -275,7 +275,8 @@ static MACHINE_CONFIG_START( gotcha, gotcha_state )
MCFG_SCREEN_UPDATE_DRIVER(gotcha_state, screen_update_gotcha)
MCFG_GFXDECODE_ADD("gfxdecode", gotcha)
- MCFG_PALETTE_LENGTH(768)
+ MCFG_PALETTE_ADD("palette", 768)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
@@ -283,6 +284,7 @@ static MACHINE_CONFIG_START( gotcha, gotcha_state )
decospr_device::set_is_bootleg(*device, true);
decospr_device::set_offsets(*device, 5,-1); // aligned to 2nd instruction screen in attract
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c
index dff6f77a60e..eaed5e3fbf2 100644
--- a/src/mame/drivers/gottlieb.c
+++ b/src/mame/drivers/gottlieb.c
@@ -1740,7 +1740,7 @@ static MACHINE_CONFIG_START( gottlieb_core, gottlieb_state )
MCFG_SCREEN_UPDATE_DRIVER(gottlieb_state, screen_update_gottlieb)
MCFG_GFXDECODE_ADD("gfxdecode", gfxdecode)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
// basic speaker configuration
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gotya.c b/src/mame/drivers/gotya.c
index f7c14f7f6b0..4431ebf6d0b 100644
--- a/src/mame/drivers/gotya.c
+++ b/src/mame/drivers/gotya.c
@@ -203,8 +203,8 @@ static MACHINE_CONFIG_START( gotya, gotya_state )
MCFG_SCREEN_UPDATE_DRIVER(gotya_state, screen_update_gotya)
MCFG_GFXDECODE_ADD("gfxdecode", gotya)
- MCFG_PALETTE_LENGTH(16*4)
-
+ MCFG_PALETTE_ADD("palette", 16*4)
+ MCFG_PALETTE_INIT_OWNER(gotya_state, gotya)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gpworld.c b/src/mame/drivers/gpworld.c
index f23c7c1a482..8a93e3c59a1 100644
--- a/src/mame/drivers/gpworld.c
+++ b/src/mame/drivers/gpworld.c
@@ -110,7 +110,7 @@ void gpworld_state::gpworld_draw_tiles(bitmap_rgb32 &bitmap,const rectangle &cli
{
int current_screen_character = (characterY*64) + characterX;
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, m_tile_ram[current_screen_character],
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, m_tile_ram[current_screen_character],
characterY, 0, 0, characterX*8, characterY*8, 0);
}
}
@@ -125,7 +125,7 @@ void gpworld_state::draw_pixel(bitmap_rgb32 &bitmap,const rectangle &cliprect,in
}
if (cliprect.contains(x, y))
- bitmap.pix32(y, x) = machine().pens[color];
+ bitmap.pix32(y, x) = m_palette->pen(color);
}
void gpworld_state::gpworld_draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -215,10 +215,10 @@ void gpworld_state::gpworld_draw_sprites(bitmap_rgb32 &bitmap, const rectangle &
}
/* Daphne says "don't draw the pixel if it's black". */
- draw_pixel(bitmap,cliprect,x+0,y,palette_get_color(machine(), pixel1 + (sprite_color*0x10 + 0x200)),flip);
- draw_pixel(bitmap,cliprect,x+1,y,palette_get_color(machine(), pixel2 + (sprite_color*0x10 + 0x200)),flip);
- draw_pixel(bitmap,cliprect,x+2,y,palette_get_color(machine(), pixel3 + (sprite_color*0x10 + 0x200)),flip);
- draw_pixel(bitmap,cliprect,x+3,y,palette_get_color(machine(), pixel4 + (sprite_color*0x10 + 0x200)),flip);
+ draw_pixel(bitmap,cliprect,x+0,y,m_palette->pen_color(pixel1 + (sprite_color*0x10 + 0x200)),flip);
+ draw_pixel(bitmap,cliprect,x+1,y,m_palette->pen_color(pixel2 + (sprite_color*0x10 + 0x200)),flip);
+ draw_pixel(bitmap,cliprect,x+2,y,m_palette->pen_color(pixel3 + (sprite_color*0x10 + 0x200)),flip);
+ draw_pixel(bitmap,cliprect,x+3,y,m_palette->pen_color(pixel4 + (sprite_color*0x10 + 0x200)),flip);
x += 4;
@@ -307,7 +307,7 @@ WRITE8_MEMBER(gpworld_state::palette_write)
/* logerror("PAL WRITE index : %x rgb : %d %d %d (real %x) at %x\n", pal_index, r,g,b, data, offset); */
- palette_set_color(machine(), (pal_index & 0xffe) >> 1, rgb_t(a, r, g, b));
+ m_palette->set_pen_color((pal_index & 0xffe) >> 1, rgb_t(a, r, g, b));
}
/* PROGRAM MAP */
@@ -497,7 +497,7 @@ static MACHINE_CONFIG_START( gpworld, gpworld_state )
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
MCFG_GFXDECODE_ADD("gfxdecode", gpworld)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/gradius3.c b/src/mame/drivers/gradius3.c
index 95cdc90a7d1..306adaba72e 100644
--- a/src/mame/drivers/gradius3.c
+++ b/src/mame/drivers/gradius3.c
@@ -143,7 +143,7 @@ WRITE8_MEMBER(gradius3_state::sound_bank_w)
static ADDRESS_MAP_START( gradius3_map, AS_PROGRAM, 16, gradius3_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM
- AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x080000, 0x080fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(cpuA_ctrl_w) /* halt cpu B, irq enable, priority, coin counters, other? */
AM_RANGE(0x0c8000, 0x0c8001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x0c8002, 0x0c8003) AM_READ_PORT("P1")
@@ -308,8 +308,6 @@ static MACHINE_CONFIG_START( gradius3, gradius3_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -317,13 +315,17 @@ static MACHINE_CONFIG_START( gradius3, gradius3_state )
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(gradius3_state, screen_update_gradius3)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", gradius3_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", gradius3_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c
index 8497b6bb6b0..93944252fd0 100644
--- a/src/mame/drivers/grchamp.c
+++ b/src/mame/drivers/grchamp.c
@@ -681,6 +681,7 @@ static MACHINE_CONFIG_START( grchamp, grchamp_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
+
MCFG_GFXDECODE_ADD("gfxdecode", grchamp)
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/gridlee.c b/src/mame/drivers/gridlee.c
index 4fd97861196..a356823bc6a 100644
--- a/src/mame/drivers/gridlee.c
+++ b/src/mame/drivers/gridlee.c
@@ -427,8 +427,8 @@ static MACHINE_CONFIG_START( gridlee, gridlee_state )
MCFG_SCREEN_RAW_PARAMS(GRIDLEE_PIXEL_CLOCK, GRIDLEE_HTOTAL, GRIDLEE_HBEND, GRIDLEE_HBSTART, GRIDLEE_VTOTAL, GRIDLEE_VBEND, GRIDLEE_VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(gridlee_state, screen_update_gridlee)
- MCFG_PALETTE_LENGTH(2048)
-
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_INIT_OWNER(gridlee_state,gridlee)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/groundfx.c b/src/mame/drivers/groundfx.c
index 9e5f726cf81..a1ad1451ee0 100644
--- a/src/mame/drivers/groundfx.c
+++ b/src/mame/drivers/groundfx.c
@@ -88,7 +88,7 @@ WRITE32_MEMBER(groundfx_state::color_ram_w)
g = (a &0xff00) >> 8;
b = (a &0xff);
- palette_set_color(machine(),offset,rgb_t(r,g,b));
+ m_palette->set_pen_color(offset,rgb_t(r,g,b));
}
}
@@ -367,7 +367,7 @@ static MACHINE_CONFIG_START( groundfx, groundfx_state )
MCFG_SCREEN_UPDATE_DRIVER(groundfx_state, screen_update_groundfx)
MCFG_GFXDECODE_ADD("gfxdecode", groundfx)
- MCFG_PALETTE_LENGTH(16384)
+ MCFG_PALETTE_ADD("palette", 16384)
MCFG_TC0100SCN_ADD("tc0100scn", groundfx_tc0100scn_intf)
diff --git a/src/mame/drivers/gstream.c b/src/mame/drivers/gstream.c
index 49de479241a..6a2f15dd334 100644
--- a/src/mame/drivers/gstream.c
+++ b/src/mame/drivers/gstream.c
@@ -246,12 +246,12 @@ WRITE32_MEMBER(gstream_state::gstream_palette_w)
{
COMBINE_DATA(&m_paletteram[offset]);
- palette_set_color_rgb(machine(), offset * 2, pal5bit(m_paletteram[offset] >> (0 + 16)),
+ m_palette->set_pen_color(offset * 2, pal5bit(m_paletteram[offset] >> (0 + 16)),
pal5bit(m_paletteram[offset] >> (6 + 16)),
pal5bit(m_paletteram[offset] >> (11 + 16)));
- palette_set_color_rgb(machine(),offset * 2 + 1,pal5bit(m_paletteram[offset] >> (0)),
+ m_palette->set_pen_color(offset * 2 + 1,pal5bit(m_paletteram[offset] >> (0)),
pal5bit(m_paletteram[offset] >> (6)),
pal5bit(m_paletteram[offset] >> (11)));
}
@@ -785,7 +785,7 @@ void gstream_state::draw_bg_gstream(bitmap_rgb32 &bitmap, const rectangle &clipr
if (m_gfxdecode->gfx(map+5))
drawgfx_transpen_x2222(bitmap,cliprect,m_gfxdecode->gfx(map),m_gfxdecode->gfx(map+5),code,0,0,0,(x*32)-(scrollx&0x1f)-m_xoffset,(y*32)-(scrolly&0x1f),0);
else
- m_gfxdecode->gfx(map)->transpen(bitmap,cliprect,code,pal,0,0,(x*32)-(scrollx&0x1f)-m_xoffset,(y*32)-(scrolly&0x1f),0);
+ m_gfxdecode->gfx(map)->transpen(m_palette,bitmap,cliprect,code,pal,0,0,(x*32)-(scrollx&0x1f)-m_xoffset,(y*32)-(scrolly&0x1f),0);
basex++;
}
@@ -841,10 +841,10 @@ UINT32 gstream_state::screen_update_gstream(screen_device &screen, bitmap_rgb32
}
else
{
- m_gfxdecode->gfx(3)->transpen(bitmap, cliprect, code, col, 0, 0, x - m_xoffset, y, 0);
- m_gfxdecode->gfx(3)->transpen(bitmap, cliprect, code, col, 0, 0, x - m_xoffset, y-0x100, 0);
- m_gfxdecode->gfx(3)->transpen(bitmap, cliprect, code, col, 0, 0, x - m_xoffset - 0x200, y, 0);
- m_gfxdecode->gfx(3)->transpen(bitmap, cliprect, code, col, 0, 0, x - m_xoffset - 0x200, y-0x100, 0);
+ m_gfxdecode->gfx(3)->transpen(m_palette,bitmap, cliprect, code, col, 0, 0, x - m_xoffset, y, 0);
+ m_gfxdecode->gfx(3)->transpen(m_palette,bitmap, cliprect, code, col, 0, 0, x - m_xoffset, y-0x100, 0);
+ m_gfxdecode->gfx(3)->transpen(m_palette,bitmap, cliprect, code, col, 0, 0, x - m_xoffset - 0x200, y, 0);
+ m_gfxdecode->gfx(3)->transpen(m_palette,bitmap, cliprect, code, col, 0, 0, x - m_xoffset - 0x200, y-0x100, 0);
}
}
@@ -895,8 +895,8 @@ static MACHINE_CONFIG_START( gstream, gstream_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(gstream_state, screen_update_gstream)
- MCFG_PALETTE_LENGTH(0x1000 + 0x400 + 0x400 + 0x400) // sprites + 3 bg layers
- MCFG_GFXDECODE_ADD("gfxdecode",gstream)
+ MCFG_PALETTE_ADD("palette", 0x1000 + 0x400 + 0x400 + 0x400) // sprites + 3 bg layers
+ MCFG_GFXDECODE_ADD("gfxdecode", gstream)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -927,8 +927,8 @@ static MACHINE_CONFIG_START( x2222, gstream_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(gstream_state, screen_update_gstream)
- MCFG_PALETTE_LENGTH(0x1000 + 0x400 + 0x400 + 0x400) // doesn't use a palette, but keep fake gfxdecode happy
- MCFG_GFXDECODE_ADD("gfxdecode",x2222)
+ MCFG_PALETTE_ADD("palette", 0x1000 + 0x400 + 0x400 + 0x400) // doesn't use a palette, but keep fake gfxdecode happy
+ MCFG_GFXDECODE_ADD("gfxdecode", x2222)
// unknown sound hw (no sound roms dumped)
diff --git a/src/mame/drivers/gstriker.c b/src/mame/drivers/gstriker.c
index ce4ec2887d6..99a279c7859 100644
--- a/src/mame/drivers/gstriker.c
+++ b/src/mame/drivers/gstriker.c
@@ -277,7 +277,7 @@ static ADDRESS_MAP_START( gstriker_map, AS_PROGRAM, 16, gstriker_state )
AM_RANGE(0x140000, 0x141fff) AM_RAM AM_SHARE("cg10103_vram")
AM_RANGE(0x180000, 0x180fff) AM_RAM_WRITE(VS920A_0_vram_w) AM_SHARE("vs920a_vram")
AM_RANGE(0x181000, 0x181fff) AM_RAM AM_SHARE("lineram")
- AM_RANGE(0x1c0000, 0x1c0fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1c0000, 0x1c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x200000, 0x20000f) AM_RAM_WRITE(MB60553_0_regs_w)
AM_RANGE(0x200040, 0x20005f) AM_RAM
@@ -314,7 +314,7 @@ static ADDRESS_MAP_START( vgoal_map, AS_PROGRAM, 16, gstriker_state )
AM_RANGE(0x140000, 0x141fff) AM_RAM AM_SHARE("cg10103_vram")
AM_RANGE(0x180000, 0x180fff) AM_RAM_WRITE(VS920A_0_vram_w) AM_SHARE("vs920a_vram")
AM_RANGE(0x181000, 0x181fff) AM_RAM AM_SHARE("lineram")
- AM_RANGE(0x1c0000, 0x1c4fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1c0000, 0x1c4fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x200000, 0x20000f) AM_RAM_WRITE(MB60553_0_regs_w)
AM_RANGE(0x200040, 0x20005f) AM_RAM
@@ -553,7 +553,8 @@ static MACHINE_CONFIG_START( gstriker, gstriker_state )
MCFG_SCREEN_UPDATE_DRIVER(gstriker_state, screen_update_gstriker)
MCFG_GFXDECODE_ADD("gfxdecode", gstriker)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr", VSYSTEM_SPR, 0)
MCFG_VSYSTEM_SPR_SET_GFXREGION(2)
@@ -561,6 +562,7 @@ static MACHINE_CONFIG_START( gstriker, gstriker_state )
MCFG_VSYSTEM_SPR_SET_PALMASK(0x1f)
MCFG_VSYSTEM_SPR_SET_TRANSPEN(0)
MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(gstriker_state,gstriker)
@@ -602,12 +604,14 @@ static MACHINE_CONFIG_START( vgoal, gstriker_state )
MCFG_SCREEN_UPDATE_DRIVER(gstriker_state, screen_update_gstriker)
MCFG_GFXDECODE_ADD("gfxdecode", gstriker)
- MCFG_PALETTE_LENGTH(0x2000)
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr", VSYSTEM_SPR, 0)
MCFG_VSYSTEM_SPR_SET_GFXREGION(2)
MCFG_VSYSTEM_SPR_SET_PALBASE(0x00)
MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(gstriker_state,vgoalsoc)
diff --git a/src/mame/drivers/gsword.c b/src/mame/drivers/gsword.c
index 175c45d5d2e..b03d34a889d 100644
--- a/src/mame/drivers/gsword.c
+++ b/src/mame/drivers/gsword.c
@@ -686,9 +686,9 @@ static MACHINE_CONFIG_START( gsword, gsword_state )
MCFG_SCREEN_UPDATE_DRIVER(gsword_state, screen_update_gsword)
MCFG_GFXDECODE_ADD("gfxdecode", gsword)
- MCFG_PALETTE_LENGTH(64*4+64*4)
+ MCFG_PALETTE_ADD("palette", 64*4+64*4)
- MCFG_PALETTE_INIT_OVERRIDE(gsword_state,gsword)
+ MCFG_PALETTE_INIT_OWNER(gsword_state,gsword)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -729,9 +729,9 @@ static MACHINE_CONFIG_START( josvolly, gsword_state )
MCFG_SCREEN_UPDATE_DRIVER(gsword_state, screen_update_gsword)
MCFG_GFXDECODE_ADD("gfxdecode", gsword)
- MCFG_PALETTE_LENGTH(64*4+64*4)
+ MCFG_PALETTE_ADD("palette", 64*4+64*4)
- MCFG_PALETTE_INIT_OVERRIDE(gsword_state,josvolly)
+ MCFG_PALETTE_INIT_OWNER(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 afc8b543c13..ead1976c286 100644
--- a/src/mame/drivers/gticlub.c
+++ b/src/mame/drivers/gticlub.c
@@ -308,7 +308,7 @@ WRITE32_MEMBER(gticlub_state::paletteram32_w)
{
COMBINE_DATA(&m_generic_paletteram_32[offset]);
data = m_generic_paletteram_32[offset];
- palette_set_color_rgb(machine(), offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
+ m_palette->set_pen_color(offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
}
WRITE_LINE_MEMBER(gticlub_state::voodoo_vblank_0)
@@ -917,7 +917,7 @@ UINT32 gticlub_state::screen_update_gticlub(screen_device &screen, bitmap_rgb32
UINT32 gticlub_state::screen_update_hangplt(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(machine().pens[0], cliprect);
+ bitmap.fill(m_palette->pen(0), cliprect);
if (strcmp(screen.tag(), ":lscreen") == 0)
{
@@ -979,13 +979,14 @@ static MACHINE_CONFIG_START( gticlub, gticlub_state )
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
MCFG_SCREEN_UPDATE_DRIVER(gticlub_state, screen_update_gticlub)
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD("palette", 65536)
MCFG_VIDEO_START_OVERRIDE(gticlub_state,gticlub)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K001604_ADD("k001604_1", gticlub_k001604_intf)
MCFG_K001604_GFXDECODE("gfxdecode")
+ MCFG_K001604_PALETTE("palette")
MCFG_K056800_ADD("k056800", XTAL_33_8688MHz/2)
MCFG_K056800_INT_HANDLER(INPUTLINE("audiocpu", M68K_IRQ_2))
@@ -1014,6 +1015,7 @@ static MACHINE_CONFIG_DERIVED( slrasslt, gticlub )
MCFG_DEVICE_REMOVE("k001604_1")
MCFG_K001604_ADD("k001604_1", slrasslt_k001604_intf)
MCFG_K001604_GFXDECODE("gfxdecode")
+ MCFG_K001604_PALETTE("palette")
MACHINE_CONFIG_END
@@ -1089,7 +1091,7 @@ static MACHINE_CONFIG_START( hangplt, gticlub_state )
MCFG_K033906_ADD("k033906_2", hangplt_k033906_intf_1)
/* video hardware */
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD("palette", 65536)
MCFG_SCREEN_ADD("lscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -1107,9 +1109,11 @@ static MACHINE_CONFIG_START( hangplt, gticlub_state )
MCFG_K001604_ADD("k001604_1", hangplt_k001604_intf_l)
MCFG_K001604_GFXDECODE("gfxdecode")
+ MCFG_K001604_PALETTE("palette")
MCFG_K001604_ADD("k001604_2", hangplt_k001604_intf_r)
MCFG_K001604_GFXDECODE("gfxdecode")
+ MCFG_K001604_PALETTE("palette")
MCFG_K056800_ADD("k056800", XTAL_33_8688MHz/2)
MCFG_K056800_INT_HANDLER(INPUTLINE("audiocpu", M68K_IRQ_2))
diff --git a/src/mame/drivers/guab.c b/src/mame/drivers/guab.c
index ac1644243ea..419152c1b65 100644
--- a/src/mame/drivers/guab.c
+++ b/src/mame/drivers/guab.c
@@ -228,7 +228,7 @@ WRITE16_MEMBER(guab_state::ef9369_w)
col = pal.clut[entry] & 0xfff;
/* Update the MAME palette */
- palette_set_color_rgb(machine(), entry, pal4bit(col >> 0), pal4bit(col >> 4), pal4bit(col >> 8));
+ m_palette->set_pen_color(entry, pal4bit(col >> 0), pal4bit(col >> 4), pal4bit(col >> 8));
}
/* Address register auto-increment */
@@ -265,7 +265,7 @@ UINT32 guab_state::screen_update_guab(screen_device &screen, bitmap_ind16 &bitma
/* If blanked, fill with black */
if (m_tms34061->m_display.blanked)
{
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
return 0;
}
@@ -279,8 +279,8 @@ UINT32 guab_state::screen_update_guab(screen_device &screen, bitmap_ind16 &bitma
UINT8 pen = src[x >> 1];
/* Draw two 4-bit pixels */
- *dest++ = machine().pens[pen >> 4];
- *dest++ = machine().pens[pen & 0x0f];
+ *dest++ = m_palette->pen(pen >> 4);
+ *dest++ = m_palette->pen(pen & 0x0f);
}
}
@@ -805,7 +805,7 @@ static MACHINE_CONFIG_START( guab, guab_state )
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(guab_state, screen_update_guab)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
MCFG_TMS34061_ADD("tms34061", tms34061intf)
diff --git a/src/mame/drivers/gumbo.c b/src/mame/drivers/gumbo.c
index 19b5c9cf69b..55431d51644 100644
--- a/src/mame/drivers/gumbo.c
+++ b/src/mame/drivers/gumbo.c
@@ -49,7 +49,7 @@ PCB Layout
static ADDRESS_MAP_START( gumbo_map, AS_PROGRAM, 16, gumbo_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM // main ram
- AM_RANGE(0x1b0000, 0x1b03ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1b0000, 0x1b03ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x1c0100, 0x1c0101) AM_READ_PORT("P1_P2")
AM_RANGE(0x1c0200, 0x1c0201) AM_READ_PORT("DSW")
AM_RANGE(0x1c0300, 0x1c0301) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
@@ -63,7 +63,7 @@ static ADDRESS_MAP_START( mspuzzle_map, AS_PROGRAM, 16, gumbo_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM // main ram
AM_RANGE(0x190000, 0x197fff) AM_RAM_WRITE(gumbo_fg_videoram_w) AM_SHARE("fg_videoram") // fg tilemap
- AM_RANGE(0x1a0000, 0x1a03ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1a0000, 0x1a03ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x1b0100, 0x1b0101) AM_READ_PORT("P1_P2")
AM_RANGE(0x1b0200, 0x1b0201) AM_READ_PORT("DSW")
AM_RANGE(0x1b0300, 0x1b0301) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
@@ -73,7 +73,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dblpoint_map, AS_PROGRAM, 16, gumbo_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM // main ram
- AM_RANGE(0x1b0000, 0x1b03ff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1b0000, 0x1b03ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x1c0100, 0x1c0101) AM_READ_PORT("P1_P2")
AM_RANGE(0x1c0200, 0x1c0201) AM_READ_PORT("DSW")
AM_RANGE(0x1c0300, 0x1c0301) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
@@ -242,8 +242,8 @@ static MACHINE_CONFIG_START( gumbo, gumbo_state )
MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(gumbo_state, screen_update_gumbo)
- MCFG_PALETTE_LENGTH(0x200)
-
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/gunbustr.c b/src/mame/drivers/gunbustr.c
index 61d8f805c81..664d3ab45b2 100644
--- a/src/mame/drivers/gunbustr.c
+++ b/src/mame/drivers/gunbustr.c
@@ -75,10 +75,10 @@ WRITE32_MEMBER(gunbustr_state::gunbustr_palette_w)
COMBINE_DATA(&m_generic_paletteram_32[offset]);
a = m_generic_paletteram_32[offset] >> 16;
- palette_set_color_rgb(machine(),offset*2,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0));
+ m_palette->set_pen_color(offset*2,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0));
a = m_generic_paletteram_32[offset] &0xffff;
- palette_set_color_rgb(machine(),offset*2+1,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0));
+ m_palette->set_pen_color(offset*2+1,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0));
}
CUSTOM_INPUT_MEMBER(gunbustr_state::coin_word_r)
@@ -312,7 +312,7 @@ static MACHINE_CONFIG_START( gunbustr, gunbustr_state )
MCFG_SCREEN_UPDATE_DRIVER(gunbustr_state, screen_update_gunbustr)
MCFG_GFXDECODE_ADD("gfxdecode", gunbustr)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_TC0480SCP_ADD("tc0480scp", gunbustr_tc0480scp_intf)
diff --git a/src/mame/drivers/gundealr.c b/src/mame/drivers/gundealr.c
index b24cc57d037..c5a6a0ba1f9 100644
--- a/src/mame/drivers/gundealr.c
+++ b/src/mame/drivers/gundealr.c
@@ -418,7 +418,7 @@ static MACHINE_CONFIG_START( gundealr, gundealr_state )
MCFG_SCREEN_UPDATE_DRIVER(gundealr_state, screen_update_gundealr)
MCFG_GFXDECODE_ADD("gfxdecode", gundealr)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
/* sound hardware */
diff --git a/src/mame/drivers/gunpey.c b/src/mame/drivers/gunpey.c
index d465b887c5a..c43f39a08dd 100644
--- a/src/mame/drivers/gunpey.c
+++ b/src/mame/drivers/gunpey.c
@@ -222,7 +222,6 @@ public:
DECLARE_WRITE16_MEMBER(gunpey_vregs_addr_w);
DECLARE_DRIVER_INIT(gunpey);
virtual void video_start();
- virtual void palette_init();
UINT32 screen_update_gunpey(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(gunpey_scanline);
TIMER_CALLBACK_MEMBER(blitter_end);
@@ -555,7 +554,7 @@ UINT32 gunpey_state::screen_update_gunpey(screen_device &screen, bitmap_ind16 &b
int count;
int scene_index;
- bitmap.fill(machine().pens[0], cliprect); //black pen
+ bitmap.fill(m_palette->pen(0), cliprect); //black pen
if((!(m_vreg_addr & 0x8000)) || (!(m_vram_bank & 0x8000)))
return 0;
@@ -1407,15 +1406,6 @@ INPUT_PORTS_END
/***************************************************************************************/
-void gunpey_state::palette_init()
-{
- int i;
-
- for (i = 0; i < 0x8000; i++)
- palette_set_color(machine(), i, rgb_t( pal5bit((i >> 10)&0x1f), pal5bit(((i >> 5))&0x1f), pal5bit((i >> 0)&0x1f)));
-}
-
-
/*:
0x01
0x04 blitter ready
@@ -1464,7 +1454,7 @@ static MACHINE_CONFIG_START( gunpey, gunpey_state )
MCFG_SCREEN_RAW_PARAMS(57242400/8, 442, 0, 320, 264, 0, 240) /* just to get ~60 Hz */
MCFG_SCREEN_UPDATE_DRIVER(gunpey_state, screen_update_gunpey)
- MCFG_PALETTE_LENGTH(0x10000)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
MCFG_GFXDECODE_ADD("gfxdecode", gunpey)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker")
diff --git a/src/mame/drivers/gunsmoke.c b/src/mame/drivers/gunsmoke.c
index da44342a432..33ffe3afd58 100644
--- a/src/mame/drivers/gunsmoke.c
+++ b/src/mame/drivers/gunsmoke.c
@@ -312,7 +312,9 @@ static MACHINE_CONFIG_START( gunsmoke, gunsmoke_state )
MCFG_SCREEN_UPDATE_DRIVER(gunsmoke_state, screen_update_gunsmoke)
MCFG_GFXDECODE_ADD("gfxdecode", gunsmoke)
- MCFG_PALETTE_LENGTH(32*4+16*16+16*16)
+
+ MCFG_PALETTE_ADD("palette", 32*4+16*16+16*16)
+ MCFG_PALETTE_INIT_OWNER(gunsmoke_state, gunsmoke)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c
index 0c9444742df..a58c40feae0 100644
--- a/src/mame/drivers/gyruss.c
+++ b/src/mame/drivers/gyruss.c
@@ -535,8 +535,8 @@ static MACHINE_CONFIG_START( gyruss, gyruss_state )
MCFG_SCREEN_UPDATE_DRIVER(gyruss_state, screen_update_gyruss)
MCFG_GFXDECODE_ADD("gfxdecode", gyruss)
- MCFG_PALETTE_LENGTH(16*4+16*16)
-
+ MCFG_PALETTE_ADD("palette", 16*4+16*16)
+ MCFG_PALETTE_INIT_OWNER(gyruss_state, gyruss)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/halleys.c b/src/mame/drivers/halleys.c
index b232f4d10de..e0a430e863f 100644
--- a/src/mame/drivers/halleys.c
+++ b/src/mame/drivers/halleys.c
@@ -265,7 +265,7 @@ public:
DECLARE_DRIVER_INIT(halleys);
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(halleys);
UINT32 screen_update_halleys(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_benberob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(blitter_reset);
@@ -1122,7 +1122,7 @@ READ8_MEMBER(halleys_state::collision_id_r)
//**************************************************************************
// Video Initializations and Updates
-void halleys_state::palette_init()
+PALETTE_INIT_MEMBER(halleys_state, halleys)
{
UINT32 d, r, g, b, i, j, count;
UINT32 *pal_ptr = m_internal_palette;
@@ -1130,7 +1130,7 @@ void halleys_state::palette_init()
for (count=0; count<1024; count++)
{
pal_ptr[count] = 0;
- palette_set_color(machine(), count, rgb_t(0, 0, 0));
+ palette.set_pen_color(count, rgb_t(0, 0, 0));
}
// 00-31: palette RAM(ffc0-ffdf)
@@ -1151,7 +1151,7 @@ void halleys_state::palette_init()
g = r + count + BG_MONO;
r += i;
pal_ptr[g] = d;
- palette_set_color(machine(), g, rgb_t(r, r, r));
+ palette.set_pen_color(g, rgb_t(r, r, r));
}
}
@@ -1166,7 +1166,7 @@ void halleys_state::palette_init()
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_pen_color(j, pal4bit(r), pal4bit(g), pal4bit(b));
}
}
@@ -1234,13 +1234,13 @@ WRITE8_MEMBER(halleys_state::halleys_paletteram_IIRRGGBB_w)
g = d & 0x0c; g |= i; g = g<<4 | g;
b = d<<2 & 0x0c; b |= i; b = b<<4 | b;
- palette_set_color(machine(), offset, rgb_t(r, g, b));
- palette_set_color(machine(), offset+SP_2BACK, rgb_t(r, g, b));
- palette_set_color(machine(), offset+SP_ALPHA, rgb_t(r, g, b));
- palette_set_color(machine(), offset+SP_COLLD, rgb_t(r, g, b));
+ m_palette->set_pen_color(offset, rgb_t(r, g, b));
+ m_palette->set_pen_color(offset+SP_2BACK, rgb_t(r, g, b));
+ m_palette->set_pen_color(offset+SP_ALPHA, rgb_t(r, g, b));
+ m_palette->set_pen_color(offset+SP_COLLD, rgb_t(r, g, b));
halleys_decode_rgb(&r, &g, &b, offset, 0);
- palette_set_color(machine(), offset+0x20, rgb_t(r, g, b));
+ m_palette->set_pen_color(offset+0x20, rgb_t(r, g, b));
}
@@ -1943,7 +1943,7 @@ void halleys_state::machine_reset()
m_blitter_busy = 0;
m_collision_count = 0;
m_stars_enabled = 0;
- m_bgcolor = get_black_pen(machine());
+ m_bgcolor = m_palette->black_pen();
m_fftail = m_ffhead = m_ffcount = 0;
memset(m_io_ram, 0xff, m_io_ram.bytes());
@@ -1981,8 +1981,8 @@ static MACHINE_CONFIG_START( halleys, halleys_state )
MCFG_SCREEN_VISIBLE_AREA(VIS_MINX, VIS_MAXX, VIS_MINY, VIS_MAXY)
MCFG_SCREEN_UPDATE_DRIVER(halleys_state, screen_update_halleys)
- MCFG_PALETTE_LENGTH(PALETTE_SIZE)
-
+ MCFG_PALETTE_ADD("palette", PALETTE_SIZE)
+ MCFG_PALETTE_INIT_OWNER(halleys_state, halleys)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hanaawas.c b/src/mame/drivers/hanaawas.c
index 74a867deb06..151912588c8 100644
--- a/src/mame/drivers/hanaawas.c
+++ b/src/mame/drivers/hanaawas.c
@@ -210,8 +210,8 @@ static MACHINE_CONFIG_START( hanaawas, hanaawas_state )
MCFG_SCREEN_UPDATE_DRIVER(hanaawas_state, screen_update_hanaawas)
MCFG_GFXDECODE_ADD("gfxdecode", hanaawas)
- MCFG_PALETTE_LENGTH(32*8)
-
+ MCFG_PALETTE_ADD("palette", 32*8)
+ MCFG_PALETTE_INIT_OWNER(hanaawas_state, hanaawas)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/harddriv.c b/src/mame/drivers/harddriv.c
index 15b76f0f44f..98a75195f99 100644
--- a/src/mame/drivers/harddriv.c
+++ b/src/mame/drivers/harddriv.c
@@ -1340,7 +1340,7 @@ static MACHINE_CONFIG_START( driver_nomsp, harddriv_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(HARDDRIV_GSP_CLOCK/12*4, 160*4, 0, 127*4, 417, 0, 384)
diff --git a/src/mame/drivers/hcastle.c b/src/mame/drivers/hcastle.c
index 324c8d226b0..329cf9ad435 100644
--- a/src/mame/drivers/hcastle.c
+++ b/src/mame/drivers/hcastle.c
@@ -214,11 +214,14 @@ static MACHINE_CONFIG_START( hcastle, hcastle_state )
MCFG_SCREEN_UPDATE_DRIVER(hcastle_state, screen_update_hcastle)
MCFG_GFXDECODE_ADD("gfxdecode", hcastle)
- MCFG_PALETTE_LENGTH(2*8*16*16)
+ MCFG_PALETTE_ADD("palette", 2*8*16*16)
+ MCFG_PALETTE_INIT_OWNER(hcastle_state, hcastle)
MCFG_K007121_ADD("k007121_1")
+ MCFG_K007121_PALETTE("palette")
MCFG_K007121_ADD("k007121_2")
+ MCFG_K007121_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/headonb.c b/src/mame/drivers/headonb.c
index b592cc94133..51491bc3fcd 100644
--- a/src/mame/drivers/headonb.c
+++ b/src/mame/drivers/headonb.c
@@ -47,7 +47,6 @@ public:
DECLARE_WRITE8_MEMBER(headonb_video_ram_w);
- virtual void palette_init();
virtual void video_start();
UINT32 screen_update_headonb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TILE_GET_INFO_MEMBER(get_headonb_tile_info);
@@ -62,12 +61,6 @@ public:
***************************************************************************/
-void headonb_state::palette_init()
-{
- palette_set_color(machine(), 0, rgb_t::black);
- palette_set_color(machine(), 1, rgb_t::white);
-}
-
TILE_GET_INFO_MEMBER(headonb_state::get_headonb_tile_info)
{
UINT8 code = m_video_ram[tile_index];
@@ -178,7 +171,7 @@ static MACHINE_CONFIG_START( headonb, headonb_state )
MCFG_SCREEN_UPDATE_DRIVER(headonb_state, screen_update_headonb)
MCFG_GFXDECODE_ADD("gfxdecode", headonb)
- MCFG_PALETTE_LENGTH(2)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
// TODO
diff --git a/src/mame/drivers/hexion.c b/src/mame/drivers/hexion.c
index ecf110b63d4..e1f80244179 100644
--- a/src/mame/drivers/hexion.c
+++ b/src/mame/drivers/hexion.c
@@ -235,9 +235,7 @@ static MACHINE_CONFIG_START( hexion, hexion_state )
MCFG_SCREEN_UPDATE_DRIVER(hexion_state, screen_update_hexion)
MCFG_GFXDECODE_ADD("gfxdecode", hexion)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hideseek.c b/src/mame/drivers/hideseek.c
index 5feba86cadb..042b64d3fec 100644
--- a/src/mame/drivers/hideseek.c
+++ b/src/mame/drivers/hideseek.c
@@ -41,7 +41,7 @@ public:
DECLARE_DRIVER_INIT(hideseek);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(hideseek);
UINT32 screen_update_hideseek(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -82,12 +82,12 @@ static GFXDECODE_START( hideseek )
GFXDECODE_END
-void hideseek_state::palette_init()
+PALETTE_INIT_MEMBER(hideseek_state, hideseek)
{
int i;
for (i = 0; i < 0x8000; i++)
- palette_set_color(machine(), i, rgb_t( pal5bit((i >> 10)&0x1f), pal5bit(((i >> 5))&0x1f), pal5bit((i >> 0)&0x1f)));
+ palette.set_pen_color(i, rgb_t( pal5bit((i >> 10)&0x1f), pal5bit(((i >> 5))&0x1f), pal5bit((i >> 0)&0x1f)));
}
@@ -107,7 +107,8 @@ static MACHINE_CONFIG_START( hideseek, hideseek_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(hideseek_state, screen_update_hideseek)
- MCFG_PALETTE_LENGTH(0x10000)
+ MCFG_PALETTE_ADD("palette", 0x10000)
+ MCFG_PALETTE_INIT_OWNER(hideseek_state, hideseek)
MCFG_GFXDECODE_ADD("gfxdecode", hideseek)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker")
diff --git a/src/mame/drivers/higemaru.c b/src/mame/drivers/higemaru.c
index 3af74abecc4..2315fa5112d 100644
--- a/src/mame/drivers/higemaru.c
+++ b/src/mame/drivers/higemaru.c
@@ -173,8 +173,9 @@ static MACHINE_CONFIG_START( higemaru, higemaru_state )
MCFG_SCREEN_UPDATE_DRIVER(higemaru_state, screen_update_higemaru)
MCFG_GFXDECODE_ADD("gfxdecode", higemaru)
- MCFG_PALETTE_LENGTH(32*4+16*16)
+ MCFG_PALETTE_ADD("palette", 32*4+16*16)
+ MCFG_PALETTE_INIT_OWNER(higemaru_state, higemaru)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/highvdeo.c b/src/mame/drivers/highvdeo.c
index faa2fd7577d..c5c7033c507 100644
--- a/src/mame/drivers/highvdeo.c
+++ b/src/mame/drivers/highvdeo.c
@@ -172,12 +172,12 @@ UINT32 highvdeo_state::screen_update_tourvisn(screen_device &screen, bitmap_rgb3
color = ((m_blit_ram[count]) & 0x00ff)>>0;
if(cliprect.contains((x*2)+0, y))
- bitmap.pix32(y, (x*2)+0) = machine().pens[color];
+ bitmap.pix32(y, (x*2)+0) = m_palette->pen(color);
color = ((m_blit_ram[count]) & 0xff00)>>8;
if(cliprect.contains((x*2)+1, y))
- bitmap.pix32(y, (x*2)+1) = machine().pens[color];
+ bitmap.pix32(y, (x*2)+1) = m_palette->pen(color);
count++;
}
@@ -257,7 +257,7 @@ WRITE16_MEMBER(highvdeo_state::tv_vcf_paletteram_w)
break;
case 2:
m_pal.b = ((data & 0x3f) << 2) | ((data & 0x30) >> 4);
- palette_set_color(machine(), m_pal.offs, rgb_t(m_pal.r, m_pal.g, m_pal.b));
+ m_palette->set_pen_color(m_pal.offs, rgb_t(m_pal.r, m_pal.g, m_pal.b));
m_pal.offs_internal = 0;
m_pal.offs++;
break;
@@ -441,7 +441,7 @@ WRITE16_MEMBER(highvdeo_state::tv_tcf_paletteram_w)
g = (color >> 3) & 0xf8;
b = (color << 3) & 0xf8;
- palette_set_color_rgb(machine(), offset, r, g, b);
+ m_palette->set_pen_color(offset, r, g, b);
}
WRITE16_MEMBER(highvdeo_state::tv_tcf_bankselect_w)
@@ -1086,7 +1086,7 @@ static MACHINE_CONFIG_START( tv_vcf, highvdeo_state )
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_tourvisn)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_START_OVERRIDE(highvdeo_state,tourvisn)
@@ -1160,7 +1160,7 @@ static MACHINE_CONFIG_START( brasil, highvdeo_state )
MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1)
MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_START_OVERRIDE(highvdeo_state,tourvisn)
diff --git a/src/mame/drivers/hikaru.c b/src/mame/drivers/hikaru.c
index 8aafac4c226..73d888258f6 100644
--- a/src/mame/drivers/hikaru.c
+++ b/src/mame/drivers/hikaru.c
@@ -502,7 +502,7 @@ static MACHINE_CONFIG_START( hikaru, hikaru_state )
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
MCFG_SCREEN_UPDATE_DRIVER(hikaru_state, screen_update_hikaru)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
// MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/himesiki.c b/src/mame/drivers/himesiki.c
index d4c45545447..4a11ffda16c 100644
--- a/src/mame/drivers/himesiki.c
+++ b/src/mame/drivers/himesiki.c
@@ -109,7 +109,7 @@ static ADDRESS_MAP_START( himesiki_prm0, AS_PROGRAM, 8, himesiki_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa800, 0xafff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xb000, 0xbfff) AM_RAM_WRITE(himesiki_bg_ram_w) AM_SHARE("bg_ram")
AM_RANGE(0xc000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
@@ -306,7 +306,8 @@ static MACHINE_CONFIG_START( himesiki, himesiki_state )
MCFG_SCREEN_UPDATE_DRIVER(himesiki_state, screen_update_himesiki)
MCFG_GFXDECODE_ADD("gfxdecode", himesiki)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c
index 97dbf9518bd..d7babf8a7ad 100644
--- a/src/mame/drivers/hitme.c
+++ b/src/mame/drivers/hitme.c
@@ -323,9 +323,8 @@ static MACHINE_CONFIG_START( hitme, hitme_state )
MCFG_SCREEN_UPDATE_DRIVER(hitme_state, screen_update_hitme)
MCFG_GFXDECODE_ADD("gfxdecode", hitme)
- MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hitpoker.c b/src/mame/drivers/hitpoker.c
index 99b60be8487..6fefcfc8f1e 100644
--- a/src/mame/drivers/hitpoker.c
+++ b/src/mame/drivers/hitpoker.c
@@ -117,7 +117,7 @@ UINT32 hitpoker_state::screen_update_hitpoker(screen_device &screen, bitmap_ind1
gfx_bpp = (m_colorram[count] & 0x80)>>7; //flag between 4 and 8 bpp
color = gfx_bpp ? ((m_colorram[count] & 0x70)>>4) : (m_colorram[count] & 0xf);
- m_gfxdecode->gfx(gfx_bpp)->opaque(bitmap,cliprect,tile,color,0,0,x*8,y*8);
+ m_gfxdecode->gfx(gfx_bpp)->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*8,y*8);
count+=2;
}
@@ -181,7 +181,7 @@ WRITE8_MEMBER(hitpoker_state::hitpoker_paletteram_w)
g = ((datax)&0x07e0)>>5;
r = ((datax)&0x001f)>>0;
- palette_set_color_rgb(machine(), offset, pal5bit(r), pal6bit(g), pal5bit(b));
+ m_palette->set_pen_color(offset, pal5bit(r), pal6bit(g), pal5bit(b));
}
READ8_MEMBER(hitpoker_state::rtc_r)
@@ -511,7 +511,7 @@ static MACHINE_CONFIG_START( hitpoker, hitpoker_state )
MCFG_MC6845_ADD("crtc", H46505, "screen", CRTC_CLOCK/2, mc6845_intf) /* hand tuned to get ~60 fps */
MCFG_GFXDECODE_ADD("gfxdecode", hitpoker)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hnayayoi.c b/src/mame/drivers/hnayayoi.c
index 10b286098f8..8ac847bd948 100644
--- a/src/mame/drivers/hnayayoi.c
+++ b/src/mame/drivers/hnayayoi.c
@@ -565,9 +565,7 @@ static MACHINE_CONFIG_START( hnayayoi, hnayayoi_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(hnayayoi_state, screen_update_hnayayoi)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c
index 8983d59e173..0f039cb5d7f 100644
--- a/src/mame/drivers/hng64.c
+++ b/src/mame/drivers/hng64.c
@@ -525,7 +525,7 @@ WRITE32_MEMBER(hng64_state::hng64_pal_w)
g = ((paletteram[offset] & 0x0000ff00) >>8);
r = ((paletteram[offset] & 0x00ff0000) >>16);
//a = ((paletteram[offset] & 0xff000000) >>24);
- palette_set_color(machine(),offset,rgb_t(r,g,b));
+ m_palette->set_pen_color(offset,rgb_t(r,g,b));
}
READ32_MEMBER(hng64_state::hng64_sysregs_r)
@@ -1970,10 +1970,9 @@ static MACHINE_CONFIG_START( hng64, hng64_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(hng64_state, screen_update_hng64)
-
- MCFG_PALETTE_LENGTH(0x1000)
-
MCFG_SCREEN_VBLANK_DRIVER(hng64_state, screen_eof_hng64)
+
+ MCFG_PALETTE_ADD("palette", 0x1000)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/holeland.c b/src/mame/drivers/holeland.c
index 7484ca2133e..32668afdbc7 100644
--- a/src/mame/drivers/holeland.c
+++ b/src/mame/drivers/holeland.c
@@ -291,9 +291,7 @@ static MACHINE_CONFIG_START( holeland, holeland_state )
MCFG_SCREEN_UPDATE_DRIVER(holeland_state, screen_update_holeland)
MCFG_GFXDECODE_ADD("gfxdecode", holeland)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_VIDEO_START_OVERRIDE(holeland_state,holeland)
/* sound hardware */
@@ -361,9 +359,7 @@ static MACHINE_CONFIG_START( crzrally, holeland_state )
MCFG_SCREEN_UPDATE_DRIVER(holeland_state, screen_update_crzrally)
MCFG_GFXDECODE_ADD("gfxdecode", crzrally)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_VIDEO_START_OVERRIDE(holeland_state,crzrally)
/* sound hardware */
diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c
index 89559180671..97148393b47 100644
--- a/src/mame/drivers/homedata.c
+++ b/src/mame/drivers/homedata.c
@@ -1241,9 +1241,9 @@ static MACHINE_CONFIG_START( mrokumei, homedata_state )
MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata)
MCFG_GFXDECODE_ADD("gfxdecode", mrokumei)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
- MCFG_PALETTE_INIT_OVERRIDE(homedata_state,mrokumei)
+ MCFG_PALETTE_INIT_OWNER(homedata_state,mrokumei)
MCFG_VIDEO_START_OVERRIDE(homedata_state,mrokumei)
/* sound hardware */
@@ -1298,9 +1298,9 @@ static MACHINE_CONFIG_START( reikaids, homedata_state )
MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata)
MCFG_GFXDECODE_ADD("gfxdecode", reikaids)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
- MCFG_PALETTE_INIT_OVERRIDE(homedata_state,reikaids)
+ MCFG_PALETTE_INIT_OWNER(homedata_state,reikaids)
MCFG_VIDEO_START_OVERRIDE(homedata_state,reikaids)
/* sound hardware */
@@ -1348,9 +1348,9 @@ static MACHINE_CONFIG_START( pteacher, homedata_state )
MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata)
MCFG_GFXDECODE_ADD("gfxdecode", pteacher)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
- MCFG_PALETTE_INIT_OVERRIDE(homedata_state,pteacher)
+ MCFG_PALETTE_INIT_OWNER(homedata_state,pteacher)
MCFG_VIDEO_START_OVERRIDE(homedata_state,pteacher)
/* sound hardware */
@@ -1510,9 +1510,9 @@ static MACHINE_CONFIG_START( mirderby, homedata_state )
MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_mirderby)
MCFG_GFXDECODE_ADD("gfxdecode", mirderby)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
- MCFG_PALETTE_INIT_OVERRIDE(homedata_state,mirderby)
+ MCFG_PALETTE_INIT_OWNER(homedata_state,mirderby)
MCFG_VIDEO_START_OVERRIDE(homedata_state,mirderby)
/* sound hardware */
diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c
index 73a842b1fbf..4b1374d5349 100644
--- a/src/mame/drivers/homerun.c
+++ b/src/mame/drivers/homerun.c
@@ -390,7 +390,7 @@ static MACHINE_CONFIG_START( dynashot, homerun_state )
MCFG_SCREEN_UPDATE_DRIVER(homerun_state, screen_update_homerun)
MCFG_GFXDECODE_ADD("gfxdecode", homerun)
- MCFG_PALETTE_LENGTH(16*4)
+ MCFG_PALETTE_ADD("palette", 16*4)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c
index c197a41d335..a6c2c38daa5 100644
--- a/src/mame/drivers/hornet.c
+++ b/src/mame/drivers/hornet.c
@@ -999,12 +999,13 @@ static MACHINE_CONFIG_START( hornet, hornet_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1)
MCFG_SCREEN_UPDATE_DRIVER(hornet_state, screen_update_hornet)
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD("palette", 65536)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K037122_ADD("k037122_1", "screen", 0)
MCFG_K037122_GFXDECODE("gfxdecode")
+ MCFG_K037122_PALETTE("palette")
MCFG_K056800_ADD("k056800", XTAL_16_9344MHz)
MCFG_K056800_INT_HANDLER(INPUTLINE("audiocpu", M68K_IRQ_2))
@@ -1075,9 +1076,11 @@ static MACHINE_CONFIG_DERIVED( hornet_2board, hornet )
MCFG_DEVICE_REMOVE("k037122_1")
MCFG_K037122_ADD("k037122_1", "lscreen", 0)
MCFG_K037122_GFXDECODE("gfxdecode")
+ MCFG_K037122_PALETTE("palette")
MCFG_K037122_ADD("k037122_2", "rscreen", 1)
MCFG_K037122_GFXDECODE("gfxdecode")
+ MCFG_K037122_PALETTE("palette")
MCFG_DEVICE_REMOVE("voodoo0")
MCFG_3DFX_VOODOO_1_ADD("voodoo0", STD_VOODOO_1_CLOCK, voodoo_l_intf)
@@ -1086,7 +1089,8 @@ static MACHINE_CONFIG_DERIVED( hornet_2board, hornet )
MCFG_K033906_ADD("k033906_2", hornet_k033906_intf_1)
/* video hardware */
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 65536)
MCFG_DEVICE_REMOVE("screen")
diff --git a/src/mame/drivers/hotblock.c b/src/mame/drivers/hotblock.c
index 4f49c01bb59..de7a58c6340 100644
--- a/src/mame/drivers/hotblock.c
+++ b/src/mame/drivers/hotblock.c
@@ -152,12 +152,12 @@ UINT32 hotblock_state::screen_update_hotblock(screen_device &screen, bitmap_ind1
int i;
static const int xxx = 320, yyy = 204;
- bitmap.fill(get_black_pen(machine()));
+ bitmap.fill(m_palette->black_pen());
for (i = 0; i < 256; i++)
{
int dat = (m_pal[i * 2 + 1] << 8) | m_pal[i * 2];
- palette_set_color_rgb(machine(), i, pal5bit(dat >> 0), pal5bit(dat >> 5), pal5bit(dat >> 10));
+ m_palette->set_pen_color(i, pal5bit(dat >> 0), pal5bit(dat >> 5), pal5bit(dat >> 10));
}
count = 0;
@@ -230,7 +230,7 @@ static MACHINE_CONFIG_START( hotblock, hotblock_state )
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(hotblock_state, screen_update_hotblock)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
diff --git a/src/mame/drivers/hotstuff.c b/src/mame/drivers/hotstuff.c
index cbe5ab2217a..cec4fd0591f 100644
--- a/src/mame/drivers/hotstuff.c
+++ b/src/mame/drivers/hotstuff.c
@@ -136,7 +136,7 @@ static MACHINE_CONFIG_START( hotstuff, hotstuff_state )
MCFG_SCREEN_VISIBLE_AREA((0x10*4)+8, 101*8-1, 0*8, 33*8-1)
MCFG_SCREEN_UPDATE_DRIVER(hotstuff_state, screen_update_hotstuff)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hvyunit.c b/src/mame/drivers/hvyunit.c
index b24703a353d..7e21642c5c3 100644
--- a/src/mame/drivers/hvyunit.c
+++ b/src/mame/drivers/hvyunit.c
@@ -187,7 +187,7 @@ UINT32 hvyunit_state::screen_update_hvyunit(screen_device &screen, bitmap_ind16
m_bg_tilemap->set_scrollx(0, ((m_port0_data & 0x40) << 2) + m_scrollx + SX_POS); // TODO
m_bg_tilemap->set_scrolly(0, ((m_port0_data & 0x80) << 1) + m_scrolly + SY_POS); // TODO
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
m_pandora->update(bitmap, cliprect);
@@ -422,8 +422,8 @@ static ADDRESS_MAP_START( slave_memory, AS_PROGRAM, 8, hvyunit_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(hu_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(hu_colorram_w) AM_SHARE("colorram")
- AM_RANGE(0xd000, 0xd1ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_split_hi_w) AM_SHARE("paletteram2")
- AM_RANGE(0xd800, 0xd9ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_split_lo_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd000, 0xd1ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
+ AM_RANGE(0xd800, 0xd9ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
@@ -668,10 +668,12 @@ static MACHINE_CONFIG_START( hvyunit, hvyunit_state )
MCFG_SCREEN_VBLANK_DRIVER(hvyunit_state, screen_eof_hvyunit)
MCFG_GFXDECODE_ADD("gfxdecode", hvyunit)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_KANEKO_PANDORA_ADD("pandora", hvyunit_pandora_config)
MCFG_KANEKO_PANDORA_GFXDECODE("gfxdecode")
+ MCFG_KANEKO_PANDORA_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hyperspt.c b/src/mame/drivers/hyperspt.c
index 9cde7e130f4..506ecca6d12 100644
--- a/src/mame/drivers/hyperspt.c
+++ b/src/mame/drivers/hyperspt.c
@@ -308,8 +308,8 @@ static MACHINE_CONFIG_START( hyperspt, hyperspt_state )
MCFG_SCREEN_UPDATE_DRIVER(hyperspt_state, screen_update_hyperspt)
MCFG_GFXDECODE_ADD("gfxdecode", hyperspt)
- MCFG_PALETTE_LENGTH(16*16+16*16)
-
+ MCFG_PALETTE_ADD("palette", 16*16+16*16)
+ MCFG_PALETTE_INIT_OWNER(hyperspt_state, hyperspt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/hyprduel.c b/src/mame/drivers/hyprduel.c
index 0318f816e60..bf55ca9673b 100644
--- a/src/mame/drivers/hyprduel.c
+++ b/src/mame/drivers/hyprduel.c
@@ -663,7 +663,7 @@ static MACHINE_CONFIG_START( hyprduel, hyprduel_state )
MCFG_SCREEN_UPDATE_DRIVER(hyprduel_state, screen_update_hyprduel)
MCFG_GFXDECODE_ADD("gfxdecode", 14220)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_VIDEO_START_OVERRIDE(hyprduel_state,hyprduel_14220)
@@ -704,7 +704,7 @@ static MACHINE_CONFIG_START( magerror, hyprduel_state )
MCFG_SCREEN_UPDATE_DRIVER(hyprduel_state, screen_update_hyprduel)
MCFG_GFXDECODE_ADD("gfxdecode", 14220)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_VIDEO_START_OVERRIDE(hyprduel_state,magerror_14220)
diff --git a/src/mame/drivers/ichiban.c b/src/mame/drivers/ichiban.c
index 1e1887265c2..d69cebcb0cf 100644
--- a/src/mame/drivers/ichiban.c
+++ b/src/mame/drivers/ichiban.c
@@ -130,8 +130,7 @@ static MACHINE_CONFIG_START( ichibanjyan, ichibanjyan_state )
MCFG_GFXDECODE_ADD("gfxdecode", ichibanjyan)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 512)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c
index 5cdd058581b..c70cb892f54 100644
--- a/src/mame/drivers/igs009.c
+++ b/src/mame/drivers/igs009.c
@@ -328,7 +328,7 @@ UINT32 igs009_state::screen_update_jingbell(screen_device &screen, bitmap_ind16
/* draw top of screen */
clip.set(visarea.min_x, visarea.max_x, startclipmin, startclipmin+2);
- bitmap.fill(machine().pens[rowenable], clip);
+ bitmap.fill(m_palette->pen(rowenable), clip);
if (rowenable==0)
{ // 0 and 1 are the same? or is there a global switchoff?
@@ -352,7 +352,7 @@ UINT32 igs009_state::screen_update_jingbell(screen_device &screen, bitmap_ind16
}
}
- else bitmap.fill(get_black_pen(machine()), cliprect);
+ else bitmap.fill(m_palette->black_pen(), cliprect);
if (layers_ctrl & 2) m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
@@ -475,8 +475,8 @@ static ADDRESS_MAP_START( jingbell_portmap, AS_IO, 8, igs009_state )
AM_RANGE( 0x1000, 0x11ff ) AM_RAM_WRITE(bg_scroll_w ) AM_SHARE("bg_scroll")
- AM_RANGE( 0x2000, 0x23ff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram")
- AM_RANGE( 0x2400, 0x27ff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2")
+ AM_RANGE( 0x2000, 0x23ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE( 0x2400, 0x27ff ) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE( 0x3000, 0x33ff ) AM_RAM_WRITE(gp98_reel1_ram_w ) AM_SHARE("gp98_reel1_ram")
AM_RANGE( 0x3400, 0x37ff ) AM_RAM_WRITE(gp98_reel2_ram_w ) AM_SHARE("gp98_reel2_ram")
@@ -763,7 +763,8 @@ static MACHINE_CONFIG_START( jingbell, igs009_state )
MCFG_SCREEN_UPDATE_DRIVER(igs009_state, screen_update_jingbell)
MCFG_GFXDECODE_ADD("gfxdecode", jingbell)
- MCFG_PALETTE_LENGTH(0x400)
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c
index 430fd3ebee7..68fa2d07ed0 100644
--- a/src/mame/drivers/igs011.c
+++ b/src/mame/drivers/igs011.c
@@ -315,7 +315,7 @@ UINT32 igs011_state::screen_update_igs011(screen_device &screen, bitmap_ind16 &b
#ifdef MAME_DEBUG
if ((layer_enable != -1) && (pri_addr == 0xff))
- bitmap.pix16(y, x) = get_black_pen(machine());
+ bitmap.pix16(y, x) = m_palette->black_pen();
else
#endif
bitmap.pix16(y, x) = m_layer[l][scr_addr] | (l << 8);
@@ -389,7 +389,7 @@ WRITE16_MEMBER(igs011_state::igs011_palette)
COMBINE_DATA(&m_generic_paletteram_16[offset]);
rgb = (m_generic_paletteram_16[offset & 0x7ff] & 0xff) | ((m_generic_paletteram_16[offset | 0x800] & 0xff) << 8);
- palette_set_color_rgb(machine(),offset & 0x7ff,pal5bit(rgb >> 0),pal5bit(rgb >> 5),pal5bit(rgb >> 10));
+ m_palette->set_pen_color(offset & 0x7ff,pal5bit(rgb >> 0),pal5bit(rgb >> 5),pal5bit(rgb >> 10));
}
/***************************************************************************
@@ -3941,7 +3941,7 @@ static MACHINE_CONFIG_START( igs011_base, igs011_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(igs011_state, screen_update_igs011)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
// MCFG_GFXDECODE_ADD("gfxdecode", igs011)
diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c
index bc2e80615d6..a043d4152d8 100644
--- a/src/mame/drivers/igs017.c
+++ b/src/mame/drivers/igs017.c
@@ -356,9 +356,9 @@ void igs017_state::draw_sprite(bitmap_ind16 &bitmap,const rectangle &cliprect, i
if ( addr + dimx * dimy >= m_sprites_gfx_size )
return;
- gfx_element gfx(machine(), m_sprites_gfx + addr, dimx, dimy, dimx, 0x100, 32);
+ gfx_element gfx(machine(), m_sprites_gfx + addr, dimx, dimy, dimx, m_palette->entries(), 0x100, 32);
- gfx.transpen(bitmap,cliprect,
+ gfx.transpen(m_palette, bitmap,cliprect,
0, color,
flipx, flipy,
sx, sy, 0x1f );
@@ -459,7 +459,7 @@ UINT32 igs017_state::screen_update_igs017(screen_device &screen, bitmap_ind16 &b
if (debug_viewer(bitmap,cliprect))
return 0;
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
if (m_video_disable)
return 0;
@@ -1395,7 +1395,7 @@ static ADDRESS_MAP_START( iqblocka_io, AS_IO, 8, igs017_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs
AM_RANGE( 0x1000, 0x17ff ) AM_RAM AM_SHARE("spriteram")
- AM_RANGE( 0x1800, 0x1bff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w ) AM_SHARE("paletteram")
+ AM_RANGE( 0x1800, 0x1bff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE( 0x1c00, 0x1fff ) AM_RAM
// AM_RANGE(0x200a, 0x200a) AM_WRITENOP
@@ -1511,7 +1511,7 @@ WRITE16_MEMBER(igs017_state::mgcs_paletteram_w)
// bitswap
bgr = BITSWAP16(bgr, 7,8,9,2,14,3,13,15,12,11,10,0,1,4,5,6);
- palette_set_color_rgb(machine(), offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
+ m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
}
static ADDRESS_MAP_START( mgcs, AS_PROGRAM, 16, igs017_state )
@@ -1541,7 +1541,7 @@ WRITE16_MEMBER(igs017_state::sdmg2_paletteram_w)
int bgr = ((m_generic_paletteram_16[offset/2*2+1] & 0xff) << 8) | (m_generic_paletteram_16[offset/2*2+0] & 0xff);
- palette_set_color_rgb(machine(), offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
+ m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
}
READ8_MEMBER(igs017_state::sdmg2_keys_r)
@@ -1759,7 +1759,7 @@ WRITE8_MEMBER(igs017_state::tjsb_paletteram_w)
// bitswap
bgr = BITSWAP16(bgr, 15,12,3,6,10,5,4,2,9,13,8,7,11,1,0,14);
- palette_set_color_rgb(machine(), offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
+ m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
}
WRITE8_MEMBER(igs017_state::tjsb_output_w)
@@ -1878,7 +1878,7 @@ static ADDRESS_MAP_START( spkrform_io, AS_IO, 8, igs017_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs
AM_RANGE( 0x1000, 0x17ff ) AM_RAM AM_SHARE("spriteram")
- AM_RANGE( 0x1800, 0x1bff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_le_w ) AM_SHARE("paletteram")
+ AM_RANGE( 0x1800, 0x1bff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE( 0x1c00, 0x1fff ) AM_RAM
AM_RANGE( 0x2010, 0x2013 ) AM_DEVREAD("ppi8255", i8255_device, read)
@@ -2224,7 +2224,7 @@ WRITE16_MEMBER(igs017_state::lhzb2a_paletteram_w)
// bitswap
bgr = BITSWAP16(bgr, 15,9,13,12,11,5,4,8,7,6,0,14,3,2,1,10);
- palette_set_color_rgb(machine(), offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
+ m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
}
READ16_MEMBER(igs017_state::lhzb2a_input_r)
@@ -2329,7 +2329,7 @@ WRITE16_MEMBER(igs017_state::slqz2_paletteram_w)
// bitswap
bgr = BITSWAP16(bgr, 15,14,9,4,11,10,12,3,7,6,5,8,13,2,1,0);
- palette_set_color_rgb(machine(), offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
+ m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
}
WRITE16_MEMBER(igs017_state::slqz2_magic_w)
@@ -3498,7 +3498,8 @@ static MACHINE_CONFIG_START( iqblocka, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE_ADD("gfxdecode", igs017)
- MCFG_PALETTE_LENGTH(0x100*2)
+ MCFG_PALETTE_ADD("palette", 0x100*2)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
@@ -3562,7 +3563,8 @@ static MACHINE_CONFIG_START( mgcs, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE_ADD("gfxdecode", igs017_flipped)
- MCFG_PALETTE_LENGTH(0x100*2)
+ MCFG_PALETTE_ADD("palette", 0x100*2)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
@@ -3603,7 +3605,8 @@ static MACHINE_CONFIG_START( lhzb2, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE_ADD("gfxdecode", igs017_swapped)
- MCFG_PALETTE_LENGTH(0x100*2)
+ MCFG_PALETTE_ADD("palette", 0x100*2)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
// protection
MCFG_DEVICE_ADD("igs025", IGS025, 0)
@@ -3646,7 +3649,8 @@ static MACHINE_CONFIG_START( lhzb2a, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE_ADD("gfxdecode", igs017_swapped)
- MCFG_PALETTE_LENGTH(0x100*2)
+ MCFG_PALETTE_ADD("palette", 0x100*2)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
@@ -3677,7 +3681,8 @@ static MACHINE_CONFIG_START( slqz2, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE_ADD("gfxdecode", igs017)
- MCFG_PALETTE_LENGTH(0x100*2)
+ MCFG_PALETTE_ADD("palette", 0x100*2)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
// protection
MCFG_DEVICE_ADD("igs025", IGS025, 0)
@@ -3723,7 +3728,8 @@ static MACHINE_CONFIG_START( sdmg2, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE_ADD("gfxdecode", igs017)
- MCFG_PALETTE_LENGTH(0x100*2)
+ MCFG_PALETTE_ADD("palette", 0x100*2)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
@@ -3774,7 +3780,8 @@ static MACHINE_CONFIG_START( mgdha, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE_ADD("gfxdecode", igs017_swapped)
- MCFG_PALETTE_LENGTH(0x100*2)
+ MCFG_PALETTE_ADD("palette", 0x100*2)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
@@ -3805,7 +3812,8 @@ static MACHINE_CONFIG_START( tjsb, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE_ADD("gfxdecode", igs017)
- MCFG_PALETTE_LENGTH(0x100*2)
+ MCFG_PALETTE_ADD("palette", 0x100*2)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
@@ -3839,7 +3847,8 @@ static MACHINE_CONFIG_START( spkrform, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE_ADD("gfxdecode", igs017)
- MCFG_PALETTE_LENGTH(0x100*2)
+ MCFG_PALETTE_ADD("palette", 0x100*2)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
diff --git a/src/mame/drivers/igs_m027.c b/src/mame/drivers/igs_m027.c
index 7fda99077f4..9501eaba080 100644
--- a/src/mame/drivers/igs_m027.c
+++ b/src/mame/drivers/igs_m027.c
@@ -200,7 +200,7 @@ void igs_m027_state::video_start()
UINT32 igs_m027_state::screen_update_igs_majhong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
//??????????
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
//??????
m_igs_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
@@ -403,7 +403,7 @@ static MACHINE_CONFIG_START( igs_majhong, igs_m027_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(igs_m027_state, screen_update_igs_majhong)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
/* sound hardware */
@@ -429,7 +429,7 @@ static MACHINE_CONFIG_START( fearless, igs_m027_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(igs_m027_state, screen_update_fearless)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/igs_m036.c b/src/mame/drivers/igs_m036.c
index c69d88f1436..9b672be8de0 100644
--- a/src/mame/drivers/igs_m036.c
+++ b/src/mame/drivers/igs_m036.c
@@ -255,7 +255,7 @@ static MACHINE_CONFIG_START( igs_m036, igs_m036_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(igs_m036_state, screen_update_igs_m036)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
/* sound hardware (OKI) */
MACHINE_CONFIG_END
@@ -273,7 +273,7 @@ static MACHINE_CONFIG_START( igs_m036_tt, igs_m036_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(igs_m036_state, screen_update_igs_m036)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
/* sound hardware (TT5665) */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/igspoker.c b/src/mame/drivers/igspoker.c
index 28341b31518..f9962538e76 100644
--- a/src/mame/drivers/igspoker.c
+++ b/src/mame/drivers/igspoker.c
@@ -203,7 +203,7 @@ void igspoker_state::video_start()
UINT32 igspoker_state::screen_update_igs_video(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
// FIX: CSK227IT must have some way to disable background, or wrong gfx?
if (m_bg_enable) m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
@@ -364,8 +364,8 @@ static ADDRESS_MAP_START( igspoker_prg_map, AS_PROGRAM, 8, igspoker_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( igspoker_io_map, AS_IO, 8, igspoker_state )
- AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram")
- AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2")
+ AM_RANGE(0x2000, 0x27ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x2800, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */
AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2") /* DSW2 */
AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3") /* DSW3 */
@@ -1118,8 +1118,8 @@ INPUT_PORTS_END
static ADDRESS_MAP_START( number10_io_map, AS_IO, 8, igspoker_state )
- AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram")
- AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2")
+ AM_RANGE(0x2000, 0x27ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x2800, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */
AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2") /* DSW2 */
AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3") /* DSW3 */
@@ -1141,8 +1141,8 @@ static ADDRESS_MAP_START( number10_io_map, AS_IO, 8, igspoker_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpokerpk_io_map, AS_IO, 8, igspoker_state )
- AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram")
- AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2")
+ AM_RANGE(0x2000, 0x27ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x2800, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */
AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2") /* DSW2 */
AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3") /* DSW3 */
@@ -1785,8 +1785,8 @@ static MACHINE_CONFIG_START( igspoker, igspoker_state )
MCFG_SCREEN_UPDATE_DRIVER(igspoker_state, screen_update_igs_video)
MCFG_GFXDECODE_ADD("gfxdecode", igspoker)
- MCFG_PALETTE_LENGTH(2048)
-
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ikki.c b/src/mame/drivers/ikki.c
index a999766a3e2..897ac036a18 100644
--- a/src/mame/drivers/ikki.c
+++ b/src/mame/drivers/ikki.c
@@ -258,8 +258,8 @@ static MACHINE_CONFIG_START( ikki, ikki_state )
MCFG_SCREEN_UPDATE_DRIVER(ikki_state, screen_update_ikki)
MCFG_GFXDECODE_ADD("gfxdecode", ikki)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_OWNER(ikki_state, ikki)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/imolagp.c b/src/mame/drivers/imolagp.c
index eb27a93bdd2..dccc58935a8 100644
--- a/src/mame/drivers/imolagp.c
+++ b/src/mame/drivers/imolagp.c
@@ -125,7 +125,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(imolagp);
UINT32 screen_update_imolagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -136,16 +136,16 @@ public:
***************************************************************************/
-void imolagp_state::palette_init()
+PALETTE_INIT_MEMBER(imolagp_state, imolagp)
{
// palette seems like 3bpp + intensity
// this still needs to be verified
for (int i = 0; i < 8; i++)
{
- palette_set_color_rgb(machine(), i*4+0, 0, 0, 0);
- palette_set_color_rgb(machine(), i*4+1, pal1bit(i >> 2)/2, pal1bit(i >> 1)/2, pal1bit(i >> 0)/2);
- palette_set_color_rgb(machine(), i*4+2, 0, 0, 0);
- palette_set_color_rgb(machine(), i*4+3, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
+ palette.set_pen_color(i*4+0, 0, 0, 0);
+ palette.set_pen_color(i*4+1, pal1bit(i >> 2)/2, pal1bit(i >> 1)/2, pal1bit(i >> 0)/2);
+ palette.set_pen_color(i*4+2, 0, 0, 0);
+ palette.set_pen_color(i*4+3, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
}
}
@@ -517,7 +517,8 @@ static MACHINE_CONFIG_START( imolagp, imolagp_state )
MCFG_SCREEN_VISIBLE_AREA(0+48,255,0+16,255)
MCFG_SCREEN_UPDATE_DRIVER(imolagp_state, screen_update_imolagp)
- MCFG_PALETTE_LENGTH(0x20)
+ MCFG_PALETTE_ADD("palette", 0x20)
+ MCFG_PALETTE_INIT_OWNER(imolagp_state, imolagp)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
/* sound hardware */
diff --git a/src/mame/drivers/intrscti.c b/src/mame/drivers/intrscti.c
index 6c51b199e9d..96e23952ca5 100644
--- a/src/mame/drivers/intrscti.c
+++ b/src/mame/drivers/intrscti.c
@@ -45,7 +45,7 @@ UINT32 intrscti_state::screen_update_intrscti(screen_device &screen, bitmap_ind1
int y,x;
int count;
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
count = 0;
for (y=0;y<32;y++)
@@ -54,7 +54,7 @@ UINT32 intrscti_state::screen_update_intrscti(screen_device &screen, bitmap_ind1
{
int dat;
dat = m_vram[count];
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,dat/*+0x100*/,0,0,0,x*8,y*8,0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,dat/*+0x100*/,0,0,0,x*8,y*8,0);
count++;
}
}
@@ -66,7 +66,7 @@ UINT32 intrscti_state::screen_update_intrscti(screen_device &screen, bitmap_ind1
{
int dat;
dat = m_vram[count];
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,dat+0x100,0,0,0,x*8,y*8,0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,dat+0x100,0,0,0,x*8,y*8,0);
count++;
}
}
@@ -192,7 +192,7 @@ static MACHINE_CONFIG_START( intrscti, intrscti_state )
MCFG_SCREEN_UPDATE_DRIVER(intrscti_state, screen_update_intrscti)
MCFG_GFXDECODE_ADD("gfxdecode", intrscti)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c
index 9ee1d72fddf..8c117525e24 100644
--- a/src/mame/drivers/inufuku.c
+++ b/src/mame/drivers/inufuku.c
@@ -143,7 +143,7 @@ static ADDRESS_MAP_START( inufuku_map, AS_PROGRAM, 16, inufuku_state )
AM_RANGE(0x200000, 0x200001) AM_WRITE_PORT("EEPROMOUT")
AM_RANGE(0x280000, 0x280001) AM_WRITE(inufuku_soundcommand_w) // sound command
- AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_xGGGGGBBBBBRRRRR_word_w) AM_SHARE("paletteram") // palette ram
+ AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette ram
AM_RANGE(0x380000, 0x3801ff) AM_WRITEONLY AM_SHARE("bg_rasterram") // bg raster ram
AM_RANGE(0x400000, 0x401fff) AM_READWRITE(inufuku_bg_videoram_r, inufuku_bg_videoram_w) AM_SHARE("bg_videoram") // bg ram
AM_RANGE(0x402000, 0x403fff) AM_READWRITE(inufuku_tx_videoram_r, inufuku_tx_videoram_w) AM_SHARE("tx_videoram") // text ram
@@ -392,10 +392,11 @@ static MACHINE_CONFIG_START( inufuku, inufuku_state )
MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( inufuku_state, inufuku_tile_callback )
MCFG_VSYSTEM_SPR_SET_GFXREGION(2)
MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", inufuku)
- MCFG_PALETTE_LENGTH(4096)
-
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xGGGGGBBBBBRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/invqix.c b/src/mame/drivers/invqix.c
index e9f9c65990f..da73b924652 100644
--- a/src/mame/drivers/invqix.c
+++ b/src/mame/drivers/invqix.c
@@ -336,7 +336,7 @@ static MACHINE_CONFIG_START( invqix, invqix_state )
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 256, 0, 240)
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD("palette", 65536)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/iqblock.c b/src/mame/drivers/iqblock.c
index be5ecefb17b..45cb42e981b 100644
--- a/src/mame/drivers/iqblock.c
+++ b/src/mame/drivers/iqblock.c
@@ -129,8 +129,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, AS_IO, 8, iqblock_state )
- AM_RANGE(0x2000, 0x23ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w)
- AM_RANGE(0x2800, 0x2bff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w)
+ AM_RANGE(0x2000, 0x23ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x2800, 0x2bff) AM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x6000, 0x603f) AM_WRITE(iqblock_fgscroll_w)
AM_RANGE(0x6800, 0x69ff) AM_WRITE(iqblock_fgvideoram_w) /* initialized up to 6fff... bug or larger tilemap? */
AM_RANGE(0x7000, 0x7fff) AM_WRITE(iqblock_bgvideoram_w)
@@ -289,8 +289,8 @@ static MACHINE_CONFIG_START( iqblock, iqblock_state )
MCFG_SCREEN_UPDATE_DRIVER(iqblock_state, screen_update_iqblock)
MCFG_GFXDECODE_ADD("gfxdecode", iqblock)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/irobot.c b/src/mame/drivers/irobot.c
index 58b3f4aaaca..8c402a17331 100644
--- a/src/mame/drivers/irobot.c
+++ b/src/mame/drivers/irobot.c
@@ -327,8 +327,8 @@ static MACHINE_CONFIG_START( irobot, irobot_state )
MCFG_SCREEN_UPDATE_DRIVER(irobot_state, screen_update_irobot)
MCFG_GFXDECODE_ADD("gfxdecode", irobot)
- MCFG_PALETTE_LENGTH(64 + 32) /* 64 for polygons, 32 for text */
-
+ MCFG_PALETTE_ADD("palette", 64 + 32) /* 64 for polygons, 32 for text */
+ MCFG_PALETTE_INIT_OWNER(irobot_state, irobot)
MCFG_TIMER_DRIVER_ADD("irvg_timer", irobot_state, irobot_irvg_done_callback)
MCFG_TIMER_DRIVER_ADD("irmb_timer", irobot_state, irobot_irmb_done_callback)
diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c
index bda50958d64..d0050771b19 100644
--- a/src/mame/drivers/ironhors.c
+++ b/src/mame/drivers/ironhors.c
@@ -386,8 +386,8 @@ static MACHINE_CONFIG_START( ironhors, ironhors_state )
MCFG_SCREEN_UPDATE_DRIVER(ironhors_state, screen_update_ironhors)
MCFG_GFXDECODE_ADD("gfxdecode", ironhors)
- MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
-
+ MCFG_PALETTE_ADD("palette", 16*8*16+16*8*16)
+ MCFG_PALETTE_INIT_OWNER(ironhors_state, ironhors)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/istellar.c b/src/mame/drivers/istellar.c
index 54cdfb75745..757e5ab5035 100644
--- a/src/mame/drivers/istellar.c
+++ b/src/mame/drivers/istellar.c
@@ -55,7 +55,7 @@ public:
DECLARE_WRITE8_MEMBER(z80_2_ldp_write);
DECLARE_DRIVER_INIT(istellar);
virtual void machine_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(istellar);
UINT32 screen_update_istellar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vblank_callback_istellar);
required_device<cpu_device> m_maincpu;
@@ -84,7 +84,7 @@ UINT32 istellar_state::screen_update_istellar(screen_device &screen, bitmap_rgb3
int tile = m_tile_ram[x+y*32];
int attr = m_tile_control_ram[x+y*32];
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,tile,attr & 0x0f,0, 0, x*8, y*8, 0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,tile,attr & 0x0f,0, 0, x*8, y*8, 0);
}
}
@@ -271,12 +271,12 @@ static INPUT_PORTS_START( istellar )
/* SERVICE might be hanging out back here */
INPUT_PORTS_END
-void istellar_state::palette_init()
+PALETTE_INIT_MEMBER(istellar_state, istellar)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
- for (i = 0; i < machine().total_colors(); i++)
+ for (i = 0; i < palette.entries(); i++)
{
int r,g,b;
int bit0,bit1,bit2,bit3;
@@ -304,7 +304,7 @@ void istellar_state::palette_init()
bit3 = (color_prom[i+0x200] >> 3) & 0x01;
b = (0x8f * bit3) + (0x43 * bit2) + (0x1f * bit1) + (0x0e * bit0);
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
}
}
@@ -358,7 +358,8 @@ static MACHINE_CONFIG_START( istellar, istellar_state )
/* video hardware */
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(istellar_state, istellar)
MCFG_GFXDECODE_ADD("gfxdecode", istellar)
diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c
index 71f1d3fc7cf..420d6f6d307 100644
--- a/src/mame/drivers/itech32.c
+++ b/src/mame/drivers/itech32.c
@@ -1679,7 +1679,7 @@ static MACHINE_CONFIG_START( timekill, itech32_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 508, 0, 384, 262, 0, 256)
@@ -1708,7 +1708,8 @@ static MACHINE_CONFIG_DERIVED( bloodstm, timekill )
MCFG_CPU_PROGRAM_MAP(bloodstm_map)
/* video hardware */
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32768)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c
index 9ca99aed8ca..89fe7db38c7 100644
--- a/src/mame/drivers/itech8.c
+++ b/src/mame/drivers/itech8.c
@@ -1772,7 +1772,7 @@ static MACHINE_CONFIG_DERIVED( grmatch, itech8_core_hi )
MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_grmatch)
/* palette updater */
- MCFG_TIMER_DRIVER_ADD_SCANLINE("palette", itech8_state, grmatch_palette_update, "screen", 0, 0)
+ MCFG_TIMER_DRIVER_ADD_SCANLINE("palette_timer", itech8_state, grmatch_palette_update, "screen", 0, 0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/itgambl2.c b/src/mame/drivers/itgambl2.c
index b5b4ceb5790..e82aaee0ea4 100644
--- a/src/mame/drivers/itgambl2.c
+++ b/src/mame/drivers/itgambl2.c
@@ -69,7 +69,7 @@ public:
int m_start_offs;
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(itgambl2);
UINT32 screen_update_itgambl2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
};
@@ -118,7 +118,7 @@ UINT32 itgambl2_state::screen_update_itgambl2(screen_device &screen, bitmap_rgb3
popmessage("%d %d %04x",m_test_x,m_test_y,m_start_offs);
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
count = (m_start_offs);
@@ -131,7 +131,7 @@ UINT32 itgambl2_state::screen_update_itgambl2(screen_device &screen, bitmap_rgb3
color = (blit_ram[count] & 0xff)>>0;
if(cliprect.contains(x, y))
- bitmap.pix32(y, x) = machine().pens[color];
+ bitmap.pix32(y, x) = m_palette->pen(color);
count++;
}
@@ -246,7 +246,7 @@ void itgambl2_state::machine_reset()
}
/* default 444 palette for debug purpose*/
-void itgambl2_state::palette_init()
+PALETTE_INIT_MEMBER(itgambl2_state, itgambl2)
{
int x,r,g,b;
@@ -255,7 +255,7 @@ void itgambl2_state::palette_init()
r = (x & 0xf)*0x10;
g = ((x & 0x3c)>>2)*0x10;
b = ((x & 0xf0)>>4)*0x10;
- palette_set_color(machine(),x,rgb_t(r,g,b));
+ palette.set_pen_color(x,rgb_t(r,g,b));
}
}
@@ -279,7 +279,8 @@ static MACHINE_CONFIG_START( itgambl2, itgambl2_state )
MCFG_GFXDECODE_ADD("gfxdecode", itgambl2)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_INIT_OWNER(itgambl2_state, itgambl2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/itgambl3.c b/src/mame/drivers/itgambl3.c
index 90eee9555d0..7480ce41cf3 100644
--- a/src/mame/drivers/itgambl3.c
+++ b/src/mame/drivers/itgambl3.c
@@ -57,7 +57,7 @@ public:
int m_start_offs;
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(itgambl3);
UINT32 screen_update_itgambl3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
};
@@ -106,7 +106,7 @@ UINT32 itgambl3_state::screen_update_itgambl3(screen_device &screen, bitmap_rgb3
popmessage("%d %d %04x",m_test_x,m_test_y,m_start_offs);
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
count = (m_start_offs);
@@ -119,7 +119,7 @@ UINT32 itgambl3_state::screen_update_itgambl3(screen_device &screen, bitmap_rgb3
color = (blit_ram[count] & 0xff)>>0;
if(cliprect.contains(x, y))
- bitmap.pix32(y, x) = machine().pens[color];
+ bitmap.pix32(y, x) = m_palette->pen(color);
count++;
}
@@ -234,7 +234,7 @@ void itgambl3_state::machine_reset()
}
/* default 444 palette for debug purpose*/
-void itgambl3_state::palette_init()
+PALETTE_INIT_MEMBER(itgambl3_state, itgambl3)
{
int x,r,g,b;
@@ -243,7 +243,7 @@ void itgambl3_state::palette_init()
r = (x & 0xf)*0x11;
g = ((x & 0x3c)>>2)*0x11;
b = ((x & 0xf0)>>4)*0x11;
- palette_set_color(machine(),x,rgb_t(r,g,b));
+ palette.set_pen_color(x,rgb_t(r,g,b));
}
}
@@ -268,7 +268,8 @@ static MACHINE_CONFIG_START( itgambl3, itgambl3_state )
MCFG_GFXDECODE_ADD("gfxdecode", itgambl3)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_INIT_OWNER(itgambl3_state, itgambl3)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/itgamble.c b/src/mame/drivers/itgamble.c
index eb80f167c36..0b7d3dd73b5 100644
--- a/src/mame/drivers/itgamble.c
+++ b/src/mame/drivers/itgamble.c
@@ -90,7 +90,7 @@ void itgamble_state::video_start()
UINT32 itgamble_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(get_black_pen(machine()));
+ bitmap.fill(m_palette->black_pen());
return 0;
}
@@ -217,7 +217,7 @@ static MACHINE_CONFIG_START( itgamble, itgamble_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_GFXDECODE_ADD("gfxdecode", itgamble)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c
index 1b1c4d5ee37..5f13a6f0693 100644
--- a/src/mame/drivers/jack.c
+++ b/src/mame/drivers/jack.c
@@ -148,7 +148,7 @@ WRITE8_MEMBER(jack_state::joinem_control_w)
// d2: ?
// d3-d4: palette bank
- int palette_bank = data & (machine().total_colors() - 1) >> 3 & 0x18;
+ int palette_bank = data & (m_palette->entries() - 1) >> 3 & 0x18;
if (m_joinem_palette_bank != palette_bank)
{
m_joinem_palette_bank = palette_bank;
@@ -184,7 +184,7 @@ static ADDRESS_MAP_START( jack_map, AS_PROGRAM, 8, jack_state )
AM_RANGE(0xb504, 0xb504) AM_READ_PORT("IN2")
AM_RANGE(0xb505, 0xb505) AM_READ_PORT("IN3")
AM_RANGE(0xb506, 0xb507) AM_READWRITE(jack_flipscreen_r, jack_flipscreen_w)
- AM_RANGE(0xb600, 0xb61f) AM_WRITE(jack_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0xb600, 0xb61f) AM_WRITE(jack_paletteram_w) AM_SHARE("palette")
AM_RANGE(0xb800, 0xbbff) AM_RAM_WRITE(jack_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xbc00, 0xbfff) AM_RAM_WRITE(jack_colorram_w) AM_SHARE("colorram")
AM_RANGE(0xc000, 0xffff) AM_ROM
@@ -923,7 +923,9 @@ static MACHINE_CONFIG_START( jack, jack_state )
MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_jack)
MCFG_GFXDECODE_ADD("gfxdecode", jack)
- MCFG_PALETTE_LENGTH(32)
+
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -973,9 +975,12 @@ static MACHINE_CONFIG_DERIVED( joinem, jack )
MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_joinem)
MCFG_GFXDECODE_MODIFY("gfxdecode", joinem)
- MCFG_PALETTE_LENGTH(0x40)
- MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 0x40)
+ MCFG_PALETTE_INIT_OWNER(jack_state,joinem)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
+
MCFG_VIDEO_START_OVERRIDE(jack_state,joinem)
MACHINE_CONFIG_END
@@ -990,7 +995,8 @@ static MACHINE_CONFIG_DERIVED( unclepoo, joinem )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(0x100)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/jackal.c b/src/mame/drivers/jackal.c
index c3626c39aa3..f27aa0c40e8 100644
--- a/src/mame/drivers/jackal.c
+++ b/src/mame/drivers/jackal.c
@@ -369,8 +369,8 @@ static MACHINE_CONFIG_START( jackal, jackal_state )
MCFG_SCREEN_UPDATE_DRIVER(jackal_state, screen_update_jackal)
MCFG_GFXDECODE_ADD("gfxdecode", jackal)
- MCFG_PALETTE_LENGTH(0x300)
-
+ MCFG_PALETTE_ADD("palette", 0x300)
+ MCFG_PALETTE_INIT_OWNER(jackal_state, jackal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/jackie.c b/src/mame/drivers/jackie.c
index bf9d6c60bd1..536808c94af 100644
--- a/src/mame/drivers/jackie.c
+++ b/src/mame/drivers/jackie.c
@@ -207,7 +207,7 @@ UINT32 jackie_state::screen_update_jackie(screen_device &screen, bitmap_ind16 &b
int startclipmin = 0;
const rectangle &visarea = screen.visible_area();
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
for (i=0;i < 0x40;i++)
{
@@ -371,8 +371,8 @@ static ADDRESS_MAP_START( jackie_io_map, AS_IO, 8, jackie_state )
AM_RANGE(0x05a0, 0x05a4) AM_WRITE(jackie_unk_reg3_lo_w)
AM_RANGE(0x0da0, 0x0da4) AM_WRITE(jackie_unk_reg3_hi_w)
AM_RANGE(0x1000, 0x1107) AM_RAM AM_SHARE("bg_scroll2")
- AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram")
- AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2")
+ AM_RANGE(0x2000, 0x27ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x2800, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */
AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2") /* DSW2 */
AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3") /* DSW3 */
@@ -590,8 +590,8 @@ static MACHINE_CONFIG_START( jackie, jackie_state )
MCFG_SCREEN_UPDATE_DRIVER(jackie_state, screen_update_jackie)
MCFG_GFXDECODE_ADD("gfxdecode", jackie)
- MCFG_PALETTE_LENGTH(2048)
-
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jackpool.c b/src/mame/drivers/jackpool.c
index 8df34358a8f..d84904f675d 100644
--- a/src/mame/drivers/jackpool.c
+++ b/src/mame/drivers/jackpool.c
@@ -70,7 +70,7 @@ UINT32 jackpool_state::screen_update_jackpool(screen_device &screen, bitmap_ind1
int tile = (m_vram[count+(0x2000/2)] & 0x7fff);
int attr = (m_vram[count+(0x2000/2)+0x800] & 0x1f00)>>8;
- gfx->opaque(bitmap,cliprect,tile,attr,0,0,x*8,y*8);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,attr,0,0,x*8,y*8);
count++;
}
}
@@ -87,7 +87,7 @@ UINT32 jackpool_state::screen_update_jackpool(screen_device &screen, bitmap_ind1
int attr = (m_vram[count+0x800] & 0x1f00)>>8;
int t_pen = (m_vram[count+0x800] & 0x1000);
- gfx->transpen(bitmap,cliprect,tile,attr,0,0,x*8,y*8,(t_pen) ? 0 : -1);
+ gfx->transpen(m_palette,bitmap,cliprect,tile,attr,0,0,x*8,y*8,(t_pen) ? 0 : -1);
}
count++;
@@ -187,7 +187,7 @@ static ADDRESS_MAP_START( jackpool_mem, AS_PROGRAM, 16, jackpool_state )
AM_RANGE(0x340000, 0x347fff) AM_RAM AM_SHARE("vram")
AM_RANGE(0x348000, 0x34ffff) AM_RAM //<- vram banks 2 & 3?
- AM_RANGE(0x360000, 0x3603ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x360000, 0x3603ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x380000, 0x380061) AM_READWRITE(jackpool_io_r,jackpool_io_w) AM_SHARE("io")//AM_READ(jackpool_io_r)
AM_RANGE(0x800000, 0x80000f) AM_READ(jackpool_ff_r) AM_WRITENOP //UART
@@ -279,8 +279,8 @@ static MACHINE_CONFIG_START( jackpool, jackpool_state )
MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
- MCFG_PALETTE_LENGTH(0x200)
-
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jailbrek.c b/src/mame/drivers/jailbrek.c
index 5886f8b35b0..eed2616dd1f 100644
--- a/src/mame/drivers/jailbrek.c
+++ b/src/mame/drivers/jailbrek.c
@@ -252,7 +252,8 @@ static MACHINE_CONFIG_START( jailbrek, jailbrek_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", jailbrek)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(jailbrek_state, jailbrek)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 396, 8, 248, 256, 16, 240)
diff --git a/src/mame/drivers/jalmah.c b/src/mame/drivers/jalmah.c
index 5cb42ec9425..5cdc3857507 100644
--- a/src/mame/drivers/jalmah.c
+++ b/src/mame/drivers/jalmah.c
@@ -497,7 +497,7 @@ UINT32 jalmah_state::screen_update_jalmah(screen_device &screen, bitmap_ind16 &b
m_sc3_tilemap_2->set_scrolly(0, jm_scrollram[7] & 0x1ff);
m_sc3_tilemap_3->set_scrolly(0, jm_scrollram[7] & 0x3ff);
- bitmap.fill(machine().pens[0xff], cliprect); //selectable by a ram address?
+ bitmap.fill(m_palette->pen(0xff), cliprect); //selectable by a ram address?
for(cur_prin=1;cur_prin<=0x8;cur_prin<<=1)
{
@@ -519,7 +519,7 @@ UINT32 jalmah_state::screen_update_urashima(screen_device &screen, bitmap_ind16
m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4]);
m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7]);
- bitmap.fill(machine().pens[0x1ff], cliprect);//selectable by a ram address?
+ bitmap.fill(m_palette->pen(0x1ff), cliprect);//selectable by a ram address?
if(m_jm_vregs[0] & 1) { m_sc0_tilemap_0->draw(screen, bitmap, cliprect, 0,0); }
if(m_jm_vregs[3] & 1) { m_sc3_tilemap_0->draw(screen, bitmap, cliprect, 0,0); }
return 0;
@@ -1018,7 +1018,7 @@ static ADDRESS_MAP_START( jalmah, AS_PROGRAM, 16, jalmah_state )
/**/AM_RANGE(0x080020, 0x08003f) AM_RAM_WRITE(jalmah_scroll_w)
AM_RANGE(0x080040, 0x080041) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
// 0x084000, 0x084001 ?
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") /* Palette RAM */
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette RAM */
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(sc0_vram_w) AM_SHARE("sc0_vram")
AM_RANGE(0x094000, 0x097fff) AM_RAM_WRITE(sc1_vram_w) AM_SHARE("sc1_vram")
AM_RANGE(0x098000, 0x09bfff) AM_RAM_WRITE(sc2_vram_w) AM_SHARE("sc2_vram")
@@ -1042,7 +1042,7 @@ static ADDRESS_MAP_START( urashima, AS_PROGRAM, 16, jalmah_state )
/**/AM_RANGE(0x08001c, 0x08001d) AM_RAM_WRITE(urashima_bank_w)
AM_RANGE(0x080040, 0x080041) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
// 0x084000, 0x084001 ?
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") /* Palette RAM */
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette RAM */
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(urashima_sc0_vram_w) AM_SHARE("sc0_vram")
AM_RANGE(0x094000, 0x097fff) AM_RAM_WRITE(urashima_sc0_vram_w)
AM_RANGE(0x098000, 0x09bfff) AM_RAM_WRITE(urashima_sc0_vram_w)
@@ -1425,8 +1425,8 @@ static MACHINE_CONFIG_START( jalmah, jalmah_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(jalmah_state, screen_update_jalmah)
- MCFG_PALETTE_LENGTH(0x400)
-
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_TIMER_DRIVER_ADD_PERIODIC("mcusim", jalmah_state, jalmah_mcu_sim, attotime::from_hz(10000))
diff --git a/src/mame/drivers/jangou.c b/src/mame/drivers/jangou.c
index 36683e97468..e1b7855c4db 100644
--- a/src/mame/drivers/jangou.c
+++ b/src/mame/drivers/jangou.c
@@ -93,7 +93,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(jangou);
DECLARE_MACHINE_START(jngolady);
DECLARE_MACHINE_RESET(jngolady);
DECLARE_MACHINE_START(common);
@@ -113,7 +113,7 @@ public:
*************************************/
/* guess: use the same resistor values as Crazy Climber (needs checking on the real HW) */
-void jangou_state::palette_init()
+PALETTE_INIT_MEMBER(jangou_state, jangou)
{
const UINT8 *color_prom = memregion("proms")->base();
static const int resistances_rg[3] = { 1000, 470, 220 };
@@ -127,7 +127,7 @@ void jangou_state::palette_init()
2, resistances_b, weights_b, 0, 0,
0, 0, 0, 0, 0);
- for (i = 0;i < machine().total_colors(); i++)
+ for (i = 0;i < palette.entries(); i++)
{
int bit0, bit1, bit2;
int r, g, b;
@@ -149,7 +149,7 @@ void jangou_state::palette_init()
bit1 = (color_prom[i] >> 7) & 0x01;
b = combine_2_weights(weights_b, bit0, bit1);
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -170,8 +170,8 @@ UINT32 jangou_state::screen_update_jangou(screen_device &screen, bitmap_ind16 &b
for (x = cliprect.min_x; x <= cliprect.max_x; x += 2)
{
UINT32 srcpix = *src++;
- *dst++ = machine().pens[srcpix & 0xf];
- *dst++ = machine().pens[(srcpix >> 4) & 0xf];
+ *dst++ = m_palette->pen(srcpix & 0xf);
+ *dst++ = m_palette->pen((srcpix >> 4) & 0xf);
}
}
@@ -997,8 +997,8 @@ static MACHINE_CONFIG_START( jangou, jangou_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(jangou_state, screen_update_jangou)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(jangou_state, jangou)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jantotsu.c b/src/mame/drivers/jantotsu.c
index c5c8398fbd0..6b5fcff99d8 100644
--- a/src/mame/drivers/jantotsu.c
+++ b/src/mame/drivers/jantotsu.c
@@ -133,7 +133,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(jantotsu);
UINT32 screen_update_jantotsu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
DECLARE_WRITE_LINE_MEMBER(jan_adpcm_int);
required_device<cpu_device> m_maincpu;
@@ -175,7 +175,7 @@ UINT32 jantotsu_state::screen_update_jantotsu(screen_device &screen, bitmap_rgb3
color |= (((m_bitmap[count + pen_i*0x2000]) >> (7 - i)) & 1) << pen_i;
if (cliprect.contains(x + i, y))
- bitmap.pix32(y, x + i) = machine().pens[color];
+ bitmap.pix32(y, x + i) = m_palette->pen(color);
}
count++;
@@ -207,7 +207,7 @@ WRITE8_MEMBER(jantotsu_state::bankaddr_w)
logerror("I/O port $07 write trips %02x\n",data);
}
-void jantotsu_state::palette_init()
+PALETTE_INIT_MEMBER(jantotsu_state, jantotsu)
{
const UINT8 *color_prom = memregion("proms")->base();
int bit0, bit1, bit2, r, g, b;
@@ -228,7 +228,7 @@ void jantotsu_state::palette_init()
bit2 = (color_prom[0] >> 7) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
color_prom++;
}
}
@@ -519,8 +519,8 @@ static MACHINE_CONFIG_START( jantotsu, jantotsu_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(jantotsu_state, screen_update_jantotsu)
- MCFG_PALETTE_LENGTH(0x20)
-
+ MCFG_PALETTE_ADD("palette", 0x20)
+ MCFG_PALETTE_INIT_OWNER(jantotsu_state, jantotsu)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jchan.c b/src/mame/drivers/jchan.c
index cb9ba13d724..f63c264201d 100644
--- a/src/mame/drivers/jchan.c
+++ b/src/mame/drivers/jchan.c
@@ -305,7 +305,7 @@ UINT32 jchan_state::screen_update_jchan(screen_device &screen, bitmap_ind16 &bit
UINT16 pixdata1;
UINT16 pixdata2;
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
screen.priority().fill(0, cliprect);
@@ -446,7 +446,7 @@ static ADDRESS_MAP_START( jchan_main, AS_PROGRAM, 16, jchan_state )
AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE(jchan_suprnova_sprite32_1_w) AM_SHARE("spriteram_1")
AM_RANGE(0x600000, 0x60003f) AM_RAM_WRITE(jchan_suprnova_sprite32regs_1_w) AM_SHARE("sprregs_1")
- AM_RANGE(0x700000, 0x70ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // palette for sprites?
+ AM_RANGE(0x700000, 0x70ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette for sprites?
AM_RANGE(0xf00000, 0xf00007) AM_READWRITE(jchan_ctrl_r, jchan_ctrl_w) AM_SHARE("ctrl")
@@ -598,7 +598,8 @@ static MACHINE_CONFIG_START( jchan, jchan_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(jchan_state, screen_update_jchan)
- MCFG_PALETTE_LENGTH(0x10000)
+ MCFG_PALETTE_ADD("palette", 0x10000)
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0)
kaneko_view2_tilemap_device::set_gfx_region(*device, 1);
diff --git a/src/mame/drivers/jclub2.c b/src/mame/drivers/jclub2.c
index a5d783a32e4..b61469e9def 100644
--- a/src/mame/drivers/jclub2.c
+++ b/src/mame/drivers/jclub2.c
@@ -220,7 +220,7 @@ void darkhors_state::draw_sprites_darkhors(bitmap_ind16 &bitmap, const rectangle
sy = -sy;
sy += 0xf8;
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
code/2, color,
flipx, flipy, sx, sy, 0);
}
@@ -251,7 +251,7 @@ UINT32 darkhors_state::screen_update_darkhors(screen_device &screen, bitmap_ind1
}
#endif
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
m_tmap->set_scrollx(0, (m_tmapscroll[0] >> 16) - 5);
m_tmap->set_scrolly(0, (m_tmapscroll[0] & 0xffff) - 0xff );
@@ -306,8 +306,8 @@ WRITE32_MEMBER(darkhors_state::darkhors_eeprom_w)
WRITE32_MEMBER(darkhors_state::paletteram32_xBBBBBGGGGGRRRRR_dword_w)
{
- if (ACCESSING_BITS_16_31) paletteram_xBBBBBGGGGGRRRRR_word_w(space, offset*2, data >> 16, mem_mask >> 16);
- if (ACCESSING_BITS_0_15) paletteram_xBBBBBGGGGGRRRRR_word_w(space, offset*2+1, data, mem_mask);
+ if (ACCESSING_BITS_16_31) m_palette->write(space, offset*2, data >> 16, mem_mask >> 16);
+ if (ACCESSING_BITS_0_15) m_palette->write(space, offset*2+1, data, mem_mask);
}
WRITE32_MEMBER(darkhors_state::darkhors_input_sel_w)
@@ -703,7 +703,7 @@ static MACHINE_CONFIG_START( darkhors, darkhors_state )
MCFG_SCREEN_UPDATE_DRIVER(darkhors_state, screen_update_darkhors)
MCFG_GFXDECODE_ADD("gfxdecode", darkhors)
- MCFG_PALETTE_LENGTH(0x10000)
+ MCFG_PALETTE_ADD("palette", 0x10000)
MCFG_VIDEO_START_OVERRIDE(darkhors_state,darkhors)
@@ -750,8 +750,9 @@ static MACHINE_CONFIG_START( jclub2, darkhors_state )
st0020_device::set_is_st0032(*device, 1);
st0020_device::set_is_jclub2o(*device, 1); // offsets
MCFG_ST0020_SPRITES_GFXDECODE("gfxdecode")
+ MCFG_ST0020_SPRITES_PALETTE("palette")
- MCFG_PALETTE_LENGTH(0x10000)
+ MCFG_PALETTE_ADD("palette", 0x10000)
MCFG_VIDEO_START_OVERRIDE(darkhors_state,jclub2)
MACHINE_CONFIG_END
@@ -812,13 +813,14 @@ static MACHINE_CONFIG_START( jclub2o, darkhors_state )
MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1)
MCFG_SCREEN_UPDATE_DRIVER(darkhors_state, screen_update_jclub2o)
- MCFG_PALETTE_LENGTH(0x10000)
+ MCFG_PALETTE_ADD("palette", 0x10000)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0)
st0020_device::set_is_jclub2o(*device, 1);
MCFG_ST0020_SPRITES_GFXDECODE("gfxdecode")
+ MCFG_ST0020_SPRITES_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(darkhors_state,jclub2o)
diff --git a/src/mame/drivers/jokrwild.c b/src/mame/drivers/jokrwild.c
index 94c7031d37b..ac4141be6a3 100644
--- a/src/mame/drivers/jokrwild.c
+++ b/src/mame/drivers/jokrwild.c
@@ -118,7 +118,7 @@ public:
DECLARE_DRIVER_INIT(jokrwild);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(jokrwild);
UINT32 screen_update_jokrwild(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -172,7 +172,7 @@ UINT32 jokrwild_state::screen_update_jokrwild(screen_device &screen, bitmap_ind1
}
-void jokrwild_state::palette_init()
+PALETTE_INIT_MEMBER(jokrwild_state, jokrwild)
{
//missing proms
}
@@ -475,7 +475,8 @@ static MACHINE_CONFIG_START( jokrwild, jokrwild_state )
MCFG_SCREEN_UPDATE_DRIVER(jokrwild_state, screen_update_jokrwild)
MCFG_GFXDECODE_ADD("gfxdecode", jokrwild)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(jokrwild_state, jokrwild)
MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/16, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/jollyjgr.c b/src/mame/drivers/jollyjgr.c
index fbd95f0e5c6..7798cf081f3 100644
--- a/src/mame/drivers/jollyjgr.c
+++ b/src/mame/drivers/jollyjgr.c
@@ -140,7 +140,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(jollyjgr);
UINT32 screen_update_jollyjgr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_fspider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(jollyjgr_interrupt);
@@ -411,7 +411,7 @@ INPUT_PORTS_END
*
*************************************/
-void jollyjgr_state::palette_init()
+PALETTE_INIT_MEMBER(jollyjgr_state, jollyjgr)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
@@ -436,13 +436,13 @@ void jollyjgr_state::palette_init()
bit1 = BIT(*color_prom, 7);
b = 0x4f * bit0 + 0xa8 * bit1;
- palette_set_color(machine(), i, rgb_t(r,g,b));
+ palette.set_pen_color(i, rgb_t(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_pen_color(32 + i, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
}
/* Tilemap is the same as in Galaxian */
@@ -543,7 +543,7 @@ UINT32 jollyjgr_state::screen_update_jollyjgr(screen_device &screen, bitmap_ind1
if (offs < 3 * 4)
sy++;
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,
code,color,
flipx,flipy,
sx,sy,0);
@@ -665,8 +665,8 @@ static MACHINE_CONFIG_START( jollyjgr, jollyjgr_state )
MCFG_SCREEN_UPDATE_DRIVER(jollyjgr_state, screen_update_jollyjgr)
MCFG_GFXDECODE_ADD("gfxdecode", jollyjgr)
- MCFG_PALETTE_LENGTH(32+8) /* 32 for tilemap and sprites + 8 for the bitmap */
-
+ MCFG_PALETTE_ADD("palette", 32+8) /* 32 for tilemap and sprites + 8 for the bitmap */
+ MCFG_PALETTE_INIT_OWNER(jollyjgr_state, jollyjgr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jongkyo.c b/src/mame/drivers/jongkyo.c
index d29ad29109f..2865995fb66 100644
--- a/src/mame/drivers/jongkyo.c
+++ b/src/mame/drivers/jongkyo.c
@@ -59,7 +59,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(jongkyo);
UINT32 screen_update_jongkyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
};
@@ -441,7 +441,7 @@ INPUT_PORTS_END
*
*************************************/
-void jongkyo_state::palette_init()
+PALETTE_INIT_MEMBER(jongkyo_state, jongkyo)
{
int i;
UINT8* proms = memregion("proms")->base();
@@ -453,7 +453,7 @@ void jongkyo_state::palette_init()
int g = (data >> 3) & 0x07;
int b = (data >> 6) & 0x03;
- palette_set_color_rgb(machine(), i, r << 5, g << 5, b << 6 );
+ palette.set_pen_color(i, r << 5, g << 5, b << 6 );
}
}
@@ -513,8 +513,8 @@ static MACHINE_CONFIG_START( jongkyo, jongkyo_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 8, 256-8-1)
MCFG_SCREEN_UPDATE_DRIVER(jongkyo_state, screen_update_jongkyo)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(jongkyo_state, 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 14fedee1db4..79fe00bc432 100644
--- a/src/mame/drivers/jpmimpct.c
+++ b/src/mame/drivers/jpmimpct.c
@@ -880,7 +880,7 @@ static MACHINE_CONFIG_START( jpmimpct, jpmimpct_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(40000000/4, 156*4, 0, 100*4, 328, 0, 300)
MCFG_SCREEN_UPDATE_DEVICE("dsp", tms34010_device, tms340x0_rgb32)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("upd", UPD7759, UPD7759_STANDARD_CLOCK)
diff --git a/src/mame/drivers/jpmsys5.c b/src/mame/drivers/jpmsys5.c
index 24489cb308c..cec82599acc 100644
--- a/src/mame/drivers/jpmsys5.c
+++ b/src/mame/drivers/jpmsys5.c
@@ -132,12 +132,12 @@ WRITE16_MEMBER(jpmsys5_state::ramdac_w)
}
else if (offset == 1)
{
- m_palette[m_pal_addr][m_pal_idx] = data;
+ m_palette_val[m_pal_addr][m_pal_idx] = data;
if (++m_pal_idx == 3)
{
/* Update the MAME palette */
- palette_set_color_rgb(machine(), m_pal_addr, pal6bit(m_palette[m_pal_addr][0]), pal6bit(m_palette[m_pal_addr][1]), pal6bit(m_palette[m_pal_addr][2]));
+ m_palette->set_pen_color(m_pal_addr, pal6bit(m_palette_val[m_pal_addr][0]), pal6bit(m_palette_val[m_pal_addr][1]), pal6bit(m_palette_val[m_pal_addr][2]));
m_pal_addr++;
m_pal_idx = 0;
}
@@ -156,7 +156,7 @@ UINT32 jpmsys5_state::screen_update_jpmsys5v(screen_device &screen, bitmap_rgb32
if (m_tms34061->m_display.blanked)
{
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
return 0;
}
@@ -170,8 +170,8 @@ UINT32 jpmsys5_state::screen_update_jpmsys5v(screen_device &screen, bitmap_rgb32
UINT8 pen = src[(x-cliprect.min_x)>>1];
/* Draw two 4-bit pixels */
- *dest++ = machine().pens[(pen >> 4) & 0xf];
- *dest++ = machine().pens[pen & 0xf];
+ *dest++ = m_palette->pen((pen >> 4) & 0xf);
+ *dest++ = m_palette->pen(pen & 0xf);
}
}
@@ -665,7 +665,7 @@ static MACHINE_CONFIG_START( jpmsys5v, jpmsys5_state )
MCFG_TMS34061_ADD("tms34061", tms34061intf)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/jrpacman.c b/src/mame/drivers/jrpacman.c
index 2f246a92a69..5d89830c892 100644
--- a/src/mame/drivers/jrpacman.c
+++ b/src/mame/drivers/jrpacman.c
@@ -301,9 +301,9 @@ static MACHINE_CONFIG_START( jrpacman, jrpacman_state )
MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman)
MCFG_GFXDECODE_ADD("gfxdecode", jrpacman)
- MCFG_PALETTE_LENGTH(128*4)
+ MCFG_PALETTE_ADD("palette", 128*4)
- MCFG_PALETTE_INIT_OVERRIDE(jrpacman_state,pacman)
+ MCFG_PALETTE_INIT_OWNER(jrpacman_state,pacman)
MCFG_VIDEO_START_OVERRIDE(jrpacman_state,jrpacman)
/* sound hardware */
diff --git a/src/mame/drivers/jubilee.c b/src/mame/drivers/jubilee.c
index f5c5f84e019..2106e6c9e40 100644
--- a/src/mame/drivers/jubilee.c
+++ b/src/mame/drivers/jubilee.c
@@ -222,7 +222,6 @@ public:
DECLARE_READ8_MEMBER(mux_port_r);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
- virtual void palette_init();
UINT32 screen_update_jubileep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(jubileep_interrupt);
required_device<cpu_device> m_maincpu;
@@ -275,9 +274,6 @@ UINT32 jubilee_state::screen_update_jubileep(screen_device &screen, bitmap_ind16
return 0;
}
-void jubilee_state::palette_init()
-{}
-
/**************************
* Read / Write Handlers *
@@ -506,7 +502,7 @@ static MACHINE_CONFIG_START( jubileep, jubilee_state )
MCFG_SCREEN_UPDATE_DRIVER(jubilee_state, screen_update_jubileep)
MCFG_GFXDECODE_ADD("gfxdecode", jubileep)
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette",8)
MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf)
diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c
index 96acacd14f6..35e9be3d58a 100644
--- a/src/mame/drivers/kaneko16.c
+++ b/src/mame/drivers/kaneko16.c
@@ -236,7 +236,7 @@ static ADDRESS_MAP_START( berlwall, AS_PROGRAM, 16, kaneko16_berlwall_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // Work RAM
AM_RANGE(0x30e000, 0x30ffff) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
// AM_RANGE(0x480000, 0x480001) AM_RAM // ?
AM_RANGE(0x500000, 0x500001) AM_READWRITE(kaneko16_bg15_reg_r, kaneko16_bg15_reg_w) AM_SHARE("bg15_reg") // High Color Background
AM_RANGE(0x580000, 0x580001) AM_READWRITE(kaneko16_bg15_select_r, kaneko16_bg15_select_w) AM_SHARE("bg15_select")
@@ -284,7 +284,7 @@ static ADDRESS_MAP_START( bakubrkr, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x500000, 0x503fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
AM_RANGE(0x580000, 0x583fff) AM_DEVREADWRITE("view2_1", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
AM_RANGE(0x600000, 0x601fff) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE(0x700000, 0x700fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x700000, 0x700fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x800000, 0x80001f) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_regs_r, kaneko_tmap_regs_w)
AM_RANGE(0x900000, 0x90001f) AM_DEVREADWRITE("kan_spr", kaneko16_sprite_device, kaneko16_sprites_regs_r, kaneko16_sprites_regs_w)
AM_RANGE(0xa80000, 0xa80001) AM_READ(watchdog_reset16_r) // Watchdog
@@ -304,7 +304,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( blazeon, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x300000, 0x30ffff) AM_RAM // Work RAM
- AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x500000, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x600000, 0x603fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x800000, 0x80001f) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_regs_r, kaneko_tmap_regs_w)
@@ -363,7 +363,7 @@ static ADDRESS_MAP_START( bloodwar, AS_PROGRAM, 16, kaneko16_gtmr_state )
AM_RANGE(0x2b0000, 0x2b0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com1_w)
AM_RANGE(0x2c0000, 0x2c0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w)
AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w)
- AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x300000, 0x30ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x500000, 0x503fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
AM_RANGE(0x580000, 0x583fff) AM_DEVREADWRITE("view2_1", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
@@ -417,7 +417,7 @@ static ADDRESS_MAP_START( bonkadv, AS_PROGRAM, 16, kaneko16_gtmr_state )
AM_RANGE(0x2b0000, 0x2b0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com1_w)
AM_RANGE(0x2c0000, 0x2c0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w)
AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w)
- AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x300000, 0x30ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x500000, 0x503fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
AM_RANGE(0x580000, 0x583fff) AM_DEVREADWRITE("view2_1", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
@@ -489,7 +489,7 @@ static ADDRESS_MAP_START( gtmr_map, AS_PROGRAM, 16, kaneko16_gtmr_state )
AM_RANGE(0x2c0000, 0x2c0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w)
AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w)
- AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x300000, 0x30ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x310000, 0x327fff) AM_RAM //
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites
@@ -558,7 +558,7 @@ static ADDRESS_MAP_START( gtmr2_map, AS_PROGRAM, 16, kaneko16_gtmr_state )
AM_RANGE(0x2c0000, 0x2c0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w)
AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w)
- AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x300000, 0x30ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x310000, 0x327fff) AM_RAM //
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites
@@ -598,7 +598,7 @@ static ADDRESS_MAP_START( mgcrystl, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x400000, 0x40001f) AM_READWRITE(kaneko16_ay1_YM2149_r, kaneko16_ay1_YM2149_w) // Sound
AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_ay2_YM2149_r, kaneko16_ay2_YM2149_w)
AM_RANGE(0x400400, 0x400401) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x500000, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x600000, 0x603fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
AM_RANGE(0x680000, 0x683fff) AM_DEVREADWRITE("view2_1", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
AM_RANGE(0x700000, 0x701fff) AM_RAM AM_SHARE("spriteram") // Sprites
@@ -660,7 +660,7 @@ static ADDRESS_MAP_START( shogwarr, AS_PROGRAM, 16, kaneko16_shogwarr_state )
AM_RANGE(0x2b0000, 0x2b0001) AM_DEVWRITE("calc3_prot", kaneko_calc3_device, calc3_mcu_com2_w)
//AM_RANGE(0x2c0000, 0x2c0001) // run calc 3? or irq ack?
AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE("calc3_prot", kaneko_calc3_device, calc3_mcu_com3_w)
- AM_RANGE(0x380000, 0x380fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x380000, 0x380fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x400000, 0x400001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) // Samples
AM_RANGE(0x480000, 0x480001) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x580000, 0x581fff) AM_RAM AM_SHARE("spriteram") // Sprites
@@ -1633,7 +1633,9 @@ static MACHINE_CONFIG_START( berlwall, kaneko16_berlwall_state )
MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_berlwall)
MCFG_GFXDECODE_ADD("gfxdecode", 1x4bit_1x4bit)
- MCFG_PALETTE_LENGTH(2048 + 32768) /* 32768 static colors for the bg */
+ MCFG_PALETTE_ADD("palette", 2048 + 32768) /* 32768 static colors for the bg */
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
+ MCFG_PALETTE_INIT_OWNER(kaneko16_berlwall_state,berlwall)
MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0)
kaneko_view2_tilemap_device::set_gfx_region(*device, 1);
@@ -1644,8 +1646,6 @@ static MACHINE_CONFIG_START( berlwall, kaneko16_berlwall_state )
kaneko16_sprite_device::set_altspacing(*device, 1);
MCFG_KANEKO16_SPRITE_GFXDECODE("gfxdecode")
-
- MCFG_PALETTE_INIT_OVERRIDE(kaneko16_berlwall_state,berlwall)
MCFG_VIDEO_START_OVERRIDE(kaneko16_berlwall_state,berlwall)
/* sound hardware */
@@ -1689,7 +1689,8 @@ static MACHINE_CONFIG_START( bakubrkr, kaneko16_state )
MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
MCFG_GFXDECODE_ADD("gfxdecode", 1x4bit_2x4bit)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0)
kaneko_view2_tilemap_device::set_gfx_region(*device, 1);
@@ -1761,7 +1762,8 @@ static MACHINE_CONFIG_START( blazeon, kaneko16_state )
MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
MCFG_GFXDECODE_ADD("gfxdecode", 1x4bit_1x4bit)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0)
kaneko_view2_tilemap_device::set_gfx_region(*device, 1);
@@ -1823,7 +1825,8 @@ static MACHINE_CONFIG_START( gtmr, kaneko16_gtmr_state )
MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
MCFG_GFXDECODE_ADD("gfxdecode", 1x8bit_2x4bit)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD("palette", 32768)
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0)
kaneko_view2_tilemap_device::set_gfx_region(*device, 1);
@@ -1944,7 +1947,8 @@ static MACHINE_CONFIG_START( mgcrystl, kaneko16_state )
MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
MCFG_GFXDECODE_ADD("gfxdecode", 1x4bit_2x4bit)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0)
kaneko_view2_tilemap_device::set_gfx_region(*device, 1);
@@ -2071,7 +2075,8 @@ static MACHINE_CONFIG_START( shogwarr, kaneko16_shogwarr_state )
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", 1x4bit_1x4bit)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0)
kaneko_view2_tilemap_device::set_gfx_region(*device, 1);
diff --git a/src/mame/drivers/karnov.c b/src/mame/drivers/karnov.c
index 3a24e26e2cb..515c62e2657 100644
--- a/src/mame/drivers/karnov.c
+++ b/src/mame/drivers/karnov.c
@@ -803,11 +803,13 @@ static MACHINE_CONFIG_START( karnov, karnov_state )
MCFG_SCREEN_UPDATE_DRIVER(karnov_state, screen_update_karnov)
MCFG_GFXDECODE_ADD("gfxdecode", karnov)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_OWNER(karnov_state, karnov)
MCFG_DEVICE_ADD("spritegen", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 2);
MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode")
+ MCFG_DECO_KARNOVSPRITES_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(karnov_state,karnov)
@@ -845,11 +847,12 @@ static MACHINE_CONFIG_START( wndrplnt, karnov_state )
MCFG_SCREEN_UPDATE_DRIVER(karnov_state, screen_update_karnov)
MCFG_GFXDECODE_ADD("gfxdecode", karnov)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_DEVICE_ADD("spritegen", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 2);
MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode")
+ MCFG_DECO_KARNOVSPRITES_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(karnov_state,wndrplnt)
diff --git a/src/mame/drivers/kas89.c b/src/mame/drivers/kas89.c
index fd37ca4412f..bd2a720de41 100644
--- a/src/mame/drivers/kas89.c
+++ b/src/mame/drivers/kas89.c
@@ -798,7 +798,7 @@ static MACHINE_CONFIG_START( kas89, kas89_state )
MCFG_SCREEN_SIZE(544, 524)
MCFG_SCREEN_VISIBLE_AREA(0, 544 - 1, 0, 480 - 1)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/kchamp.c b/src/mame/drivers/kchamp.c
index 7908dfb0e71..bf321563589 100644
--- a/src/mame/drivers/kchamp.c
+++ b/src/mame/drivers/kchamp.c
@@ -422,7 +422,8 @@ static MACHINE_CONFIG_START( kchampvs, kchamp_state )
MCFG_SCREEN_UPDATE_DRIVER(kchamp_state, screen_update_kchampvs)
MCFG_GFXDECODE_ADD("gfxdecode", kchamp)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(kchamp_state, kchamp)
/* sound hardware */
@@ -469,7 +470,8 @@ static MACHINE_CONFIG_START( kchamp, kchamp_state )
MCFG_SCREEN_UPDATE_DRIVER(kchamp_state, screen_update_kchamp)
MCFG_GFXDECODE_ADD("gfxdecode", kchamp)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(kchamp_state, kchamp)
/* sound hardware */
diff --git a/src/mame/drivers/kickgoal.c b/src/mame/drivers/kickgoal.c
index 38adbd2d184..9e85a3539e0 100644
--- a/src/mame/drivers/kickgoal.c
+++ b/src/mame/drivers/kickgoal.c
@@ -488,7 +488,7 @@ static ADDRESS_MAP_START( kickgoal_program_map, AS_PROGRAM, 16, kickgoal_state )
AM_RANGE(0xa0c000, 0xa0ffff) AM_RAM // more tilemap?
AM_RANGE(0xa10000, 0xa1000f) AM_WRITEONLY AM_SHARE("scrram") /* Scroll Registers */
AM_RANGE(0xb00000, 0xb007ff) AM_WRITEONLY AM_SHARE("spriteram") /* Sprites */
- AM_RANGE(0xc00000, 0xc007ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") /* Palette */ // actionhw reads this
+ AM_RANGE(0xc00000, 0xc007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */ // actionhw reads this
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -661,7 +661,8 @@ static MACHINE_CONFIG_START( kickgoal, kickgoal_state )
MCFG_SCREEN_UPDATE_DRIVER(kickgoal_state, screen_update_kickgoal)
MCFG_GFXDECODE_ADD("gfxdecode", kickgoal)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(kickgoal_state,kickgoal)
@@ -696,7 +697,8 @@ static MACHINE_CONFIG_START( actionhw, kickgoal_state )
MCFG_SCREEN_UPDATE_DRIVER(kickgoal_state, screen_update_kickgoal)
MCFG_GFXDECODE_ADD("gfxdecode", actionhw)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(kickgoal_state,actionhw)
diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c
index 691a88c5dea..6fae2d3a88d 100644
--- a/src/mame/drivers/kingdrby.c
+++ b/src/mame/drivers/kingdrby.c
@@ -223,13 +223,13 @@ void kingdrby_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
{
for(dy=0;dy<h;dy++)
for(dx=0;dx<w;dx++)
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,spr_offs++,colour,1,0,((x+16*w)-(dx+1)*16),(y+dy*16),0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,spr_offs++,colour,1,0,((x+16*w)-(dx+1)*16),(y+dy*16),0);
}
else
{
for(dy=0;dy<h;dy++)
for(dx=0;dx<w;dx++)
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,spr_offs++,colour,0,0,(x+dx*16),(y+dy*16),0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,spr_offs++,colour,0,0,(x+dx*16),(y+dy*16),0);
}
}
}
@@ -980,7 +980,7 @@ PALETTE_INIT_MEMBER(kingdrby_state,kingdrby)
bit2 = (color_prom[0] >> 5) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
color_prom++;
}
}
@@ -1013,7 +1013,7 @@ PALETTE_INIT_MEMBER(kingdrby_state,kingdrbb)
bit2 = (prom[i] >> 5) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -1041,8 +1041,8 @@ static MACHINE_CONFIG_START( kingdrby, kingdrby_state )
MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf )
MCFG_GFXDECODE_ADD("gfxdecode", kingdrby)
- MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT_OVERRIDE(kingdrby_state,kingdrby)
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_INIT_OWNER(kingdrby_state,kingdrby)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
@@ -1065,7 +1065,8 @@ static MACHINE_CONFIG_DERIVED( kingdrbb, kingdrby )
MCFG_CPU_MODIFY("slave")
MCFG_CPU_PROGRAM_MAP(slave_1986_map)
- MCFG_PALETTE_INIT_OVERRIDE(kingdrby_state,kingdrbb)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(kingdrby_state,kingdrbb)
MCFG_DEVICE_REMOVE("ppi8255_0")
MCFG_DEVICE_REMOVE("ppi8255_1")
@@ -1080,7 +1081,8 @@ static MACHINE_CONFIG_DERIVED( cowrace, kingdrbb )
MCFG_CPU_IO_MAP(cowrace_sound_io)
MCFG_GFXDECODE_MODIFY("gfxdecode", cowrace)
- MCFG_PALETTE_INIT_OVERRIDE(kingdrby_state,kingdrby)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(kingdrby_state,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 cb1457dd663..1090c1e2e5a 100644
--- a/src/mame/drivers/kingobox.c
+++ b/src/mame/drivers/kingobox.c
@@ -492,9 +492,9 @@ static MACHINE_CONFIG_START( kingofb, kingofb_state )
MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_kingofb)
MCFG_GFXDECODE_ADD("gfxdecode", kingobox)
- MCFG_PALETTE_LENGTH(256+8*2)
+ MCFG_PALETTE_ADD("palette", 256+8*2)
- MCFG_PALETTE_INIT_OVERRIDE(kingofb_state,kingofb)
+ MCFG_PALETTE_INIT_OWNER(kingofb_state,kingofb)
MCFG_VIDEO_START_OVERRIDE(kingofb_state,kingofb)
/* sound hardware */
@@ -542,9 +542,9 @@ static MACHINE_CONFIG_START( ringking, kingofb_state )
MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_ringking)
MCFG_GFXDECODE_ADD("gfxdecode", rk)
- MCFG_PALETTE_LENGTH(256+8*2)
+ MCFG_PALETTE_ADD("palette", 256+8*2)
- MCFG_PALETTE_INIT_OVERRIDE(kingofb_state,ringking)
+ MCFG_PALETTE_INIT_OWNER(kingofb_state,ringking)
MCFG_VIDEO_START_OVERRIDE(kingofb_state,ringking)
/* sound hardware */
diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c
index bc53d026f3c..99e5966d0b2 100644
--- a/src/mame/drivers/kinst.c
+++ b/src/mame/drivers/kinst.c
@@ -696,8 +696,7 @@ static MACHINE_CONFIG_START( kinst, kinst_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(kinst_state, screen_update_kinst)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, BBBBB_GGGGG_RRRRR)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD_BBBBBGGGGGRRRRR("palette")
/* sound hardware */
MCFG_FRAGMENT_ADD(dcs_audio_2k)
diff --git a/src/mame/drivers/klax.c b/src/mame/drivers/klax.c
index c85a9e34a21..8c114f0daf2 100644
--- a/src/mame/drivers/klax.c
+++ b/src/mame/drivers/klax.c
@@ -170,7 +170,7 @@ static MACHINE_CONFIG_START( klax, klax_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", klax)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, klax_state, get_playfield_tile_info, 8,8, SCAN_COLS, 64,32)
MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "screen", klax_state::s_mob_config)
diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c
index 7560b2675bc..33ef8c65d31 100644
--- a/src/mame/drivers/kncljoe.c
+++ b/src/mame/drivers/kncljoe.c
@@ -286,8 +286,8 @@ static MACHINE_CONFIG_START( kncljoe, kncljoe_state )
MCFG_SCREEN_UPDATE_DRIVER(kncljoe_state, screen_update_kncljoe)
MCFG_GFXDECODE_ADD("gfxdecode", kncljoe)
- MCFG_PALETTE_LENGTH(16*8+16*8)
-
+ MCFG_PALETTE_ADD("palette", 16*8+16*8)
+ MCFG_PALETTE_INIT_OWNER(kncljoe_state, kncljoe)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/koftball.c b/src/mame/drivers/koftball.c
index 38925f237b3..06166b73511 100644
--- a/src/mame/drivers/koftball.c
+++ b/src/mame/drivers/koftball.c
@@ -117,7 +117,7 @@ WRITE16_MEMBER(koftball_state::bmc_RAMDAC_offset_w)
WRITE16_MEMBER(koftball_state::bmc_RAMDAC_color_w)
{
m_colorram[m_clr_offset]=data;
- palette_set_color_rgb(machine(),m_clr_offset/3,pal6bit(m_colorram[(m_clr_offset/3)*3]),pal6bit(m_colorram[(m_clr_offset/3)*3+1]),pal6bit(m_colorram[(m_clr_offset/3)*3+2]));
+ m_palette->set_pen_color(m_clr_offset/3,pal6bit(m_colorram[(m_clr_offset/3)*3]),pal6bit(m_colorram[(m_clr_offset/3)*3+1]),pal6bit(m_colorram[(m_clr_offset/3)*3+2]));
m_clr_offset=(m_clr_offset+1)%768;
}
@@ -253,7 +253,7 @@ static MACHINE_CONFIG_START( koftball, koftball_state )
MCFG_SCREEN_UPDATE_DRIVER(koftball_state, screen_update_koftball)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 30*8-1)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_GFXDECODE_ADD("gfxdecode", koftball)
diff --git a/src/mame/drivers/koikoi.c b/src/mame/drivers/koikoi.c
index 60e10619bbc..73fb49ade8a 100644
--- a/src/mame/drivers/koikoi.c
+++ b/src/mame/drivers/koikoi.c
@@ -74,7 +74,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(koikoi);
UINT32 screen_update_koikoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -96,14 +96,11 @@ TILE_GET_INFO_MEMBER(koikoi_state::get_tile_info)
SET_TILE_INFO_MEMBER(m_gfxdecode, 0, code, color, flip);
}
-void koikoi_state::palette_init()
+PALETTE_INIT_MEMBER(koikoi_state, koikoi)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
- /* allocate the colortable */
- machine().colortable = colortable_alloc(machine(), 0x10);
-
/* create a lookup table for the palette */
for (i = 0; i < 0x10; i++)
{
@@ -128,7 +125,7 @@ void koikoi_state::palette_init()
bit2 = (color_prom[i] >> 7) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- colortable_palette_set_color(machine().colortable, i, rgb_t(r, g, b));
+ palette.set_indirect_color(i, rgb_t(r, g, b));
}
/* color_prom now points to the beginning of the lookup table */
@@ -138,7 +135,7 @@ void koikoi_state::palette_init()
for (i = 0; i < 0x100; i++)
{
UINT8 ctabentry = color_prom[i] & 0x0f;
- colortable_entry_set_value(machine().colortable, i, ctabentry);
+ palette.set_pen_indirect(i, ctabentry);
}
}
@@ -379,8 +376,8 @@ static MACHINE_CONFIG_START( koikoi, koikoi_state )
MCFG_SCREEN_UPDATE_DRIVER(koikoi_state, screen_update_koikoi)
MCFG_GFXDECODE_ADD("gfxdecode", koikoi)
- MCFG_PALETTE_LENGTH(8*32)
-
+ MCFG_PALETTE_ADD("palette", 8*32)
+ MCFG_PALETTE_INIT_OWNER(koikoi_state, koikoi)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c
index b88ba150f17..279dd9243ef 100644
--- a/src/mame/drivers/konamigx.c
+++ b/src/mame/drivers/konamigx.c
@@ -1627,7 +1627,7 @@ static MACHINE_CONFIG_START( konamigx, konamigx_state )
MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223)
@@ -1639,16 +1639,20 @@ static MACHINE_CONFIG_START( konamigx, konamigx_state )
MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1)
MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K056832_ADD_NOINTF("k056832"/*, konamigx_k056832_intf*/)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K055555_ADD("k055555")
MCFG_K055673_ADD_NOINTF("k055673")
MCFG_K055673_SET_SCREEN("screen")
MCFG_K055673_GFXDECODE("gfxdecode")
+ MCFG_K055673_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(konamigx_state,konamigx_5bpp)
@@ -1722,10 +1726,16 @@ static MACHINE_CONFIG_DERIVED( gxtype3, konamigx )
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", konamigx_state, konamigx_hbinterrupt, "screen", 0, 1)
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE)
MCFG_VIDEO_START_OVERRIDE(konamigx_state,konamigx_type3)
- MCFG_PALETTE_LENGTH(16384)
+
+
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 16384)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
+
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(576, 264)
MCFG_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16)
@@ -1747,7 +1757,7 @@ static MACHINE_CONFIG_DERIVED( gxtype4, konamigx )
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", konamigx_state, konamigx_hbinterrupt, "screen", 0, 1)
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(128*8, 264)
@@ -1760,7 +1770,11 @@ static MACHINE_CONFIG_DERIVED( gxtype4, konamigx )
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 32*8-1-16)
MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_right)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
+
MCFG_GFXDECODE_MODIFY("gfxdecode", type4)
MCFG_VIDEO_START_OVERRIDE(konamigx_state,konamigx_type4)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/konamim2.c b/src/mame/drivers/konamim2.c
index a02eba0c4a7..517e545ff8a 100644
--- a/src/mame/drivers/konamim2.c
+++ b/src/mame/drivers/konamim2.c
@@ -1190,8 +1190,7 @@ static MACHINE_CONFIG_START( m2, konamim2_state )
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
MCFG_SCREEN_UPDATE_DRIVER(konamim2_state, screen_update_m2)
- MCFG_PALETTE_LENGTH(32768)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/konendev.c b/src/mame/drivers/konendev.c
index da1a73cbb71..e158a4e7ddc 100644
--- a/src/mame/drivers/konendev.c
+++ b/src/mame/drivers/konendev.c
@@ -109,8 +109,7 @@ static MACHINE_CONFIG_START( konendev, konendev_state )
MCFG_CPU_PROGRAM_MAP(konendev_map)
/* video hardware */
- MCFG_PALETTE_LENGTH(32768)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
diff --git a/src/mame/drivers/kontest.c b/src/mame/drivers/kontest.c
index 523ff2657ac..428ecc7b092 100644
--- a/src/mame/drivers/kontest.c
+++ b/src/mame/drivers/kontest.c
@@ -54,8 +54,8 @@ protected:
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
public:
+ DECLARE_PALETTE_INIT(kontest);
INTERRUPT_GEN_MEMBER(kontest_interrupt);
};
@@ -66,7 +66,7 @@ public:
***************************************************************************/
-void kontest_state::palette_init()
+PALETTE_INIT_MEMBER(kontest_state, kontest)
{
const UINT8 *color_prom = memregion("proms")->base();
int bit0, bit1, bit2 , r, g, b;
@@ -87,7 +87,7 @@ void kontest_state::palette_init()
bit2 = (color_prom[i] >> 2) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -135,7 +135,7 @@ UINT32 kontest_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap
res_y = y*8+yi;
if (cliprect.contains(res_x, res_y))
- bitmap.pix32(res_y, res_x) = machine().pens[color|attr*4];
+ bitmap.pix32(res_y, res_x) = m_palette->pen(color|attr*4);
}
}
}
@@ -259,7 +259,8 @@ 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_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(kontest_state, kontest)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/kopunch.c b/src/mame/drivers/kopunch.c
index 1e1df3c1058..57c5b26e9af 100644
--- a/src/mame/drivers/kopunch.c
+++ b/src/mame/drivers/kopunch.c
@@ -195,8 +195,8 @@ static MACHINE_CONFIG_START( kopunch, kopunch_state )
MCFG_SCREEN_UPDATE_DRIVER(kopunch_state, screen_update_kopunch)
MCFG_GFXDECODE_ADD("gfxdecode", kopunch)
- MCFG_PALETTE_LENGTH(8)
-
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(kopunch_state, kopunch)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ksayakyu.c b/src/mame/drivers/ksayakyu.c
index 78a3782731c..f4eddb92690 100644
--- a/src/mame/drivers/ksayakyu.c
+++ b/src/mame/drivers/ksayakyu.c
@@ -288,8 +288,8 @@ static MACHINE_CONFIG_START( ksayakyu, ksayakyu_state )
MCFG_SCREEN_UPDATE_DRIVER(ksayakyu_state, screen_update_ksayakyu)
MCFG_GFXDECODE_ADD("gfxdecode", ksayakyu)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(ksayakyu_state, ksayakyu)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/kurukuru.c b/src/mame/drivers/kurukuru.c
index e22a6f68555..ff8eeef4153 100644
--- a/src/mame/drivers/kurukuru.c
+++ b/src/mame/drivers/kurukuru.c
@@ -588,7 +588,7 @@ static MACHINE_CONFIG_START( kurukuru, kurukuru_state )
MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
MCFG_SCREEN_UPDATE_DEVICE("v9938", v9938_device, screen_update)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW )
diff --git a/src/mame/drivers/kyugo.c b/src/mame/drivers/kyugo.c
index 0c4bb1fa5d9..5af882ce5d5 100644
--- a/src/mame/drivers/kyugo.c
+++ b/src/mame/drivers/kyugo.c
@@ -548,9 +548,7 @@ static MACHINE_CONFIG_START( gyrodine, kyugo_state )
MCFG_SCREEN_UPDATE_DRIVER(kyugo_state, screen_update_kyugo)
MCFG_GFXDECODE_ADD("gfxdecode", kyugo)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/labyrunr.c b/src/mame/drivers/labyrunr.c
index bb4a25568ab..dd4e9adc440 100644
--- a/src/mame/drivers/labyrunr.c
+++ b/src/mame/drivers/labyrunr.c
@@ -200,10 +200,11 @@ static MACHINE_CONFIG_START( labyrunr, labyrunr_state )
MCFG_SCREEN_UPDATE_DRIVER(labyrunr_state, screen_update_labyrunr)
MCFG_GFXDECODE_ADD("gfxdecode", labyrunr)
- MCFG_PALETTE_LENGTH(2*8*16*16)
-
+ MCFG_PALETTE_ADD("palette", 2*8*16*16)
+ MCFG_PALETTE_INIT_OWNER(labyrunr_state, labyrunr)
MCFG_K007121_ADD("k007121")
+ MCFG_K007121_PALETTE("palette")
MCFG_K051733_ADD("k051733")
/* sound hardware */
diff --git a/src/mame/drivers/ladybug.c b/src/mame/drivers/ladybug.c
index c054f5f22cf..584862f2a4b 100644
--- a/src/mame/drivers/ladybug.c
+++ b/src/mame/drivers/ladybug.c
@@ -767,9 +767,10 @@ static MACHINE_CONFIG_START( ladybug, ladybug_state )
MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_ladybug)
MCFG_GFXDECODE_ADD("gfxdecode", ladybug)
- MCFG_PALETTE_LENGTH(4*8+4*16)
+ MCFG_PALETTE_ADD("palette", 4*8+4*16)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
- MCFG_PALETTE_INIT_OVERRIDE(ladybug_state,ladybug)
+ MCFG_PALETTE_INIT_OWNER(ladybug_state,ladybug)
MCFG_VIDEO_START_OVERRIDE(ladybug_state,ladybug)
/* sound hardware */
@@ -808,9 +809,10 @@ static MACHINE_CONFIG_START( sraider, ladybug_state )
MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_sraider)
MCFG_GFXDECODE_ADD("gfxdecode", sraider)
- MCFG_PALETTE_LENGTH(4*8+4*16+32+2)
+ MCFG_PALETTE_ADD("palette", 4*8+4*16+32+2)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
- MCFG_PALETTE_INIT_OVERRIDE(ladybug_state,sraider)
+ MCFG_PALETTE_INIT_OWNER(ladybug_state,sraider)
MCFG_VIDEO_START_OVERRIDE(ladybug_state,sraider)
/* sound hardware */
diff --git a/src/mame/drivers/ladyfrog.c b/src/mame/drivers/ladyfrog.c
index 03981336dbb..c7c9080f6c6 100644
--- a/src/mame/drivers/ladyfrog.c
+++ b/src/mame/drivers/ladyfrog.c
@@ -315,7 +315,7 @@ static MACHINE_CONFIG_START( ladyfrog, ladyfrog_state )
MCFG_SCREEN_UPDATE_DRIVER(ladyfrog_state, screen_update_ladyfrog)
MCFG_GFXDECODE_ADD("gfxdecode", ladyfrog)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
/* sound hardware */
diff --git a/src/mame/drivers/laserbas.c b/src/mame/drivers/laserbas.c
index b7ae86d8543..1459e8f8e74 100644
--- a/src/mame/drivers/laserbas.c
+++ b/src/mame/drivers/laserbas.c
@@ -218,7 +218,7 @@ static ADDRESS_MAP_START( laserbas_io, AS_IO, 8, laserbas_state )
AM_RANGE(0x20, 0x23) AM_WRITE(out_w)
AM_RANGE(0x40, 0x43) AM_DEVREADWRITE("pit0", pit8253_device, read, write)
AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("pit1", pit8253_device, read, write)
- AM_RANGE(0x80, 0x9f) AM_RAM_WRITE(paletteram_RRRGGGBB_byte_w) AM_SHARE("paletteram")
+ AM_RANGE(0x80, 0x9f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static INPUT_PORTS_START( laserbas )
@@ -330,7 +330,8 @@ static MACHINE_CONFIG_START( laserbas, laserbas_state )
MCFG_MC6845_ADD("crtc", H46505, "screen", 3000000/4, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */
- MCFG_PALETTE_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_FORMAT(RRRGGGBB)
MACHINE_CONFIG_END
/*
diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c
index aa45208609a..8d4a9b77eae 100644
--- a/src/mame/drivers/laserbat.c
+++ b/src/mame/drivers/laserbat.c
@@ -521,7 +521,7 @@ UINT32 laserbat_state::screen_update_laserbat(screen_device &screen, bitmap_ind1
}
if (m_sprite_enable)
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,
m_sprite_code,
m_sprite_color,
0,0,
@@ -723,7 +723,7 @@ static MACHINE_CONFIG_START( laserbat, laserbat_state )
MCFG_SCREEN_UPDATE_DRIVER(laserbat_state, screen_update_laserbat)
MCFG_GFXDECODE_ADD("gfxdecode", laserbat)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_S2636_ADD("s2636_1", s2636_1_config)
MCFG_S2636_ADD("s2636_2", s2636_2_config)
@@ -771,7 +771,7 @@ static MACHINE_CONFIG_START( catnmous, laserbat_state )
MCFG_SCREEN_UPDATE_DRIVER(laserbat_state, screen_update_laserbat)
MCFG_GFXDECODE_ADD("gfxdecode", laserbat)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_S2636_ADD("s2636_1", s2636_1_config)
MCFG_S2636_ADD("s2636_2", s2636_2_config)
diff --git a/src/mame/drivers/lasso.c b/src/mame/drivers/lasso.c
index 422452c5db1..efeee23f8e3 100644
--- a/src/mame/drivers/lasso.c
+++ b/src/mame/drivers/lasso.c
@@ -497,8 +497,8 @@ static MACHINE_CONFIG_START( base, lasso_state )
MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_lasso)
MCFG_GFXDECODE_ADD("gfxdecode", lasso)
- MCFG_PALETTE_LENGTH(0x40)
-
+ MCFG_PALETTE_ADD("palette", 0x40)
+ MCFG_PALETTE_INIT_OWNER(lasso_state, lasso)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -549,9 +549,9 @@ static MACHINE_CONFIG_DERIVED( wwjgtin, base )
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) // Smaller visible area?
MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_wwjgtin)
MCFG_GFXDECODE_MODIFY("gfxdecode", wwjgtin) // Has 1 additional layer
- MCFG_PALETTE_LENGTH(0x40 + 16*16)
-
- MCFG_PALETTE_INIT_OVERRIDE(lasso_state,wwjgtin)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 0x40 + 16*16)
+ MCFG_PALETTE_INIT_OWNER(lasso_state,wwjgtin)
MCFG_VIDEO_START_OVERRIDE(lasso_state,wwjgtin)
/* sound hardware */
@@ -572,8 +572,8 @@ static MACHINE_CONFIG_DERIVED( pinbo, base )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", pinbo)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_VIDEO_START_OVERRIDE(lasso_state,pinbo)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_chameleo)
diff --git a/src/mame/drivers/lastbank.c b/src/mame/drivers/lastbank.c
index d1704cf7bdb..3756dc00562 100644
--- a/src/mame/drivers/lastbank.c
+++ b/src/mame/drivers/lastbank.c
@@ -477,11 +477,12 @@ static MACHINE_CONFIG_START( lastbank, lastbank_state )
MCFG_SCREEN_UPDATE_DRIVER(lastbank_state, screen_update)
MCFG_SCREEN_VBLANK_DRIVER(lastbank_state, screen_eof)
- MCFG_GFXDECODE_ADD("gfxdecode", lastbank )
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_GFXDECODE_ADD("gfxdecode", lastbank )
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_DEVICE_ADD("tc0091lvc", TC0091LVC, 0)
MCFG_TC0091LVC_GFXDECODE("gfxdecode")
+ MCFG_TC0091LVC_PALETTE("palette")
// MCFG_VIDEO_START_OVERRIDE(lastbank_state,lastbank)
diff --git a/src/mame/drivers/lastduel.c b/src/mame/drivers/lastduel.c
index bdadb8f4958..b093a350e31 100644
--- a/src/mame/drivers/lastduel.c
+++ b/src/mame/drivers/lastduel.c
@@ -518,7 +518,7 @@ static MACHINE_CONFIG_START( lastduel, lastduel_state )
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_GFXDECODE_ADD("gfxdecode", lastduel)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_VIDEO_START_OVERRIDE(lastduel_state,lastduel)
@@ -562,7 +562,7 @@ static MACHINE_CONFIG_START( madgear, lastduel_state )
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_GFXDECODE_ADD("gfxdecode", madgear)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_VIDEO_START_OVERRIDE(lastduel_state,madgear)
diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c
index 8fb4a330ee2..956db22ce5f 100644
--- a/src/mame/drivers/lastfght.c
+++ b/src/mame/drivers/lastfght.c
@@ -163,12 +163,12 @@ UINT32 lastfght_state::screen_update_lastfght(screen_device &screen, bitmap_ind1
count = m_base;
- bitmap.fill(get_black_pen(machine()), cliprect );
+ bitmap.fill(m_palette->black_pen(), cliprect );
for (y = 0 ; y < 256; y++)
{
for (x = 0; x < 512; x++)
{
- data = (((count & 0xf) == 0) && ((count & 0x1e00) == 0)) ? get_white_pen(machine()) : gfxdata[count]; // white grid or data
+ data = (((count & 0xf) == 0) && ((count & 0x1e00) == 0)) ? m_palette->white_pen() : gfxdata[count]; // white grid or data
bitmap.pix16(y, x) = data;
count++;
}
@@ -191,7 +191,7 @@ WRITE16_MEMBER(lastfght_state::colordac_w)
if (ACCESSING_BITS_0_7)
{
m_colorram[m_clr_offset] = data;
- palette_set_color_rgb(machine(), m_clr_offset / 3,
+ m_palette->set_pen_color(m_clr_offset / 3,
pal6bit(m_colorram[(m_clr_offset / 3) * 3 + 0]),
pal6bit(m_colorram[(m_clr_offset / 3) * 3 + 1]),
pal6bit(m_colorram[(m_clr_offset / 3) * 3 + 2])
@@ -573,7 +573,7 @@ static MACHINE_CONFIG_START( lastfght, lastfght_state )
/* video hardware */
- MCFG_PALETTE_LENGTH( 256 )
+ MCFG_PALETTE_ADD( "palette", 256 )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_SIZE( 512, 256 )
diff --git a/src/mame/drivers/lazercmd.c b/src/mame/drivers/lazercmd.c
index 8f3e46bc828..8b552acce9b 100644
--- a/src/mame/drivers/lazercmd.c
+++ b/src/mame/drivers/lazercmd.c
@@ -593,15 +593,15 @@ static GFXDECODE_START( lazercmd )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 2 )
GFXDECODE_END
-void lazercmd_state::palette_init()
+PALETTE_INIT_MEMBER(lazercmd_state, lazercmd)
{
- palette_set_color(machine(), 0, rgb_t(0xb0, 0xb0, 0xb0)); /* white */
- palette_set_color(machine(), 1, rgb_t(0x00, 0x00, 0x00)); /* black */
+ palette.set_pen_color(0, rgb_t(0xb0, 0xb0, 0xb0)); /* white */
+ palette.set_pen_color(1, rgb_t(0x00, 0x00, 0x00)); /* black */
- palette_set_color(machine(), 2, rgb_t(0x00, 0x00, 0x00)); /* black */
- palette_set_color(machine(), 3, rgb_t(0xb0, 0xb0, 0xb0)); /* white */
+ palette.set_pen_color(2, rgb_t(0x00, 0x00, 0x00)); /* black */
+ palette.set_pen_color(3, rgb_t(0xb0, 0xb0, 0xb0)); /* white */
- palette_set_color(machine(), 4, rgb_t(0xff, 0xff, 0xff)); /* bright white */
+ palette.set_pen_color(4, rgb_t(0xff, 0xff, 0xff)); /* bright white */
}
@@ -647,7 +647,8 @@ static MACHINE_CONFIG_START( lazercmd, lazercmd_state )
MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd)
MCFG_GFXDECODE_ADD("gfxdecode", lazercmd)
- MCFG_PALETTE_LENGTH(5)
+ MCFG_PALETTE_ADD("palette", 5)
+ MCFG_PALETTE_INIT_OWNER(lazercmd_state, lazercmd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -678,7 +679,8 @@ static MACHINE_CONFIG_START( medlanes, lazercmd_state )
MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd)
MCFG_GFXDECODE_ADD("gfxdecode", lazercmd)
- MCFG_PALETTE_LENGTH(5)
+ MCFG_PALETTE_ADD("palette", 5)
+ MCFG_PALETTE_INIT_OWNER(lazercmd_state, lazercmd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -709,7 +711,8 @@ static MACHINE_CONFIG_START( bbonk, lazercmd_state )
MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd)
MCFG_GFXDECODE_ADD("gfxdecode", lazercmd)
- MCFG_PALETTE_LENGTH(5)
+ MCFG_PALETTE_ADD("palette", 5)
+ MCFG_PALETTE_INIT_OWNER(lazercmd_state, lazercmd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lbeach.c b/src/mame/drivers/lbeach.c
index 7e1e0c353bf..64100ce9556 100644
--- a/src/mame/drivers/lbeach.c
+++ b/src/mame/drivers/lbeach.c
@@ -71,7 +71,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(lbeach);
UINT32 screen_update_lbeach(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -83,28 +83,28 @@ public:
***************************************************************************/
-void lbeach_state::palette_init()
+PALETTE_INIT_MEMBER(lbeach_state, lbeach)
{
// tiles
- palette_set_color_rgb(machine(), 0, 0x00, 0x00, 0x00);
- palette_set_color_rgb(machine(), 1, 0xc0, 0xc0, 0xc0);
+ palette.set_pen_color(0, 0x00, 0x00, 0x00);
+ palette.set_pen_color(1, 0xc0, 0xc0, 0xc0);
// road
- palette_set_color_rgb(machine(), 2, 0x00, 0x00, 0x00);
- palette_set_color_rgb(machine(), 3, 0xff, 0xff, 0xff);
+ palette.set_pen_color(2, 0x00, 0x00, 0x00);
+ palette.set_pen_color(3, 0xff, 0xff, 0xff);
- palette_set_color_rgb(machine(), 4, 0x80, 0x80, 0x80);
- palette_set_color_rgb(machine(), 5, 0xff, 0xff, 0xff);
+ palette.set_pen_color(4, 0x80, 0x80, 0x80);
+ palette.set_pen_color(5, 0xff, 0xff, 0xff);
- palette_set_color_rgb(machine(), 6, 0x00, 0x00, 0x00);
- palette_set_color_rgb(machine(), 7, 0x80, 0x80, 0x80);
+ palette.set_pen_color(6, 0x00, 0x00, 0x00);
+ palette.set_pen_color(7, 0x80, 0x80, 0x80);
- palette_set_color_rgb(machine(), 8, 0x80, 0x80, 0x80);
- palette_set_color_rgb(machine(), 9, 0xff, 0xff, 0xff);
+ palette.set_pen_color(8, 0x80, 0x80, 0x80);
+ palette.set_pen_color(9, 0xff, 0xff, 0xff);
// player car
- palette_set_color_rgb(machine(), 10, 0x00, 0x00, 0x00);
- palette_set_color_rgb(machine(), 11, 0xff, 0xff, 0xff);
+ palette.set_pen_color(10, 0x00, 0x00, 0x00);
+ palette.set_pen_color(11, 0xff, 0xff, 0xff);
}
@@ -148,7 +148,7 @@ UINT32 lbeach_state::screen_update_lbeach(screen_device &screen, bitmap_ind16 &b
int sprite_y = 160;
m_colmap_car.fill(0, cliprect);
- m_gfxdecode->gfx(2)->transpen(m_colmap_car,cliprect, sprite_code, 0, 0, 0, sprite_x, sprite_y, 0);
+ m_gfxdecode->gfx(2)->transpen(m_palette,m_colmap_car,cliprect, sprite_code, 0, 0, 0, sprite_x, sprite_y, 0);
bitmap_ind16 &fg_bitmap = m_fg_tilemap->pixmap();
m_collision_bg_car = 0;
@@ -167,7 +167,7 @@ UINT32 lbeach_state::screen_update_lbeach(screen_device &screen, bitmap_ind16 &b
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
// draw player car
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, sprite_code, 0, 0, 0, sprite_x, sprite_y, 0);
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, sprite_code, 0, 0, 0, sprite_x, sprite_y, 0);
return 0;
}
@@ -336,8 +336,8 @@ static MACHINE_CONFIG_START( lbeach, lbeach_state )
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) // needed for collision detection
MCFG_GFXDECODE_ADD("gfxdecode", lbeach)
- MCFG_PALETTE_LENGTH(2+8+2)
-
+ MCFG_PALETTE_ADD("palette", 2+8+2)
+ MCFG_PALETTE_INIT_OWNER(lbeach_state, lbeach)
/* sound hardware */
// ...
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c
index 5d37547485c..7b0a8043b8a 100644
--- a/src/mame/drivers/legionna.c
+++ b/src/mame/drivers/legionna.c
@@ -89,7 +89,7 @@ static ADDRESS_MAP_START( legionna_map, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
AM_RANGE(0x102000, 0x1027ff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
AM_RANGE(0x102800, 0x1037ff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
- AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* palette xRRRRxGGGGxBBBBx ? */
+ AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* palette xRRRRxGGGGxBBBBx ? */
AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x106000, 0x107fff) AM_RAM
AM_RANGE(0x108000, 0x11ffff) AM_RAM /* main ram */
@@ -105,7 +105,7 @@ static ADDRESS_MAP_START( heatbrl_map, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
AM_RANGE(0x103000, 0x103fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x108000, 0x11ffff) AM_RAM
ADDRESS_MAP_END
@@ -118,7 +118,7 @@ static ADDRESS_MAP_START( godzilla_map, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x102000, 0x1027ff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
AM_RANGE(0x102800, 0x1037ff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
AM_RANGE(0x103800, 0x103fff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
- AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x106000, 0x1067ff) AM_RAM
AM_RANGE(0x106800, 0x106fff) AM_RAM
@@ -131,7 +131,7 @@ WRITE16_MEMBER(legionna_state::denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w)
{
offset^=1;
COMBINE_DATA(&m_generic_paletteram_16[offset]);
- paletteram_xBBBBBGGGGGRRRRR_word_w(space,offset,data,mem_mask);
+ m_palette->write(space,offset,data,mem_mask);
}
static ADDRESS_MAP_START( denjinmk_map, AS_PROGRAM, 16, legionna_state )
@@ -159,7 +159,7 @@ static ADDRESS_MAP_START( grainbow_map, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
- AM_RANGE(0x103000, 0x103fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x104000, 0x104fff) AM_RAM//_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
AM_RANGE(0x105000, 0x105fff) AM_RAM
AM_RANGE(0x106000, 0x106fff) AM_RAM
@@ -175,7 +175,7 @@ static ADDRESS_MAP_START( cupsoc_mem, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
- AM_RANGE(0x103000, 0x103fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x104000, 0x104fff) AM_RAM
AM_RANGE(0x105000, 0x106fff) AM_RAM
AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_SHARE("spriteram")
@@ -194,7 +194,7 @@ static ADDRESS_MAP_START( cupsocs_mem, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
- AM_RANGE(0x103000, 0x103fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x104000, 0x104fff) AM_RAM
AM_RANGE(0x105000, 0x106fff) AM_RAM
AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_SHARE("spriteram")
@@ -213,7 +213,7 @@ static ADDRESS_MAP_START( cupsocbl_mem, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
- AM_RANGE(0x103000, 0x103fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x104000, 0x104fff) AM_RAM
AM_RANGE(0x105000, 0x106fff) AM_RAM
AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_SHARE("spriteram")
@@ -1078,8 +1078,8 @@ static MACHINE_CONFIG_START( legionna, legionna_state )
MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_legionna)
MCFG_GFXDECODE_ADD("gfxdecode", legionna)
- MCFG_PALETTE_LENGTH(128*16)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(legionna_state,legionna)
@@ -1108,8 +1108,9 @@ static MACHINE_CONFIG_START( heatbrl, legionna_state )
MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_legionna)
MCFG_GFXDECODE_ADD("gfxdecode", heatbrl)
- MCFG_PALETTE_LENGTH(128*16)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(legionna_state,legionna)
@@ -1138,8 +1139,9 @@ static MACHINE_CONFIG_START( godzilla, legionna_state )
MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_godzilla)
MCFG_GFXDECODE_ADD("gfxdecode", heatbrl)
- MCFG_PALETTE_LENGTH(128*16)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(legionna_state,godzilla)
@@ -1167,8 +1169,9 @@ static MACHINE_CONFIG_START( denjinmk, legionna_state )
MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_godzilla)
MCFG_GFXDECODE_ADD("gfxdecode", heatbrl)
- MCFG_PALETTE_LENGTH(128*16)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(legionna_state,denjinmk)
@@ -1196,8 +1199,9 @@ static MACHINE_CONFIG_START( grainbow, legionna_state )
MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow)
MCFG_GFXDECODE_ADD("gfxdecode", grainbow)
- MCFG_PALETTE_LENGTH(128*16)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(legionna_state,grainbow)
@@ -1226,8 +1230,9 @@ static MACHINE_CONFIG_START( cupsoc, legionna_state )
MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow)
MCFG_GFXDECODE_ADD("gfxdecode", cupsoc)
- MCFG_PALETTE_LENGTH(128*16)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(legionna_state,cupsoc)
@@ -1264,8 +1269,9 @@ static MACHINE_CONFIG_START( cupsocbl, legionna_state )
MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow)
MCFG_GFXDECODE_ADD("gfxdecode", heatbrl_csb)
- MCFG_PALETTE_LENGTH(128*16)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(legionna_state,cupsoc)
diff --git a/src/mame/drivers/leland.c b/src/mame/drivers/leland.c
index 8d3d281f2d6..7bb30685bb7 100644
--- a/src/mame/drivers/leland.c
+++ b/src/mame/drivers/leland.c
@@ -69,7 +69,7 @@ static ADDRESS_MAP_START( master_map_program, AS_PROGRAM, 8, leland_state )
AM_RANGE(0x2000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xdfff) AM_ROMBANK("bank2") AM_WRITE(leland_battery_ram_w) AM_SHARE("battery")
AM_RANGE(0xe000, 0xefff) AM_RAM
- AM_RANGE(0xf000, 0xf3ff) AM_READWRITE(leland_gated_paletteram_r, leland_gated_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf000, 0xf3ff) AM_READWRITE(leland_gated_paletteram_r, leland_gated_paletteram_w) AM_SHARE("palette")
AM_RANGE(0xf800, 0xf801) AM_WRITE(leland_master_video_addr_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lemmings.c b/src/mame/drivers/lemmings.c
index b933c73c24f..77c511b9838 100644
--- a/src/mame/drivers/lemmings.c
+++ b/src/mame/drivers/lemmings.c
@@ -56,7 +56,7 @@ WRITE16_MEMBER(lemmings_state::lemmings_palette_24bit_w)
g = (m_paletteram[offset + 1] >> 8) & 0xff;
r = (m_paletteram[offset + 1] >> 0) & 0xff;
- palette_set_color(machine(), offset / 2, rgb_t(r, g, b));
+ m_palette->set_pen_color(offset / 2, rgb_t(r, g, b));
}
void lemmings_state::lemmings_sound_cb( address_space &space, UINT16 data, UINT16 mem_mask )
@@ -264,16 +264,18 @@ static MACHINE_CONFIG_START( lemmings, lemmings_state )
MCFG_SCREEN_VBLANK_DRIVER(lemmings_state, screen_eof_lemmings)
MCFG_GFXDECODE_ADD("gfxdecode", lemmings)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 1);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 0);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO146_ADD("ioprot")
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c
index 4b62f2e4298..aed95de93fd 100644
--- a/src/mame/drivers/lethal.c
+++ b/src/mame/drivers/lethal.c
@@ -387,7 +387,7 @@ WRITE8_MEMBER(lethal_state::le_4800_w)
{
if (m_cur_control2 & 0x10) // RAM enable
{
- paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data);
+ m_palette->write(space, offset, data);
}
else
{
@@ -478,7 +478,7 @@ WRITE8_MEMBER(lethal_state::le_4800_w)
// use one more palette entry for the BG color
WRITE8_MEMBER(lethal_state::le_bgcolor_w)
{
- paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, 0x3800 + offset, data);
+ m_palette->write(space, 0x3800 + offset, data);
}
READ8_MEMBER(lethal_state::guns_r)
@@ -720,8 +720,6 @@ static MACHINE_CONFIG_START( lethalen, lethal_state )
MCFG_GFXDECODE_ADD("gfxdecode", lethal)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.62) /* verified on pcb */
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -729,12 +727,16 @@ static MACHINE_CONFIG_START( lethalen, lethal_state )
MCFG_SCREEN_VISIBLE_AREA(216, 504-1, 16, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(lethal_state, screen_update_lethalen)
- MCFG_PALETTE_LENGTH(7168+1)
+ MCFG_PALETTE_ADD("palette", 7168+1)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_K056832_ADD("k056832", lethalen_k056832_intf)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K053244_ADD("k053244", lethalen_k05324x_intf)
MCFG_K053244_GFXDECODE("gfxdecode")
+ MCFG_K053244_PALETTE("palette")
MCFG_K054000_ADD("k054000")
/* sound hardware */
@@ -754,6 +756,7 @@ static MACHINE_CONFIG_DERIVED( lethalej, lethalen )
MCFG_DEVICE_REMOVE("k053244")
MCFG_K053244_ADD("k053244", lethalej_k05324x_intf)
MCFG_K053244_GFXDECODE("gfxdecode")
+ MCFG_K053244_PALETTE("palette")
MACHINE_CONFIG_END
ROM_START( lethalen ) // US version UAE
diff --git a/src/mame/drivers/lethalj.c b/src/mame/drivers/lethalj.c
index 00ba7c897a6..3dcc5ddc74b 100644
--- a/src/mame/drivers/lethalj.c
+++ b/src/mame/drivers/lethalj.c
@@ -676,8 +676,7 @@ static MACHINE_CONFIG_START( gameroom, lethalj_state )
MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_ind16)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lgp.c b/src/mame/drivers/lgp.c
index 4986d261051..2437e0bc862 100644
--- a/src/mame/drivers/lgp.c
+++ b/src/mame/drivers/lgp.c
@@ -107,7 +107,7 @@ UINT32 lgp_state::screen_update_lgp(screen_device &screen, bitmap_rgb32 &bitmap,
int charx, chary;
/* make color 0 transparent */
- palette_set_color(machine(), 0, rgb_t(0,0,0,0));
+ m_palette->set_pen_color(0, rgb_t(0,0,0,0));
/* clear */
bitmap.fill(0, cliprect);
@@ -121,7 +121,7 @@ UINT32 lgp_state::screen_update_lgp(screen_device &screen, bitmap_rgb32 &bitmap,
/* Somewhere there's a flag that offsets the tilemap by 0x100*x */
/* Palette is likely set somewhere as well (tile_control_ram?) */
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
m_tile_ram[current_screen_character],
0,
0, 0, charx*8, chary*8, 0);
@@ -379,8 +379,8 @@ static MACHINE_CONFIG_START( lgp, lgp_state )
/* video hardware */
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
- MCFG_PALETTE_LENGTH(256)
- /* MCFG_PALETTE_INIT_OVERRIDE(lgp_state,lgp) */
+ MCFG_PALETTE_ADD("palette", 256)
+ /* MCFG_PALETTE_INIT_OWNER(lgp_state,lgp) */
MCFG_GFXDECODE_ADD("gfxdecode", lgp)
diff --git a/src/mame/drivers/liberate.c b/src/mame/drivers/liberate.c
index 56feaa014cc..dd89f7834fb 100644
--- a/src/mame/drivers/liberate.c
+++ b/src/mame/drivers/liberate.c
@@ -839,8 +839,8 @@ static MACHINE_CONFIG_START( liberate, liberate_state )
MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_liberate)
MCFG_GFXDECODE_ADD("gfxdecode", liberate)
- MCFG_PALETTE_LENGTH(33)
- MCFG_PALETTE_INIT_OVERRIDE(liberate_state,liberate)
+ MCFG_PALETTE_ADD("palette", 33)
+ MCFG_PALETTE_INIT_OWNER(liberate_state,liberate)
MCFG_VIDEO_START_OVERRIDE(liberate_state,liberate)
@@ -918,7 +918,7 @@ static MACHINE_CONFIG_START( prosport, liberate_state )
MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_prosport)
MCFG_GFXDECODE_ADD("gfxdecode", prosport)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_VIDEO_START_OVERRIDE(liberate_state,prosport)
diff --git a/src/mame/drivers/limenko.c b/src/mame/drivers/limenko.c
index 2cac7db301a..f296cedfd22 100644
--- a/src/mame/drivers/limenko.c
+++ b/src/mame/drivers/limenko.c
@@ -115,13 +115,13 @@ WRITE32_MEMBER(limenko_state::limenko_paletteram_w)
if(ACCESSING_BITS_0_15)
{
paldata = m_generic_paletteram_32[offset] & 0x7fff;
- palette_set_color_rgb(machine(), offset * 2 + 1, pal5bit(paldata >> 0), pal5bit(paldata >> 5), pal5bit(paldata >> 10));
+ m_palette->set_pen_color(offset * 2 + 1, pal5bit(paldata >> 0), pal5bit(paldata >> 5), pal5bit(paldata >> 10));
}
if(ACCESSING_BITS_16_31)
{
paldata = (m_generic_paletteram_32[offset] >> 16) & 0x7fff;
- palette_set_color_rgb(machine(), offset * 2 + 0, pal5bit(paldata >> 0), pal5bit(paldata >> 5), pal5bit(paldata >> 10));
+ m_palette->set_pen_color(offset * 2 + 0, pal5bit(paldata >> 0), pal5bit(paldata >> 5), pal5bit(paldata >> 10));
}
}
@@ -467,7 +467,7 @@ void limenko_state::draw_sprites(UINT32 *sprites, const rectangle &cliprect, int
continue;
/* prepare GfxElement on the fly */
- gfx_element gfx(machine(), gfxdata, width, height, width, 0, 256);
+ gfx_element gfx(machine(), gfxdata, width, height, width, m_palette->entries(), 0, 256);
draw_single_sprite(m_sprites_bitmap,cliprect,&gfx,0,color,flipx,flipy,x,y,pri);
@@ -767,7 +767,7 @@ static MACHINE_CONFIG_START( limenko, limenko_state )
MCFG_SCREEN_UPDATE_DRIVER(limenko_state, screen_update_limenko)
MCFG_GFXDECODE_ADD("gfxdecode", limenko)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
/* sound hardware */
@@ -798,7 +798,7 @@ static MACHINE_CONFIG_START( spotty, limenko_state )
MCFG_SCREEN_UPDATE_DRIVER(limenko_state, screen_update_limenko)
MCFG_GFXDECODE_ADD("gfxdecode", limenko)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
/* sound hardware */
diff --git a/src/mame/drivers/littlerb.c b/src/mame/drivers/littlerb.c
index 0c1ac1e9ea2..5df55e79e87 100644
--- a/src/mame/drivers/littlerb.c
+++ b/src/mame/drivers/littlerb.c
@@ -950,10 +950,11 @@ static MACHINE_CONFIG_START( littlerb, littlerb_state )
MCFG_DEVICE_ADD("littlerbvdp", LITTLERBVDP, 0)
#endif
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
+// MCFG_PALETTE_INIT_OWNER(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 bb3a1108ba9..83779441988 100644
--- a/src/mame/drivers/lkage.c
+++ b/src/mame/drivers/lkage.c
@@ -133,7 +133,7 @@ READ8_MEMBER(lkage_state::sound_status_r)
static ADDRESS_MAP_START( lkage_map, AS_PROGRAM, 8, lkage_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM /* work ram */
- AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe800, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf000, 0xf003) AM_RAM AM_SHARE("vreg") /* video registers */
AM_RANGE(0xf060, 0xf060) AM_WRITE(lkage_sound_command_w)
AM_RANGE(0xf061, 0xf061) AM_WRITENOP AM_READ(sound_status_r)
@@ -563,7 +563,8 @@ static MACHINE_CONFIG_START( lkage, lkage_state )
MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage)
MCFG_GFXDECODE_ADD("gfxdecode", lkage)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
/* sound hardware */
@@ -607,7 +608,8 @@ static MACHINE_CONFIG_START( lkageb, lkage_state )
MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage)
MCFG_GFXDECODE_ADD("gfxdecode", lkage)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/lockon.c b/src/mame/drivers/lockon.c
index 61077b0c365..2b25fd271c7 100644
--- a/src/mame/drivers/lockon.c
+++ b/src/mame/drivers/lockon.c
@@ -513,8 +513,8 @@ static MACHINE_CONFIG_START( lockon, lockon_state )
MCFG_SCREEN_VBLANK_DRIVER(lockon_state, screen_eof_lockon)
MCFG_GFXDECODE_ADD("gfxdecode", lockon)
- MCFG_PALETTE_LENGTH(1024 + 2048)
-
+ MCFG_PALETTE_ADD("palette", 1024 + 2048)
+ MCFG_PALETTE_INIT_OWNER(lockon_state, lockon)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/looping.c b/src/mame/drivers/looping.c
index fba464999a5..d5cfded32dc 100644
--- a/src/mame/drivers/looping.c
+++ b/src/mame/drivers/looping.c
@@ -148,7 +148,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(looping);
UINT32 screen_update_looping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(looping_interrupt);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -166,7 +166,7 @@ public:
*
*************************************/
-void looping_state::palette_init()
+PALETTE_INIT_MEMBER(looping_state, looping)
{
const UINT8 *color_prom = memregion("proms")->base();
static const int resistances[3] = { 1000, 470, 220 };
@@ -201,7 +201,7 @@ void looping_state::palette_init()
bit1 = (color_prom[i] >> 7) & 1;
b = combine_2_weights(bweights, bit0, bit1);
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -310,7 +310,7 @@ void looping_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect
flipy = !flipy;
}
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0);
}
}
@@ -684,8 +684,9 @@ static MACHINE_CONFIG_START( looping, looping_state )
MCFG_SCREEN_UPDATE_DRIVER(looping_state, screen_update_looping)
MCFG_GFXDECODE_ADD("gfxdecode", looping)
- MCFG_PALETTE_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(looping_state, looping)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c
index 70f57f816df..bcae664bcb9 100644
--- a/src/mame/drivers/lordgun.c
+++ b/src/mame/drivers/lordgun.c
@@ -687,7 +687,7 @@ static MACHINE_CONFIG_START( lordgun, lordgun_state )
MCFG_SCREEN_UPDATE_DRIVER(lordgun_state, screen_update_lordgun)
MCFG_GFXDECODE_ADD("gfxdecode", lordgun)
- MCFG_PALETTE_LENGTH(0x800 * 8) // 0x800 real colors, repeated per priority level
+ MCFG_PALETTE_ADD("palette", 0x800 * 8) // 0x800 real colors, repeated per priority level
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -723,7 +723,7 @@ static MACHINE_CONFIG_START( aliencha, lordgun_state )
MCFG_SCREEN_UPDATE_DRIVER(lordgun_state, screen_update_lordgun)
MCFG_GFXDECODE_ADD("gfxdecode", lordgun)
- MCFG_PALETTE_LENGTH(0x800 * 8) // 0x800 real colors, repeated per priority level
+ MCFG_PALETTE_ADD("palette", 0x800 * 8) // 0x800 real colors, repeated per priority level
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lsasquad.c b/src/mame/drivers/lsasquad.c
index 67f98f83d20..d6ffe6d6186 100644
--- a/src/mame/drivers/lsasquad.c
+++ b/src/mame/drivers/lsasquad.c
@@ -633,9 +633,7 @@ static MACHINE_CONFIG_START( lsasquad, lsasquad_state )
MCFG_SCREEN_UPDATE_DRIVER(lsasquad_state, screen_update_lsasquad)
MCFG_GFXDECODE_ADD("gfxdecode", lsasquad)
- MCFG_PALETTE_LENGTH(512)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 512)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -690,9 +688,7 @@ static MACHINE_CONFIG_START( daikaiju, lsasquad_state )
MCFG_SCREEN_UPDATE_DRIVER(lsasquad_state, screen_update_daikaiju)
MCFG_GFXDECODE_ADD("gfxdecode", lsasquad)
- MCFG_PALETTE_LENGTH(512)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 512)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ltcasino.c b/src/mame/drivers/ltcasino.c
index 84db2f4950e..1f5bfe69806 100644
--- a/src/mame/drivers/ltcasino.c
+++ b/src/mame/drivers/ltcasino.c
@@ -662,7 +662,7 @@ static MACHINE_CONFIG_START( ltcasino, ltcasino_state )
MCFG_SCREEN_UPDATE_DRIVER(ltcasino_state, screen_update_ltcasino)
MCFG_GFXDECODE_ADD("gfxdecode", ltcasino)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
/* sound hardware */
diff --git a/src/mame/drivers/luckgrln.c b/src/mame/drivers/luckgrln.c
index 7a5da863735..f264bbd9104 100644
--- a/src/mame/drivers/luckgrln.c
+++ b/src/mame/drivers/luckgrln.c
@@ -367,10 +367,10 @@ UINT32 luckgrln_state::screen_update_luckgrln(screen_device &screen, bitmap_ind1
if (bgenable==3) m_reel4_tilemap->draw(screen, bitmap, clip, 0, 0);
}
- if (tileattr&0x08) m_gfxdecode->gfx(region)->transpen(bitmap,clip,tile,col,0,0,x*8,y*8, 0);
+ if (tileattr&0x08) m_gfxdecode->gfx(region)->transpen(m_palette,bitmap,clip,tile,col,0,0,x*8,y*8, 0);
#else // treat it as priority flag instead (looks better in non-adult title screen - needs verifying)
- if (!(tileattr&0x08)) m_gfxdecode->gfx(region)->transpen(bitmap,clip,tile,col,0,0,x*8,y*8, 0);
+ if (!(tileattr&0x08)) m_gfxdecode->gfx(region)->transpen(m_palette,bitmap,clip,tile,col,0,0,x*8,y*8, 0);
if (tileattr&0x04)
{
@@ -380,7 +380,7 @@ UINT32 luckgrln_state::screen_update_luckgrln(screen_device &screen, bitmap_ind1
if (bgenable==3) m_reel4_tilemap->draw(screen, bitmap, clip, 0, 0);
}
- if ((tileattr&0x08)) m_gfxdecode->gfx(region)->transpen(bitmap,clip,tile,col,0,0,x*8,y*8, 0);
+ if ((tileattr&0x08)) m_gfxdecode->gfx(region)->transpen(m_palette,bitmap,clip,tile,col,0,0,x*8,y*8, 0);
#endif
count++;
@@ -470,7 +470,7 @@ WRITE8_MEMBER(luckgrln_state::palette_w)
g = (dat >> 5) & 0x1f;
b = (dat >> 10) & 0x1f;
- palette_set_color_rgb(machine(), offs/2, pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color(offs/2, pal5bit(r), pal5bit(g), pal5bit(b));
}
@@ -1014,7 +1014,7 @@ static MACHINE_CONFIG_START( luckgrln, luckgrln_state )
MCFG_SCREEN_UPDATE_DRIVER(luckgrln_state, screen_update_luckgrln)
MCFG_GFXDECODE_ADD("gfxdecode", luckgrln)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c
index 5feca86d6d8..3c8da314782 100644
--- a/src/mame/drivers/lucky74.c
+++ b/src/mame/drivers/lucky74.c
@@ -1552,8 +1552,8 @@ static MACHINE_CONFIG_START( lucky74, lucky74_state )
MCFG_GFXDECODE_ADD("gfxdecode", lucky74)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(lucky74_state, lucky74)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/lvcards.c b/src/mame/drivers/lvcards.c
index 9ef2aaea5a0..13438c1ae9e 100644
--- a/src/mame/drivers/lvcards.c
+++ b/src/mame/drivers/lvcards.c
@@ -477,8 +477,8 @@ static MACHINE_CONFIG_START( lvcards, lvcards_state )
MCFG_SCREEN_UPDATE_DRIVER(lvcards_state, screen_update_lvcards)
MCFG_GFXDECODE_ADD("gfxdecode", lvcards)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(lvcards_state, lvcards)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -507,7 +507,8 @@ static MACHINE_CONFIG_DERIVED( ponttehk, lvcards )
MCFG_MACHINE_RESET_OVERRIDE(lvcards_state,lvpoker)
// video hardware
- MCFG_PALETTE_INIT_OVERRIDE(lvcards_state,ponttehk)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(lvcards_state,ponttehk)
MACHINE_CONFIG_END
ROM_START( lvpoker )
diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c
index c4d6c722d6d..5d4dfcfa7ee 100644
--- a/src/mame/drivers/lwings.c
+++ b/src/mame/drivers/lwings.c
@@ -280,8 +280,8 @@ static ADDRESS_MAP_START( avengers_map, AS_PROGRAM, 8, lwings_state )
AM_RANGE(0xdf80, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(lwings_fgvideoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(lwings_bg1videoram_w) AM_SHARE("bg1videoram")
- AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_hi_w) AM_SHARE("paletteram2")
- AM_RANGE(0xf400, 0xf7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_lo_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf000, 0xf3ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
+ AM_RANGE(0xf400, 0xf7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf800, 0xf801) AM_WRITE(lwings_bg1_scrollx_w)
AM_RANGE(0xf802, 0xf803) AM_WRITE(lwings_bg1_scrolly_w)
AM_RANGE(0xf804, 0xf804) AM_WRITE(trojan_bg2_scrollx_w)
@@ -303,8 +303,8 @@ static ADDRESS_MAP_START( lwings_map, AS_PROGRAM, 8, lwings_state )
AM_RANGE(0xde00, 0xdfff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(lwings_fgvideoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(lwings_bg1videoram_w) AM_SHARE("bg1videoram")
- AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_hi_w) AM_SHARE("paletteram2")
- AM_RANGE(0xf400, 0xf7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_lo_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf000, 0xf3ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
+ AM_RANGE(0xf400, 0xf7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf808, 0xf808) AM_READ_PORT("SERVICE")
AM_RANGE(0xf809, 0xf809) AM_READ_PORT("P1")
@@ -325,8 +325,8 @@ static ADDRESS_MAP_START( trojan_map, AS_PROGRAM, 8, lwings_state )
AM_RANGE(0xdf80, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(lwings_fgvideoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(lwings_bg1videoram_w) AM_SHARE("bg1videoram")
- AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_hi_w) AM_SHARE("paletteram2")
- AM_RANGE(0xf400, 0xf7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_lo_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf000, 0xf3ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
+ AM_RANGE(0xf400, 0xf7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf800, 0xf801) AM_WRITE(lwings_bg1_scrollx_w)
AM_RANGE(0xf802, 0xf803) AM_WRITE(lwings_bg1_scrolly_w)
@@ -792,8 +792,9 @@ static MACHINE_CONFIG_START( lwings, lwings_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", lwings)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c
index 03161d81144..fc282dbc370 100644
--- a/src/mame/drivers/m10.c
+++ b/src/mame/drivers/m10.c
@@ -185,7 +185,7 @@ PALETTE_INIT_MEMBER(m10_state,m10)
else
color = rgb_t::black;
- palette_set_color(machine(), i, color);
+ palette.set_pen_color(i, color);
}
}
@@ -855,9 +855,9 @@ static MACHINE_CONFIG_START( m10, m10_state )
MCFG_SCREEN_UPDATE_DRIVER(m10_state, screen_update_m10)
MCFG_GFXDECODE_ADD("gfxdecode", m10)
- MCFG_PALETTE_LENGTH(2*8)
+ MCFG_PALETTE_ADD("palette", 2*8)
- MCFG_PALETTE_INIT_OVERRIDE(m10_state,m10)
+ MCFG_PALETTE_INIT_OWNER(m10_state,m10)
MCFG_VIDEO_START_OVERRIDE(m10_state,m10)
/* 74LS123 */
@@ -900,9 +900,9 @@ static MACHINE_CONFIG_START( m15, m10_state )
MCFG_SCREEN_UPDATE_DRIVER(m10_state, screen_update_m15)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
- MCFG_PALETTE_LENGTH(2*8)
+ MCFG_PALETTE_ADD("palette", 2*8)
- MCFG_PALETTE_INIT_OVERRIDE(m10_state,m10)
+ MCFG_PALETTE_INIT_OWNER(m10_state,m10)
MCFG_VIDEO_START_OVERRIDE(m10_state, m15 )
/* sound hardware */
diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c
index cecb62cbd72..d5a4ae97eb2 100644
--- a/src/mame/drivers/m107.c
+++ b/src/mame/drivers/m107.c
@@ -131,7 +131,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, m107_state )
AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m107_vram_w) AM_SHARE("vram_data")
AM_RANGE(0xe0000, 0xeffff) AM_RAM /* System ram */
AM_RANGE(0xf8000, 0xf8fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xf9000, 0xf9fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf9000, 0xf9fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("maincpu", 0x7fff0)
ADDRESS_MAP_END
@@ -777,7 +777,8 @@ static MACHINE_CONFIG_START( firebarr, m107_state )
MCFG_SCREEN_UPDATE_DRIVER(m107_state, screen_update_m107)
MCFG_GFXDECODE_ADD("gfxdecode", firebarr)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
diff --git a/src/mame/drivers/m14.c b/src/mame/drivers/m14.c
index 746027ecbae..0cc6501079c 100644
--- a/src/mame/drivers/m14.c
+++ b/src/mame/drivers/m14.c
@@ -90,7 +90,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(m14);
UINT32 screen_update_m14(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(m14_irq);
};
@@ -103,7 +103,7 @@ public:
*************************************/
/* guess, might not be 100% accurate. */
-void m14_state::palette_init()
+PALETTE_INIT_MEMBER(m14_state, m14)
{
int i;
@@ -116,7 +116,7 @@ void m14_state::palette_init()
else
color = (i & 0x10) ? rgb_t::white : rgb_t::black;
- palette_set_color(machine(), i, color);
+ palette.set_pen_color(i, color);
}
}
@@ -347,7 +347,8 @@ static MACHINE_CONFIG_START( m14, m14_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_DRIVER(m14_state, screen_update_m14)
MCFG_GFXDECODE_ADD("gfxdecode", m14)
- MCFG_PALETTE_LENGTH(0x20)
+ MCFG_PALETTE_ADD("palette", 0x20)
+ MCFG_PALETTE_INIT_OWNER(m14_state, m14)
/* sound hardware */
diff --git a/src/mame/drivers/m52.c b/src/mame/drivers/m52.c
index 7ed501dd802..9250d1d9bb7 100644
--- a/src/mame/drivers/m52.c
+++ b/src/mame/drivers/m52.c
@@ -399,7 +399,8 @@ static MACHINE_CONFIG_START( m52, m52_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", m52)
- MCFG_PALETTE_LENGTH(128*4+16*4+3*4)
+ MCFG_PALETTE_ADD("palette", 128*4+16*4+3*4)
+ MCFG_PALETTE_INIT_OWNER(m52_state, m52)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 136, 376, 282, 22, 274)
diff --git a/src/mame/drivers/m57.c b/src/mame/drivers/m57.c
index 9402707a2de..33bad79d0e3 100644
--- a/src/mame/drivers/m57.c
+++ b/src/mame/drivers/m57.c
@@ -241,8 +241,8 @@ static MACHINE_CONFIG_START( m57, m57_state )
MCFG_SCREEN_UPDATE_DRIVER(m57_state, screen_update_m57)
MCFG_GFXDECODE_ADD("gfxdecode", m57)
- MCFG_PALETTE_LENGTH(32*8+32*8)
-
+ MCFG_PALETTE_ADD("palette", 32*8+32*8)
+ MCFG_PALETTE_INIT_OWNER(m57_state, 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 6860caad00b..2652d59a993 100644
--- a/src/mame/drivers/m58.c
+++ b/src/mame/drivers/m58.c
@@ -197,7 +197,8 @@ static MACHINE_CONFIG_START( yard, m58_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", yard)
- MCFG_PALETTE_LENGTH(256+256+256)
+ MCFG_PALETTE_ADD("palette", 256+256+256)
+ MCFG_PALETTE_INIT_OWNER(m58_state, m58)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 256, 282, 42, 266)
diff --git a/src/mame/drivers/m62.c b/src/mame/drivers/m62.c
index d6e58df5617..ac1e1c8e910 100644
--- a/src/mame/drivers/m62.c
+++ b/src/mame/drivers/m62.c
@@ -947,8 +947,8 @@ static MACHINE_CONFIG_START( ldrun, m62_state )
MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun)
MCFG_GFXDECODE_ADD("gfxdecode", ldrun)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(m62_state,m62)
/* sound hardware */
MCFG_FRAGMENT_ADD(m62_audio)
@@ -985,9 +985,10 @@ static MACHINE_CONFIG_DERIVED( battroad, ldrun )
MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_battroad)
MCFG_GFXDECODE_MODIFY("gfxdecode", battroad)
- MCFG_PALETTE_LENGTH(544)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 544)
- MCFG_PALETTE_INIT_OVERRIDE(m62_state,battroad)
+ MCFG_PALETTE_INIT_OWNER(m62_state,battroad)
MCFG_VIDEO_START_OVERRIDE(m62_state,battroad)
MACHINE_CONFIG_END
@@ -1043,9 +1044,11 @@ static MACHINE_CONFIG_DERIVED( lotlot, ldrun )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", lotlot)
- MCFG_PALETTE_LENGTH(768)
+
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 768)
- MCFG_PALETTE_INIT_OVERRIDE(m62_state,lotlot)
+ MCFG_PALETTE_INIT_OWNER(m62_state,lotlot)
MCFG_VIDEO_START_OVERRIDE(m62_state,lotlot)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_lotlot)
@@ -1091,9 +1094,10 @@ static MACHINE_CONFIG_DERIVED( spelunk2, ldrun )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", spelunk2)
- MCFG_PALETTE_LENGTH(768)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 768)
- MCFG_PALETTE_INIT_OVERRIDE(m62_state,spelunk2)
+ MCFG_PALETTE_INIT_OWNER(m62_state,spelunk2)
MCFG_VIDEO_START_OVERRIDE(m62_state,spelunk2)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_spelunk2)
diff --git a/src/mame/drivers/m63.c b/src/mame/drivers/m63.c
index 465583936d8..15996ad761f 100644
--- a/src/mame/drivers/m63.c
+++ b/src/mame/drivers/m63.c
@@ -228,7 +228,7 @@ PALETTE_INIT_MEMBER(m63_state,m63)
bit3 = (color_prom[i + 2*256] >> 3) & 0x01;
b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
}
color_prom += 3 * 256;
@@ -252,7 +252,7 @@ PALETTE_INIT_MEMBER(m63_state,m63)
bit1 = (color_prom[i] >> 7) & 0x01;
b = 0x4f * bit0 + 0xa8 * bit1;
- palette_set_color(machine(),i+256,rgb_t(r,g,b));
+ palette.set_pen_color(i+256,rgb_t(r,g,b));
}
}
@@ -346,7 +346,7 @@ void m63_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
}
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect,
code, color,
flipx, flipy,
sx, sy, 0);
@@ -355,7 +355,7 @@ void m63_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
if (sx > 0xf0)
{
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect,
code, color,
flipx, flipy,
sx - 0x100, sy, 0);
@@ -775,9 +775,9 @@ static MACHINE_CONFIG_START( m63, m63_state )
MCFG_SCREEN_UPDATE_DRIVER(m63_state, screen_update_m63)
MCFG_GFXDECODE_ADD("gfxdecode", m63)
- MCFG_PALETTE_LENGTH(256+4)
+ MCFG_PALETTE_ADD("palette", 256+4)
- MCFG_PALETTE_INIT_OVERRIDE(m63_state,m63)
+ MCFG_PALETTE_INIT_OWNER(m63_state,m63)
MCFG_VIDEO_START_OVERRIDE(m63_state,m63)
/* sound hardware */
@@ -819,9 +819,7 @@ static MACHINE_CONFIG_START( fghtbskt, m63_state )
MCFG_SCREEN_UPDATE_DRIVER(m63_state, screen_update_m63)
MCFG_GFXDECODE_ADD("gfxdecode", fghtbskt)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_VIDEO_START_OVERRIDE(m63_state,m63)
/* sound hardware */
diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c
index 3ef1198fe06..781c11e4900 100644
--- a/src/mame/drivers/m72.c
+++ b/src/mame/drivers/m72.c
@@ -1802,7 +1802,7 @@ static MACHINE_CONFIG_START( m72_base, m72_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", m72)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
@@ -1857,7 +1857,7 @@ static MACHINE_CONFIG_START( rtype, m72_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", m72)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
@@ -1894,7 +1894,7 @@ static MACHINE_CONFIG_START( xmultipl, m72_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", m72)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
@@ -1935,7 +1935,7 @@ static MACHINE_CONFIG_START( xmultiplm72, m72_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", m72)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
@@ -1976,7 +1976,7 @@ static MACHINE_CONFIG_START( dbreed, m72_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", rtype2)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
@@ -2017,7 +2017,7 @@ static MACHINE_CONFIG_START( dbreedm72, m72_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", m72)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
@@ -2058,7 +2058,7 @@ static MACHINE_CONFIG_START( rtype2, m72_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", rtype2)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
@@ -2099,7 +2099,7 @@ static MACHINE_CONFIG_START( majtitle, m72_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", majtitle)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
@@ -2140,7 +2140,7 @@ static MACHINE_CONFIG_START( hharry, m72_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", rtype2)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
@@ -2181,7 +2181,7 @@ static MACHINE_CONFIG_START( hharryu, m72_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", rtype2)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
@@ -2222,7 +2222,7 @@ static MACHINE_CONFIG_START( dkgenm72, m72_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", m72)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
@@ -2263,7 +2263,7 @@ static MACHINE_CONFIG_START( poundfor, m72_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", rtype2)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
@@ -2304,7 +2304,7 @@ static MACHINE_CONFIG_START( cosmccop, m72_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", rtype2)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c
index 5b91592160f..64ae18307ee 100644
--- a/src/mame/drivers/m90.c
+++ b/src/mame/drivers/m90.c
@@ -75,7 +75,7 @@ static ADDRESS_MAP_START( m90_main_cpu_map, AS_PROGRAM, 16, m90_state )
AM_RANGE(0x80000, 0x8ffff) AM_ROMBANK("bank1") /* Quiz F1 only */
AM_RANGE(0xa0000, 0xa3fff) AM_RAM
AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m90_video_w) AM_SHARE("video_data")
- AM_RANGE(0xe0000, 0xe03ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe0000, 0xe03ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
@@ -84,7 +84,7 @@ static ADDRESS_MAP_START( dynablsb_main_cpu_map, AS_PROGRAM, 16, m90_state )
AM_RANGE(0x6000e, 0x60fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xa0000, 0xa3fff) AM_RAM
AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m90_video_w) AM_SHARE("video_data")
- AM_RANGE(0xe0000, 0xe03ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe0000, 0xe03ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
@@ -93,7 +93,7 @@ static ADDRESS_MAP_START( bomblord_main_cpu_map, AS_PROGRAM, 16, m90_state )
AM_RANGE(0xa0000, 0xa3fff) AM_RAM
AM_RANGE(0xc000e, 0xc0fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m90_video_w) AM_SHARE("video_data")
- AM_RANGE(0xe0000, 0xe03ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe0000, 0xe03ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
@@ -735,8 +735,8 @@ static MACHINE_CONFIG_START( m90, m90_state )
MCFG_SCREEN_UPDATE_DRIVER(m90_state, screen_update_m90)
MCFG_GFXDECODE_ADD("gfxdecode", m90)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c
index c9c4b56cdde..e19a17e3bd1 100644
--- a/src/mame/drivers/m92.c
+++ b/src/mame/drivers/m92.c
@@ -942,7 +942,8 @@ static MACHINE_CONFIG_START( m92, m92_state )
MCFG_SCREEN_UPDATE_DRIVER(m92_state, screen_update_m92)
MCFG_GFXDECODE_ADD("gfxdecode", m92)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(m92_state,m92)
@@ -1021,7 +1022,8 @@ static MACHINE_CONFIG_START( ppan, m92_state )
MCFG_SCREEN_UPDATE_DRIVER(m92_state, screen_update_ppan)
MCFG_GFXDECODE_ADD("gfxdecode", m92)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(m92_state,ppan)
diff --git a/src/mame/drivers/macrossp.c b/src/mame/drivers/macrossp.c
index e5f1020a3b5..4ad83b03982 100644
--- a/src/mame/drivers/macrossp.c
+++ b/src/mame/drivers/macrossp.c
@@ -300,7 +300,7 @@ WRITE32_MEMBER(macrossp_state::paletteram32_macrossp_w)
g = ((m_paletteram[offset] & 0x00ff0000) >>16);
r = ((m_paletteram[offset] & 0xff000000) >>24);
- palette_set_color(machine(), offset, rgb_t(r,g,b));
+ m_palette->set_pen_color(offset, rgb_t(r,g,b));
}
@@ -361,7 +361,7 @@ void macrossp_state::update_colors( )
else
r -= m_fade_effect;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ m_palette->set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -616,7 +616,7 @@ static MACHINE_CONFIG_START( macrossp, macrossp_state )
MCFG_SCREEN_VBLANK_DRIVER(macrossp_state, screen_eof_macrossp)
MCFG_GFXDECODE_ADD("gfxdecode", macrossp)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
/* sound hardware */
diff --git a/src/mame/drivers/macs.c b/src/mame/drivers/macs.c
index 252845bfcc5..649122902bd 100644
--- a/src/mame/drivers/macs.c
+++ b/src/mame/drivers/macs.c
@@ -494,7 +494,7 @@ static MACHINE_CONFIG_START( macs, macs_state )
MCFG_SCREEN_UPDATE_DRIVER(st0016_state, screen_update_st0016)
MCFG_GFXDECODE_ADD("gfxdecode", macs)
- MCFG_PALETTE_LENGTH(16*16*4+1)
+ MCFG_PALETTE_ADD("palette", 16*16*4+1)
MCFG_VIDEO_START_OVERRIDE(st0016_state,st0016)
diff --git a/src/mame/drivers/madmotor.c b/src/mame/drivers/madmotor.c
index b3a3447fdb8..3a9e58ad367 100644
--- a/src/mame/drivers/madmotor.c
+++ b/src/mame/drivers/madmotor.c
@@ -54,7 +54,7 @@ static ADDRESS_MAP_START( madmotor_map, AS_PROGRAM, 16, madmotor_state )
AM_RANGE(0x1a4000, 0x1a4fff) AM_DEVREADWRITE("tilegen3", deco_bac06_device, pf_data_r, pf_data_w)
AM_RANGE(0x3e0000, 0x3e3fff) AM_RAM
AM_RANGE(0x3e8000, 0x3e87ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x3f0000, 0x3f07ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x3f0000, 0x3f07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x3f8002, 0x3f8003) AM_READ_PORT("P1_P2")
AM_RANGE(0x3f8004, 0x3f8005) AM_READ_PORT("DSW")
AM_RANGE(0x3f8006, 0x3f8007) AM_READ_PORT("SYSTEM")
@@ -249,7 +249,8 @@ static MACHINE_CONFIG_START( madmotor, madmotor_state )
MCFG_SCREEN_UPDATE_DRIVER(madmotor_state, screen_update_madmotor)
MCFG_GFXDECODE_ADD("gfxdecode", madmotor)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
deco_bac06_device::set_gfx_region_wide(*device,0,0,0);
@@ -264,6 +265,7 @@ static MACHINE_CONFIG_START( madmotor, madmotor_state )
MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
deco_mxc06_device::set_gfx_region(*device, 3);
MCFG_DECO_MXC06_GFXDECODE("gfxdecode")
+ MCFG_DECO_MXC06_PALETTE("palette")
diff --git a/src/mame/drivers/magic10.c b/src/mame/drivers/magic10.c
index 0ef55236961..0715b636dcb 100644
--- a/src/mame/drivers/magic10.c
+++ b/src/mame/drivers/magic10.c
@@ -155,7 +155,7 @@ WRITE16_MEMBER(magic10_state::layer2_videoram_w)
WRITE16_MEMBER(magic10_state::paletteram_w)
{
data = COMBINE_DATA(&m_generic_paletteram_16[offset]);
- palette_set_color_rgb( machine(), offset, pal4bit(data >> 4), pal4bit(data >> 0), pal4bit(data >> 8));
+ m_palette->set_pen_color( offset, pal4bit(data >> 4), pal4bit(data >> 0), pal4bit(data >> 8));
}
@@ -749,7 +749,7 @@ static MACHINE_CONFIG_START( magic10, magic10_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 2*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(magic10_state, screen_update_magic10)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_GFXDECODE_ADD("gfxdecode", magic10)
diff --git a/src/mame/drivers/magicard.c b/src/mame/drivers/magicard.c
index ac8d2391b1d..e735537bc18 100644
--- a/src/mame/drivers/magicard.c
+++ b/src/mame/drivers/magicard.c
@@ -424,7 +424,7 @@ UINT32 magicard_state::screen_update_magicard(screen_device &screen, bitmap_rgb3
int x,y;
UINT32 count;
- bitmap.fill(get_black_pen(machine()), cliprect); //TODO
+ bitmap.fill(m_palette->black_pen(), cliprect); //TODO
if(!(SCC_DE_VREG)) //display enable
return 0;
@@ -442,22 +442,22 @@ UINT32 magicard_state::screen_update_magicard(screen_device &screen, bitmap_rgb3
color = ((m_magicram[count]) & 0x000f)>>0;
if(cliprect.contains((x*4)+3, y))
- bitmap.pix32(y, (x*4)+3) = machine().pens[color];
+ bitmap.pix32(y, (x*4)+3) = m_palette->pen(color);
color = ((m_magicram[count]) & 0x00f0)>>4;
if(cliprect.contains((x*4)+2, y))
- bitmap.pix32(y, (x*4)+2) = machine().pens[color];
+ bitmap.pix32(y, (x*4)+2) = m_palette->pen(color);
color = ((m_magicram[count]) & 0x0f00)>>8;
if(cliprect.contains((x*4)+1, y))
- bitmap.pix32(y, (x*4)+1) = machine().pens[color];
+ bitmap.pix32(y, (x*4)+1) = m_palette->pen(color);
color = ((m_magicram[count]) & 0xf000)>>12;
if(cliprect.contains((x*4)+0, y))
- bitmap.pix32(y, (x*4)+0) = machine().pens[color];
+ bitmap.pix32(y, (x*4)+0) = m_palette->pen(color);
count++;
}
@@ -474,12 +474,12 @@ UINT32 magicard_state::screen_update_magicard(screen_device &screen, bitmap_rgb3
color = ((m_magicram[count]) & 0x00ff)>>0;
if(cliprect.contains((x*2)+1, y))
- bitmap.pix32(y, (x*2)+1) = machine().pens[color];
+ bitmap.pix32(y, (x*2)+1) = m_palette->pen(color);
color = ((m_magicram[count]) & 0xff00)>>8;
if(cliprect.contains((x*2)+0, y))
- bitmap.pix32(y, (x*2)+0) = machine().pens[color];
+ bitmap.pix32(y, (x*2)+0) = m_palette->pen(color);
count++;
}
@@ -522,7 +522,7 @@ WRITE16_MEMBER(magicard_state::paletteram_io_w)
break;
case 2:
m_pal.b = ((data & 0x3f) << 2) | ((data & 0x30) >> 4);
- palette_set_color(machine(), m_pal.offs, rgb_t(m_pal.r, m_pal.g, m_pal.b));
+ m_palette->set_pen_color(m_pal.offs, rgb_t(m_pal.r, m_pal.g, m_pal.b));
m_pal.offs_internal = 0;
m_pal.offs++;
break;
@@ -733,7 +733,7 @@ static MACHINE_CONFIG_START( magicard, magicard_state )
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) //dynamic resolution,TODO
MCFG_SCREEN_UPDATE_DRIVER(magicard_state, screen_update_magicard)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
diff --git a/src/mame/drivers/magicfly.c b/src/mame/drivers/magicfly.c
index eccd3c2e81d..143a05698ea 100644
--- a/src/mame/drivers/magicfly.c
+++ b/src/mame/drivers/magicfly.c
@@ -568,23 +568,23 @@ PALETTE_INIT_MEMBER(magicfly_state, magicfly)
for (i = 0x00; i < 0x10; i += 0x10)
{
/* 1st gfx bank */
- palette_set_color(machine(), i + 0, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 2, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 4, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 6, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 8, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 10, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 12, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 14, rgb_t(0x00, 0x00, 0x00));
-
- palette_set_color(machine(), i + 1, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 3, rgb_t(0xff, 0x00, 0x00));
- palette_set_color(machine(), i + 5, rgb_t(0x00, 0xff, 0x00));
- palette_set_color(machine(), i + 7, rgb_t(0xff, 0xff, 0x00));
- palette_set_color(machine(), i + 9, rgb_t(0x00, 0x00, 0xff));
- palette_set_color(machine(), i + 11, rgb_t(0xff, 0x00, 0xff));
- palette_set_color(machine(), i + 13, rgb_t(0x00, 0xff, 0xff));
- palette_set_color(machine(), i + 15, rgb_t(0xff, 0xff, 0xff));
+ palette.set_pen_color(i + 0, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 2, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 4, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 6, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 8, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 10, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 12, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 14, rgb_t(0x00, 0x00, 0x00));
+
+ palette.set_pen_color(i + 1, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 3, rgb_t(0xff, 0x00, 0x00));
+ palette.set_pen_color(i + 5, rgb_t(0x00, 0xff, 0x00));
+ palette.set_pen_color(i + 7, rgb_t(0xff, 0xff, 0x00));
+ palette.set_pen_color(i + 9, rgb_t(0x00, 0x00, 0xff));
+ palette.set_pen_color(i + 11, rgb_t(0xff, 0x00, 0xff));
+ palette.set_pen_color(i + 13, rgb_t(0x00, 0xff, 0xff));
+ palette.set_pen_color(i + 15, rgb_t(0xff, 0xff, 0xff));
}
}
@@ -595,27 +595,27 @@ PALETTE_INIT_MEMBER(magicfly_state, bchance)
for (i = 0x00; i < 0x10; i += 0x10)
{
/* 1st gfx bank */
- palette_set_color(machine(), i + 0, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 2, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 4, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 6, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 8, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 10, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 12, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 14, rgb_t(0x00, 0x00, 0x00));
-
- palette_set_color(machine(), i + 1, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), i + 3, rgb_t(0xff, 0x00, 0x00));
- palette_set_color(machine(), i + 5, rgb_t(0x00, 0xff, 0x00));
- palette_set_color(machine(), i + 7, rgb_t(0xff, 0xff, 0x00));
- palette_set_color(machine(), i + 9, rgb_t(0x00, 0x00, 0xff));
- palette_set_color(machine(), i + 11, rgb_t(0xff, 0x00, 0xff));
- palette_set_color(machine(), i + 13, rgb_t(0x00, 0xff, 0xff));
- palette_set_color(machine(), i + 15, rgb_t(0xff, 0xff, 0xff));
+ palette.set_pen_color(i + 0, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 2, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 4, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 6, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 8, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 10, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 12, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 14, rgb_t(0x00, 0x00, 0x00));
+
+ palette.set_pen_color(i + 1, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(i + 3, rgb_t(0xff, 0x00, 0x00));
+ palette.set_pen_color(i + 5, rgb_t(0x00, 0xff, 0x00));
+ palette.set_pen_color(i + 7, rgb_t(0xff, 0xff, 0x00));
+ palette.set_pen_color(i + 9, rgb_t(0x00, 0x00, 0xff));
+ palette.set_pen_color(i + 11, rgb_t(0xff, 0x00, 0xff));
+ palette.set_pen_color(i + 13, rgb_t(0x00, 0xff, 0xff));
+ palette.set_pen_color(i + 15, rgb_t(0xff, 0xff, 0xff));
}
- palette_set_color(machine(), 0x08 , rgb_t(0xff, 0xff, 0xff)); // white for the cards back logo background.
- palette_set_color(machine(), 0x12 , rgb_t(0x00, 0x00, 0x00)); // black for the cards corners (should be transparent)
+ palette.set_pen_color(0x08 , rgb_t(0xff, 0xff, 0xff)); // white for the cards back logo background.
+ palette.set_pen_color(0x12 , rgb_t(0x00, 0x00, 0x00)); // black for the cards corners (should be transparent)
}
@@ -959,8 +959,8 @@ static MACHINE_CONFIG_START( magicfly, magicfly_state )
MCFG_SCREEN_UPDATE_DRIVER(magicfly_state, screen_update_magicfly)
MCFG_GFXDECODE_ADD("gfxdecode", magicfly)
- MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT_OVERRIDE(magicfly_state, magicfly)
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(magicfly_state, magicfly)
MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/16, mc6845_intf) /* guess */
@@ -983,7 +983,8 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( bchance, magicfly )
/* video hardware */
- MCFG_PALETTE_INIT_OVERRIDE(magicfly_state, bchance)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(magicfly_state, bchance)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c
index 8580a42ecfd..22a311b1256 100644
--- a/src/mame/drivers/magmax.c
+++ b/src/mame/drivers/magmax.c
@@ -363,8 +363,8 @@ static MACHINE_CONFIG_START( magmax, magmax_state )
MCFG_SCREEN_UPDATE_DRIVER(magmax_state, screen_update_magmax)
MCFG_GFXDECODE_ADD("gfxdecode", magmax)
- MCFG_PALETTE_LENGTH(1*16 + 16*16 + 256)
-
+ MCFG_PALETTE_ADD("palette", 1*16 + 16*16 + 256)
+ MCFG_PALETTE_INIT_OWNER(magmax_state, magmax)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c
index 7247da870c7..19bae7e8479 100644
--- a/src/mame/drivers/mainevt.c
+++ b/src/mame/drivers/mainevt.c
@@ -167,7 +167,7 @@ static ADDRESS_MAP_START( mainevt_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x4000, 0x5dff) AM_RAM
- AM_RANGE(0x5e00, 0x5fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x5e00, 0x5fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -191,7 +191,7 @@ static ADDRESS_MAP_START( devstors_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x4000, 0x5dff) AM_RAM
- AM_RANGE(0x5e00, 0x5fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x5e00, 0x5fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -436,8 +436,6 @@ static MACHINE_CONFIG_START( mainevt, mainevt_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -445,15 +443,19 @@ static MACHINE_CONFIG_START( mainevt, mainevt_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(mainevt_state, screen_update_mainevt)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(mainevt_state,mainevt)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", mainevt_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", mainevt_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -497,8 +499,6 @@ static MACHINE_CONFIG_START( devstors, mainevt_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -506,15 +506,19 @@ static MACHINE_CONFIG_START( devstors, mainevt_state )
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(mainevt_state, screen_update_dv)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(mainevt_state,dv)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", dv_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", dv_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
MCFG_K051733_ADD("k051733")
/* sound hardware */
diff --git a/src/mame/drivers/mainsnk.c b/src/mame/drivers/mainsnk.c
index 38ce6e80e43..68058ddc58d 100644
--- a/src/mame/drivers/mainsnk.c
+++ b/src/mame/drivers/mainsnk.c
@@ -395,8 +395,6 @@ static MACHINE_CONFIG_START( mainsnk, mainsnk_state )
MCFG_CPU_PERIODIC_INT_DRIVER(mainsnk_state, irq0_line_hold, 244)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(36*8, 28*8)
@@ -404,8 +402,9 @@ static MACHINE_CONFIG_START( mainsnk, mainsnk_state )
MCFG_SCREEN_UPDATE_DRIVER(mainsnk_state, screen_update_mainsnk)
MCFG_GFXDECODE_ADD("gfxdecode", mainsnk)
- MCFG_PALETTE_LENGTH(0x400)
-
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_INIT_OWNER(mainsnk_state, mainsnk)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/majorpkr.c b/src/mame/drivers/majorpkr.c
index ac05aab7a9f..a56b0915a88 100644
--- a/src/mame/drivers/majorpkr.c
+++ b/src/mame/drivers/majorpkr.c
@@ -540,7 +540,7 @@ void majorpkr_state::video_start()
UINT32 majorpkr_state::screen_update_majorpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
rectangle custom_clip;
@@ -590,7 +590,7 @@ WRITE8_MEMBER(majorpkr_state::paletteram_w)
offset >>= 1;
int color = m_generic_paletteram_8[m_palette_bank * 0x800 + offset * 2] + m_generic_paletteram_8[m_palette_bank * 0x800 + offset * 2 + 1] * 256;
- palette_set_color(machine(), offset + m_palette_bank * 256 * 4, rgb_t(pal5bit(color >> 5), pal5bit(color >> 10), pal5bit(color)));
+ m_palette->set_pen_color(offset + m_palette_bank * 256 * 4, rgb_t(pal5bit(color >> 5), pal5bit(color >> 10), pal5bit(color)));
}
@@ -1041,7 +1041,7 @@ static MACHINE_CONFIG_START( majorpkr, majorpkr_state )
MCFG_SCREEN_UPDATE_DRIVER(majorpkr_state, screen_update_majorpkr)
MCFG_GFXDECODE_ADD("gfxdecode", majorpkr)
- MCFG_PALETTE_LENGTH(0x100 * 16)
+ MCFG_PALETTE_ADD("palette", 0x100 * 16)
MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf) /* verified */
diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c
index 2990113c03f..ea71d54305a 100644
--- a/src/mame/drivers/malzak.c
+++ b/src/mame/drivers/malzak.c
@@ -259,14 +259,14 @@ static GFXDECODE_START( malzak )
GFXDECODE_END
-void malzak_state::palette_init()
+PALETTE_INIT_MEMBER(malzak_state, malzak)
{
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_pen_color(i * 2 + 0, pal1bit(i >> 3), pal1bit(i >> 4), pal1bit(i >> 5));
+ palette.set_pen_color(i * 2 + 1, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
}
}
@@ -358,7 +358,8 @@ static MACHINE_CONFIG_START( malzak, malzak_state )
MCFG_SCREEN_UPDATE_DRIVER(malzak_state, screen_update_malzak)
MCFG_GFXDECODE_ADD("gfxdecode", malzak)
- MCFG_PALETTE_LENGTH(128)
+ MCFG_PALETTE_ADD("palette", 128)
+ MCFG_PALETTE_INIT_OWNER(malzak_state, malzak)
MCFG_S2636_ADD("s2636_0", malzac_s2636_0_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
diff --git a/src/mame/drivers/mappy.c b/src/mame/drivers/mappy.c
index ff94ab3682d..85e6acb7a51 100644
--- a/src/mame/drivers/mappy.c
+++ b/src/mame/drivers/mappy.c
@@ -1720,13 +1720,13 @@ static MACHINE_CONFIG_FRAGMENT( superpac_common )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", superpac)
- MCFG_PALETTE_LENGTH(64*4+64*4)
+ MCFG_PALETTE_ADD("palette", 64*4+64*4)
+ MCFG_PALETTE_INIT_OWNER(mappy_state,superpac)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_superpac)
- MCFG_PALETTE_INIT_OVERRIDE(mappy_state,superpac)
MCFG_VIDEO_START_OVERRIDE(mappy_state,superpac)
/* sound hardware */
@@ -1800,13 +1800,13 @@ static MACHINE_CONFIG_START( phozon, mappy_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", phozon)
- MCFG_PALETTE_LENGTH(64*4+64*4)
+ MCFG_PALETTE_ADD("palette", 64*4+64*4)
+ MCFG_PALETTE_INIT_OWNER(mappy_state,phozon)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_phozon)
- MCFG_PALETTE_INIT_OVERRIDE(mappy_state,phozon)
MCFG_VIDEO_START_OVERRIDE(mappy_state,phozon)
/* sound hardware */
@@ -1837,13 +1837,13 @@ static MACHINE_CONFIG_FRAGMENT( mappy_common )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", mappy)
- MCFG_PALETTE_LENGTH(64*4+16*16)
+ MCFG_PALETTE_ADD("palette", 64*4+16*16)
+ MCFG_PALETTE_INIT_OWNER(mappy_state,mappy)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_mappy)
- MCFG_PALETTE_INIT_OVERRIDE(mappy_state,mappy)
MCFG_VIDEO_START_OVERRIDE(mappy_state,mappy)
/* sound hardware */
@@ -1879,7 +1879,8 @@ static MACHINE_CONFIG_DERIVED( todruaga, digdug2 )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", todruaga)
- MCFG_PALETTE_LENGTH(64*4+64*16)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 64*4+64*16)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( motos, mappy_state )
diff --git a/src/mame/drivers/marineb.c b/src/mame/drivers/marineb.c
index 24a6a9963e6..572f1af1f70 100644
--- a/src/mame/drivers/marineb.c
+++ b/src/mame/drivers/marineb.c
@@ -547,8 +547,8 @@ static MACHINE_CONFIG_START( marineb, marineb_state )
MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_marineb)
MCFG_GFXDECODE_ADD("gfxdecode", marineb)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(marineb_state, marineb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/marinedt.c b/src/mame/drivers/marinedt.c
index d6967a0f7ee..a2be759013b 100644
--- a/src/mame/drivers/marinedt.c
+++ b/src/mame/drivers/marinedt.c
@@ -153,7 +153,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(marinedt);
UINT32 screen_update_marinedt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -451,12 +451,12 @@ static GFXDECODE_START( marinedt )
GFXDECODE_ENTRY( "gfx3", 0, marinedt_objlayout, 32, 4 )
GFXDECODE_END
-void marinedt_state::palette_init()
+PALETTE_INIT_MEMBER(marinedt_state, marinedt)
{
const UINT8 *color_prom = memregion("proms")->base();
int i,r,b,g;
- for (i = 0; i < machine().total_colors(); i++)
+ for (i = 0; i < palette.entries(); i++)
{
int bit0, bit1, bit2;
@@ -480,7 +480,7 @@ bit0 = 0;
// *(palette++) = 0x92 * bit0 + 0x46 * bit1 + 0x27 * bit2;
b = 0x27 * bit0 + 0x46 * bit1 + 0x92 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -529,14 +529,14 @@ UINT32 marinedt_state::screen_update_marinedt(screen_device &screen, bitmap_ind1
m_tx_tilemap->draw(screen, *m_tile, cliprect, 0, 0);
m_obj1->fill(0);
- m_gfxdecode->gfx(1)->transpen(*m_obj1,m_obj1->cliprect(),
+ m_gfxdecode->gfx(1)->transpen(m_palette,*m_obj1,m_obj1->cliprect(),
OBJ_CODE(m_obj1_a),
OBJ_COLOR(m_obj1_a),
OBJ_FLIPX(m_obj1_a), OBJ_FLIPY(m_obj1_a),
0, 0, 0);
m_obj2->fill(0);
- m_gfxdecode->gfx(2)->transpen(*m_obj2,m_obj2->cliprect(),
+ m_gfxdecode->gfx(2)->transpen(m_palette,*m_obj2,m_obj2->cliprect(),
OBJ_CODE(m_obj2_a),
OBJ_COLOR(m_obj2_a),
OBJ_FLIPX(m_obj2_a), OBJ_FLIPY(m_obj2_a),
@@ -685,8 +685,8 @@ static MACHINE_CONFIG_START( marinedt, marinedt_state )
MCFG_SCREEN_UPDATE_DRIVER(marinedt_state, screen_update_marinedt)
MCFG_GFXDECODE_ADD("gfxdecode", marinedt)
- MCFG_PALETTE_LENGTH(64)
-
+ MCFG_PALETTE_ADD("palette", 64)
+ MCFG_PALETTE_INIT_OWNER(marinedt_state, marinedt)
/* sound hardware */
//discrete sound
diff --git a/src/mame/drivers/mario.c b/src/mame/drivers/mario.c
index 763850c7482..7e116c04eb7 100644
--- a/src/mame/drivers/mario.c
+++ b/src/mame/drivers/mario.c
@@ -353,8 +353,8 @@ static MACHINE_CONFIG_START( mario_base, mario_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(mario_state, screen_update_mario)
MCFG_GFXDECODE_ADD("gfxdecode", mario)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(mario_state, mario)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/markham.c b/src/mame/drivers/markham.c
index d4188f97d13..a4a33d14d55 100644
--- a/src/mame/drivers/markham.c
+++ b/src/mame/drivers/markham.c
@@ -194,8 +194,8 @@ static MACHINE_CONFIG_START( markham, markham_state )
MCFG_SCREEN_UPDATE_DRIVER(markham_state, screen_update_markham)
MCFG_GFXDECODE_ADD("gfxdecode", markham)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_OWNER(markham_state, markham)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mastboy.c b/src/mame/drivers/mastboy.c
index c24c2725e42..d11bd1eb0fd 100644
--- a/src/mame/drivers/mastboy.c
+++ b/src/mame/drivers/mastboy.c
@@ -506,7 +506,7 @@ UINT32 mastboy_state::screen_update_mastboy(screen_device &screen, bitmap_ind16
{
int coldat = m_colram[i+1] | (m_colram[i+0]<<8);
- palette_set_color_rgb(machine(),i/2,pal4bit(coldat>>8),pal4bit(coldat>>12),pal4bit(coldat>>4));
+ m_palette->set_pen_color(i/2,pal4bit(coldat>>8),pal4bit(coldat>>12),pal4bit(coldat>>4));
}
for (y=0;y<32;y++)
@@ -529,7 +529,7 @@ UINT32 mastboy_state::screen_update_mastboy(screen_device &screen, bitmap_ind16
}
- gfx->opaque(bitmap,cliprect,tileno,attr,0,0,x*8,y*8);
+ gfx->opaque(m_palette,bitmap,cliprect,tileno,attr,0,0,x*8,y*8);
count+=4;
@@ -903,7 +903,7 @@ static MACHINE_CONFIG_START( mastboy, mastboy_state )
MCFG_SCREEN_UPDATE_DRIVER(mastboy_state, screen_update_mastboy)
MCFG_GFXDECODE_ADD("gfxdecode", mastboy)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
// sound hardware
diff --git a/src/mame/drivers/matmania.c b/src/mame/drivers/matmania.c
index 0fdc4afca50..fcb3f5242cb 100644
--- a/src/mame/drivers/matmania.c
+++ b/src/mame/drivers/matmania.c
@@ -324,8 +324,8 @@ static MACHINE_CONFIG_START( matmania, matmania_state )
MCFG_SCREEN_UPDATE_DRIVER(matmania_state, screen_update_matmania)
MCFG_GFXDECODE_ADD("gfxdecode", matmania)
- MCFG_PALETTE_LENGTH(64+16)
-
+ MCFG_PALETTE_ADD("palette", 64+16)
+ MCFG_PALETTE_INIT_OWNER(matmania_state, matmania)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -405,8 +405,8 @@ static MACHINE_CONFIG_START( maniach, matmania_state )
MCFG_SCREEN_UPDATE_DRIVER(matmania_state, screen_update_maniach)
MCFG_GFXDECODE_ADD("gfxdecode", maniach)
- MCFG_PALETTE_LENGTH(64+16)
-
+ MCFG_PALETTE_ADD("palette", 64+16)
+ MCFG_PALETTE_INIT_OWNER(matmania_state, matmania)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/maxaflex.c b/src/mame/drivers/maxaflex.c
index 3747e30ff64..9222b54af25 100644
--- a/src/mame/drivers/maxaflex.c
+++ b/src/mame/drivers/maxaflex.c
@@ -418,8 +418,8 @@ static MACHINE_CONFIG_START( a600xl, maxaflex_state )
MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ)
MCFG_SCREEN_UPDATE_STATIC(atari)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT(atari)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_LEGACY(atari)
MCFG_DEFAULT_LAYOUT(layout_maxaflex)
MCFG_VIDEO_START(atari)
diff --git a/src/mame/drivers/maygayv1.c b/src/mame/drivers/maygayv1.c
index 99a1a4d5f09..61eb97d3d3c 100644
--- a/src/mame/drivers/maygayv1.c
+++ b/src/mame/drivers/maygayv1.c
@@ -323,7 +323,7 @@ UINT32 maygayv1_state::screen_update_maygayv1(screen_device &screen, bitmap_ind1
/* If screen output is disabled, fill with black */
if (!(VREG(VCR0) & VCR0_DEN))
{
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
return 0;
}
@@ -465,7 +465,7 @@ void maygayv1_state::screen_eof_maygayv1(screen_device &screen, bool state)
for (i = 0; i < 16; ++i)
{
UINT16 entry = *palbase++;
- palette_set_color_rgb(machine(), entry & 0xf, pal4bit(entry >> 12), pal4bit(entry >> 8), pal4bit(entry >> 4));
+ m_palette->set_pen_color(entry & 0xf, pal4bit(entry >> 12), pal4bit(entry >> 8), pal4bit(entry >> 4));
}
}
}
@@ -1032,7 +1032,7 @@ static MACHINE_CONFIG_START( maygayv1, maygayv1_state )
MCFG_SCREEN_UPDATE_DRIVER(maygayv1_state, screen_update_maygayv1)
MCFG_SCREEN_VBLANK_DRIVER(maygayv1_state, screen_eof_maygayv1)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
MCFG_DUARTN68681_ADD("duart68681", DUART_CLOCK)
MCFG_DUARTN68681_IRQ_CALLBACK(WRITELINE(maygayv1_state, duart_irq_handler))
diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c
index ac64f09fff1..9556e35a007 100644
--- a/src/mame/drivers/mayumi.c
+++ b/src/mame/drivers/mayumi.c
@@ -411,9 +411,7 @@ static MACHINE_CONFIG_START( mayumi, mayumi_state )
MCFG_SCREEN_UPDATE_DRIVER(mayumi_state, screen_update_mayumi)
MCFG_GFXDECODE_ADD("gfxdecode", mayumi)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c
index ffa9f3ba2ad..f6aee4eb5f0 100644
--- a/src/mame/drivers/mazerbla.c
+++ b/src/mame/drivers/mazerbla.c
@@ -221,7 +221,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(mazerbla);
UINT32 screen_update_mazerbla(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void screen_eof(screen_device &screen, bool state);
INTERRUPT_GEN_MEMBER(sound_interrupt);
@@ -251,7 +251,7 @@ public:
***************************************************************************/
-void mazerbla_state::palette_init()
+PALETTE_INIT_MEMBER(mazerbla_state, mazerbla)
{
static const int resistances_r[2] = { 4700, 2200 };
static const int resistances_gb[3] = { 10000, 4700, 2200 };
@@ -328,7 +328,7 @@ WRITE8_MEMBER(mazerbla_state::cfb_backgnd_color_w)
bit0 = BIT(data, 0);
b = combine_3_weights(m_weights_b, bit0, bit1, bit2);
- palette_set_color(machine(), 255, rgb_t(r, g, b));
+ m_palette->set_pen_color(255, rgb_t(r, g, b));
//logerror("background color (port 01) write=%02x\n",data);
}
}
@@ -674,7 +674,7 @@ READ8_MEMBER(mazerbla_state::vcu_set_clr_addr_r)
b = combine_3_weights(m_weights_b, bit0, bit1, bit2);
if ((x + y * 16) < 255)//keep color 255 free for use as background color
- palette_set_color(machine(), x + y * 16, rgb_t(r, g, b));
+ m_palette->set_pen_color(x + y * 16, rgb_t(r, g, b));
m_lookup_ram[lookup_offs + x + y * 16] = colour;
}
@@ -1491,7 +1491,7 @@ static MACHINE_CONFIG_START( mazerbla, mazerbla_state )
MCFG_CPU_VBLANK_INT_DRIVER("screen", mazerbla_state, irq0_line_hold)
/* synchronization forced on the fly */
- MCFG_MB_VCU_ADD("vcu",SOUND_CLOCK/4,vcu_interface)
+ MCFG_MB_VCU_ADD("vcu",SOUND_CLOCK/4,vcu_interface,"palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1501,9 +1501,9 @@ static MACHINE_CONFIG_START( mazerbla, mazerbla_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_DRIVER(mazerbla_state, screen_update_mazerbla)
- MCFG_PALETTE_LENGTH(256+1)
-
-
+ MCFG_PALETTE_ADD("palette", 256+1)
+ MCFG_PALETTE_INIT_OWNER(mazerbla_state, mazerbla)
+
/* sound hardware */
MACHINE_CONFIG_END
@@ -1528,7 +1528,7 @@ static MACHINE_CONFIG_START( greatgun, mazerbla_state )
*/
MCFG_CPU_VBLANK_INT_DRIVER("screen", mazerbla_state, irq0_line_hold)
- MCFG_MB_VCU_ADD("vcu",SOUND_CLOCK/4,vcu_interface)
+ MCFG_MB_VCU_ADD("vcu",SOUND_CLOCK/4,vcu_interface,"palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1539,8 +1539,8 @@ static MACHINE_CONFIG_START( greatgun, mazerbla_state )
MCFG_SCREEN_UPDATE_DRIVER(mazerbla_state, screen_update_mazerbla)
MCFG_SCREEN_VBLANK_DRIVER(mazerbla_state, screen_eof)
- MCFG_PALETTE_LENGTH(256+1)
-
+ MCFG_PALETTE_ADD("palette", 256+1)
+ MCFG_PALETTE_INIT_OWNER(mazerbla_state, mazerbla)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c
index 4c1e0577c65..35a9e150e49 100644
--- a/src/mame/drivers/mcatadv.c
+++ b/src/mame/drivers/mcatadv.c
@@ -182,7 +182,7 @@ static ADDRESS_MAP_START( mcatadv_map, AS_PROGRAM, 16, mcatadv_state )
AM_RANGE(0x400000, 0x401fff) AM_RAM_WRITE(mcatadv_videoram1_w) AM_SHARE("videoram1") // Tilemap 0
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(mcatadv_videoram2_w) AM_SHARE("videoram2") // Tilemap 1
- AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x602000, 0x602fff) AM_RAM // Bigger than needs to be?
AM_RANGE(0x700000, 0x707fff) AM_RAM AM_SHARE("spriteram") // Sprites, two halves for double buffering
@@ -452,7 +452,8 @@ static MACHINE_CONFIG_START( mcatadv, mcatadv_state )
MCFG_SCREEN_VBLANK_DRIVER(mcatadv_state, screen_eof_mcatadv)
MCFG_GFXDECODE_ADD("gfxdecode", mcatadv)
- MCFG_PALETTE_LENGTH(0x2000/2)
+ MCFG_PALETTE_ADD("palette", 0x2000/2)
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */
diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c
index 3df99672558..baa468803c7 100644
--- a/src/mame/drivers/mcr.c
+++ b/src/mame/drivers/mcr.c
@@ -765,8 +765,8 @@ static ADDRESS_MAP_START( cpu_90009_map, AS_PROGRAM, 8, mcr_state )
AM_RANGE(0x0000, 0x6fff) AM_ROM
AM_RANGE(0x7000, 0x77ff) AM_MIRROR(0x0800) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xf000, 0xf1ff) AM_MIRROR(0x0200) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xf400, 0xf41f) AM_MIRROR(0x03e0) AM_WRITE(paletteram_xxxxRRRRBBBBGGGG_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0xf800, 0xf81f) AM_MIRROR(0x03e0) AM_WRITE(paletteram_xxxxRRRRBBBBGGGG_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0xf400, 0xf41f) AM_MIRROR(0x03e0) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0xf800, 0xf81f) AM_MIRROR(0x03e0) AM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0xfc00, 0xffff) AM_RAM_WRITE(mcr_90009_videoram_w) AM_SHARE("videoram")
ADDRESS_MAP_END
@@ -1852,7 +1852,8 @@ static MACHINE_CONFIG_START( mcr_90009, mcr_state )
MCFG_SCREEN_UPDATE_DRIVER(mcr_state, screen_update_mcr)
MCFG_GFXDECODE_ADD("gfxdecode", mcr)
- MCFG_PALETTE_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_FORMAT(xxxxRRRRBBBBGGGG)
MCFG_VIDEO_START_OVERRIDE(mcr_state,mcr)
@@ -1882,7 +1883,9 @@ static MACHINE_CONFIG_DERIVED( mcr_90010, mcr_90009 )
MCFG_CPU_IO_MAP(cpu_90010_portmap)
/* video hardware */
- MCFG_PALETTE_LENGTH(64)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 64)
+ MCFG_PALETTE_FORMAT(xxxxRRRRBBBBGGGG)
MACHINE_CONFIG_END
@@ -1900,7 +1903,9 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mcr_91475, mcr_90010 )
/* video hardware */
- MCFG_PALETTE_LENGTH(128)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 128)
+ MCFG_PALETTE_FORMAT(xxxxRRRRBBBBGGGG)
/* sound hardware */
MCFG_SAMPLES_ADD("samples", journey_samples_interface)
diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c
index 92470ae4b79..8f4bb0e0202 100644
--- a/src/mame/drivers/mcr3.c
+++ b/src/mame/drivers/mcr3.c
@@ -1326,7 +1326,7 @@ static MACHINE_CONFIG_START( mcrmono, mcr3_state )
MCFG_SCREEN_UPDATE_DRIVER(mcr3_state, screen_update_mcr3)
MCFG_GFXDECODE_ADD("gfxdecode", mcr3)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
MCFG_VIDEO_START_OVERRIDE(mcr3_state,mcrmono)
MACHINE_CONFIG_END
@@ -1376,9 +1376,10 @@ static MACHINE_CONFIG_DERIVED( mcrscroll, mcrmono )
MCFG_SCREEN_VISIBLE_AREA(0, 30*16-1, 0, 30*16-1)
MCFG_SCREEN_UPDATE_DRIVER(mcr3_state, screen_update_spyhunt)
MCFG_GFXDECODE_MODIFY("gfxdecode", spyhunt)
- MCFG_PALETTE_LENGTH(64+4)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 64+4)
- MCFG_PALETTE_INIT_OVERRIDE(mcr3_state,spyhunt)
+ MCFG_PALETTE_INIT_OWNER(mcr3_state,spyhunt)
MCFG_VIDEO_START_OVERRIDE(mcr3_state,spyhunt)
MACHINE_CONFIG_END
@@ -1445,9 +1446,9 @@ static MACHINE_CONFIG_START( spyhuntpr, mcr3_state )
MCFG_SCREEN_UPDATE_DRIVER(mcr3_state, screen_update_spyhuntpr)
MCFG_GFXDECODE_ADD("gfxdecode", spyhuntpr)
- MCFG_PALETTE_LENGTH(64+4)
+ MCFG_PALETTE_ADD("palette", 64+4)
- MCFG_PALETTE_INIT_OVERRIDE(mcr3_state,spyhunt)
+ MCFG_PALETTE_INIT_OWNER(mcr3_state,spyhunt)
MCFG_VIDEO_START_OVERRIDE(mcr3_state,spyhuntpr)
diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c
index 5495a0325f7..0920c6235b1 100644
--- a/src/mame/drivers/mcr68.c
+++ b/src/mame/drivers/mcr68.c
@@ -1052,7 +1052,7 @@ static MACHINE_CONFIG_START( zwackery, mcr68_state )
MCFG_SCREEN_UPDATE_DRIVER(mcr68_state, screen_update_zwackery)
MCFG_GFXDECODE_ADD("gfxdecode", zwackery)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_VIDEO_START_OVERRIDE(mcr68_state,zwackery)
@@ -1083,7 +1083,7 @@ static MACHINE_CONFIG_START( mcr68, mcr68_state )
MCFG_SCREEN_UPDATE_DRIVER(mcr68_state, screen_update_mcr68)
MCFG_GFXDECODE_ADD("gfxdecode", mcr68)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
MCFG_VIDEO_START_OVERRIDE(mcr68_state,mcr68)
diff --git a/src/mame/drivers/meadows.c b/src/mame/drivers/meadows.c
index dc6362add9e..3bb8c43d84f 100644
--- a/src/mame/drivers/meadows.c
+++ b/src/mame/drivers/meadows.c
@@ -313,19 +313,6 @@ INTERRUPT_GEN_MEMBER(meadows_state::audio_interrupt)
/*************************************
*
- * Palette init
- *
- *************************************/
-
-void meadows_state::palette_init()
-{
- palette_set_color(machine(), 0, rgb_t::black);
- palette_set_color(machine(), 1, rgb_t::white);
-}
-
-
-/*************************************
- *
* Main CPU memory handlers
*
*************************************/
@@ -655,7 +642,7 @@ static MACHINE_CONFIG_START( meadows, meadows_state )
MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows)
MCFG_GFXDECODE_ADD("gfxdecode", meadows)
- MCFG_PALETTE_LENGTH(2)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -684,7 +671,7 @@ static MACHINE_CONFIG_START( minferno, meadows_state )
MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows)
MCFG_GFXDECODE_ADD("gfxdecode", minferno)
- MCFG_PALETTE_LENGTH(2)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* audio hardware */
// TODO
@@ -712,7 +699,7 @@ static MACHINE_CONFIG_START( bowl3d, meadows_state )
MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows)
MCFG_GFXDECODE_ADD("gfxdecode", meadows)
- MCFG_PALETTE_LENGTH(2)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c
index 194abb14bfd..00014a93212 100644
--- a/src/mame/drivers/mediagx.c
+++ b/src/mame/drivers/mediagx.c
@@ -227,7 +227,7 @@ void mediagx_state::video_start()
int i;
for (i=0; i < 16; i++)
{
- palette_set_color(machine(), i, cga_palette[i]);
+ m_palette->set_pen_color(i, cga_palette[i]);
}
}
@@ -236,7 +236,7 @@ void mediagx_state::draw_char(bitmap_rgb32 &bitmap, const rectangle &cliprect, g
int i,j;
const UINT8 *dp;
int index = 0;
- const pen_t *pens = gfx->machine().pens;
+ const pen_t *pens = &m_palette->pen(0);
dp = gfx->get_data(ch);
@@ -888,7 +888,7 @@ static MACHINE_CONFIG_START( mediagx, mediagx_state )
MCFG_TIMER_DRIVER_ADD("sound_timer", mediagx_state, sound_timer_callback)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -898,7 +898,8 @@ static MACHINE_CONFIG_START( mediagx, mediagx_state )
MCFG_SCREEN_UPDATE_DRIVER(mediagx_state, screen_update_mediagx)
MCFG_GFXDECODE_ADD("gfxdecode", CGA)
- MCFG_PALETTE_LENGTH(256)
+
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/megaphx.c b/src/mame/drivers/megaphx.c
index 3e263a67234..5c968587402 100644
--- a/src/mame/drivers/megaphx.c
+++ b/src/mame/drivers/megaphx.c
@@ -193,7 +193,7 @@ static void megaphx_scanline(screen_device &screen, bitmap_rgb32 &bitmap, int sc
UINT16 *vram = &state->m_vram[(params->rowaddr << 8) & 0x3ff00];
UINT32 *dest = &bitmap.pix32(scanline);
- const pen_t *paldata = screen.machine().pens;
+ const pen_t *paldata = state->m_palette->pens();
int coladdr = params->coladdr;
int x;
@@ -456,11 +456,11 @@ static MACHINE_CONFIG_START( megaphx, megaphx_state )
MCFG_SCREEN_RAW_PARAMS(XTAL_40MHz/12, 424, 0, 338-1, 262, 0, 246-1)
MCFG_SCREEN_UPDATE_DEVICE("tms", tms34010_device, tms340x0_rgb32)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_GFXDECODE_ADD("gfxdecode", megaphx)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c
index f939480be0d..171b07d9fb3 100644
--- a/src/mame/drivers/megasys1.c
+++ b/src/mame/drivers/megasys1.c
@@ -178,7 +178,7 @@ static ADDRESS_MAP_START( megasys1A_map, AS_PROGRAM, 16, megasys1_state )
AM_RANGE(0x080006, 0x080007) AM_READ_PORT("DSW")
AM_RANGE(0x080008, 0x080009) AM_READ(soundlatch2_word_r) /* from sound cpu */
AM_RANGE(0x084000, 0x0843ff) AM_RAM_WRITE(megasys1_vregs_A_w) AM_SHARE("vregs")
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08e000, 0x08ffff) AM_RAM AM_SHARE("objectram")
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(megasys1_scrollram_0_w) AM_SHARE("scrollram.0")
AM_RANGE(0x094000, 0x097fff) AM_RAM_WRITE(megasys1_scrollram_1_w) AM_SHARE("scrollram.1")
@@ -255,7 +255,7 @@ static ADDRESS_MAP_START( megasys1B_map, AS_PROGRAM, 16, megasys1_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x044000, 0x0443ff) AM_RAM_WRITE(megasys1_vregs_A_w) AM_SHARE("vregs")
- AM_RANGE(0x048000, 0x0487ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x048000, 0x0487ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x04e000, 0x04ffff) AM_RAM AM_SHARE("objectram")
AM_RANGE(0x050000, 0x053fff) AM_RAM_WRITE(megasys1_scrollram_0_w) AM_SHARE("scrollram.0")
AM_RANGE(0x054000, 0x057fff) AM_RAM_WRITE(megasys1_scrollram_1_w) AM_SHARE("scrollram.1")
@@ -282,7 +282,7 @@ static ADDRESS_MAP_START( megasys1C_map, AS_PROGRAM, 16, megasys1_state )
AM_RANGE(0x0e0000, 0x0e3fff) AM_RAM_WRITE(megasys1_scrollram_0_w) AM_SHARE("scrollram.0")
AM_RANGE(0x0e8000, 0x0ebfff) AM_RAM_WRITE(megasys1_scrollram_1_w) AM_SHARE("scrollram.1")
AM_RANGE(0x0f0000, 0x0f3fff) AM_RAM_WRITE(megasys1_scrollram_2_w) AM_SHARE("scrollram.2")
- AM_RANGE(0x0f8000, 0x0f87ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0f8000, 0x0f87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0d8000, 0x0d8001) AM_READWRITE(ip_select_r,ip_select_w)
AM_RANGE(0x1c0000, 0x1cffff) AM_MIRROR(0x30000) AM_RAM AM_SHARE("ram") //0x1f****, Cybattler reads attract mode inputs at 0x1d****
ADDRESS_MAP_END
@@ -303,7 +303,7 @@ static ADDRESS_MAP_START( megasys1D_map, AS_PROGRAM, 16, megasys1_state )
AM_RANGE(0x0ca000, 0x0cbfff) AM_RAM AM_SHARE("objectram")
AM_RANGE(0x0d0000, 0x0d3fff) AM_RAM_WRITE(megasys1_scrollram_1_w) AM_SHARE("scrollram.1")
AM_RANGE(0x0d4000, 0x0d7fff) AM_RAM_WRITE(megasys1_scrollram_2_w) AM_SHARE("scrollram.2")
- AM_RANGE(0x0d8000, 0x0d87ff) AM_MIRROR(0x3000) AM_RAM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0d8000, 0x0d87ff) AM_MIRROR(0x3000) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0e0000, 0x0e0001) AM_READ_PORT("DSW")
AM_RANGE(0x0e8000, 0x0ebfff) AM_RAM_WRITE(megasys1_scrollram_0_w) AM_SHARE("scrollram.0")
AM_RANGE(0x0f0000, 0x0f0001) AM_READ_PORT("SYSTEM")
@@ -1477,9 +1477,9 @@ static MACHINE_CONFIG_START( system_A, megasys1_state )
MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1)
MCFG_GFXDECODE_ADD("gfxdecode", ABC)
- MCFG_PALETTE_LENGTH(1024)
-
- MCFG_PALETTE_INIT_OVERRIDE(megasys1_state,megasys1)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
+ MCFG_PALETTE_INIT_OWNER(megasys1_state,megasys1)
MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
/* sound hardware */
@@ -1537,9 +1537,9 @@ static MACHINE_CONFIG_START( system_Bbl, megasys1_state )
MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1)
MCFG_GFXDECODE_ADD("gfxdecode", ABC)
- MCFG_PALETTE_LENGTH(1024)
-
- MCFG_PALETTE_INIT_OVERRIDE(megasys1_state,megasys1)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
+ MCFG_PALETTE_INIT_OWNER(megasys1_state,megasys1)
MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
/* sound hardware */
@@ -1609,9 +1609,9 @@ static MACHINE_CONFIG_START( system_D, megasys1_state )
MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1)
MCFG_GFXDECODE_ADD("gfxdecode", ABC)
- MCFG_PALETTE_LENGTH(1024)
-
- MCFG_PALETTE_INIT_OVERRIDE(megasys1_state,megasys1)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
+ MCFG_PALETTE_INIT_OWNER(megasys1_state,megasys1)
MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
/* sound hardware */
@@ -1668,7 +1668,8 @@ static MACHINE_CONFIG_START( system_Z, megasys1_state )
MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1)
MCFG_GFXDECODE_ADD("gfxdecode", Z)
- MCFG_PALETTE_LENGTH(768)
+ MCFG_PALETTE_ADD("palette", 768)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
diff --git a/src/mame/drivers/megatech.c b/src/mame/drivers/megatech.c
index 9d61c38ed88..db0a1565cbb 100644
--- a/src/mame/drivers/megatech.c
+++ b/src/mame/drivers/megatech.c
@@ -521,8 +521,6 @@ static MACHINE_CONFIG_START( megatech, mtech_state )
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
MCFG_SCREEN_UPDATE_DRIVER(mtech_state, screen_update_megatech_menu)
- MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE)
-
MCFG_SEGA315_5246_ADD("vdp1", _vdp_intf)
MCFG_SEGA315_5246_SET_SCREEN("menu")
diff --git a/src/mame/drivers/megazone.c b/src/mame/drivers/megazone.c
index 7ee45690c0d..a546956fb72 100644
--- a/src/mame/drivers/megazone.c
+++ b/src/mame/drivers/megazone.c
@@ -270,8 +270,8 @@ static MACHINE_CONFIG_START( megazone, megazone_state )
MCFG_SCREEN_UPDATE_DRIVER(megazone_state, screen_update_megazone)
MCFG_GFXDECODE_ADD("gfxdecode", megazone)
- MCFG_PALETTE_LENGTH(16*16+16*16)
-
+ MCFG_PALETTE_ADD("palette", 16*16+16*16)
+ MCFG_PALETTE_INIT_OWNER(megazone_state, megazone)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/meijinsn.c b/src/mame/drivers/meijinsn.c
index e0670c6b6c2..54f770f7c43 100644
--- a/src/mame/drivers/meijinsn.c
+++ b/src/mame/drivers/meijinsn.c
@@ -95,7 +95,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(meijinsn);
UINT32 screen_update_meijinsn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(meijinsn_interrupt);
};
@@ -252,7 +252,7 @@ void meijinsn_state::video_start()
{
}
-void meijinsn_state::palette_init()
+PALETTE_INIT_MEMBER(meijinsn_state, meijinsn)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
@@ -266,7 +266,7 @@ void meijinsn_state::palette_init()
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 < palette.entries(); i++)
{
int bit0, bit1, bit2, r, g, b;
@@ -287,7 +287,7 @@ void meijinsn_state::palette_init()
bit1 = BIT(color_prom[i], 7);
b = combine_2_weights(weights_b, bit0, bit1);
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -371,8 +371,8 @@ static MACHINE_CONFIG_START( meijinsn, meijinsn_state )
MCFG_SCREEN_VISIBLE_AREA(12, 243, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(meijinsn_state, screen_update_meijinsn)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(meijinsn_state, meijinsn)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/meritm.c b/src/mame/drivers/meritm.c
index 88f15278983..480cdf82c51 100644
--- a/src/mame/drivers/meritm.c
+++ b/src/mame/drivers/meritm.c
@@ -355,7 +355,7 @@ UINT32 meritm_state::screen_update_meritm(screen_device &screen, bitmap_ind16 &b
popmessage("Layer 1 %sabled",m_layer1_enabled ? "en" : "dis");
}
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
if ( m_layer0_enabled )
{
@@ -1120,7 +1120,7 @@ static MACHINE_CONFIG_START( meritm_crt250, meritm_state )
MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
MCFG_SCREEN_UPDATE_DRIVER(meritm_state, screen_update_meritm)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mermaid.c b/src/mame/drivers/mermaid.c
index e1f5fbe5bd4..87eea536e64 100644
--- a/src/mame/drivers/mermaid.c
+++ b/src/mame/drivers/mermaid.c
@@ -450,8 +450,8 @@ static MACHINE_CONFIG_START( mermaid, mermaid_state )
MCFG_SCREEN_VBLANK_DRIVER(mermaid_state, screen_eof_mermaid)
MCFG_GFXDECODE_ADD("gfxdecode", mermaid)
- MCFG_PALETTE_LENGTH(4*16+2*2)
-
+ MCFG_PALETTE_ADD("palette", 4*16+2*2)
+ MCFG_PALETTE_INIT_OWNER(mermaid_state, mermaid)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -469,7 +469,8 @@ static MACHINE_CONFIG_DERIVED( rougien, mermaid )
MCFG_DEVICE_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(rougien_map)
- MCFG_PALETTE_INIT_OVERRIDE(mermaid_state,rougien)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(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 60e76f69e64..fe4b36e18f6 100644
--- a/src/mame/drivers/metalmx.c
+++ b/src/mame/drivers/metalmx.c
@@ -748,9 +748,7 @@ static MACHINE_CONFIG_START( metalmx, metalmx_state )
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
MCFG_SCREEN_UPDATE_DRIVER(metalmx_state, screen_update_metalmx)
- MCFG_PALETTE_LENGTH(65536)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGGG_BBBBB)
-
+ MCFG_PALETTE_ADD_RRRRRGGGGGGBBBBB("palette")
MCFG_FRAGMENT_ADD(cage)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/metlclsh.c b/src/mame/drivers/metlclsh.c
index 175da2a41a1..11bcc7ad03c 100644
--- a/src/mame/drivers/metlclsh.c
+++ b/src/mame/drivers/metlclsh.c
@@ -65,8 +65,8 @@ static ADDRESS_MAP_START( metlclsh_master_map, AS_PROGRAM, 8, metlclsh_state )
AM_RANGE(0xc080, 0xc080) AM_WRITENOP // ? 0
AM_RANGE(0xc0c2, 0xc0c2) AM_WRITE(metlclsh_cause_irq) // cause irq on cpu #2
AM_RANGE(0xc0c3, 0xc0c3) AM_WRITE(metlclsh_ack_nmi) // nmi ack
-/**/AM_RANGE(0xc800, 0xc82f) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
-/**/AM_RANGE(0xcc00, 0xcc2f) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+/**/AM_RANGE(0xc800, 0xc82f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+/**/AM_RANGE(0xcc00, 0xcc2f) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0xd000, 0xd001) AM_DEVREADWRITE("ym1", ym2203_device, read, write)
/**/AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(metlclsh_fgram_w) AM_SHARE("fgram")
AM_RANGE(0xe000, 0xe001) AM_DEVWRITE("ym2", ym3526_device, write)
@@ -289,8 +289,8 @@ static MACHINE_CONFIG_START( metlclsh, metlclsh_state )
MCFG_SCREEN_UPDATE_DRIVER(metlclsh_state, screen_update_metlclsh)
MCFG_GFXDECODE_ADD("gfxdecode", metlclsh)
- MCFG_PALETTE_LENGTH(3 * 16)
-
+ MCFG_PALETTE_ADD("palette", 3 * 16)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c
index 36a8ceada05..907960e9a7f 100644
--- a/src/mame/drivers/metro.c
+++ b/src/mame/drivers/metro.c
@@ -775,7 +775,7 @@ static ADDRESS_MAP_START( balcube_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x640000, 0x65ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x660000, 0x66ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x670000, 0x671fff) AM_RAM // ???
- AM_RANGE(0x672000, 0x673fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x672000, 0x673fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x674000, 0x674fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x678000, 0x6787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x678840, 0x67884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter
@@ -804,7 +804,7 @@ static ADDRESS_MAP_START( daitoa_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x170000, 0x171fff) AM_RAM // ???
- AM_RANGE(0x172000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x172000, 0x173fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter
@@ -846,7 +846,7 @@ static ADDRESS_MAP_START( bangball_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0xe40000, 0xe5ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0xe60000, 0xe6ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0xe70000, 0xe71fff) AM_RAM // ???
- AM_RANGE(0xe72000, 0xe73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xe72000, 0xe73fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xe74000, 0xe74fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0xe78000, 0xe787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0xe78840, 0xe7884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter
@@ -874,7 +874,7 @@ static ADDRESS_MAP_START( batlbubl_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x170000, 0x171fff) AM_RAM // ???
- AM_RANGE(0x172000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x172000, 0x173fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter
@@ -910,7 +910,7 @@ static ADDRESS_MAP_START( msgogo_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x170000, 0x171fff) AM_RAM // ???
- AM_RANGE(0x172000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x172000, 0x173fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter
@@ -944,7 +944,7 @@ static ADDRESS_MAP_START( daitorid_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x470000, 0x471fff) AM_RAM // ???
- AM_RANGE(0x472000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x472000, 0x473fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter
@@ -979,7 +979,7 @@ static ADDRESS_MAP_START( dharma_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x870000, 0x871fff) AM_RAM // ???
- AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x872000, 0x873fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter
@@ -1030,7 +1030,7 @@ static ADDRESS_MAP_START( karatour_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x40000c, 0x40000d) AM_READ_PORT("IN2") //
AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x870000, 0x871fff) AM_RAM // ???
- AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x872000, 0x873fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x875000, 0x875fff) AM_READWRITE(karatour_vram_0_r, karatour_vram_0_w) // Layer 0 (Part of)
AM_RANGE(0x876000, 0x876fff) AM_READWRITE(karatour_vram_1_r, karatour_vram_1_w) // Layer 1 (Part of)
@@ -1062,7 +1062,7 @@ static ADDRESS_MAP_START( kokushi_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x700000, 0x70ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored)
AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x870000, 0x871fff) AM_RAM // ???
- AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x872000, 0x873fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x875000, 0x875fff) AM_READWRITE(karatour_vram_0_r, karatour_vram_0_w) // Layer 0 (Part of)
AM_RANGE(0x876000, 0x876fff) AM_READWRITE(karatour_vram_1_r, karatour_vram_1_w) // Layer 1 (Part of)
@@ -1098,7 +1098,7 @@ static ADDRESS_MAP_START( lastfort_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x870000, 0x871fff) AM_RAM // ???
- AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x872000, 0x873fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x878800, 0x878813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers
@@ -1139,7 +1139,7 @@ static ADDRESS_MAP_START( lastforg_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x8c0000, 0x8dffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x8e0000, 0x8effff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x8f0000, 0x8f1fff) AM_RAM // ???
- AM_RANGE(0x8f2000, 0x8f3fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x8f2000, 0x8f3fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x8f4000, 0x8f4fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x8f8000, 0x8f87ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x8f8800, 0x8f8813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers
@@ -1225,7 +1225,7 @@ static ADDRESS_MAP_START( gakusai_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x240000, 0x25ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x270000, 0x271fff) AM_RAM // ???
- AM_RANGE(0x272000, 0x273fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x272000, 0x273fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x274000, 0x274fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x27880e, 0x27880f) AM_RAM AM_SHARE("screenctrl") // Screen Control
@@ -1263,7 +1263,7 @@ static ADDRESS_MAP_START( gakusai2_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x640000, 0x65ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x660000, 0x66ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x670000, 0x671fff) AM_RAM // ???
- AM_RANGE(0x672000, 0x673fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x672000, 0x673fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x674000, 0x674fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x675000, 0x675fff) AM_RAM // Sprites?
AM_RANGE(0x678000, 0x6787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
@@ -1333,7 +1333,7 @@ static ADDRESS_MAP_START( dokyusp_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x240000, 0x25ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x270000, 0x271fff) AM_RAM // ???
- AM_RANGE(0x272000, 0x273fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x272000, 0x273fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x274000, 0x274fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x278810, 0x27881f) AM_WRITEONLY AM_SHARE("irq_levels") // IRQ Levels
@@ -1372,7 +1372,7 @@ static ADDRESS_MAP_START( dokyusei_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x460000, 0x46ffff) AM_WRITENOP // DSW Selection
AM_RANGE(0x470000, 0x471fff) AM_RAM // ???
- AM_RANGE(0x472000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x472000, 0x473fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x47880e, 0x47880f) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control
@@ -1412,7 +1412,7 @@ static ADDRESS_MAP_START( pangpoms_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x470000, 0x471fff) AM_RAM // ???
- AM_RANGE(0x472000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x472000, 0x473fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x478800, 0x478813) AM_RAM AM_SHARE("videoregs") // Video Registers
@@ -1455,7 +1455,7 @@ static ADDRESS_MAP_START( poitto_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0xc40000, 0xc5ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0xc70000, 0xc71fff) AM_RAM // ???
- AM_RANGE(0xc72000, 0xc73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xc72000, 0xc73fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0xc78800, 0xc78813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers
@@ -1491,7 +1491,7 @@ static ADDRESS_MAP_START( skyalert_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x870000, 0x871fff) AM_RAM // ???
- AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x872000, 0x873fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x878800, 0x878813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers
@@ -1526,7 +1526,7 @@ static ADDRESS_MAP_START( pururun_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0xc40000, 0xc5ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0xc70000, 0xc71fff) AM_RAM // ???
- AM_RANGE(0xc72000, 0xc73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xc72000, 0xc73fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter
@@ -1560,7 +1560,7 @@ static ADDRESS_MAP_START( toride2g_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0xc40000, 0xc5ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0xc70000, 0xc71fff) AM_RAM // ???
- AM_RANGE(0xc72000, 0xc73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xc72000, 0xc73fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter
@@ -1622,7 +1622,7 @@ static ADDRESS_MAP_START( blzntrnd_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x260000, 0x26ffff) AM_WRITENOP // ??????
AM_RANGE(0x270000, 0x271fff) AM_RAM // ???
- AM_RANGE(0x272000, 0x273fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x272000, 0x273fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x274000, 0x274fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x278860, 0x27886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window
@@ -1664,7 +1664,7 @@ static ADDRESS_MAP_START( mouja_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x420000, 0x43ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1
AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x470000, 0x471fff) AM_RAM // ???
- AM_RANGE(0x472000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x472000, 0x473fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x47880e, 0x47880f) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control
@@ -1752,7 +1752,7 @@ static ADDRESS_MAP_START( puzzlet_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x770000, 0x771fff) AM_RAM // ???
// AM_RANGE(0x772000, 0x773fff) AM_RAM
- AM_RANGE(0x772000, 0x773fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x772000, 0x773fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x775000, 0x775fff) AM_RAM_WRITE(vram_0_clr_w)
AM_RANGE(0x776000, 0x776fff) AM_RAM_WRITE(vram_1_clr_w)
@@ -1862,7 +1862,7 @@ static ADDRESS_MAP_START( vmetal_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2
AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x170000, 0x171fff) AM_RAM // ???
- AM_RANGE(0x172000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x172000, 0x173fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set
AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter
@@ -3571,7 +3571,8 @@ static MACHINE_CONFIG_START( balcube, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4220)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_tmap)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3604,7 +3605,8 @@ static MACHINE_CONFIG_START( daitoa, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4220)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_tmap)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3637,7 +3639,8 @@ static MACHINE_CONFIG_START( msgogo, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4220)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_tmap)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3670,7 +3673,8 @@ static MACHINE_CONFIG_START( bangball, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4220)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_tmap)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3703,7 +3707,8 @@ static MACHINE_CONFIG_START( batlbubl, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4220)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_tmap)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3740,7 +3745,8 @@ static MACHINE_CONFIG_START( daitorid, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4220)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_tmap)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3782,7 +3788,8 @@ static MACHINE_CONFIG_START( dharma, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4220)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3823,7 +3830,8 @@ static MACHINE_CONFIG_START( karatour, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4100)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3864,7 +3872,8 @@ static MACHINE_CONFIG_START( 3kokushi, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4220)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3905,7 +3914,8 @@ static MACHINE_CONFIG_START( lastfort, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4100)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3945,7 +3955,8 @@ static MACHINE_CONFIG_START( lastforg, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4100)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3979,7 +3990,8 @@ static MACHINE_CONFIG_START( dokyusei, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4300)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4014,7 +4026,8 @@ static MACHINE_CONFIG_START( dokyusp, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4300)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4050,7 +4063,8 @@ static MACHINE_CONFIG_START( gakusai, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4300)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4086,7 +4100,8 @@ static MACHINE_CONFIG_START( gakusai2, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4300)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4127,7 +4142,8 @@ static MACHINE_CONFIG_START( pangpoms, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4100)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4168,7 +4184,8 @@ static MACHINE_CONFIG_START( poitto, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4100)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4209,7 +4226,8 @@ static MACHINE_CONFIG_START( pururun, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4220)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4251,7 +4269,8 @@ static MACHINE_CONFIG_START( skyalert, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4100)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4292,7 +4311,8 @@ static MACHINE_CONFIG_START( toride2g, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4220)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4327,7 +4347,8 @@ static MACHINE_CONFIG_START( mouja, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4300)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4362,7 +4383,8 @@ static MACHINE_CONFIG_START( vmetal, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4220)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_sprite)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -4409,7 +4431,8 @@ static MACHINE_CONFIG_START( blzntrnd, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", blzntrnd)
MCFG_VIDEO_START_OVERRIDE(metro_state,blzntrnd)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
MCFG_K053936_ADD("k053936", blzntrnd_k053936_intf)
@@ -4456,7 +4479,8 @@ static MACHINE_CONFIG_START( gstrik2, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", gstrik2)
MCFG_VIDEO_START_OVERRIDE(metro_state,gstrik2)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
MCFG_K053936_ADD("k053936", gstrik2_k053936_intf)
@@ -4493,7 +4517,8 @@ static MACHINE_CONFIG_START( puzzlet, metro_state )
MCFG_GFXDECODE_ADD("gfxdecode", i4300)
MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/mexico86.c b/src/mame/drivers/mexico86.c
index 83741699a11..a32790009ed 100644
--- a/src/mame/drivers/mexico86.c
+++ b/src/mame/drivers/mexico86.c
@@ -489,9 +489,7 @@ static MACHINE_CONFIG_START( mexico86, mexico86_state )
MCFG_SCREEN_UPDATE_DRIVER(mexico86_state, screen_update_mexico86)
MCFG_GFXDECODE_ADD("gfxdecode", mexico86)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/meyc8088.c b/src/mame/drivers/meyc8088.c
index 261a83248a0..3cb85102e99 100644
--- a/src/mame/drivers/meyc8088.c
+++ b/src/mame/drivers/meyc8088.c
@@ -66,7 +66,7 @@ public:
DECLARE_WRITE8_MEMBER(meyc8088_common_w);
DECLARE_WRITE_LINE_MEMBER(meyc8088_sound_out);
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(meyc8088);
UINT32 screen_update_meyc8088(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void screen_eof_meyc8088(screen_device &screen, bool state);
TIMER_DEVICE_CALLBACK_MEMBER(heartbeat_callback);
@@ -119,13 +119,13 @@ static const res_net_info meyc8088_net_info =
}
};
-void meyc8088_state::palette_init()
+PALETTE_INIT_MEMBER(meyc8088_state, meyc8088)
{
const UINT8 *color_prom = 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);
+ palette.set_pen_colors(0, rgb, 32);
auto_free(machine(), rgb);
}
@@ -392,7 +392,8 @@ static MACHINE_CONFIG_START( meyc8088, meyc8088_state )
MCFG_SCREEN_UPDATE_DRIVER(meyc8088_state, screen_update_meyc8088)
MCFG_SCREEN_VBLANK_DRIVER(meyc8088_state, screen_eof_meyc8088)
- MCFG_PALETTE_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(meyc8088_state, meyc8088)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c
index 6885c9060d3..10de6aad8ee 100644
--- a/src/mame/drivers/mgolf.c
+++ b/src/mame/drivers/mgolf.c
@@ -46,7 +46,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(mgolf);
UINT32 screen_update_mgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(interrupt_callback);
void update_plunger( );
@@ -88,14 +88,14 @@ UINT32 mgolf_state::screen_update_mgolf(screen_device &screen, bitmap_ind16 &bit
/* draw sprites */
for (i = 0; i < 2; i++)
{
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,
m_video_ram[0x399 + 4 * i],
i,
0, 0,
m_video_ram[0x390 + 2 * i] - 7,
m_video_ram[0x398 + 4 * i] - 16, 0);
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,
m_video_ram[0x39b + 4 * i],
i,
0, 0,
@@ -283,12 +283,12 @@ static INPUT_PORTS_START( mgolf )
INPUT_PORTS_END
-void mgolf_state::palette_init()
+PALETTE_INIT_MEMBER(mgolf_state, mgolf)
{
- palette_set_color(machine(), 0, rgb_t(0x80, 0x80, 0x80));
- palette_set_color(machine(), 1, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), 2, rgb_t(0x80, 0x80, 0x80));
- palette_set_color(machine(), 3, rgb_t(0xff, 0xff, 0xff));
+ palette.set_pen_color(0, rgb_t(0x80, 0x80, 0x80));
+ palette.set_pen_color(1, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(2, rgb_t(0x80, 0x80, 0x80));
+ palette.set_pen_color(3, rgb_t(0xff, 0xff, 0xff));
}
static const gfx_layout tile_layout =
@@ -360,8 +360,8 @@ static MACHINE_CONFIG_START( mgolf, mgolf_state )
MCFG_SCREEN_UPDATE_DRIVER(mgolf_state, screen_update_mgolf)
MCFG_GFXDECODE_ADD("gfxdecode", mgolf)
- MCFG_PALETTE_LENGTH(4)
-
+ MCFG_PALETTE_ADD("palette", 4)
+ MCFG_PALETTE_INIT_OWNER(mgolf_state, mgolf)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/micro3d.c b/src/mame/drivers/micro3d.c
index 2dc48c9ab45..c8e85a7144f 100644
--- a/src/mame/drivers/micro3d.c
+++ b/src/mame/drivers/micro3d.c
@@ -354,7 +354,7 @@ static MACHINE_CONFIG_START( micro3d, micro3d_state )
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_QUANTUM_TIME(attotime::from_hz(3000))
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_40MHz/8*4, 192*4, 0, 144*4, 434, 0, 400)
diff --git a/src/mame/drivers/midas.c b/src/mame/drivers/midas.c
index d94b8ddc244..e9d43dd2940 100644
--- a/src/mame/drivers/midas.c
+++ b/src/mame/drivers/midas.c
@@ -182,7 +182,7 @@ void midas_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
UINT16 code = codes[y*2];
UINT16 attr = codes[y*2+1];
- m_gfxdecode->gfx(0)->zoom_transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->zoom_transpen(m_palette,bitmap,cliprect,
code,
attr >> 8,
attr & 1, attr & 2,
@@ -282,7 +282,7 @@ static ADDRESS_MAP_START( livequiz_map, AS_PROGRAM, 16, midas_state )
AM_RANGE(0x9c0000, 0x9c0005) AM_WRITE(midas_gfxregs_w ) AM_SHARE("gfxregs")
- AM_RANGE(0xa00000, 0xa3ffff) AM_RAM_WRITE(paletteram_xrgb_word_be_w ) AM_SHARE("paletteram")
+ AM_RANGE(0xa00000, 0xa3ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xa40000, 0xa7ffff) AM_RAM
AM_RANGE(0xb00000, 0xb00001) AM_READ(ret_ffff )
@@ -361,7 +361,7 @@ static ADDRESS_MAP_START( hammer_map, AS_PROGRAM, 16, midas_state )
AM_RANGE(0x9c0000, 0x9c0005) AM_WRITE(midas_gfxregs_w ) AM_SHARE("gfxregs")
- AM_RANGE(0xa00000, 0xa3ffff) AM_RAM_WRITE(paletteram_xrgb_word_be_w ) AM_SHARE("paletteram")
+ AM_RANGE(0xa00000, 0xa3ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xa40000, 0xa7ffff) AM_RAM
AM_RANGE(0xb00000, 0xb00001) AM_READ(ret_ffff )
@@ -714,8 +714,8 @@ static MACHINE_CONFIG_START( livequiz, midas_state )
MCFG_SCREEN_UPDATE_DRIVER(midas_state, screen_update_midas)
MCFG_GFXDECODE_ADD("gfxdecode", midas)
- MCFG_PALETTE_LENGTH(0x10000)
-
+ MCFG_PALETTE_ADD("palette", 0x10000)
+ MCFG_PALETTE_FORMAT(XRGB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -747,7 +747,8 @@ static MACHINE_CONFIG_START( hammer, midas_state )
MCFG_SCREEN_UPDATE_DRIVER(midas_state, screen_update_midas)
MCFG_GFXDECODE_ADD("gfxdecode", midas)
- MCFG_PALETTE_LENGTH(0x10000)
+ MCFG_PALETTE_ADD("palette", 0x10000)
+ MCFG_PALETTE_FORMAT(XRGB)
/* sound hardware */
diff --git a/src/mame/drivers/midtunit.c b/src/mame/drivers/midtunit.c
index a4d0b9777e2..207eb9c83f2 100644
--- a/src/mame/drivers/midtunit.c
+++ b/src/mame/drivers/midtunit.c
@@ -611,7 +611,7 @@ static MACHINE_CONFIG_START( tunit_core, midtunit_state )
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD("palette", 32768)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK * 2, 505, 0, 399, 289, 0, 253)
diff --git a/src/mame/drivers/midvunit.c b/src/mame/drivers/midvunit.c
index 471eafce18e..e7c36e9a547 100644
--- a/src/mame/drivers/midvunit.c
+++ b/src/mame/drivers/midvunit.c
@@ -1019,7 +1019,7 @@ static MACHINE_CONFIG_START( midvcommon, midvunit_state )
MCFG_TIMER_ADD_NONE("timer1")
/* video hardware */
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD("palette", 32768)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MIDVUNIT_VIDEO_CLOCK/2, 666, 0, 512, 432, 0, 400)
diff --git a/src/mame/drivers/midwunit.c b/src/mame/drivers/midwunit.c
index 868e0a00dc1..ce51fb6275f 100644
--- a/src/mame/drivers/midwunit.c
+++ b/src/mame/drivers/midwunit.c
@@ -646,7 +646,7 @@ static MACHINE_CONFIG_START( wunit, midwunit_state )
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD("palette", 32768)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 505, 0, 399, 289, 0, 253)
diff --git a/src/mame/drivers/midxunit.c b/src/mame/drivers/midxunit.c
index 0b3af310d54..01aacd0fad7 100644
--- a/src/mame/drivers/midxunit.c
+++ b/src/mame/drivers/midxunit.c
@@ -271,7 +271,7 @@ static MACHINE_CONFIG_START( midxunit, midxunit_state )
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD("palette", 32768)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 505, 0, 399, 289, 0, 253)
diff --git a/src/mame/drivers/midyunit.c b/src/mame/drivers/midyunit.c
index ef2c2686f47..376d509841a 100644
--- a/src/mame/drivers/midyunit.c
+++ b/src/mame/drivers/midyunit.c
@@ -1112,7 +1112,7 @@ static MACHINE_CONFIG_START( zunit, midyunit_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MEDRES_PIXEL_CLOCK*2, 673, 0, 511, 433, 0, 399)
@@ -1147,7 +1147,7 @@ static MACHINE_CONFIG_START( yunit_core, midyunit_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(STDRES_PIXEL_CLOCK*2, 505, 0, 399, 289, 0, 253)
@@ -1165,7 +1165,8 @@ static MACHINE_CONFIG_DERIVED( yunit_cvsd_4bit_slow, yunit_core )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
/* video hardware */
- MCFG_PALETTE_LENGTH(256)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_4bit)
MACHINE_CONFIG_END
@@ -1180,7 +1181,8 @@ static MACHINE_CONFIG_DERIVED( yunit_cvsd_4bit_fast, yunit_core )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
/* video hardware */
- MCFG_PALETTE_LENGTH(256)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_4bit)
MACHINE_CONFIG_END
@@ -1192,7 +1194,8 @@ static MACHINE_CONFIG_DERIVED( yunit_cvsd_6bit_slow, yunit_core )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
/* video hardware */
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_6bit)
MACHINE_CONFIG_END
@@ -1207,7 +1210,8 @@ static MACHINE_CONFIG_DERIVED( yunit_adpcm_6bit_fast, yunit_core )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
/* video hardware */
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_6bit)
MACHINE_CONFIG_END
@@ -1222,7 +1226,8 @@ static MACHINE_CONFIG_DERIVED( yunit_adpcm_6bit_faster, yunit_core )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
/* video hardware */
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_6bit)
MACHINE_CONFIG_END
@@ -1235,7 +1240,8 @@ static MACHINE_CONFIG_DERIVED( mkyawdim, yunit_core )
MCFG_CPU_PROGRAM_MAP(yawdim_sound_map)
/* video hardware */
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_VIDEO_START_OVERRIDE(midyunit_state,mkyawdim)
/* sound hardware */
diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c
index fb871fa8dc8..c89ec45660f 100644
--- a/src/mame/drivers/midzeus.c
+++ b/src/mame/drivers/midzeus.c
@@ -1093,7 +1093,7 @@ static MACHINE_CONFIG_START( midzeus, midzeus_state )
MCFG_NVRAM_ADD_1FILL("nvram")
/* video hardware */
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD("palette", 32768)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MIDZEUS_VIDEO_CLOCK/8, 529, 0, 400, 278, 0, 256)
diff --git a/src/mame/drivers/mikie.c b/src/mame/drivers/mikie.c
index b1edc3b45d4..e2e175634a1 100644
--- a/src/mame/drivers/mikie.c
+++ b/src/mame/drivers/mikie.c
@@ -266,8 +266,8 @@ static MACHINE_CONFIG_START( mikie, mikie_state )
MCFG_SCREEN_UPDATE_DRIVER(mikie_state, screen_update_mikie)
MCFG_GFXDECODE_ADD("gfxdecode", mikie)
- MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
-
+ MCFG_PALETTE_ADD("palette", 16*8*16+16*8*16)
+ MCFG_PALETTE_INIT_OWNER(mikie_state, mikie)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mil4000.c b/src/mame/drivers/mil4000.c
index e5492d25884..f302a8bca84 100644
--- a/src/mame/drivers/mil4000.c
+++ b/src/mame/drivers/mil4000.c
@@ -312,7 +312,7 @@ static ADDRESS_MAP_START( mil4000_map, AS_PROGRAM, 16, mil4000_state )
AM_RANGE(0x708010, 0x708011) AM_NOP //touch screen
AM_RANGE(0x70801e, 0x70801f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x780000, 0x780fff) AM_RAM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x780000, 0x780fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("nvram") // 2x CY62256L-70 (U7 & U8).
ADDRESS_MAP_END
@@ -405,8 +405,8 @@ static MACHINE_CONFIG_START( mil4000, mil4000_state )
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(mil4000_state, screen_update_mil4000)
- MCFG_PALETTE_LENGTH(0x800)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x800)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
MCFG_GFXDECODE_ADD("gfxdecode", mil4000)
diff --git a/src/mame/drivers/miniboy7.c b/src/mame/drivers/miniboy7.c
index cfbad3e75e9..dbc4ee5f2e9 100644
--- a/src/mame/drivers/miniboy7.c
+++ b/src/mame/drivers/miniboy7.c
@@ -169,7 +169,7 @@ public:
DECLARE_WRITE8_MEMBER(miniboy7_colorram_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(miniboy7);
UINT32 screen_update_miniboy7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -222,7 +222,7 @@ UINT32 miniboy7_state::screen_update_miniboy7(screen_device &screen, bitmap_ind1
return 0;
}
-void miniboy7_state::palette_init()
+PALETTE_INIT_MEMBER(miniboy7_state, miniboy7)
{
const UINT8 *color_prom = memregion("proms")->base();
/* FIXME... Can't get the correct palette.
@@ -241,7 +241,7 @@ void miniboy7_state::palette_init()
/* 0000IBGR */
if (color_prom == 0) return;
- for (i = 0;i < machine().total_colors();i++)
+ for (i = 0;i < palette.entries();i++)
{
int bit0, bit1, bit2, r, g, b, inten, intenmin, intenmax;
@@ -265,7 +265,7 @@ void miniboy7_state::palette_init()
b = (bit2 * intenmin) + (inten * (bit2 * (intenmax - intenmin)));
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -450,7 +450,8 @@ static MACHINE_CONFIG_START( miniboy7, miniboy7_state )
MCFG_GFXDECODE_ADD("gfxdecode", miniboy7)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(miniboy7_state, miniboy7)
MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/12, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/mirage.c b/src/mame/drivers/mirage.c
index 6a07b9089d8..7e4c50407bd 100644
--- a/src/mame/drivers/mirage.c
+++ b/src/mame/drivers/mirage.c
@@ -148,7 +148,7 @@ static ADDRESS_MAP_START( mirage_map, AS_PROGRAM, 16, miragemi_state )
AM_RANGE(0x110000, 0x110bff) AM_RAM AM_SHARE("pf1_rowscroll")
AM_RANGE(0x112000, 0x112bff) AM_RAM AM_SHARE("pf2_rowscroll")
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x130000, 0x1307ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x130000, 0x1307ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x140000, 0x14000f) AM_DEVREADWRITE8("oki_sfx", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x150000, 0x15000f) AM_DEVREADWRITE8("oki_bgm", okim6295_device, read, write, 0x00ff)
// AM_RANGE(0x140006, 0x140007) AM_READ(random_readers)
@@ -334,14 +334,17 @@ static MACHINE_CONFIG_START( mirage, miragemi_state )
MCFG_GFXDECODE_ADD("gfxdecode", mirage)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DECO16IC_ADD("tilegen1", mirage_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 2);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mirax.c b/src/mame/drivers/mirax.c
index 0af5de246eb..ace8a203d01 100644
--- a/src/mame/drivers/mirax.c
+++ b/src/mame/drivers/mirax.c
@@ -133,7 +133,7 @@ public:
DECLARE_WRITE8_MEMBER(ay1_sel);
DECLARE_WRITE8_MEMBER(ay2_sel);
DECLARE_DRIVER_INIT(mirax);
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(mirax);
virtual void sound_start();
UINT32 screen_update_mirax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(mirax_vblank_irq);
@@ -145,12 +145,12 @@ public:
};
-void mirax_state::palette_init()
+PALETTE_INIT_MEMBER(mirax_state, mirax)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
- for (i = 0;i < machine().total_colors();i++)
+ for (i = 0;i < palette.entries();i++)
{
int bit0,bit1,bit2,r,g,b;
@@ -169,7 +169,7 @@ void mirax_state::palette_init()
bit1 = (color_prom[i] >> 7) & 0x01;
b = 0x4f * bit0 + 0xa8 * bit1;
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
}
}
@@ -195,9 +195,9 @@ void mirax_state::draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect,
if((x <= 1 || x >= 30) ^ draw_flag)
{
- gfx->opaque(bitmap,cliprect,tile,color & 7,(m_flipscreen_x),(m_flipscreen_y),res_x,res_y);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color & 7,(m_flipscreen_x),(m_flipscreen_y),res_x,res_y);
/* wrap-around */
- gfx->opaque(bitmap,cliprect,tile,color & 7,(m_flipscreen_x),(m_flipscreen_y),res_x,res_y+wrapy);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color & 7,(m_flipscreen_x),(m_flipscreen_y),res_x,res_y+wrapy);
}
}
}
@@ -226,7 +226,7 @@ void mirax_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
y = (m_flipscreen_y) ? spriteram[count] : 0x100 - spriteram[count] - 16;
x = (m_flipscreen_x) ? 240 - spriteram[count+3] : spriteram[count+3];
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,spr_offs,color,fx,fy,x,y,0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,spr_offs,color,fx,fy,x,y,0);
}
}
@@ -476,7 +476,8 @@ static MACHINE_CONFIG_START( mirax, mirax_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(mirax_state, screen_update_mirax)
- MCFG_PALETTE_LENGTH(0x40)
+ MCFG_PALETTE_ADD("palette", 0x40)
+ MCFG_PALETTE_INIT_OWNER(mirax_state, mirax)
MCFG_GFXDECODE_ADD("gfxdecode", mirax)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/missb2.c b/src/mame/drivers/missb2.c
index 83a704e0c24..7ff04648d00 100644
--- a/src/mame/drivers/missb2.c
+++ b/src/mame/drivers/missb2.c
@@ -68,7 +68,7 @@ UINT32 missb2_state::screen_update_missb2(screen_device &screen, bitmap_ind16 &b
//popmessage("%02x",(*m_bgvram) & 0x1f);
for (bg_offs = ((*m_bgvram) << 4); bg_offs < (((*m_bgvram) << 4) | 0xf); bg_offs++)
{
- m_gfxdecode->gfx(1)->opaque(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect,
bg_offs,
1,
0,0,
@@ -128,7 +128,7 @@ UINT32 missb2_state::screen_update_missb2(screen_device &screen, bitmap_ind16 &b
flipy = !flipy;
}
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
code,
0,
flipx,flipy,
@@ -141,15 +141,15 @@ UINT32 missb2_state::screen_update_missb2(screen_device &screen, bitmap_ind16 &b
return 0;
}
-INLINE void bg_changecolor_RRRRGGGGBBBBxxxx( running_machine &machine, pen_t color, int data )
+INLINE void bg_changecolor_RRRRGGGGBBBBxxxx( palette_device &palette, pen_t color, int data )
{
- palette_set_color_rgb(machine, color + 256, pal4bit(data >> 12), pal4bit(data >> 8), pal4bit(data >> 4));
+ palette.set_pen_color(color + 256, pal4bit(data >> 12), pal4bit(data >> 8), pal4bit(data >> 4));
}
WRITE8_MEMBER(missb2_state::bg_paletteram_RRRRGGGGBBBBxxxx_be_w)
{
m_bg_paletteram[offset] = data;
- bg_changecolor_RRRRGGGGBBBBxxxx(machine(), offset / 2, m_bg_paletteram[offset | 1] | (m_bg_paletteram[offset & ~1] << 8));
+ bg_changecolor_RRRRGGGGBBBBxxxx(m_palette, offset / 2, m_bg_paletteram[offset | 1] | (m_bg_paletteram[offset & ~1] << 8));
}
WRITE8_MEMBER(missb2_state::missb2_bg_bank_w)
@@ -171,7 +171,7 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, missb2_state )
AM_RANGE(0xc000, 0xdcff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_SHARE("objectram")
AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf800, 0xf9ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfa00, 0xfa00) AM_WRITE(bublbobl_sound_command_w)
AM_RANGE(0xfa03, 0xfa03) AM_WRITENOP // sound cpu reset
AM_RANGE(0xfa80, 0xfa80) AM_WRITENOP
@@ -476,7 +476,8 @@ static MACHINE_CONFIG_START( missb2, missb2_state )
MCFG_SCREEN_UPDATE_DRIVER(missb2_state, screen_update_missb2)
MCFG_GFXDECODE_ADD("gfxdecode", missb2)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/missile.c b/src/mame/drivers/missile.c
index a6586e20c6f..0d637ac21bf 100644
--- a/src/mame/drivers/missile.c
+++ b/src/mame/drivers/missile.c
@@ -735,7 +735,7 @@ WRITE8_MEMBER(missile_state::missile_w)
/* color RAM */
else if (offset >= 0x4b00 && offset < 0x4c00)
- palette_set_color_rgb(machine(), offset & 7, pal1bit(~data >> 3), pal1bit(~data >> 2), pal1bit(~data >> 1));
+ m_palette->set_pen_color(offset & 7, pal1bit(~data >> 3), pal1bit(~data >> 2), pal1bit(~data >> 1));
/* watchdog */
else if (offset >= 0x4c00 && offset < 0x4d00)
@@ -1030,7 +1030,7 @@ static MACHINE_CONFIG_START( missile, missile_state )
MCFG_WATCHDOG_VBLANK_INIT(8)
/* video hardware */
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette", 8)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c
index 7c6a0c9ede7..b4cbc5cc3ba 100644
--- a/src/mame/drivers/mitchell.c
+++ b/src/mame/drivers/mitchell.c
@@ -264,7 +264,7 @@ WRITE8_MEMBER(mitchell_state::input_w)
static ADDRESS_MAP_START( mgakuen_map, AS_PROGRAM, 8, mitchell_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(mgakuen_paletteram_r, mgakuen_paletteram_w) /* palette RAM */
+ AM_RANGE(0xc000, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) /* palette RAM */
AM_RANGE(0xc800, 0xcfff) AM_READWRITE(pang_colorram_r, pang_colorram_w) AM_SHARE("colorram") /* Attribute RAM */
AM_RANGE(0xd000, 0xdfff) AM_READWRITE(mgakuen_videoram_r, mgakuen_videoram_w) AM_SHARE("videoram") /* char RAM */
AM_RANGE(0xe000, 0xefff) AM_RAM /* Work RAM */
@@ -1091,7 +1091,9 @@ static MACHINE_CONFIG_START( mgakuen, mitchell_state )
MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
MCFG_GFXDECODE_ADD("gfxdecode", mgakuen)
- MCFG_PALETTE_LENGTH(1024) /* less colors than the others */
+
+ MCFG_PALETTE_ADD("palette", 1024) /* less colors than the others */
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
@@ -1128,7 +1130,9 @@ static MACHINE_CONFIG_START( pang, mitchell_state )
MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
MCFG_GFXDECODE_ADD("gfxdecode", mitchell)
- MCFG_PALETTE_LENGTH(2048)
+
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
@@ -1232,7 +1236,9 @@ static MACHINE_CONFIG_START( mstworld, mitchell_state )
MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
MCFG_GFXDECODE_ADD("gfxdecode", mstworld)
- MCFG_PALETTE_LENGTH(2048)
+
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
@@ -1263,7 +1269,9 @@ static MACHINE_CONFIG_START( marukin, mitchell_state )
MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
MCFG_GFXDECODE_ADD("gfxdecode", marukin)
- MCFG_PALETTE_LENGTH(2048)
+
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
@@ -1314,7 +1322,9 @@ static MACHINE_CONFIG_START( pkladiesbl, mitchell_state )
MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
MCFG_GFXDECODE_ADD("gfxdecode", pkladiesbl)
- MCFG_PALETTE_LENGTH(2048)
+
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
diff --git a/src/mame/drivers/mjkjidai.c b/src/mame/drivers/mjkjidai.c
index ca9b7103472..51da4f75e60 100644
--- a/src/mame/drivers/mjkjidai.c
+++ b/src/mame/drivers/mjkjidai.c
@@ -396,9 +396,7 @@ static MACHINE_CONFIG_START( mjkjidai, mjkjidai_state )
MCFG_SCREEN_UPDATE_DRIVER(mjkjidai_state, screen_update_mjkjidai)
MCFG_GFXDECODE_ADD("gfxdecode", mjkjidai)
- MCFG_PALETTE_LENGTH(0x100)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x100)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mjsister.c b/src/mame/drivers/mjsister.c
index e3d4d17ee00..3532107ff36 100644
--- a/src/mame/drivers/mjsister.c
+++ b/src/mame/drivers/mjsister.c
@@ -166,7 +166,7 @@ UINT32 mjsister_state::screen_update_mjsister(screen_device &screen, bitmap_ind1
copybitmap_trans(bitmap, *m_tmpbitmap1, flip, flip, 2, 0, cliprect, 0);
}
else
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
return 0;
}
@@ -527,8 +527,7 @@ static MACHINE_CONFIG_START( mjsister, mjsister_state )
MCFG_SCREEN_VISIBLE_AREA(0, 255+4, 8, 247)
MCFG_SCREEN_UPDATE_DRIVER(mjsister_state, screen_update_mjsister)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
/* sound hardware */
diff --git a/src/mame/drivers/mlanding.c b/src/mame/drivers/mlanding.c
index 45224566ee6..b9c5289ed81 100644
--- a/src/mame/drivers/mlanding.c
+++ b/src/mame/drivers/mlanding.c
@@ -214,7 +214,7 @@ void mlanding_state::machine_reset()
UINT32 mlanding_state::screen_update_mlanding(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- const pen_t *pens = machine().pens;
+ const pen_t *pens = m_palette->pens();
for (UINT32 y = cliprect.min_y; y <= cliprect.max_y; ++y)
{
@@ -726,7 +726,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, mlanding_state )
AM_RANGE(0x1c4000, 0x1cffff) AM_RAM AM_SHARE("sub_com_ram")
AM_RANGE(0x1d0000, 0x1d0001) AM_WRITE(dma_start_w)
AM_RANGE(0x1d0002, 0x1d0003) AM_WRITE(dma_stop_w)
- AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x20ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x240004, 0x240005) AM_READNOP // Watchdog
AM_RANGE(0x240006, 0x240007) AM_READ(input_r)
AM_RANGE(0x280000, 0x280fff) AM_READWRITE(power_ram_r, power_ram_w)
@@ -993,7 +993,8 @@ static MACHINE_CONFIG_START( mlanding, mlanding_state )
MCFG_SCREEN_RAW_PARAMS(16000000, 640, 0, 512, 462, 0, 400)
MCFG_SCREEN_UPDATE_DRIVER(mlanding_state, screen_update_mlanding)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD("palette", 32768)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c
index 63893957ac3..df03adaac9a 100644
--- a/src/mame/drivers/model1.c
+++ b/src/mame/drivers/model1.c
@@ -799,9 +799,9 @@ WRITE16_MEMBER(model1_state::md0_w)
WRITE16_MEMBER(model1_state::p_w)
{
- UINT16 old = m_generic_paletteram_16[offset];
- paletteram_xBBBBBGGGGGRRRRR_word_w(space, offset, data, mem_mask);
- if(0 && m_generic_paletteram_16[offset] != old)
+ UINT16 old = m_paletteram16[offset];
+ m_palette->write(space, offset, data, mem_mask);
+ if(0 && m_paletteram16[offset] != old)
logerror("XVIDEO: p_w %x, %04x @ %04x (%x)\n", offset, data, mem_mask, space.device().safe_pc());
}
@@ -896,7 +896,7 @@ static ADDRESS_MAP_START( model1_mem, AS_PROGRAM, 16, model1_state )
AM_RANGE(0x770000, 0x770001) AM_WRITENOP // Video synchronization switch
AM_RANGE(0x780000, 0x7fffff) AM_DEVREADWRITE("tile", segas24_tile, char_r, char_w)
- AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(p_w) AM_SHARE("paletteram")
+ AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(p_w) AM_SHARE("palette")
AM_RANGE(0x910000, 0x91bfff) AM_RAM AM_SHARE("color_xlat")
AM_RANGE(0xc00000, 0xc0003f) AM_READWRITE(io_r, io_w)
@@ -944,7 +944,7 @@ static ADDRESS_MAP_START( model1_vr_mem, AS_PROGRAM, 16, model1_state )
AM_RANGE(0x770000, 0x770001) AM_WRITENOP // Video synchronization switch
AM_RANGE(0x780000, 0x7fffff) AM_DEVREADWRITE("tile", segas24_tile, char_r, char_w)
- AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(p_w) AM_SHARE("paletteram")
+ AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(p_w) AM_SHARE("palette")
AM_RANGE(0x910000, 0x91bfff) AM_RAM AM_SHARE("color_xlat")
AM_RANGE(0xc00000, 0xc0003f) AM_READWRITE(io_r, io_w)
@@ -1524,6 +1524,7 @@ static MACHINE_CONFIG_START( model1, model1_state )
MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff)
MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode")
+ MCFG_S24TILE_DEVICE_PALETTE("palette")
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK )
@@ -1532,7 +1533,8 @@ static MACHINE_CONFIG_START( model1, model1_state )
MCFG_SCREEN_UPDATE_DRIVER(model1_state, screen_update_model1)
MCFG_SCREEN_VBLANK_DRIVER(model1_state, screen_eof_model1)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(model1_state,model1)
@@ -1567,6 +1569,7 @@ static MACHINE_CONFIG_START( model1_vr, model1_state )
MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff)
MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode")
+ MCFG_S24TILE_DEVICE_PALETTE("palette")
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK )
@@ -1575,7 +1578,8 @@ static MACHINE_CONFIG_START( model1_vr, model1_state )
MCFG_SCREEN_UPDATE_DRIVER(model1_state, screen_update_model1)
MCFG_SCREEN_VBLANK_DRIVER(model1_state, screen_eof_model1)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(model1_state,model1)
diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c
index 76c50746047..c74ab91fd96 100644
--- a/src/mame/drivers/model2.c
+++ b/src/mame/drivers/model2.c
@@ -438,18 +438,18 @@ MACHINE_RESET_MEMBER(model2_state,model2c)
m_dsp_type = DSP_TYPE_TGPX4;
}
-static void chcolor(running_machine &machine, pen_t color, UINT16 data)
+static void chcolor(palette_device &palette, pen_t color, UINT16 data)
{
- palette_set_color_rgb(machine, color, pal5bit(data >> 0), pal5bit(data >> 5), pal5bit(data >> 10));
+ palette.set_pen_color(color, pal5bit(data >> 0), pal5bit(data >> 5), pal5bit(data >> 10));
}
WRITE32_MEMBER(model2_state::pal32_w)
{
COMBINE_DATA(m_paletteram32 + offset);
if(ACCESSING_BITS_0_15)
- chcolor(machine(), offset * 2, m_paletteram32[offset]);
+ chcolor(m_palette, offset * 2, m_paletteram32[offset]);
if(ACCESSING_BITS_16_31)
- chcolor(machine(), offset * 2 + 1, m_paletteram32[offset] >> 16);
+ chcolor(m_palette, offset * 2 + 1, m_paletteram32[offset] >> 16);
}
WRITE32_MEMBER(model2_state::ctrl0_w)
@@ -1973,6 +1973,7 @@ static MACHINE_CONFIG_START( model2o, model2_state )
MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff)
MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode")
+ MCFG_S24TILE_DEVICE_PALETTE("palette")
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK )
@@ -1983,7 +1984,7 @@ static MACHINE_CONFIG_START( model2o, model2_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1)
MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_VIDEO_START_OVERRIDE(model2_state,model2)
@@ -2025,6 +2026,7 @@ static MACHINE_CONFIG_START( model2a, model2_state )
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff)
MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode")
+ MCFG_S24TILE_DEVICE_PALETTE("palette")
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK )
@@ -2035,7 +2037,7 @@ static MACHINE_CONFIG_START( model2a, model2_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1)
MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_VIDEO_START_OVERRIDE(model2_state,model2)
@@ -2129,6 +2131,7 @@ static MACHINE_CONFIG_START( model2b, model2_state )
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff)
MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode")
+ MCFG_S24TILE_DEVICE_PALETTE("palette")
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK )
@@ -2139,7 +2142,7 @@ static MACHINE_CONFIG_START( model2b, model2_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1)
MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_VIDEO_START_OVERRIDE(model2_state,model2)
@@ -2178,6 +2181,7 @@ static MACHINE_CONFIG_START( model2c, model2_state )
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff)
MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode")
+ MCFG_S24TILE_DEVICE_PALETTE("palette")
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK )
@@ -2188,7 +2192,7 @@ static MACHINE_CONFIG_START( model2c, model2_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1)
MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_VIDEO_START_OVERRIDE(model2_state,model2)
diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c
index 08b2930ef2a..577df0f2c63 100644
--- a/src/mame/drivers/model3.c
+++ b/src/mame/drivers/model3.c
@@ -5469,8 +5469,7 @@ static MACHINE_CONFIG_START( model3_10, model3_state )
MCFG_SCREEN_SIZE(512, 400)
MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3)
- MCFG_PALETTE_LENGTH(32768)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -5510,8 +5509,7 @@ static MACHINE_CONFIG_START( model3_15, model3_state )
MCFG_SCREEN_SIZE(496, 400)
MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3)
- MCFG_PALETTE_LENGTH(32768)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -5557,8 +5555,7 @@ static MACHINE_CONFIG_START( model3_20, model3_state )
MCFG_SCREEN_SIZE(496, 400)
MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3)
- MCFG_PALETTE_LENGTH(32768)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -5596,8 +5593,7 @@ static MACHINE_CONFIG_START( model3_21, model3_state )
MCFG_SCREEN_SIZE(496, 400)
MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3)
- MCFG_PALETTE_LENGTH(32768)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/mogura.c b/src/mame/drivers/mogura.c
index d1ca233085d..fa3f6f27392 100644
--- a/src/mame/drivers/mogura.c
+++ b/src/mame/drivers/mogura.c
@@ -32,12 +32,12 @@ public:
TILE_GET_INFO_MEMBER(get_mogura_tile_info);
virtual void machine_start();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(mogura);
UINT32 screen_update_mogura(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
-void mogura_state::palette_init()
+PALETTE_INIT_MEMBER(mogura_state, mogura)
{
const UINT8 *color_prom = memregion("proms")->base();
int i, j;
@@ -63,7 +63,7 @@ void mogura_state::palette_init()
bit2 = BIT(color_prom[i], 7);
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), j, rgb_t(r, g, b));
+ palette.set_pen_color(j, rgb_t(r, g, b));
j += 4;
if (j > 31) j -= 31;
}
@@ -213,7 +213,8 @@ static MACHINE_CONFIG_START( mogura, mogura_state )
MCFG_SCREEN_UPDATE_DRIVER(mogura_state, screen_update_mogura)
MCFG_GFXDECODE_ADD("gfxdecode", mogura)
- MCFG_PALETTE_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(mogura_state, mogura)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/mole.c b/src/mame/drivers/mole.c
index ed2a4ed823b..2307c4ceef7 100644
--- a/src/mame/drivers/mole.c
+++ b/src/mame/drivers/mole.c
@@ -75,7 +75,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(mole);
UINT32 screen_update_mole(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -88,12 +88,12 @@ public:
*
*************************************/
-void mole_state::palette_init()
+PALETTE_INIT_MEMBER(mole_state, mole)
{
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_pen_color(i, pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1));
}
TILE_GET_INFO_MEMBER(mole_state::get_bg_tile_info)
@@ -331,8 +331,8 @@ static MACHINE_CONFIG_START( mole, mole_state )
MCFG_SCREEN_UPDATE_DRIVER(mole_state, screen_update_mole)
MCFG_GFXDECODE_ADD("gfxdecode", mole)
- MCFG_PALETTE_LENGTH(8)
-
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(mole_state, mole)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/momoko.c b/src/mame/drivers/momoko.c
index 2d15da3a2b7..c9dd7938789 100644
--- a/src/mame/drivers/momoko.c
+++ b/src/mame/drivers/momoko.c
@@ -65,7 +65,7 @@ static ADDRESS_MAP_START( momoko_map, AS_PROGRAM, 8, momoko_state )
AM_RANGE(0xd404, 0xd404) AM_WRITE(watchdog_reset_w)
AM_RANGE(0xd406, 0xd406) AM_READ_PORT("DSW0") AM_WRITE(soundlatch_byte_w)
AM_RANGE(0xd407, 0xd407) AM_READ_PORT("DSW1")
- AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd800, 0xdbff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xdc00, 0xdc00) AM_WRITE(momoko_fg_scrolly_w)
AM_RANGE(0xdc01, 0xdc01) AM_WRITE(momoko_fg_scrollx_w)
AM_RANGE(0xdc02, 0xdc02) AM_WRITE(momoko_fg_select_w)
@@ -275,7 +275,8 @@ static MACHINE_CONFIG_START( momoko, momoko_state )
MCFG_SCREEN_UPDATE_DRIVER(momoko_state, screen_update_momoko)
MCFG_GFXDECODE_ADD("gfxdecode", momoko)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/monzagp.c b/src/mame/drivers/monzagp.c
index 50f09162e23..849ea3f75be 100644
--- a/src/mame/drivers/monzagp.c
+++ b/src/mame/drivers/monzagp.c
@@ -52,7 +52,7 @@ public:
DECLARE_WRITE8_MEMBER(port2_w);
DECLARE_WRITE8_MEMBER(port3_w);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(monzagp);
UINT32 screen_update_monzagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -60,7 +60,7 @@ public:
-void monzagp_state::palette_init()
+PALETTE_INIT_MEMBER(monzagp_state, monzagp)
{
}
@@ -104,7 +104,7 @@ UINT32 monzagp_state::screen_update_monzagp(screen_device &screen, bitmap_ind16
{
for(x=0;x<256;x++)
{
- m_gfxdecode->gfx(m_bank&1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(m_bank&1)->transpen(m_palette,bitmap,cliprect,
m_vram[y*m_screenw+x],
//(m_vram[y*m_screenw+x]&0x3f)+(m_bank>>1)*64,
0,
@@ -269,7 +269,8 @@ static MACHINE_CONFIG_START( monzagp, monzagp_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(monzagp_state, screen_update_monzagp)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_INIT_OWNER(monzagp_state, monzagp)
MCFG_GFXDECODE_ADD("gfxdecode", monzagp)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c
index 3ab7240c22a..e727c7273f6 100644
--- a/src/mame/drivers/moo.c
+++ b/src/mame/drivers/moo.c
@@ -342,7 +342,7 @@ static ADDRESS_MAP_START( moo_map, AS_PROGRAM, 16, moo_state )
AM_RANGE(0x1a0000, 0x1a1fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) /* Graphic planes */
AM_RANGE(0x1a2000, 0x1a3fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) /* Graphic planes mirror */
AM_RANGE(0x1b0000, 0x1b1fff) AM_DEVREAD("k056832", k056832_device, rom_word_r) /* Passthrough to tile roms */
- AM_RANGE(0x1c0000, 0x1c1fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1c0000, 0x1c1fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
#if MOO_DEBUG
AM_RANGE(0x0c0000, 0x0c003f) AM_DEVREAD("k056832", k056832_device, word_r)
AM_RANGE(0x0c2000, 0x0c2007) AM_DEVREAD("k053246", k053247_device, k053246_reg_word_r)
@@ -375,7 +375,7 @@ static ADDRESS_MAP_START( moobl_map, AS_PROGRAM, 16, moo_state )
AM_RANGE(0x1a0000, 0x1a1fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) /* Graphic planes */
AM_RANGE(0x1a2000, 0x1a3fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) /* Graphic planes mirror */
AM_RANGE(0x1b0000, 0x1b1fff) AM_DEVREAD("k056832", k056832_device, rom_word_r) /* Passthrough to tile roms */
- AM_RANGE(0x1c0000, 0x1c1fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1c0000, 0x1c1fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( bucky_map, AS_PROGRAM, 16, moo_state )
@@ -406,7 +406,7 @@ static ADDRESS_MAP_START( bucky_map, AS_PROGRAM, 16, moo_state )
AM_RANGE(0x182000, 0x183fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) /* Graphic planes mirror */
AM_RANGE(0x184000, 0x187fff) AM_RAM /* extra tile RAM? */
AM_RANGE(0x190000, 0x191fff) AM_DEVREAD("k056832", k056832_device, rom_word_r) /* Passthrough to tile roms */
- AM_RANGE(0x1b0000, 0x1b3fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1b0000, 0x1b3fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x200000, 0x23ffff) AM_ROM /* data */
#if MOO_DEBUG
AM_RANGE(0x0c0000, 0x0c003f) AM_DEVREAD("k056832", k056832_device, word_r)
@@ -576,7 +576,7 @@ static MACHINE_CONFIG_START( moo, moo_state )
MCFG_K053252_ADD("k053252", XTAL_32MHz/4, moo_k053252_intf) // 8MHz
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -585,15 +585,20 @@ static MACHINE_CONFIG_START( moo, moo_state )
MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
MCFG_SCREEN_UPDATE_DRIVER(moo_state, screen_update_moo)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(XRGB)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_VIDEO_START_OVERRIDE(moo_state,moo)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K053246_ADD("k053246", moo_k053247_intf)
MCFG_K053246_GFXDECODE("gfxdecode")
+ MCFG_K053246_PALETTE("palette")
MCFG_K056832_ADD("k056832", moo_k056832_intf)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K053251_ADD("k053251")
MCFG_K054338_ADD("k054338", moo_k054338_intf)
@@ -622,7 +627,7 @@ static MACHINE_CONFIG_START( moobl, moo_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -631,15 +636,20 @@ static MACHINE_CONFIG_START( moobl, moo_state )
MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
MCFG_SCREEN_UPDATE_DRIVER(moo_state, screen_update_moo)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(XRGB)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_VIDEO_START_OVERRIDE(moo_state,moo)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K053246_ADD("k053246", moo_k053247_intf)
MCFG_K053246_GFXDECODE("gfxdecode")
+ MCFG_K053246_PALETTE("palette")
MCFG_K056832_ADD("k056832", moo_k056832_intf)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K053251_ADD("k053251")
MCFG_K054338_ADD("k054338", moo_k054338_intf)
@@ -661,8 +671,11 @@ static MACHINE_CONFIG_DERIVED( bucky, moo )
MCFG_DEVICE_REMOVE("k053246")
MCFG_K053246_ADD("k053246", bucky_k053247_intf) // diff x offset
MCFG_K053246_GFXDECODE("gfxdecode")
+ MCFG_K053246_PALETTE("palette")
/* video hardware */
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(XRGB)
MCFG_VIDEO_START_OVERRIDE(moo_state,bucky)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mosaic.c b/src/mame/drivers/mosaic.c
index e45ff841e97..f3003658dce 100644
--- a/src/mame/drivers/mosaic.c
+++ b/src/mame/drivers/mosaic.c
@@ -90,7 +90,7 @@ static ADDRESS_MAP_START( mosaic_map, AS_PROGRAM, 8, mosaic_state )
AM_RANGE(0x20000, 0x21fff) AM_RAM
AM_RANGE(0x22000, 0x22fff) AM_RAM_WRITE(mosaic_bgvideoram_w) AM_SHARE("bgvideoram")
AM_RANGE(0x23000, 0x23fff) AM_RAM_WRITE(mosaic_fgvideoram_w) AM_SHARE("fgvideoram")
- AM_RANGE(0x24000, 0x241ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0x24000, 0x241ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( gfire2_map, AS_PROGRAM, 8, mosaic_state )
@@ -98,7 +98,7 @@ static ADDRESS_MAP_START( gfire2_map, AS_PROGRAM, 8, mosaic_state )
AM_RANGE(0x10000, 0x17fff) AM_RAM
AM_RANGE(0x22000, 0x22fff) AM_RAM_WRITE(mosaic_bgvideoram_w) AM_SHARE("bgvideoram")
AM_RANGE(0x23000, 0x23fff) AM_RAM_WRITE(mosaic_fgvideoram_w) AM_SHARE("fgvideoram")
- AM_RANGE(0x24000, 0x241ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0x24000, 0x241ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( mosaic_io_map, AS_IO, 8, mosaic_state )
@@ -272,7 +272,8 @@ static MACHINE_CONFIG_START( mosaic, mosaic_state )
MCFG_SCREEN_UPDATE_DRIVER(mosaic_state, screen_update_mosaic)
MCFG_GFXDECODE_ADD("gfxdecode", mosaic)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/mouser.c b/src/mame/drivers/mouser.c
index 7afe6cf7a28..d4546c0f688 100644
--- a/src/mame/drivers/mouser.c
+++ b/src/mame/drivers/mouser.c
@@ -214,8 +214,8 @@ static MACHINE_CONFIG_START( mouser, mouser_state )
MCFG_SCREEN_UPDATE_DRIVER(mouser_state, screen_update_mouser)
MCFG_GFXDECODE_ADD("gfxdecode", mouser)
- MCFG_PALETTE_LENGTH(64)
-
+ MCFG_PALETTE_ADD("palette", 64)
+ MCFG_PALETTE_INIT_OWNER(mouser_state, mouser)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mpoker.c b/src/mame/drivers/mpoker.c
index b82e4d00756..c00be75d8c3 100644
--- a/src/mame/drivers/mpoker.c
+++ b/src/mame/drivers/mpoker.c
@@ -200,7 +200,7 @@ public:
DECLARE_WRITE8_MEMBER(outport7_w);
DECLARE_WRITE8_MEMBER(sound_w);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(mpoker);
UINT32 screen_update_mpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -224,7 +224,7 @@ UINT32 mpoker_state::screen_update_mpoker(screen_device &screen, bitmap_ind16 &b
{
UINT16 dat = m_video[count];
UINT16 col = m_video[count+0x400] & 0x7f;
- gfx->opaque(bitmap,cliprect,dat,col,0,0,x*16,y*16);
+ gfx->opaque(m_palette,bitmap,cliprect,dat,col,0,0,x*16,y*16);
count++;
}
@@ -232,7 +232,7 @@ UINT32 mpoker_state::screen_update_mpoker(screen_device &screen, bitmap_ind16 &b
return 0;
}
-void mpoker_state::palette_init()
+PALETTE_INIT_MEMBER(mpoker_state, mpoker)
{
int i;
@@ -245,7 +245,7 @@ void mpoker_state::palette_init()
else
color = rgb_t::black;
- palette_set_color(machine(), i, color);
+ palette.set_pen_color(i, color);
}
}
@@ -604,8 +604,8 @@ static MACHINE_CONFIG_START( mpoker, mpoker_state )
MCFG_SCREEN_UPDATE_DRIVER(mpoker_state, screen_update_mpoker)
MCFG_GFXDECODE_ADD("gfxdecode", mpoker)
- MCFG_PALETTE_LENGTH(0x200)
-
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_INIT_OWNER(mpoker_state, mpoker)
/* sound hardware */
// MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mpu12wbk.c b/src/mame/drivers/mpu12wbk.c
index 5155a23ea26..1a08a9311cb 100644
--- a/src/mame/drivers/mpu12wbk.c
+++ b/src/mame/drivers/mpu12wbk.c
@@ -231,7 +231,7 @@ public:
DECLARE_DRIVER_INIT(mpu12wbk);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(mpu12wbk);
UINT32 screen_update_mpu12wbk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -286,7 +286,7 @@ UINT32 mpu12wbk_state::screen_update_mpu12wbk(screen_device &screen, bitmap_ind1
}
-void mpu12wbk_state::palette_init()
+PALETTE_INIT_MEMBER(mpu12wbk_state, mpu12wbk)
{
}
@@ -533,7 +533,8 @@ static MACHINE_CONFIG_START( mpu12wbk, mpu12wbk_state )
MCFG_SCREEN_UPDATE_DRIVER(mpu12wbk_state, screen_update_mpu12wbk)
MCFG_GFXDECODE_ADD("gfxdecode", mpu12wbk)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(mpu12wbk_state, mpu12wbk)
MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/4, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/mpu4dealem.c b/src/mame/drivers/mpu4dealem.c
index 9c04920ff12..23de1ab4b49 100644
--- a/src/mame/drivers/mpu4dealem.c
+++ b/src/mame/drivers/mpu4dealem.c
@@ -109,7 +109,7 @@ PALETTE_INIT_MEMBER(mpu4dealem_state,dealem)
bit1 = BIT(*color_prom,7);
b = combine_2_weights(weights_b, bit0, bit1);
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
color_prom++;
}
}
@@ -126,7 +126,7 @@ UINT32 mpu4dealem_state::screen_update_dealem(screen_device &screen, bitmap_ind1
{
int tile = m_dealem_videoram[count + 0x1000] | (m_dealem_videoram[count] << 8);
count++;
- m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,tile,0,0,0,x * 8,y * 8);
+ m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x * 8,y * 8);
}
}
@@ -232,8 +232,8 @@ static MACHINE_CONFIG_START( dealem, mpu4dealem_state )
MCFG_GFXDECODE_ADD("gfxdecode", dealem)
- MCFG_PALETTE_LENGTH(32)
- MCFG_PALETTE_INIT_OVERRIDE(mpu4dealem_state,dealem)
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(mpu4dealem_state,dealem)
MCFG_MC6845_ADD("crtc", HD6845, "screen", MPU4_MASTER_CLOCK / 4 / 8, hd6845_intf) /* HD68B45 */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mpu4plasma.c b/src/mame/drivers/mpu4plasma.c
index 73cba8891e8..2fd0c2dd26f 100644
--- a/src/mame/drivers/mpu4plasma.c
+++ b/src/mame/drivers/mpu4plasma.c
@@ -94,7 +94,7 @@ MACHINE_CONFIG_DERIVED_CLASS( mpu4plasma , mod2, mpu4plasma_state )
MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0*8, 40-1)
MCFG_SCREEN_UPDATE_DRIVER(mpu4plasma_state, screen_update_mpu4plasma)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
MACHINE_CONFIG_END
// plasma v0.1
diff --git a/src/mame/drivers/mpu4vid.c b/src/mame/drivers/mpu4vid.c
index 99e6a337f08..45adf1ad16a 100644
--- a/src/mame/drivers/mpu4vid.c
+++ b/src/mame/drivers/mpu4vid.c
@@ -482,10 +482,10 @@ VIDEO_START_MEMBER(mpu4vid_state,mpu4_vid)
assert(m_gfx_index != MAX_GFX_ELEMENTS);
/* create the char set (gfx will then be updated dynamically from RAM) */
- m_gfxdecode->set_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)));
- m_gfxdecode->set_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)));
- m_gfxdecode->set_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)));
- m_gfxdecode->set_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)));
+ m_gfxdecode->set_gfx(m_gfx_index+0, auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_8x8_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), m_palette->entries() / 16, 0)));
+ m_gfxdecode->set_gfx(m_gfx_index+1, auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_8x16_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), m_palette->entries() / 16, 0)));
+ m_gfxdecode->set_gfx(m_gfx_index+2, auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_16x8_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), m_palette->entries() / 16, 0)));
+ m_gfxdecode->set_gfx(m_gfx_index+3, auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_16x16_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), m_palette->entries() / 16, 0)));
m_scn2674->init_stuff();
@@ -533,7 +533,7 @@ WRITE16_MEMBER(mpu4vid_state::ef9369_w )
col = pal.clut[entry] & 0xfff;
/* Update the MAME palette */
- palette_set_color_rgb(space.machine(), entry, pal4bit(col >> 8), pal4bit(col >> 4), pal4bit(col >> 0));
+ m_palette->set_pen_color(entry, pal4bit(col >> 8), pal4bit(col >> 4), pal4bit(col >> 0));
}
/* Address register auto-increment */
@@ -604,7 +604,7 @@ WRITE16_MEMBER(mpu4vid_state::bt471_w )
if (++*addr_cnt == 3)
{
- palette_set_color(space.machine(), bt471.address, rgb_t(color[0], color[1], color[2]));
+ m_palette->set_pen_color(bt471.address, rgb_t(color[0], color[1], color[2]));
*addr_cnt = 0;
/* Address register increments */
@@ -1426,6 +1426,7 @@ static MACHINE_CONFIG_START( mpu4_vid, mpu4vid_state )
MCFG_SCN2674_VIDEO_ADD("scn2674_vid", 0, WRITELINE(mpu4vid_state, update_mpu68_interrupts));
MCFG_SCN2674_GFXDECODE("gfxdecode")
+ MCFG_SCN2674_PALETTE("palette")
MCFG_CPU_ADD("video", M68000, VIDEO_MASTER_CLOCK )
MCFG_CPU_PROGRAM_MAP(mpu4_68k_map)
@@ -1436,7 +1437,7 @@ static MACHINE_CONFIG_START( mpu4_vid, mpu4vid_state )
MCFG_MACHINE_RESET_OVERRIDE(mpu4vid_state,mpu4_vid)
MCFG_VIDEO_START_OVERRIDE (mpu4vid_state,mpu4_vid)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
MCFG_PTM6840_ADD("6840ptm_68k", ptm_vid_intf)
/* Present on all video cards */
diff --git a/src/mame/drivers/mquake.c b/src/mame/drivers/mquake.c
index aa97630d53e..647e2e81cd9 100644
--- a/src/mame/drivers/mquake.c
+++ b/src/mame/drivers/mquake.c
@@ -397,8 +397,8 @@ static MACHINE_CONFIG_START( mquake, mquake_state )
MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1)
MCFG_SCREEN_UPDATE_DRIVER(mquake_state, screen_update_amiga)
- MCFG_PALETTE_LENGTH(4096)
- MCFG_PALETTE_INIT_OVERRIDE(mquake_state,amiga)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_INIT_OWNER(mquake_state,amiga)
MCFG_VIDEO_START_OVERRIDE(mquake_state,amiga)
diff --git a/src/mame/drivers/mrdo.c b/src/mame/drivers/mrdo.c
index c126cc7095b..3eb0d1f70a8 100644
--- a/src/mame/drivers/mrdo.c
+++ b/src/mame/drivers/mrdo.c
@@ -177,8 +177,8 @@ static MACHINE_CONFIG_START( mrdo, mrdo_state )
MCFG_SCREEN_UPDATE_DRIVER(mrdo_state, screen_update_mrdo)
MCFG_GFXDECODE_ADD("gfxdecode", mrdo)
- MCFG_PALETTE_LENGTH(64*4+16*4)
-
+ MCFG_PALETTE_ADD("palette", 64*4+16*4)
+ MCFG_PALETTE_INIT_OWNER(mrdo_state, mrdo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mrflea.c b/src/mame/drivers/mrflea.c
index 74aaf85a3fc..b12740b48b8 100644
--- a/src/mame/drivers/mrflea.c
+++ b/src/mame/drivers/mrflea.c
@@ -159,7 +159,7 @@ static ADDRESS_MAP_START( mrflea_master_map, AS_PROGRAM, 8, mrflea_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(mrflea_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0xe800, 0xe83f) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe800, 0xe83f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xec00, 0xecff) AM_RAM_WRITE(mrflea_spriteram_w) AM_SHARE("spriteram")
ADDRESS_MAP_END
@@ -368,7 +368,8 @@ static MACHINE_CONFIG_START( mrflea, mrflea_state )
MCFG_SCREEN_UPDATE_DRIVER(mrflea_state, screen_update_mrflea)
MCFG_GFXDECODE_ADD("gfxdecode", mrflea)
- MCFG_PALETTE_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/mrjong.c b/src/mame/drivers/mrjong.c
index 07657055b5e..5bd888bf8e4 100644
--- a/src/mame/drivers/mrjong.c
+++ b/src/mame/drivers/mrjong.c
@@ -195,8 +195,8 @@ static MACHINE_CONFIG_START( mrjong, mrjong_state )
MCFG_SCREEN_UPDATE_DRIVER(mrjong_state, screen_update_mrjong)
MCFG_GFXDECODE_ADD("gfxdecode", mrjong)
- MCFG_PALETTE_LENGTH(4*32)
-
+ MCFG_PALETTE_ADD("palette", 4*32)
+ MCFG_PALETTE_INIT_OWNER(mrjong_state, mrjong)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ms32.c b/src/mame/drivers/ms32.c
index b04bd5f932e..5ef7d90fb51 100644
--- a/src/mame/drivers/ms32.c
+++ b/src/mame/drivers/ms32.c
@@ -1406,7 +1406,7 @@ static MACHINE_CONFIG_START( ms32, ms32_state )
MCFG_SCREEN_UPDATE_DRIVER(ms32_state, screen_update_ms32)
MCFG_GFXDECODE_ADD("gfxdecode", ms32)
- MCFG_PALETTE_LENGTH(0x10000)
+ MCFG_PALETTE_ADD("palette", 0x10000)
/* sound hardware */
diff --git a/src/mame/drivers/msisaac.c b/src/mame/drivers/msisaac.c
index ba5ab63c9ba..13217b56796 100644
--- a/src/mame/drivers/msisaac.c
+++ b/src/mame/drivers/msisaac.c
@@ -171,7 +171,7 @@ WRITE8_MEMBER(msisaac_state::msisaac_mcu_w)
static ADDRESS_MAP_START( msisaac_map, AS_PROGRAM, 8, msisaac_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM
- AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe800, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf000, 0xf000) AM_WRITE(msisaac_bg2_textbank_w)
AM_RANGE(0xf001, 0xf001) AM_WRITENOP //???
AM_RANGE(0xf002, 0xf002) AM_WRITENOP //???
@@ -490,7 +490,8 @@ static MACHINE_CONFIG_START( msisaac, msisaac_state )
MCFG_SCREEN_UPDATE_DRIVER(msisaac_state, screen_update_msisaac)
MCFG_GFXDECODE_ADD("gfxdecode", msisaac)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/mugsmash.c b/src/mame/drivers/mugsmash.c
index 261ec9bf8f8..1077b2ac190 100644
--- a/src/mame/drivers/mugsmash.c
+++ b/src/mame/drivers/mugsmash.c
@@ -175,7 +175,7 @@ static ADDRESS_MAP_START( mugsmash_map, AS_PROGRAM, 16, mugsmash_state )
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(mugsmash_videoram1_w) AM_SHARE("videoram1")
AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE(mugsmash_videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0x0c0000, 0x0c0007) AM_WRITE(mugsmash_reg_w) AM_SHARE("regs1") /* video registers*/
- AM_RANGE(0x100000, 0x1005ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x100000, 0x1005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x140000, 0x140007) AM_WRITE(mugsmash_reg2_w) AM_SHARE("regs2") /* sound + ? */
AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* main ram? */
AM_RANGE(0x1c4000, 0x1cffff) AM_RAM
@@ -409,7 +409,8 @@ static MACHINE_CONFIG_START( mugsmash, mugsmash_state )
MCFG_SCREEN_UPDATE_DRIVER(mugsmash_state, screen_update_mugsmash)
MCFG_GFXDECODE_ADD("gfxdecode", mugsmash)
- MCFG_PALETTE_LENGTH(0x300)
+ MCFG_PALETTE_ADD("palette", 0x300)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c
index 9d6746e7e95..164f67628ab 100644
--- a/src/mame/drivers/multfish.c
+++ b/src/mame/drivers/multfish.c
@@ -223,7 +223,7 @@ UINT32 igrosoft_gamble_state::screen_update_igrosoft_gamble(screen_device &scree
{
int i;
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
if (!m_disp_enable) return 0;
@@ -290,7 +290,7 @@ WRITE8_MEMBER(igrosoft_gamble_state::igrosoft_gamble_vid_w)
b = ( (coldat &0x00e0)>> (5));
b|= ( (coldat &0xe000)>> (8+5-3));
- palette_set_color_rgb(machine(), (offset-0x4000)/2, r<<3, g<<3, b<<2);
+ m_palette->set_pen_color((offset-0x4000)/2, r<<3, g<<3, b<<2);
}
else
{
@@ -1065,7 +1065,7 @@ MACHINE_CONFIG_START( igrosoft_gamble, igrosoft_gamble_state )
MCFG_SCREEN_VISIBLE_AREA(17*16, 1024-16*7-1, 1*16, 32*16-1*16-1)
MCFG_SCREEN_UPDATE_DRIVER(igrosoft_gamble_state, screen_update_igrosoft_gamble)
MCFG_GFXDECODE_ADD("gfxdecode", igrosoft_gamble)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/multigam.c b/src/mame/drivers/multigam.c
index 3c9e56407b9..0e6e124d663 100644
--- a/src/mame/drivers/multigam.c
+++ b/src/mame/drivers/multigam.c
@@ -186,7 +186,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(multigam);
DECLARE_MACHINE_START(multigm3);
DECLARE_MACHINE_RESET(multigm3);
DECLARE_MACHINE_START(supergm3);
@@ -1145,9 +1145,9 @@ static const nesapu_interface multigam_interface_1 =
"maincpu"
};
-void multigam_state::palette_init()
+PALETTE_INIT_MEMBER(multigam_state, multigam)
{
- m_ppu->init_palette(machine(), 0);
+ m_ppu->init_palette(palette, 0);
}
void multigam_state::ppu_irq(int *ppu_regs)
@@ -1259,8 +1259,8 @@ static MACHINE_CONFIG_START( multigam, multigam_state )
MCFG_SCREEN_UPDATE_DRIVER(multigam_state, screen_update_multigam)
MCFG_GFXDECODE_ADD("gfxdecode", multigam)
- MCFG_PALETTE_LENGTH(8*4*16)
-
+ MCFG_PALETTE_ADD("palette", 8*4*16)
+ MCFG_PALETTE_INIT_OWNER(multigam_state, multigam)
MCFG_PPU2C04_ADD("ppu", ppu_interface)
MCFG_PPU2C0X_SET_NMI(multigam_state, ppu_irq)
diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c
index 46adbef3afa..3495394c1cf 100644
--- a/src/mame/drivers/munchmo.c
+++ b/src/mame/drivers/munchmo.c
@@ -336,8 +336,8 @@ static MACHINE_CONFIG_START( mnchmobl, munchmo_state )
MCFG_SCREEN_UPDATE_DRIVER(munchmo_state, screen_update_mnchmobl)
MCFG_GFXDECODE_ADD("gfxdecode", mnchmobl)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(munchmo_state, munchmo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/murogem.c b/src/mame/drivers/murogem.c
index a14c56b1bdf..2e5cd99565c 100644
--- a/src/mame/drivers/murogem.c
+++ b/src/mame/drivers/murogem.c
@@ -122,7 +122,7 @@ public:
required_shared_ptr<UINT8> m_videoram;
DECLARE_WRITE8_MEMBER(outport_w);
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(murogem);
UINT32 screen_update_murogem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<dac_device> m_dac;
@@ -206,7 +206,7 @@ static GFXDECODE_START( murogem )
GFXDECODE_END
-void murogem_state::palette_init()
+PALETTE_INIT_MEMBER(murogem_state, murogem)
{}
UINT32 murogem_state::screen_update_murogem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -223,7 +223,7 @@ UINT32 murogem_state::screen_update_murogem(screen_device &screen, bitmap_ind16
int tileno = m_videoram[count]&0x3f;
int attr = m_videoram[count+0x400]&0x0f;
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,tileno,attr,0,0,xx*8,yy*8,0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,tileno,attr,0,0,xx*8,yy*8,0);
count++;
@@ -265,7 +265,8 @@ static MACHINE_CONFIG_START( murogem, murogem_state )
MCFG_SCREEN_UPDATE_DRIVER(murogem_state, screen_update_murogem)
MCFG_GFXDECODE_ADD("gfxdecode", murogem)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(murogem_state, murogem)
MCFG_MC6845_ADD("crtc", MC6845, "screen", 750000, mc6845_intf) /* ? MHz */
diff --git a/src/mame/drivers/murogmbl.c b/src/mame/drivers/murogmbl.c
index 023d820b8fa..d4dfddde530 100644
--- a/src/mame/drivers/murogmbl.c
+++ b/src/mame/drivers/murogmbl.c
@@ -51,14 +51,14 @@ public:
required_shared_ptr<UINT8> m_video;
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(murogmbl);
UINT32 screen_update_murogmbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
};
-void murogmbl_state::palette_init()
+PALETTE_INIT_MEMBER(murogmbl_state, murogmbl)
{
const UINT8 *color_prom = memregion("proms")->base();
int bit0, bit1, bit2 , r, g, b;
@@ -79,7 +79,7 @@ void murogmbl_state::palette_init()
bit2 = (color_prom[0] >> 7) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
color_prom++;
}
}
@@ -112,7 +112,7 @@ UINT32 murogmbl_state::screen_update_murogmbl(screen_device &screen, bitmap_ind1
for (x = 0; x < 32; x++)
{
int tile = m_video[count];
- gfx->opaque(bitmap,cliprect, tile, 0, 0, 0, x * 8, y * 8);
+ gfx->opaque(m_palette,bitmap,cliprect, tile, 0, 0, 0, x * 8, y * 8);
count++;
}
@@ -201,8 +201,8 @@ static MACHINE_CONFIG_START( murogmbl, murogmbl_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(murogmbl_state, screen_update_murogmbl)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(murogmbl_state, 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 9388028fd4b..919b728e70a 100644
--- a/src/mame/drivers/mustache.c
+++ b/src/mame/drivers/mustache.c
@@ -187,8 +187,8 @@ static MACHINE_CONFIG_START( mustache, mustache_state )
MCFG_SCREEN_UPDATE_DRIVER(mustache_state, screen_update_mustache)
MCFG_GFXDECODE_ADD("gfxdecode", mustache)
- MCFG_PALETTE_LENGTH(8*16+16*8)
-
+ MCFG_PALETTE_ADD("palette", 8*16+16*8)
+ MCFG_PALETTE_INIT_OWNER(mustache_state, mustache)
/* sound hardware */
MCFG_SEIBU_SOUND_ADD("seibu_sound") // for seibu_sound_decrypt on the MAIN cpu (not sound)
diff --git a/src/mame/drivers/mwarr.c b/src/mame/drivers/mwarr.c
index 7df1b9874fc..075d78df452 100644
--- a/src/mame/drivers/mwarr.c
+++ b/src/mame/drivers/mwarr.c
@@ -191,7 +191,7 @@ WRITE16_MEMBER(mwarr_state::mwarr_brightness_w)
brightness = (double)(data & 0xff);
for (i = 0; i < 0x800; i++)
{
- palette_set_pen_contrast(machine(), i, brightness/255);
+ m_palette->set_pen_contrast(i, brightness/255);
}
}
@@ -212,7 +212,7 @@ static ADDRESS_MAP_START( mwarr_map, AS_PROGRAM, 16, mwarr_state )
AM_RANGE(0x103400, 0x1037ff) AM_RAM AM_SHARE("mlow_scrollram")
AM_RANGE(0x103800, 0x103bff) AM_RAM AM_SHARE("mhigh_scrollram")
AM_RANGE(0x103c00, 0x103fff) AM_RAM AM_SHARE("vidattrram")
- AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x108000, 0x108fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x110000, 0x110001) AM_READ_PORT("P1_P2")
AM_RANGE(0x110002, 0x110003) AM_READ_PORT("SYSTEM")
@@ -435,7 +435,7 @@ void mwarr_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, con
for (i = 0; i <= dy; i++)
{
- gfx->prio_transpen(bitmap,
+ gfx->prio_transpen(m_palette,bitmap,
cliprect,
source[2]+i,
color,
@@ -444,7 +444,7 @@ void mwarr_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, con
screen.priority(),pri_mask,0 );
/* wrap around x */
- gfx->prio_transpen(bitmap,
+ gfx->prio_transpen(m_palette,bitmap,
cliprect,
source[2]+i,
color,
@@ -453,7 +453,7 @@ void mwarr_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, con
screen.priority(),pri_mask,0 );
/* wrap around y */
- gfx->prio_transpen(bitmap,
+ gfx->prio_transpen(m_palette,bitmap,
cliprect,
source[2]+i,
color,
@@ -462,7 +462,7 @@ void mwarr_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, con
screen.priority(),pri_mask,0 );
/* wrap around x & y */
- gfx->prio_transpen(bitmap,
+ gfx->prio_transpen(m_palette,bitmap,
cliprect,
source[2]+i,
color,
@@ -563,8 +563,8 @@ static MACHINE_CONFIG_START( mwarr, mwarr_state )
MCFG_SCREEN_UPDATE_DRIVER(mwarr_state, screen_update_mwarr)
MCFG_GFXDECODE_ADD("gfxdecode", mwarr)
- MCFG_PALETTE_LENGTH(0x800)
-
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c
index 73c69493e27..be3ff34c545 100644
--- a/src/mame/drivers/mystwarr.c
+++ b/src/mame/drivers/mystwarr.c
@@ -318,7 +318,7 @@ static ADDRESS_MAP_START( mystwarr_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x600000, 0x601fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w)
AM_RANGE(0x602000, 0x603fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read(essential)
AM_RANGE(0x680000, 0x683fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r)
- AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
#if MW_DEBUG
AM_RANGE(0x480000, 0x4800ff) AM_DEVREAD("k055555", k055555_device, k055555_word_r)
AM_RANGE(0x482010, 0x48201f) AM_DEVREAD("k055673", k055673_device, k053247_reg_word_r)
@@ -359,7 +359,7 @@ static ADDRESS_MAP_START( metamrph_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x302000, 0x303fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read/write (essential)
AM_RANGE(0x310000, 0x311fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r)
AM_RANGE(0x320000, 0x321fff) AM_DEVREAD("k053250_1", k053250_device, rom_r)
- AM_RANGE(0x330000, 0x331fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x330000, 0x331fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
#if MW_DEBUG
AM_RANGE(0x240000, 0x240007) AM_DEVREAD("k055673", k055673_device, k053246_reg_word_r)
AM_RANGE(0x244010, 0x24401f) AM_DEVREAD("k055673", k055673_device, k053247_reg_word_r)
@@ -402,7 +402,7 @@ static ADDRESS_MAP_START( viostorm_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x302000, 0x303fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read(essential)
AM_RANGE(0x304000, 0x3041ff) AM_RAM
AM_RANGE(0x310000, 0x311fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r)
- AM_RANGE(0x330000, 0x331fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x330000, 0x331fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
#if MW_DEBUG
AM_RANGE(0x240000, 0x240007) AM_DEVREAD("k055673", k055673_device, k053246_reg_word_r)
AM_RANGE(0x244010, 0x24401f) AM_DEVREAD("k055673", k055673_device, k053247_reg_word_r)
@@ -489,7 +489,7 @@ static ADDRESS_MAP_START( martchmp_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x41c000, 0x41c01f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff) // CCU
AM_RANGE(0x41e000, 0x41e007) AM_DEVWRITE("k056832", k056832_device,b_word_w) // VSCCS
AM_RANGE(0x480000, 0x483fff) AM_READWRITE(k053247_martchmp_word_r,k053247_martchmp_word_w) AM_SHARE("spriteram") // sprite RAM
- AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram") // palette RAM
+ AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette RAM
AM_RANGE(0x680000, 0x681fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM
AM_RANGE(0x682000, 0x683fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read/write (essential)
AM_RANGE(0x700000, 0x703fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r) // tile ROM readback
@@ -509,7 +509,7 @@ static ADDRESS_MAP_START( dadandrn_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(k053247_scattered_word_r,k053247_scattered_word_w) AM_SHARE("spriteram")
AM_RANGE(0x410000, 0x411fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM
AM_RANGE(0x412000, 0x413fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read/write (essential)
- AM_RANGE(0x420000, 0x421fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x420000, 0x421fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x430000, 0x430007) AM_DEVWRITE("k055673", k055673_device, k053246_word_w)
AM_RANGE(0x440000, 0x443fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r)
AM_RANGE(0x450000, 0x45000f) AM_DEVWRITE("k055673", k055673_device, k053246_word_w)
@@ -556,7 +556,7 @@ static ADDRESS_MAP_START( gaiapols_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(k053247_scattered_word_r,k053247_scattered_word_w) AM_SHARE("spriteram")
AM_RANGE(0x410000, 0x411fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM
AM_RANGE(0x412000, 0x413fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read / write (essential)
- AM_RANGE(0x420000, 0x421fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x420000, 0x421fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x430000, 0x430007) AM_DEVWRITE("k055673", k055673_device, k053246_word_w)
AM_RANGE(0x440000, 0x441fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r)
AM_RANGE(0x450000, 0x45000f) AM_DEVWRITE("k055673", k055673_device, k053246_word_w)
@@ -1046,7 +1046,7 @@ static MACHINE_CONFIG_START( mystwarr, mystwarr_state )
MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,mystwarr)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(60)
@@ -1056,14 +1056,20 @@ static MACHINE_CONFIG_START( mystwarr, mystwarr_state )
MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1)
MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_mystwarr)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(XRGB)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
+
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K056832_ADD_NOINTF("k056832"/*, mystwarr_k056832_intf*/)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K055555_ADD("k055555")
MCFG_K055673_ADD_NOINTF("k055673")
MCFG_K055673_GFXDECODE("gfxdecode")
+ MCFG_K055673_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(mystwarr_state,mystwarr)
@@ -1195,7 +1201,12 @@ static MACHINE_CONFIG_DERIVED( martchmp, mystwarr )
MCFG_DEVICE_REMOVE("k053252")
MCFG_K053252_ADD("k053252", 16000000/2, martchmp_k053252_intf)
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_BEFORE_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
+
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_FORMAT(XRGB)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_VIDEO_START_OVERRIDE(mystwarr_state,martchmp)
diff --git a/src/mame/drivers/n8080.c b/src/mame/drivers/n8080.c
index bf8cf260efd..5ae0d1a0174 100644
--- a/src/mame/drivers/n8080.c
+++ b/src/mame/drivers/n8080.c
@@ -516,8 +516,8 @@ static MACHINE_CONFIG_START( spacefev, n8080_state )
MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239)
MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_spacefev)
- MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080)
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(n8080_state,n8080)
MCFG_VIDEO_START_OVERRIDE(n8080_state,spacefev)
MCFG_TIMER_DRIVER_ADD_SCANLINE("rst1", n8080_state, rst1_tick, "screen", 128, 256)
@@ -546,8 +546,8 @@ static MACHINE_CONFIG_START( sheriff, n8080_state )
MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239)
MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_sheriff)
- MCFG_PALETTE_LENGTH(8)
- MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080)
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(n8080_state,n8080)
MCFG_VIDEO_START_OVERRIDE(n8080_state,sheriff)
MCFG_TIMER_DRIVER_ADD_SCANLINE("rst1", n8080_state, rst1_tick, "screen", 128, 256)
@@ -589,8 +589,8 @@ static MACHINE_CONFIG_START( helifire, n8080_state )
MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_helifire)
MCFG_SCREEN_VBLANK_DRIVER(n8080_state, screen_eof_helifire)
- MCFG_PALETTE_LENGTH(8 + 0x400)
- MCFG_PALETTE_INIT_OVERRIDE(n8080_state,helifire)
+ MCFG_PALETTE_ADD("palette", 8 + 0x400)
+ MCFG_PALETTE_INIT_OWNER(n8080_state,helifire)
MCFG_VIDEO_START_OVERRIDE(n8080_state,helifire)
MCFG_TIMER_DRIVER_ADD_SCANLINE("rst1", n8080_state, rst1_tick, "screen", 128, 256)
diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c
index b2b4a3776bd..f537a99424a 100644
--- a/src/mame/drivers/namcofl.c
+++ b/src/mame/drivers/namcofl.c
@@ -599,7 +599,7 @@ static MACHINE_CONFIG_START( namcofl, namcofl_state )
MCFG_SCREEN_VISIBLE_AREA(0, NAMCOFL_HBSTART-1, 0, NAMCOFL_VBSTART-1)
MCFG_SCREEN_UPDATE_DRIVER(namcofl_state, screen_update_namcofl)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_GFXDECODE_ADD("gfxdecode", 2)
diff --git a/src/mame/drivers/namcoic.c b/src/mame/drivers/namcoic.c
index 479e1d88c7e..f9209dee483 100644
--- a/src/mame/drivers/namcoic.c
+++ b/src/mame/drivers/namcoic.c
@@ -275,8 +275,8 @@ void namcos2_shared_state::zdrawgfxzoom(
{
if( gfx )
{
- int shadow_offset = (gfx->machine().config().m_video_attributes&VIDEO_HAS_SHADOWS)?gfx->machine().total_colors():0;
- const pen_t *pal = &gfx->machine().pens[gfx->colorbase() + gfx->granularity() * (color % gfx->colors())];
+ int shadow_offset = (m_palette->shadows_enabled())?m_palette->entries():0;
+ const pen_t *pal = &m_palette->pen(gfx->colorbase() + gfx->granularity() * (color % gfx->colors()));
const UINT8 *source_base = gfx->get_data(code % gfx->elements());
int sprite_screen_height = (scaley*gfx->height()+0x8000)>>16;
int sprite_screen_width = (scalex*gfx->width()+0x8000)>>16;
@@ -1311,7 +1311,8 @@ namco_c45_road_device::namco_c45_road_device(const machine_config &mconfig, cons
: device_t(mconfig, NAMCO_C45_ROAD, "Namco C45 Road", tag, owner, clock, "namco_c45_road", __FILE__),
m_transparent_color(~0),
m_tilemap(NULL),
- m_gfxdecode(*this, "gfxdecode")
+ m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this)
{
}
@@ -1410,7 +1411,7 @@ void namco_c45_road_device::draw(bitmap_ind16 &bitmap, const rectangle &cliprect
while (numpixels-- > 0)
{
int pen = source_gfx[sourcex >> 16];
- if (colortable_entry_get_value(machine().colortable, pen) != m_transparent_color)
+ if (m_palette->pen_indirect(pen) != m_transparent_color)
{
if (clut != NULL)
pen = (pen & ~0xff) | clut[pen & 0xff];
@@ -1485,3 +1486,13 @@ TILE_GET_INFO_MEMBER( namco_c45_road_device::get_road_info )
int color = data >> 10;
SET_TILE_INFO_MEMBER(m_gfxdecode, 0, tile, color, 0);
}
+
+//-------------------------------------------------
+// static_set_palette_tag: Set the tag of the
+// palette device
+//-------------------------------------------------
+
+void namco_c45_road_device::static_set_palette_tag(device_t &device, const char *tag)
+{
+ downcast<namco_c45_road_device &>(device).m_palette.set_tag(tag);
+}
diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c
index 02b562bb1d6..764ceaa11ae 100644
--- a/src/mame/drivers/namcona1.c
+++ b/src/mame/drivers/namcona1.c
@@ -944,8 +944,6 @@ static MACHINE_CONFIG_START( namcona1, namcona1_state )
MCFG_QUANTUM_TIME(attotime::from_hz(2400))
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@@ -953,7 +951,8 @@ static MACHINE_CONFIG_START( namcona1, namcona1_state )
MCFG_SCREEN_VISIBLE_AREA(8, 38*8-1-8, 4*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(namcona1_state, screen_update_namcona1)
- MCFG_PALETTE_LENGTH(0x2000)
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_GFXDECODE_ADD("gfxdecode", empty)
/* sound hardware */
diff --git a/src/mame/drivers/namconb1.c b/src/mame/drivers/namconb1.c
index df8ad565cd9..9bd2d1041c2 100644
--- a/src/mame/drivers/namconb1.c
+++ b/src/mame/drivers/namconb1.c
@@ -1154,7 +1154,6 @@ static MACHINE_CONFIG_START( namconb1, namconb1_state )
MCFG_EEPROM_2816_ADD("eeprom")
MCFG_MACHINE_START_OVERRIDE(namconb1_state,namconb)
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.7)
@@ -1163,7 +1162,10 @@ static MACHINE_CONFIG_START( namconb1, namconb1_state )
MCFG_SCREEN_UPDATE_DRIVER(namconb1_state, screen_update_namconb1)
MCFG_GFXDECODE_ADD("gfxdecode", namconb1)
- MCFG_PALETTE_LENGTH(0x2000)
+
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+
MCFG_VIDEO_START_OVERRIDE(namconb1_state,namconb1)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1186,7 +1188,6 @@ static MACHINE_CONFIG_START( namconb2, namconb1_state )
MCFG_EEPROM_2816_ADD("eeprom")
MCFG_MACHINE_START_OVERRIDE(namconb1_state,namconb)
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.7)
@@ -1195,7 +1196,9 @@ static MACHINE_CONFIG_START( namconb2, namconb1_state )
MCFG_SCREEN_UPDATE_DRIVER(namconb1_state, screen_update_namconb2)
MCFG_GFXDECODE_ADD("gfxdecode", 2)
- MCFG_PALETTE_LENGTH(0x2000)
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+
MCFG_VIDEO_START_OVERRIDE(namconb1_state,namconb2)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/namcond1.c b/src/mame/drivers/namcond1.c
index e5d8777d45a..25720540d78 100644
--- a/src/mame/drivers/namcond1.c
+++ b/src/mame/drivers/namcond1.c
@@ -311,7 +311,7 @@ static MACHINE_CONFIG_START( namcond1, namcond1_state )
MCFG_SCREEN_UPDATE_DEVICE("ygv608", ygv608_device, update_screen)
MCFG_GFXDECODE_ADD("gfxdecode", namcond1)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -326,6 +326,7 @@ static MACHINE_CONFIG_START( namcond1, namcond1_state )
MCFG_YGV608_ADD("ygv608")
MCFG_YGV608_GFXDECODE("gfxdecode")
+ MCFG_YGV608_PALETTE("palette")
MACHINE_CONFIG_END
ROM_START( ncv1 )
diff --git a/src/mame/drivers/namcops2.c b/src/mame/drivers/namcops2.c
index 232ede808bd..a9056d87e75 100644
--- a/src/mame/drivers/namcops2.c
+++ b/src/mame/drivers/namcops2.c
@@ -146,7 +146,7 @@ static MACHINE_CONFIG_START( system246, namcops2_state )
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD("palette", 65536)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( system256, system246 )
diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c
index f5f4c4ffb85..468b247c5e7 100644
--- a/src/mame/drivers/namcos1.c
+++ b/src/mame/drivers/namcos1.c
@@ -1096,15 +1096,15 @@ static MACHINE_CONFIG_START( ns1, namcos1_state )
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_49_152MHz/8, 384, 9+8*8, 9+44*8, 264, 2*8, 30*8)
MCFG_SCREEN_UPDATE_DRIVER(namcos1_state, screen_update_namcos1)
MCFG_SCREEN_VBLANK_DRIVER(namcos1_state, screen_eof_namcos1)
MCFG_GFXDECODE_ADD("gfxdecode", namcos1)
- MCFG_PALETTE_LENGTH(0x2000)
+
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_ENABLE_SHADOWS()
/* sound hardware */
diff --git a/src/mame/drivers/namcos2.c b/src/mame/drivers/namcos2.c
index 3fd8a22cefe..3453fa6f272 100644
--- a/src/mame/drivers/namcos2.c
+++ b/src/mame/drivers/namcos2.c
@@ -1724,8 +1724,6 @@ static MACHINE_CONFIG_START( default, namcos2_state )
MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
MCFG_SCREEN_SIZE(384, 264)
@@ -1733,7 +1731,9 @@ static MACHINE_CONFIG_START( default, namcos2_state )
MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update)
MCFG_GFXDECODE_ADD("gfxdecode", namcos2)
- MCFG_PALETTE_LENGTH(0x2000)
+
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1798,8 +1798,6 @@ static MACHINE_CONFIG_START( gollygho, namcos2_state )
MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
MCFG_SCREEN_SIZE(384, 264)
@@ -1807,7 +1805,9 @@ static MACHINE_CONFIG_START( gollygho, namcos2_state )
MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update)
MCFG_GFXDECODE_ADD("gfxdecode", namcos2)
- MCFG_PALETTE_LENGTH(0x2000)
+
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1845,8 +1845,6 @@ static MACHINE_CONFIG_START( finallap, namcos2_state )
MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
MCFG_SCREEN_SIZE(384, 264)
@@ -1854,11 +1852,14 @@ static MACHINE_CONFIG_START( finallap, namcos2_state )
MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_finallap)
MCFG_GFXDECODE_ADD("gfxdecode", finallap)
- MCFG_PALETTE_LENGTH(0x2000)
+
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_VIDEO_START_OVERRIDE(namcos2_state, finallap)
MCFG_NAMCO_C45_ROAD_ADD("c45_road")
+ MCFG_NAMCO_C45_ROAD_PALETTE("palette")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1896,8 +1897,6 @@ static MACHINE_CONFIG_START( sgunner, namcos2_state )
MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
MCFG_SCREEN_SIZE(384, 264)
@@ -1905,7 +1904,9 @@ static MACHINE_CONFIG_START( sgunner, namcos2_state )
MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_sgunner)
MCFG_GFXDECODE_ADD("gfxdecode", sgunner)
- MCFG_PALETTE_LENGTH(0x2000)
+
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_VIDEO_START_OVERRIDE(namcos2_state, sgunner)
@@ -1950,8 +1951,6 @@ static MACHINE_CONFIG_START( sgunner2, namcos2_state )
MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
MCFG_SCREEN_SIZE(384, 264)
@@ -1959,7 +1958,9 @@ static MACHINE_CONFIG_START( sgunner2, namcos2_state )
MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_sgunner)
MCFG_GFXDECODE_ADD("gfxdecode", sgunner)
- MCFG_PALETTE_LENGTH(0x2000)
+
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_VIDEO_START_OVERRIDE(namcos2_state, sgunner)
@@ -1999,8 +2000,6 @@ static MACHINE_CONFIG_START( luckywld, namcos2_state )
MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
MCFG_SCREEN_SIZE(384, 264)
@@ -2008,11 +2007,14 @@ static MACHINE_CONFIG_START( luckywld, namcos2_state )
MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_luckywld)
MCFG_GFXDECODE_ADD("gfxdecode", luckywld)
- MCFG_PALETTE_LENGTH(0x2000)
+
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_VIDEO_START_OVERRIDE(namcos2_state, luckywld)
MCFG_NAMCO_C45_ROAD_ADD("c45_road")
+ MCFG_NAMCO_C45_ROAD_PALETTE("palette")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2050,8 +2052,6 @@ static MACHINE_CONFIG_START( metlhawk, namcos2_state )
MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
MCFG_SCREEN_SIZE(384, 264)
@@ -2059,7 +2059,9 @@ static MACHINE_CONFIG_START( metlhawk, namcos2_state )
MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_metlhawk)
MCFG_GFXDECODE_ADD("gfxdecode", metlhawk)
- MCFG_PALETTE_LENGTH(0x2000)
+
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_VIDEO_START_OVERRIDE(namcos2_state, metlhawk)
diff --git a/src/mame/drivers/namcos21.c b/src/mame/drivers/namcos21.c
index 1a7e0f7cb4a..25d97bf91fb 100644
--- a/src/mame/drivers/namcos21.c
+++ b/src/mame/drivers/namcos21.c
@@ -1527,7 +1527,7 @@ static MACHINE_CONFIG_START( namcos21, namcos21_state )
MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21)
MCFG_GFXDECODE_ADD("gfxdecode", namcos21)
- MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
+ MCFG_PALETTE_ADD("palette", NAMCOS21_NUM_COLORS)
MCFG_VIDEO_START_OVERRIDE(namcos21_state,namcos21)
@@ -1582,7 +1582,7 @@ static MACHINE_CONFIG_START( driveyes, namcos21_state )
MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21)
MCFG_GFXDECODE_ADD("gfxdecode", namcos21)
- MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
+ MCFG_PALETTE_ADD("palette", NAMCOS21_NUM_COLORS)
MCFG_VIDEO_START_OVERRIDE(namcos21_state,namcos21)
@@ -1640,7 +1640,7 @@ static MACHINE_CONFIG_START( winrun, namcos21_state )
MCFG_SCREEN_VISIBLE_AREA(0,495,0,479)
MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21)
- MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
+ MCFG_PALETTE_ADD("palette", NAMCOS21_NUM_COLORS)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_VIDEO_START_OVERRIDE(namcos21_state,namcos21)
diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c
index 07445b1d04a..83cff89ef8f 100644
--- a/src/mame/drivers/namcos22.c
+++ b/src/mame/drivers/namcos22.c
@@ -3779,7 +3779,7 @@ static MACHINE_CONFIG_START( namcos22, namcos22_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(namcos22_state, screen_update_namcos22)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
MCFG_GFXDECODE_ADD("gfxdecode", namcos22)
MCFG_VIDEO_START_OVERRIDE(namcos22_state,namcos22)
@@ -3830,7 +3830,7 @@ static MACHINE_CONFIG_START( namcos22s, namcos22_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(namcos22_state, screen_update_namcos22s)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
MCFG_GFXDECODE_ADD("gfxdecode", super)
MCFG_VIDEO_START_OVERRIDE(namcos22_state,namcos22s)
diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c
index e9f5821608c..c00a2eee87b 100644
--- a/src/mame/drivers/namcos23.c
+++ b/src/mame/drivers/namcos23.c
@@ -2013,7 +2013,7 @@ void namcos23_state::render_one_model(const namcos23_render_entry *re)
p->front = !(h & 0x00000001);
p->rd.machine = &machine();
p->rd.texture_lookup = render_texture_lookup_nocache_point;
- p->rd.pens = machine().pens + (color << 8);
+ p->rd.pens = m_palette->pens() + (color << 8);
render.poly_count++;
}
@@ -2109,7 +2109,7 @@ WRITE32_MEMBER(namcos23_state::s23_paletteram_w)
int r = nthbyte(m_generic_paletteram_32, which|0x00001);
int g = nthbyte(m_generic_paletteram_32, which|0x10001);
int b = nthbyte(m_generic_paletteram_32, which|0x20001);
- palette_set_color(machine(), which/2, rgb_t(r,g,b));
+ m_palette->set_pen_color(which/2, rgb_t(r,g,b));
}
}
@@ -3455,7 +3455,7 @@ static MACHINE_CONFIG_START( gorgon, namcos23_state )
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_s23)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -3502,7 +3502,7 @@ static MACHINE_CONFIG_START( s23, namcos23_state )
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_s23)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
MCFG_GFXDECODE_ADD("gfxdecode", namcos23)
@@ -3563,7 +3563,7 @@ static MACHINE_CONFIG_START( ss23, namcos23_state )
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_s23)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
MCFG_GFXDECODE_ADD("gfxdecode", namcos23)
diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c
index 03ed34d01e7..70a00f4adc6 100644
--- a/src/mame/drivers/namcos86.c
+++ b/src/mame/drivers/namcos86.c
@@ -1012,8 +1012,8 @@ static MACHINE_CONFIG_START( hopmappy, namcos86_state )
MCFG_SCREEN_VBLANK_DRIVER(namcos86_state, screen_eof_namcos86)
MCFG_GFXDECODE_ADD("gfxdecode", namcos86)
- MCFG_PALETTE_LENGTH(4096)
-
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_INIT_OWNER(namcos86_state, namcos86)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c
index 16482257d69..4484a46558a 100644
--- a/src/mame/drivers/naomi.c
+++ b/src/mame/drivers/naomi.c
@@ -2516,7 +2516,7 @@ static MACHINE_CONFIG_START( naomi_aw_base, naomi_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(13458568*2, 820, 0, 640, 532, 0, 480) /* TODO: where pclk actually comes? */
MCFG_SCREEN_UPDATE_DEVICE("powervr2", powervr2_device, screen_update)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
MCFG_POWERVR2_ADD("powervr2", WRITE8(dc_state, pvr_irq))
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/naughtyb.c b/src/mame/drivers/naughtyb.c
index 860eb209635..4829b132bf6 100644
--- a/src/mame/drivers/naughtyb.c
+++ b/src/mame/drivers/naughtyb.c
@@ -433,8 +433,8 @@ static MACHINE_CONFIG_START( naughtyb, naughtyb_state )
MCFG_SCREEN_UPDATE_DRIVER(naughtyb_state, screen_update_naughtyb)
MCFG_GFXDECODE_ADD("gfxdecode", naughtyb)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(naughtyb_state, naughtyb)
/* sound hardware */
/* uses the TMS3615NS for sound */
@@ -465,7 +465,8 @@ static MACHINE_CONFIG_START( popflame, naughtyb_state )
MCFG_SCREEN_UPDATE_DRIVER(naughtyb_state, screen_update_naughtyb)
MCFG_GFXDECODE_ADD("gfxdecode", naughtyb)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(naughtyb_state, naughtyb)
/* sound hardware */
diff --git a/src/mame/drivers/nbmj8688.c b/src/mame/drivers/nbmj8688.c
index 6cbb9fe69d3..5d547a7d875 100644
--- a/src/mame/drivers/nbmj8688.c
+++ b/src/mame/drivers/nbmj8688.c
@@ -2781,9 +2781,9 @@ static MACHINE_CONFIG_START( NBMJDRV_4096, nbmj8688_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
- MCFG_PALETTE_INIT_OVERRIDE(nbmj8688_state,mbmj8688_12bit)
+ MCFG_PALETTE_INIT_OWNER(nbmj8688_state,mbmj8688_12bit)
MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_pure_12bit)
/* sound hardware */
@@ -2802,9 +2802,10 @@ static MACHINE_CONFIG_DERIVED( NBMJDRV_256, NBMJDRV_4096 )
/* basic machine hardware */
/* video hardware */
- MCFG_PALETTE_LENGTH(256)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 256)
- MCFG_PALETTE_INIT_OVERRIDE(nbmj8688_state,mbmj8688_8bit)
+ MCFG_PALETTE_INIT_OWNER(nbmj8688_state,mbmj8688_8bit)
MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_8bit)
MACHINE_CONFIG_END
@@ -2814,9 +2815,10 @@ static MACHINE_CONFIG_DERIVED( NBMJDRV_65536, NBMJDRV_4096 )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 65536)
- MCFG_PALETTE_INIT_OVERRIDE(nbmj8688_state,mbmj8688_16bit)
+ MCFG_PALETTE_INIT_OWNER(nbmj8688_state,mbmj8688_16bit)
MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_hybrid_16bit)
MACHINE_CONFIG_END
@@ -2925,8 +2927,8 @@ static MACHINE_CONFIG_START( mbmj_p16bit_LCD, nbmj8688_state )
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_PALETTE_LENGTH(65536)
- MCFG_PALETTE_INIT_OVERRIDE(nbmj8688_state,mbmj8688_16bit)
+ MCFG_PALETTE_ADD("palette", 65536)
+ MCFG_PALETTE_INIT_OWNER(nbmj8688_state,mbmj8688_16bit)
MCFG_DEFAULT_LAYOUT(layout_nbmj8688)
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/nbmj8891.c b/src/mame/drivers/nbmj8891.c
index 99091637018..616dd04214c 100644
--- a/src/mame/drivers/nbmj8891.c
+++ b/src/mame/drivers/nbmj8891.c
@@ -2537,7 +2537,7 @@ static MACHINE_CONFIG_START( gionbana, nbmj8891_state )
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 8, 248-1)
MCFG_SCREEN_UPDATE_DRIVER(nbmj8891_state, screen_update_nbmj8891)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
diff --git a/src/mame/drivers/nbmj8900.c b/src/mame/drivers/nbmj8900.c
index 02335f02c36..344720fa916 100644
--- a/src/mame/drivers/nbmj8900.c
+++ b/src/mame/drivers/nbmj8900.c
@@ -315,7 +315,7 @@ static MACHINE_CONFIG_START( ohpaipee, nbmj8900_state )
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 8, 248-1)
MCFG_SCREEN_UPDATE_DRIVER(nbmj8900_state, screen_update_nbmj8900)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
diff --git a/src/mame/drivers/nbmj8991.c b/src/mame/drivers/nbmj8991.c
index fbb26ebe042..8f02150c545 100644
--- a/src/mame/drivers/nbmj8991.c
+++ b/src/mame/drivers/nbmj8991.c
@@ -1412,7 +1412,7 @@ static MACHINE_CONFIG_START( nbmjdrv1, nbmj8991_state ) // galkoku
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(nbmj8991_state, screen_update_nbmj8991_type1)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1447,7 +1447,7 @@ static MACHINE_CONFIG_START( nbmjdrv2, nbmj8991_state ) // pstadium
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(nbmj8991_state, screen_update_nbmj8991_type2)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/nbmj9195.c b/src/mame/drivers/nbmj9195.c
index 84c7b92e640..bd145898f3b 100644
--- a/src/mame/drivers/nbmj9195.c
+++ b/src/mame/drivers/nbmj9195.c
@@ -3179,7 +3179,7 @@ static MACHINE_CONFIG_START( NBMJDRV1, nbmj9195_state )
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(nbmj9195_state, screen_update_nbmj9195)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
@@ -3210,7 +3210,8 @@ static MACHINE_CONFIG_DERIVED( NBMJDRV3, NBMJDRV1 )
/* basic machine hardware */
/* video hardware */
- MCFG_PALETTE_LENGTH(512)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_VIDEO_START_OVERRIDE(nbmj9195_state,nbmj9195_nb22090)
MCFG_SCREEN_MODIFY("screen")
diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c
index 17433c16974..f324e075a23 100644
--- a/src/mame/drivers/nemesis.c
+++ b/src/mame/drivers/nemesis.c
@@ -1561,7 +1561,7 @@ static MACHINE_CONFIG_START( nemesis, nemesis_state )
MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE_ADD("gfxdecode", nemesis)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
@@ -1612,7 +1612,7 @@ static MACHINE_CONFIG_START( gx400, nemesis_state )
MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE_ADD("gfxdecode", nemesis)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
@@ -1665,7 +1665,7 @@ static MACHINE_CONFIG_START( konamigt, nemesis_state )
MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE_ADD("gfxdecode", nemesis)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
@@ -1716,7 +1716,7 @@ static MACHINE_CONFIG_START( rf2_gx400, nemesis_state )
MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE_ADD("gfxdecode", nemesis)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
@@ -1771,7 +1771,7 @@ static MACHINE_CONFIG_START( salamand, nemesis_state )
MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE_ADD("gfxdecode", nemesis)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
@@ -1817,7 +1817,7 @@ static MACHINE_CONFIG_START( blkpnthr, nemesis_state )
MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE_ADD("gfxdecode", nemesis)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
@@ -1859,7 +1859,7 @@ static MACHINE_CONFIG_START( citybomb, nemesis_state )
MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE_ADD("gfxdecode", nemesis)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
@@ -1905,7 +1905,7 @@ static MACHINE_CONFIG_START( nyanpani, nemesis_state )
MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE_ADD("gfxdecode", nemesis)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
@@ -1949,7 +1949,7 @@ static MACHINE_CONFIG_START( hcrash, nemesis_state )
MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE_ADD("gfxdecode", nemesis)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
@@ -2701,7 +2701,7 @@ static MACHINE_CONFIG_START( bubsys, nemesis_state )
MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE_ADD("gfxdecode", nemesis)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
diff --git a/src/mame/drivers/neoprint.c b/src/mame/drivers/neoprint.c
index 1f328649259..66df6fb7e44 100644
--- a/src/mame/drivers/neoprint.c
+++ b/src/mame/drivers/neoprint.c
@@ -113,10 +113,10 @@ void neoprint_state::draw_layer(bitmap_ind16 &bitmap,const rectangle &cliprect,i
UINT8 fx = (m_npvidram[i*2+1] & 0x0040);
UINT8 fy = (m_npvidram[i*2+1] & 0x0080);
- gfx->transpen(bitmap,cliprect,dat,color,fx,fy,x*16+scrollx,y*16-scrolly,0);
- gfx->transpen(bitmap,cliprect,dat,color,fx,fy,x*16+scrollx-512,y*16-scrolly,0);
- gfx->transpen(bitmap,cliprect,dat,color,fx,fy,x*16+scrollx,y*16-scrolly-512,0);
- gfx->transpen(bitmap,cliprect,dat,color,fx,fy,x*16+scrollx-512,y*16-scrolly-512,0);
+ gfx->transpen(m_palette,bitmap,cliprect,dat,color,fx,fy,x*16+scrollx,y*16-scrolly,0);
+ gfx->transpen(m_palette,bitmap,cliprect,dat,color,fx,fy,x*16+scrollx-512,y*16-scrolly,0);
+ gfx->transpen(m_palette,bitmap,cliprect,dat,color,fx,fy,x*16+scrollx,y*16-scrolly-512,0);
+ gfx->transpen(m_palette,bitmap,cliprect,dat,color,fx,fy,x*16+scrollx-512,y*16-scrolly-512,0);
i++;
//i&=0x3ff;
@@ -233,7 +233,7 @@ static ADDRESS_MAP_START( neoprint_map, AS_PROGRAM, 16, neoprint_state )
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x400000, 0x43ffff) AM_RAM AM_SHARE("npvidram")
- AM_RANGE(0x500000, 0x51ffff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x500000, 0x51ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x600000, 0x600001) AM_READWRITE(neoprint_audio_result_r,audio_command_w)
AM_RANGE(0x600002, 0x600003) AM_READWRITE(neoprint_calendar_r,neoprint_calendar_w)
AM_RANGE(0x600004, 0x600005) AM_READ_PORT("SYSTEM") AM_WRITENOP
@@ -271,7 +271,7 @@ WRITE16_MEMBER(neoprint_state::nprsp_palette_w)
pal_entry = ((offset & 0xfffe) >> 1) + ((offset & 0x20000) ? 0x8000 : 0);
- palette_set_color(machine(), pal_entry, rgb_t(r,g,b));
+ m_palette->set_pen_color(pal_entry, rgb_t(r,g,b));
}
}
@@ -488,8 +488,8 @@ static MACHINE_CONFIG_START( neoprint, neoprint_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(neoprint_state, screen_update_neoprint)
- MCFG_PALETTE_LENGTH(0x10000)
-
+ MCFG_PALETTE_ADD("palette", 0x10000)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -530,8 +530,8 @@ static MACHINE_CONFIG_START( nprsp, neoprint_state )
MCFG_MACHINE_RESET_OVERRIDE(neoprint_state,nprsp)
- MCFG_PALETTE_LENGTH(0x10000)
-
+ MCFG_PALETTE_ADD("palette", 0x10000)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/neptunp2.c b/src/mame/drivers/neptunp2.c
index 5bbb57917a9..9c8917fd344 100644
--- a/src/mame/drivers/neptunp2.c
+++ b/src/mame/drivers/neptunp2.c
@@ -104,7 +104,7 @@ static MACHINE_CONFIG_START( neptunp2, neptunp2_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_GFXDECODE_ADD("gfxdecode", neptunp2)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/news.c b/src/mame/drivers/news.c
index ec5290c4e37..71e81e385fc 100644
--- a/src/mame/drivers/news.c
+++ b/src/mame/drivers/news.c
@@ -23,7 +23,7 @@ static ADDRESS_MAP_START( news_map, AS_PROGRAM, 8, news_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* 4000-7fff is written to during startup, probably leftover code */
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(news_fgram_w) AM_SHARE("fgram")
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(news_bgram_w) AM_SHARE("bgram")
- AM_RANGE(0x9000, 0x91ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x9000, 0x91ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("DSW")
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("INPUTS")
AM_RANGE(0xc002, 0xc002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
@@ -140,8 +140,8 @@ static MACHINE_CONFIG_START( news, news_state )
MCFG_SCREEN_UPDATE_DRIVER(news_state, screen_update_news)
MCFG_GFXDECODE_ADD("gfxdecode", news)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/nexus3d.c b/src/mame/drivers/nexus3d.c
index 2e3568aff30..314dd094857 100644
--- a/src/mame/drivers/nexus3d.c
+++ b/src/mame/drivers/nexus3d.c
@@ -126,7 +126,7 @@ static MACHINE_CONFIG_START( nexus3d, nexus3d_state )
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(nexus3d_state, screen_update_nexus3d)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_SERFLASH_ADD("flash")
diff --git a/src/mame/drivers/nightgal.c b/src/mame/drivers/nightgal.c
index dc06762ccd7..9fbbd068120 100644
--- a/src/mame/drivers/nightgal.c
+++ b/src/mame/drivers/nightgal.c
@@ -103,7 +103,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(nightgal);
UINT32 screen_update_nightgal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
protected:
@@ -156,8 +156,8 @@ UINT32 nightgal_state::screen_update_nightgal(screen_device &screen, bitmap_ind1
for (x = cliprect.min_x; x <= cliprect.max_x; x += 2)
{
UINT32 srcpix = *src++;
- *dst++ = machine().pens[srcpix & 0xf];
- *dst++ = machine().pens[(srcpix >> 4) & 0xf];
+ *dst++ = m_palette->pen(srcpix & 0xf);
+ *dst++ = m_palette->pen((srcpix >> 4) & 0xf);
}
}
@@ -302,7 +302,7 @@ WRITE8_MEMBER(nightgal_state::sexygal_nsc_true_blitter_w)
}
/* guess: use the same resistor values as Crazy Climber (needs checking on the real HW) */
-void nightgal_state::palette_init()
+PALETTE_INIT_MEMBER(nightgal_state, nightgal)
{
const UINT8 *color_prom = memregion("proms")->base();
static const int resistances_rg[3] = { 1000, 470, 220 };
@@ -316,7 +316,7 @@ void nightgal_state::palette_init()
2, resistances_b, weights_b, 0, 0,
0, 0, 0, 0, 0);
- for (i = 0; i < machine().total_colors(); i++)
+ for (i = 0; i < palette.entries(); i++)
{
int bit0, bit1, bit2;
int r, g, b;
@@ -338,7 +338,7 @@ void nightgal_state::palette_init()
bit1 = BIT(color_prom[i], 7);
b = combine_2_weights(weights_b, bit0, bit1);
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -923,8 +923,8 @@ static MACHINE_CONFIG_START( royalqn, nightgal_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(nightgal_state, screen_update_nightgal)
- MCFG_PALETTE_LENGTH(0x10)
-
+ MCFG_PALETTE_ADD("palette", 0x10)
+ MCFG_PALETTE_INIT_OWNER(nightgal_state, nightgal)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c
index 1fdb7c55ecd..f53e697af47 100644
--- a/src/mame/drivers/ninjakd2.c
+++ b/src/mame/drivers/ninjakd2.c
@@ -369,7 +369,7 @@ static ADDRESS_MAP_START( ninjakd2_main_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0xc202, 0xc202) AM_WRITE(ninjakd2_bankselect_w)
AM_RANGE(0xc203, 0xc203) AM_WRITE(ninjakd2_sprite_overdraw_w)
AM_RANGE(0xc208, 0xc20c) AM_WRITE(ninjakd2_bg_ctrl_w)
- AM_RANGE(0xc800, 0xcdff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xc800, 0xcdff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(ninjakd2_fgvideoram_w) AM_SHARE("fg_videoram")
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(ninjakd2_bgvideoram_w) AM_SHARE("bg_videoram")
AM_RANGE(0xe000, 0xf9ff) AM_RAM
@@ -384,7 +384,7 @@ static ADDRESS_MAP_START( mnight_main_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0xda00, 0xdfff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(ninjakd2_bgvideoram_w) AM_SHARE("bg_videoram")
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(ninjakd2_fgvideoram_w) AM_SHARE("fg_videoram")
- AM_RANGE(0xf000, 0xf5ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf000, 0xf5ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("KEYCOIN")
AM_RANGE(0xf801, 0xf801) AM_READ_PORT("PAD1")
AM_RANGE(0xf802, 0xf802) AM_READ_PORT("PAD2")
@@ -401,7 +401,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( robokid_main_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xc000, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(ninjakd2_fgvideoram_w) AM_SHARE("fg_videoram")
AM_RANGE(0xd000, 0xd3ff) AM_READWRITE(robokid_bg2_videoram_r, robokid_bg2_videoram_w) // banked
AM_RANGE(0xd400, 0xd7ff) AM_READWRITE(robokid_bg1_videoram_r, robokid_bg1_videoram_w) // banked
@@ -442,7 +442,7 @@ static ADDRESS_MAP_START( omegaf_main_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0xc800, 0xcbff) AM_READWRITE(robokid_bg1_videoram_r, robokid_bg1_videoram_w) // banked
AM_RANGE(0xcc00, 0xcfff) AM_READWRITE(robokid_bg2_videoram_r, robokid_bg2_videoram_w) // banked
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(ninjakd2_fgvideoram_w) AM_SHARE("fg_videoram")
- AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd800, 0xdfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xe000, 0xf9ff) AM_RAM
AM_RANGE(0xfa00, 0xffff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
@@ -948,7 +948,8 @@ static MACHINE_CONFIG_START( ninjakd2, ninjakd2_state )
MCFG_SCREEN_VBLANK_DRIVER(ninjakd2_state, screen_eof_ninjakd2)
MCFG_GFXDECODE_ADD("gfxdecode", ninjakd2)
- MCFG_PALETTE_LENGTH(0x300)
+ MCFG_PALETTE_ADD("palette", 0x300)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1005,7 +1006,9 @@ static MACHINE_CONFIG_DERIVED( robokid, mnight )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", robokid)
- MCFG_PALETTE_LENGTH(0x400) // RAM is this large, but still only 0x300 colors used
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 0x400) // RAM is this large, but still only 0x300 colors used
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,robokid)
MCFG_SCREEN_MODIFY("screen")
diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c
index b566aecb155..d08d3bac98b 100644
--- a/src/mame/drivers/ninjaw.c
+++ b/src/mame/drivers/ninjaw.c
@@ -814,7 +814,7 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", ninjaw)
- MCFG_PALETTE_LENGTH(4096*3)
+ MCFG_PALETTE_ADD("palette", 4096*3)
MCFG_DEFAULT_LAYOUT(layout_darius)
MCFG_SCREEN_ADD("lscreen", RASTER)
@@ -846,9 +846,12 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state )
MCFG_TC0100SCN_ADD("tc0100scn_3", darius2_tc0100scn_intf_r)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr_1", darius2_tc0110pcr_intf_l)
+ MCFG_TC0110PCR_PALETTE("palette")
MCFG_TC0110PCR_ADD("tc0110pcr_2", darius2_tc0110pcr_intf_m)
+ MCFG_TC0110PCR_PALETTE("palette")
MCFG_TC0110PCR_ADD("tc0110pcr_3", darius2_tc0110pcr_intf_r)
-
+ MCFG_TC0110PCR_PALETTE("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -897,7 +900,7 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", ninjaw)
- MCFG_PALETTE_LENGTH(4096*3)
+ MCFG_PALETTE_ADD("palette", 4096*3)
MCFG_DEFAULT_LAYOUT(layout_darius)
MCFG_SCREEN_ADD("lscreen", RASTER)
@@ -929,8 +932,11 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state )
MCFG_TC0100SCN_ADD("tc0100scn_3", darius2_tc0100scn_intf_r)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr_1", darius2_tc0110pcr_intf_l)
+ MCFG_TC0110PCR_PALETTE("palette")
MCFG_TC0110PCR_ADD("tc0110pcr_2", darius2_tc0110pcr_intf_m)
+ MCFG_TC0110PCR_PALETTE("palette")
MCFG_TC0110PCR_ADD("tc0110pcr_3", darius2_tc0110pcr_intf_r)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/nitedrvr.c b/src/mame/drivers/nitedrvr.c
index 86f8204b23b..9e4495f7a83 100644
--- a/src/mame/drivers/nitedrvr.c
+++ b/src/mame/drivers/nitedrvr.c
@@ -154,9 +154,8 @@ static MACHINE_CONFIG_START( nitedrvr, nitedrvr_state )
MCFG_SCREEN_UPDATE_DRIVER(nitedrvr_state, screen_update_nitedrvr)
MCFG_GFXDECODE_ADD("gfxdecode", nitedrvr)
- MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c
index eb2d546d59b..73d604a3fed 100644
--- a/src/mame/drivers/niyanpai.c
+++ b/src/mame/drivers/niyanpai.c
@@ -966,7 +966,7 @@ static MACHINE_CONFIG_START( niyanpai, niyanpai_state )
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(niyanpai_state, screen_update_niyanpai)
- MCFG_PALETTE_LENGTH(256*3)
+ MCFG_PALETTE_ADD("palette", 256*3)
/* sound hardware */
diff --git a/src/mame/drivers/nmg5.c b/src/mame/drivers/nmg5.c
index 4f3dba0eb19..4c238036d49 100644
--- a/src/mame/drivers/nmg5.c
+++ b/src/mame/drivers/nmg5.c
@@ -354,7 +354,7 @@ WRITE8_MEMBER(nmg5_state::oki_banking_w)
static ADDRESS_MAP_START( nmg5_map, AS_PROGRAM, 16, nmg5_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x120000, 0x12ffff) AM_RAM
- AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x180000, 0x180001) AM_WRITE(nmg5_soundlatch_w)
AM_RANGE(0x180002, 0x180003) AM_WRITENOP
@@ -374,7 +374,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pclubys_map, AS_PROGRAM, 16, nmg5_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
- AM_RANGE(0x440000, 0x4407ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x440000, 0x4407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x460000, 0x4607ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x480000, 0x480001) AM_WRITE(nmg5_soundlatch_w)
AM_RANGE(0x480002, 0x480003) AM_WRITENOP
@@ -1020,8 +1020,8 @@ static MACHINE_CONFIG_START( nmg5, nmg5_state )
MCFG_SCREEN_UPDATE_DRIVER(nmg5_state, screen_update_nmg5)
MCFG_GFXDECODE_ADD("gfxdecode", nmg5)
- MCFG_PALETTE_LENGTH(0x400)
-
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 1);
@@ -1029,6 +1029,7 @@ static MACHINE_CONFIG_START( nmg5, nmg5_state )
decospr_device::set_flipallx(*device, 1);
decospr_device::set_offsets(*device, 0,8);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
/* sound hardware */
diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c
index 82683a14326..ae9ae793095 100644
--- a/src/mame/drivers/nmk16.c
+++ b/src/mame/drivers/nmk16.c
@@ -310,7 +310,7 @@ static ADDRESS_MAP_START( vandyke_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x080016, 0x080017) AM_WRITENOP /* IRQ enable? */
AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w)
AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write)
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08c000, 0x08c007) AM_WRITE(vandyke_scroll_w)
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
AM_RANGE(0x094000, 0x097fff) AM_RAM /* what is this? */
@@ -329,7 +329,7 @@ static ADDRESS_MAP_START( vandykeb_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w)
AM_RANGE(0x080010, 0x08001d) AM_WRITE(vandykeb_scroll_w) /* 10, 12, 1a, 1c */
AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write)
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08c000, 0x08c007) AM_WRITENOP /* just in case... */
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
AM_RANGE(0x094000, 0x097fff) AM_RAM /* what is this? */
@@ -347,7 +347,7 @@ static ADDRESS_MAP_START( manybloc_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
AM_RANGE(0x08001c, 0x08001d) AM_WRITENOP /* See notes at the top of the driver */
AM_RANGE(0x08001e, 0x08001f) AM_READWRITE(soundlatch2_word_r,soundlatch_word_w)
- AM_RANGE(0x088000, 0x0883ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0883ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
AM_RANGE(0x09c000, 0x09cfff) AM_RAM_WRITE(manybloc_scroll_w) AM_SHARE("scrollram")
AM_RANGE(0x09d000, 0x09d7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
@@ -366,7 +366,7 @@ static ADDRESS_MAP_START( tharrier_map, AS_PROGRAM, 16, nmk16_state )
// AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w)
AM_RANGE(0x08001e, 0x08001f) AM_WRITE(soundlatch_word_w)
AM_RANGE(0x080202, 0x080203) AM_READ_PORT("IN2")
- AM_RANGE(0x088000, 0x0883ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0883ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
// AM_RANGE(0x08c000, 0x08c007) AM_WRITE(nmk_scroll_w)
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM /* Unused txvideoram area? */
@@ -401,7 +401,7 @@ static ADDRESS_MAP_START( mustang_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number?
AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write)
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w)
AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ??
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
@@ -418,7 +418,7 @@ static ADDRESS_MAP_START( mustangb_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number?
AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("seibu_sound", seibu_sound_device, main_mustb_w)
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w)
AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ??
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
@@ -436,7 +436,7 @@ static ADDRESS_MAP_START( twinactn_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number?
AM_RANGE(0x08001e, 0x08001f) AM_WRITE(afega_soundlatch_w)
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w)
AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ??
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
@@ -457,7 +457,7 @@ static ADDRESS_MAP_START( acrobatm_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0xc0016, 0xc0017) AM_WRITENOP
AM_RANGE(0xc0018, 0xc0019) AM_WRITE(nmk_tilebank_w)
AM_RANGE(0xc001e, 0xc001f) AM_DEVWRITE("nmk004", nmk004_device, write)
- AM_RANGE(0xc4000, 0xc45ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xc4000, 0xc45ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xc8000, 0xc8007) AM_RAM_WRITE(nmk_scroll_w)
AM_RANGE(0xcc000, 0xcffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
AM_RANGE(0xd4000, 0xd47ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
@@ -473,7 +473,7 @@ static ADDRESS_MAP_START( bioship_map, AS_PROGRAM, 16, nmk16_state )
// AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write)
AM_RANGE(0x084000, 0x084001) AM_WRITE(bioship_bank_w)
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08c000, 0x08c007) AM_RAM_WRITE(bioshipbg_scroll_w)
AM_RANGE(0x08c010, 0x08c017) AM_RAM_WRITE(bioship_scroll_w)
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
@@ -652,7 +652,7 @@ static ADDRESS_MAP_START( hachamf_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w)
AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write)
/* Video Region */
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08c000, 0x08c007) AM_WRITE(nmk_scroll_w)
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
@@ -884,7 +884,7 @@ static ADDRESS_MAP_START( tdragon_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE(nmk_tilebank_w) /* Tile Bank ? */
AM_RANGE(0x0c001e, 0x0c001f) AM_DEVWRITE("nmk004", nmk004_device, write)
AM_RANGE(0x0c4000, 0x0c4007) AM_RAM_WRITE(nmk_scroll_w)
- AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
ADDRESS_MAP_END
@@ -907,7 +907,7 @@ static ADDRESS_MAP_START( tdragonb_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE(nmk_tilebank_w) /* Tile Bank ? */
AM_RANGE(0x0c001e, 0x0c001f) AM_DEVWRITE("seibu_sound", seibu_sound_device, main_mustb_w)
AM_RANGE(0x0c4000, 0x0c4007) AM_RAM_WRITE(nmk_scroll_w)
- AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
ADDRESS_MAP_END
@@ -923,7 +923,7 @@ static ADDRESS_MAP_START( ssmissin_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE(nmk_tilebank_w) /* Tile Bank ? */
AM_RANGE(0x0c001e, 0x0c001f) AM_WRITE(ssmissin_sound_w)
AM_RANGE(0x0c4000, 0x0c4007) AM_RAM_WRITE(nmk_scroll_w)
- AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
AM_RANGE(0x0d0000, 0x0d07ff) AM_MIRROR(0x1800) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") //mirror for airattck
ADDRESS_MAP_END
@@ -948,7 +948,7 @@ static ADDRESS_MAP_START( strahl_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x8001e, 0x8001f) AM_DEVWRITE("nmk004", nmk004_device, write)
AM_RANGE(0x84000, 0x84007) AM_RAM_WRITE(nmk_scroll_w)
AM_RANGE(0x88000, 0x88007) AM_RAM_WRITE(nmk_scroll_2_w)
- AM_RANGE(0x8c000, 0x8c7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x8c000, 0x8c7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x90000, 0x93fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
AM_RANGE(0x94000, 0x97fff) AM_RAM_WRITE(nmk_fgvideoram_w) AM_SHARE("nmk_fgvideoram")
AM_RANGE(0x9c000, 0x9c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
@@ -966,7 +966,7 @@ static ADDRESS_MAP_START( macross_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x080016, 0x080017) AM_WRITENOP /* IRQ enable? */
AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w)
AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write)
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08c000, 0x08c007) AM_RAM_WRITE(nmk_scroll_w)
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
@@ -984,7 +984,7 @@ static ADDRESS_MAP_START( gunnail_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x080016, 0x080017) AM_WRITENOP /* IRQ enable? */
AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w)
AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write)
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08c000, 0x08c1ff) AM_WRITEONLY AM_SHARE("scrollram")
AM_RANGE(0x08c200, 0x08c3ff) AM_WRITEONLY AM_SHARE("scrollramy")
AM_RANGE(0x08c400, 0x08c7ff) AM_WRITEONLY // unknown
@@ -1004,7 +1004,7 @@ static ADDRESS_MAP_START( macross2_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x100016, 0x100017) AM_WRITE(macross2_sound_reset_w) /* Z80 reset */
AM_RANGE(0x100018, 0x100019) AM_WRITE(nmk_tilebank_w)
AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to Z80 */
- AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x120000, 0x1207ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x130000, 0x1301ff) AM_RAM AM_SHARE("scrollram")
AM_RANGE(0x130200, 0x1303ff) AM_RAM AM_SHARE("scrollramy")
@@ -1030,7 +1030,7 @@ static ADDRESS_MAP_START( raphero_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x100016, 0x100017) AM_WRITENOP /* IRQ enable or z80 sound reset like in Macross 2? */
AM_RANGE(0x100018, 0x100019) AM_WRITE(nmk_tilebank_w)
AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to Z80 */
- AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x120000, 0x1207ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x130000, 0x1301ff) AM_RAM AM_SHARE("scrollram")
AM_RANGE(0x130200, 0x1303ff) AM_RAM AM_SHARE("scrollramy")
@@ -1092,7 +1092,7 @@ static ADDRESS_MAP_START( bjtwin_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x084000, 0x084001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x084010, 0x084011) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x084020, 0x08402f) AM_DEVWRITE("nmk112", nmk112_device, okibank_lsb_w)
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x094000, 0x094001) AM_WRITE(nmk_tilebank_w)
AM_RANGE(0x094002, 0x094003) AM_WRITENOP /* IRQ enable? */
AM_RANGE(0x09c000, 0x09cfff) AM_MIRROR(0x1000) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
@@ -1118,7 +1118,7 @@ static ADDRESS_MAP_START( atombjt_map, AS_PROGRAM, 16, nmk16_state )
// AM_RANGE(0x084000, 0x084001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff)
// AM_RANGE(0x084010, 0x084011) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff)
// AM_RANGE(0x084020, 0x08402f) AM_DEVWRITE("nmk112", nmk112_device, okibank_lsb_w)
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x094000, 0x094001) AM_WRITE(nmk_tilebank_w)
AM_RANGE(0x094002, 0x094003) AM_WRITENOP /* IRQ enable? */
AM_RANGE(0x09c000, 0x09cfff) AM_MIRROR(0x1000) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
@@ -3654,8 +3654,8 @@ static MACHINE_CONFIG_START( tharrier, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", tharrier)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
/* sound hardware */
@@ -3698,7 +3698,8 @@ static MACHINE_CONFIG_START( manybloc, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", tharrier)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
@@ -3738,7 +3739,8 @@ static MACHINE_CONFIG_START( mustang, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
@@ -3782,7 +3784,8 @@ static MACHINE_CONFIG_START( mustangb, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
@@ -3812,7 +3815,8 @@ static MACHINE_CONFIG_START( bioship, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", bioship)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,bioship)
@@ -3854,7 +3858,8 @@ static MACHINE_CONFIG_START( vandyke, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
@@ -3899,7 +3904,8 @@ static MACHINE_CONFIG_START( vandykeb, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
@@ -3930,7 +3936,8 @@ static MACHINE_CONFIG_START( acrobatm, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
@@ -3976,7 +3983,8 @@ static MACHINE_CONFIG_START( tdragonb, nmk16_state ) /* bootleg using Raiden
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
@@ -4003,7 +4011,8 @@ static MACHINE_CONFIG_START( tdragon, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
MCFG_TIMER_DRIVER_ADD_PERIODIC("coinsim", nmk16_state, tdragon_mcu_sim, attotime::from_hz(10000))
@@ -4049,7 +4058,8 @@ static MACHINE_CONFIG_START( ssmissin, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
@@ -4079,7 +4089,8 @@ static MACHINE_CONFIG_START( strahl, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_strahl)
MCFG_GFXDECODE_ADD("gfxdecode", strahl)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,strahl)
@@ -4121,7 +4132,8 @@ static MACHINE_CONFIG_START( hachamf, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
MCFG_TIMER_DRIVER_ADD_PERIODIC("coinsim", nmk16_state, hachamf_mcu_sim, attotime::from_hz(10000))
@@ -4164,7 +4176,8 @@ static MACHINE_CONFIG_START( macross, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
@@ -4206,7 +4219,8 @@ static MACHINE_CONFIG_START( blkheart, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
@@ -4248,7 +4262,8 @@ static MACHINE_CONFIG_START( gunnail, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,gunnail)
@@ -4294,7 +4309,8 @@ static MACHINE_CONFIG_START( macross2, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross2)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross2)
@@ -4337,7 +4353,8 @@ static MACHINE_CONFIG_START( tdragon2, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross2)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross2)
@@ -4379,7 +4396,8 @@ static MACHINE_CONFIG_START( raphero, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross2)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,raphero)
@@ -4421,7 +4439,8 @@ static MACHINE_CONFIG_START( bjtwin, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", bjtwin)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,bjtwin)
@@ -4456,7 +4475,8 @@ static MACHINE_CONFIG_START( atombjt, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", atombjt)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,bjtwin)
@@ -4748,7 +4768,7 @@ static ADDRESS_MAP_START( afega, AS_PROGRAM, 16, nmk16_state )
/**/AM_RANGE(0x084000, 0x084003) AM_RAM_WRITE(afega_scroll0_w) // Scroll on redhawkb (mirror or changed?..)
/**/AM_RANGE(0x084004, 0x084007) AM_RAM_WRITE(afega_scroll1_w) // Scroll on redhawkb (mirror or changed?..)
AM_RANGE(0x080020, 0x087fff) AM_WRITEONLY //
-/**/AM_RANGE(0x088000, 0x0885ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") // Palette
+/**/AM_RANGE(0x088000, 0x0885ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x088600, 0x08bfff) AM_WRITEONLY //
/**/AM_RANGE(0x08c000, 0x08c003) AM_RAM_WRITE(afega_scroll0_w) AM_SHARE("afega_scroll_0") // Scroll
/**/AM_RANGE(0x08c004, 0x08c007) AM_RAM_WRITE(afega_scroll1_w) AM_SHARE("afega_scroll_1") //
@@ -4917,7 +4937,8 @@ static MACHINE_CONFIG_START( stagger1, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", stagger1)
- MCFG_PALETTE_LENGTH(768)
+ MCFG_PALETTE_ADD("palette", 768)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,afega)
@@ -5002,7 +5023,8 @@ static MACHINE_CONFIG_START( firehawk, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", grdnstrm)
- MCFG_PALETTE_LENGTH(768)
+ MCFG_PALETTE_ADD("palette", 768)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,firehawk)
@@ -5037,7 +5059,8 @@ static MACHINE_CONFIG_START( twinactn, nmk16_state )
MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE_ADD("gfxdecode", macross)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross)
diff --git a/src/mame/drivers/norautp.c b/src/mame/drivers/norautp.c
index dc54d0047de..42519cf9214 100644
--- a/src/mame/drivers/norautp.c
+++ b/src/mame/drivers/norautp.c
@@ -577,7 +577,7 @@ UINT32 norautp_state::screen_update_norautp(screen_device &screen, bitmap_ind16
count = 0;
- bitmap.fill(machine().pens[0], cliprect); //black pen
+ bitmap.fill(m_palette->pen(0), cliprect); //black pen
for(y = 0; y < 8; y++)
{
@@ -589,7 +589,7 @@ UINT32 norautp_state::screen_update_norautp(screen_device &screen, bitmap_ind16
int tile = m_np_vram[count] & 0x3f;
int colour = (m_np_vram[count] & 0xc0) >> 6;
- m_gfxdecode->gfx(1)->opaque(bitmap,cliprect, tile, colour, 0, 0, (x * 32) + 8, y * 32);
+ m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect, tile, colour, 0, 0, (x * 32) + 8, y * 32);
count+=2;
}
@@ -601,7 +601,7 @@ UINT32 norautp_state::screen_update_norautp(screen_device &screen, bitmap_ind16
int tile = m_np_vram[count] & 0x3f;
int colour = (m_np_vram[count] & 0xc0) >> 6;
- m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, tile, colour, 0, 0, x * 16, y * 32);
+ m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, tile, colour, 0, 0, x * 16, y * 32);
count++;
}
@@ -612,17 +612,17 @@ UINT32 norautp_state::screen_update_norautp(screen_device &screen, bitmap_ind16
}
-void norautp_state::palette_init()
+PALETTE_INIT_MEMBER(norautp_state, norautp)
{
/* 1st gfx bank */
- palette_set_color(machine(), 0, rgb_t(0x00, 0x00, 0xff)); /* blue */
- palette_set_color(machine(), 1, rgb_t(0xff, 0xff, 0x00)); /* yellow */
- palette_set_color(machine(), 2, rgb_t(0x00, 0x00, 0xff)); /* blue */
- palette_set_color(machine(), 3, rgb_t(0xff, 0xff, 0xff)); /* white */
- palette_set_color(machine(), 4, rgb_t(0xff, 0xff, 0xff)); /* white */
- palette_set_color(machine(), 5, rgb_t(0xff, 0x00, 0x00)); /* red */
- palette_set_color(machine(), 6, rgb_t(0xff, 0xff, 0xff)); /* white */
- palette_set_color(machine(), 7, rgb_t(0x00, 0x00, 0x00)); /* black */
+ palette.set_pen_color(0, rgb_t(0x00, 0x00, 0xff)); /* blue */
+ palette.set_pen_color(1, rgb_t(0xff, 0xff, 0x00)); /* yellow */
+ palette.set_pen_color(2, rgb_t(0x00, 0x00, 0xff)); /* blue */
+ palette.set_pen_color(3, rgb_t(0xff, 0xff, 0xff)); /* white */
+ palette.set_pen_color(4, rgb_t(0xff, 0xff, 0xff)); /* white */
+ palette.set_pen_color(5, rgb_t(0xff, 0x00, 0x00)); /* red */
+ palette.set_pen_color(6, rgb_t(0xff, 0xff, 0xff)); /* white */
+ palette.set_pen_color(7, rgb_t(0x00, 0x00, 0x00)); /* black */
}
@@ -1273,7 +1273,8 @@ static MACHINE_CONFIG_START( noraut_base, norautp_state )
MCFG_GFXDECODE_ADD("gfxdecode", norautp)
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(norautp_state, norautp)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/nova2001.c b/src/mame/drivers/nova2001.c
index deac152df9e..22a7977392d 100644
--- a/src/mame/drivers/nova2001.c
+++ b/src/mame/drivers/nova2001.c
@@ -693,9 +693,10 @@ static MACHINE_CONFIG_START( nova2001, nova2001_state )
MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_nova2001)
MCFG_GFXDECODE_ADD("gfxdecode", nova2001)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_FORMAT(BBGGRRII)
- MCFG_PALETTE_INIT_OVERRIDE(nova2001_state,nova2001)
+ MCFG_PALETTE_INIT_OWNER(nova2001_state,nova2001)
MCFG_VIDEO_START_OVERRIDE(nova2001_state,nova2001)
/* sound hardware */
@@ -734,7 +735,8 @@ static MACHINE_CONFIG_START( ninjakun, nova2001_state )
MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_ninjakun)
MCFG_GFXDECODE_ADD("gfxdecode", ninjakun)
- MCFG_PALETTE_LENGTH(0x300)
+ MCFG_PALETTE_ADD("palette", 0x300)
+ MCFG_PALETTE_FORMAT(BBGGRRII)
MCFG_VIDEO_START_OVERRIDE(nova2001_state,ninjakun)
@@ -766,9 +768,10 @@ static MACHINE_CONFIG_START( pkunwar, nova2001_state )
MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_pkunwar)
MCFG_GFXDECODE_ADD("gfxdecode", pkunwar)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_FORMAT(BBGGRRII)
- MCFG_PALETTE_INIT_OVERRIDE(nova2001_state,nova2001)
+ MCFG_PALETTE_INIT_OWNER(nova2001_state,nova2001)
MCFG_VIDEO_START_OVERRIDE(nova2001_state,pkunwar)
/* sound hardware */
@@ -805,7 +808,8 @@ static MACHINE_CONFIG_START( raiders5, nova2001_state )
MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_raiders5)
MCFG_GFXDECODE_ADD("gfxdecode", raiders5)
- MCFG_PALETTE_LENGTH(0x300)
+ MCFG_PALETTE_ADD("palette", 0x300)
+ MCFG_PALETTE_FORMAT(BBGGRRII)
MCFG_VIDEO_START_OVERRIDE(nova2001_state,raiders5)
diff --git a/src/mame/drivers/nsmpoker.c b/src/mame/drivers/nsmpoker.c
index d0f9e086c92..696ef232361 100644
--- a/src/mame/drivers/nsmpoker.c
+++ b/src/mame/drivers/nsmpoker.c
@@ -83,7 +83,7 @@ public:
DECLARE_READ8_MEMBER(debug_r);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(nsmpoker);
virtual void machine_reset();
UINT32 screen_update_nsmpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(nsmpoker_interrupt);
@@ -141,7 +141,7 @@ UINT32 nsmpoker_state::screen_update_nsmpoker(screen_device &screen, bitmap_ind1
}
-void nsmpoker_state::palette_init()
+PALETTE_INIT_MEMBER(nsmpoker_state, nsmpoker)
{
}
@@ -432,8 +432,8 @@ static MACHINE_CONFIG_START( nsmpoker, nsmpoker_state )
MCFG_GFXDECODE_ADD("gfxdecode", nsmpoker)
- MCFG_PALETTE_LENGTH(8)
-
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(nsmpoker_state, nsmpoker)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/nwk-tr.c b/src/mame/drivers/nwk-tr.c
index 8a80f31ec63..5deba72661a 100644
--- a/src/mame/drivers/nwk-tr.c
+++ b/src/mame/drivers/nwk-tr.c
@@ -286,7 +286,7 @@ WRITE32_MEMBER(nwktr_state::paletteram32_w)
{
COMBINE_DATA(&m_generic_paletteram_32[offset]);
data = m_generic_paletteram_32[offset];
- palette_set_color_rgb(machine(), offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
+ m_palette->set_pen_color(offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
}
WRITE_LINE_MEMBER(nwktr_state::voodoo_vblank_0)
@@ -299,7 +299,7 @@ UINT32 nwktr_state::screen_update_nwktr(screen_device &screen, bitmap_rgb32 &bit
{
device_t *voodoo = machine().device("voodoo");
- bitmap.fill(machine().pens[0], cliprect);
+ bitmap.fill(m_palette->pen(0), cliprect);
voodoo_update(voodoo, bitmap, cliprect);
@@ -770,12 +770,13 @@ static MACHINE_CONFIG_START( nwktr, nwktr_state )
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
MCFG_SCREEN_UPDATE_DRIVER(nwktr_state, screen_update_nwktr)
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD("palette", 65536)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K001604_ADD("k001604", racingj_k001604_intf)
MCFG_K001604_GFXDECODE("gfxdecode")
+ MCFG_K001604_PALETTE("palette")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -792,6 +793,7 @@ static MACHINE_CONFIG_DERIVED( thrilld, nwktr )
MCFG_DEVICE_REMOVE("k001604")
MCFG_K001604_ADD("k001604", thrilld_k001604_intf)
MCFG_K001604_GFXDECODE("gfxdecode")
+ MCFG_K001604_PALETTE("palette")
MACHINE_CONFIG_END
/*****************************************************************************/
diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c
index 93dc373c68e..3ca54f24dc3 100644
--- a/src/mame/drivers/nycaptor.c
+++ b/src/mame/drivers/nycaptor.c
@@ -846,7 +846,8 @@ static MACHINE_CONFIG_START( nycaptor, nycaptor_state )
MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor)
MCFG_GFXDECODE_ADD("gfxdecode", nycaptor)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
@@ -904,7 +905,8 @@ static MACHINE_CONFIG_START( cyclshtg, nycaptor_state )
MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor)
MCFG_GFXDECODE_ADD("gfxdecode", nycaptor)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -958,7 +960,8 @@ static MACHINE_CONFIG_START( bronx, nycaptor_state )
MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor)
MCFG_GFXDECODE_ADD("gfxdecode", nycaptor)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/offtwall.c b/src/mame/drivers/offtwall.c
index c2af6264c2b..56b384a9987 100644
--- a/src/mame/drivers/offtwall.c
+++ b/src/mame/drivers/offtwall.c
@@ -370,7 +370,7 @@ static MACHINE_CONFIG_START( offtwall, offtwall_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", offtwall)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_ATARI_VAD_ADD("vad", "screen", WRITELINE(atarigen_state, scanline_int_write_line))
MCFG_ATARI_VAD_PLAYFIELD(offtwall_state, get_playfield_tile_info)
diff --git a/src/mame/drivers/ohmygod.c b/src/mame/drivers/ohmygod.c
index cd26b2c7a14..36d30eb18db 100644
--- a/src/mame/drivers/ohmygod.c
+++ b/src/mame/drivers/ohmygod.c
@@ -44,7 +44,7 @@ static ADDRESS_MAP_START( ohmygod_map, AS_PROGRAM, 16, ohmygod_state )
AM_RANGE(0x308000, 0x30ffff) AM_RAM
AM_RANGE(0x400000, 0x400001) AM_WRITE(ohmygod_scrollx_w)
AM_RANGE(0x400002, 0x400003) AM_WRITE(ohmygod_scrolly_w)
- AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x600000, 0x6007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x700000, 0x703fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x704000, 0x707fff) AM_RAM
AM_RANGE(0x708000, 0x70ffff) AM_RAM /* Work RAM */
@@ -331,8 +331,9 @@ static MACHINE_CONFIG_START( ohmygod, ohmygod_state )
MCFG_SCREEN_UPDATE_DRIVER(ohmygod_state, screen_update_ohmygod)
MCFG_GFXDECODE_ADD("gfxdecode", ohmygod)
- MCFG_PALETTE_LENGTH(1024)
-
+
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ojankohs.c b/src/mame/drivers/ojankohs.c
index b1e4222498f..db7c06d9bc8 100644
--- a/src/mame/drivers/ojankohs.c
+++ b/src/mame/drivers/ojankohs.c
@@ -859,7 +859,7 @@ static MACHINE_CONFIG_START( ojankohs, ojankohs_state )
MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs)
MCFG_GFXDECODE_ADD("gfxdecode", ojankohs)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankohs)
@@ -895,8 +895,8 @@ static MACHINE_CONFIG_START( ojankoy, ojankohs_state )
MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs)
MCFG_GFXDECODE_ADD("gfxdecode", ojankohs)
- MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT_OVERRIDE(ojankohs_state,ojankoy)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_OWNER(ojankohs_state,ojankoy)
MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankoy)
@@ -932,7 +932,7 @@ static MACHINE_CONFIG_START( ccasino, ojankohs_state )
MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs)
MCFG_GFXDECODE_ADD("gfxdecode", ojankohs)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankoy)
@@ -967,7 +967,7 @@ static MACHINE_CONFIG_START( ojankoc, ojankohs_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 8, 248-1)
MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankoc)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankoc)
diff --git a/src/mame/drivers/olibochu.c b/src/mame/drivers/olibochu.c
index 290f24489b0..5cf557947b4 100644
--- a/src/mame/drivers/olibochu.c
+++ b/src/mame/drivers/olibochu.c
@@ -87,7 +87,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(olibochu);
UINT32 screen_update_olibochu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(olibochu_scanline);
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
@@ -97,12 +97,12 @@ public:
-void olibochu_state::palette_init()
+PALETTE_INIT_MEMBER(olibochu_state, olibochu)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
- for (i = 0; i < machine().total_colors(); i++)
+ for (i = 0; i < palette.entries(); i++)
{
UINT8 pen;
int bit0, bit1, bit2, r, g, b;
@@ -131,7 +131,7 @@ void olibochu_state::palette_init()
bit1 = BIT(color_prom[pen], 7);
b = 0x4f * bit0 + 0xa8 * bit1;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -199,7 +199,7 @@ void olibochu_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
}
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,
code, color,
flipx, flipy,
sx, sy, 0);
@@ -225,7 +225,7 @@ void olibochu_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
}
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
code, color,
flipx, flipy,
sx, sy, 0);
@@ -469,8 +469,8 @@ static MACHINE_CONFIG_START( olibochu, olibochu_state )
MCFG_SCREEN_UPDATE_DRIVER(olibochu_state, screen_update_olibochu)
MCFG_GFXDECODE_ADD("gfxdecode", olibochu)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(olibochu_state, olibochu)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/oneshot.c b/src/mame/drivers/oneshot.c
index ad07c60c2ae..def23ab4580 100644
--- a/src/mame/drivers/oneshot.c
+++ b/src/mame/drivers/oneshot.c
@@ -101,7 +101,7 @@ WRITE16_MEMBER(oneshot_state::soundbank_w)
static ADDRESS_MAP_START( oneshot_map, AS_PROGRAM, 16, oneshot_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x087fff) AM_RAM
- AM_RANGE(0x0c0000, 0x0c07ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c0000, 0x0c07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x120000, 0x120fff) AM_RAM AM_SHARE("sprites")
AM_RANGE(0x180000, 0x180fff) AM_RAM_WRITE(oneshot_mid_videoram_w) AM_SHARE("mid_videoram") // some people , girl etc.
AM_RANGE(0x181000, 0x181fff) AM_RAM_WRITE(oneshot_fg_videoram_w) AM_SHARE("fg_videoram") // credits etc.
@@ -373,8 +373,8 @@ static MACHINE_CONFIG_START( oneshot, oneshot_state )
MCFG_SCREEN_UPDATE_DRIVER(oneshot_state, screen_update_oneshot)
MCFG_GFXDECODE_ADD("gfxdecode", oneshot)
- MCFG_PALETTE_LENGTH(0x400)
-
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/onetwo.c b/src/mame/drivers/onetwo.c
index 9ca528c9eac..0c14f63a8cb 100644
--- a/src/mame/drivers/onetwo.c
+++ b/src/mame/drivers/onetwo.c
@@ -151,7 +151,7 @@ void onetwo_state::set_color(int offset)
r = m_paletteram[offset] & 0x1f;
g = m_paletteram2[offset] & 0x1f;
b = ((m_paletteram[offset] & 0x60) >> 2) | ((m_paletteram2[offset] & 0xe0) >> 5);
- palette_set_color_rgb(machine(), offset, pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color(offset, pal5bit(r), pal5bit(g), pal5bit(b));
}
WRITE8_MEMBER(onetwo_state::palette1_w)
@@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( onetwo, onetwo_state )
MCFG_SCREEN_UPDATE_DRIVER(onetwo_state, screen_update_onetwo)
MCFG_GFXDECODE_ADD("gfxdecode", onetwo)
- MCFG_PALETTE_LENGTH(0x80)
+ MCFG_PALETTE_ADD("palette", 0x80)
/* sound hardware */
diff --git a/src/mame/drivers/opwolf.c b/src/mame/drivers/opwolf.c
index 140f6300daf..009e3658884 100644
--- a/src/mame/drivers/opwolf.c
+++ b/src/mame/drivers/opwolf.c
@@ -361,7 +361,7 @@ static ADDRESS_MAP_START( opwolf_map, AS_PROGRAM, 16, opwolf_state )
AM_RANGE(0x0ff802, 0x0ff803) AM_WRITE(opwolf_cchip_status_w)
AM_RANGE(0x0ffc00, 0x0ffc01) AM_WRITE(opwolf_cchip_bank_w)
AM_RANGE(0x100000, 0x107fff) AM_RAM
- AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x380000, 0x380003) AM_READ(opwolf_dsw_r) /* dip switches */
AM_RANGE(0x380000, 0x380003) AM_WRITE(opwolf_spritectrl_w) // usually 0x4, changes when you fire
AM_RANGE(0x3a0000, 0x3a0003) AM_READ(opwolf_lightgun_r) /* lightgun, read at $11e0/6 */
@@ -382,7 +382,7 @@ static ADDRESS_MAP_START( opwolfb_map, AS_PROGRAM, 16, opwolf_state )
AM_RANGE(0x0f0008, 0x0f000b) AM_READ(opwolf_in_r) /* coins and buttons */
AM_RANGE(0x0ff000, 0x0fffff) AM_READWRITE(cchip_r,cchip_w)
AM_RANGE(0x100000, 0x107fff) AM_RAM
- AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x380000, 0x380003) AM_READ(opwolf_dsw_r) /* dip switches */
AM_RANGE(0x380000, 0x380003) AM_WRITE(opwolf_spritectrl_w) // usually 0x4, changes when you fire
AM_RANGE(0x3a0000, 0x3a0003) AM_READ(opwolf_lightgun_r) /* lightgun, read at $11e0/6 */
@@ -736,12 +736,15 @@ static MACHINE_CONFIG_START( opwolf, opwolf_state )
MCFG_SCREEN_UPDATE_DRIVER(opwolf_state, screen_update_opwolf)
MCFG_GFXDECODE_ADD("gfxdecode", opwolf)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_PC080SN_ADD("pc080sn", opwolf_pc080sn_intf)
MCFG_PC080SN_GFXDECODE("gfxdecode")
+ MCFG_PC080SN_PALETTE("palette")
MCFG_PC090OJ_ADD("pc090oj", opwolf_pc090oj_intf)
MCFG_PC090OJ_GFXDECODE("gfxdecode")
+ MCFG_PC090OJ_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -792,12 +795,15 @@ static MACHINE_CONFIG_START( opwolfb, opwolf_state ) /* OSC clocks unknown for t
MCFG_SCREEN_UPDATE_DRIVER(opwolf_state, screen_update_opwolf)
MCFG_GFXDECODE_ADD("gfxdecode", opwolfb)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_PC080SN_ADD("pc080sn", opwolf_pc080sn_intf)
MCFG_PC080SN_GFXDECODE("gfxdecode")
+ MCFG_PC080SN_PALETTE("palette")
MCFG_PC090OJ_ADD("pc090oj", opwolf_pc090oj_intf)
MCFG_PC090OJ_GFXDECODE("gfxdecode")
+ MCFG_PC090OJ_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c
index 9f439a24f25..1d1596e89ac 100644
--- a/src/mame/drivers/orbit.c
+++ b/src/mame/drivers/orbit.c
@@ -302,8 +302,8 @@ static MACHINE_CONFIG_START( orbit, orbit_state )
MCFG_SCREEN_UPDATE_DRIVER(orbit_state, screen_update_orbit)
MCFG_GFXDECODE_ADD("gfxdecode", orbit)
- MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white)
+
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/othello.c b/src/mame/drivers/othello.c
index f3351491237..a96a3c2cd94 100644
--- a/src/mame/drivers/othello.c
+++ b/src/mame/drivers/othello.c
@@ -98,7 +98,7 @@ public:
DECLARE_WRITE8_MEMBER(n7751_rom_control_w);
virtual void machine_start();
virtual void machine_reset();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(othello);
};
@@ -125,22 +125,22 @@ static MC6845_UPDATE_ROW( update_row )
}
}
-void othello_state::palette_init()
+PALETTE_INIT_MEMBER(othello_state, othello)
{
int i;
- for (i = 0; i < machine().total_colors(); i++)
+ for (i = 0; i < palette.entries(); i++)
{
- palette_set_color(machine(), i, rgb_t(0xff, 0x00, 0xff));
+ palette.set_pen_color(i, rgb_t(0xff, 0x00, 0xff));
}
/* only colors 2,3,7,9,c,d,f are used */
- palette_set_color(machine(), 0x02, rgb_t(0x00, 0xff, 0x00));
- palette_set_color(machine(), 0x03, rgb_t(0xff, 0x7f, 0x00));
- palette_set_color(machine(), 0x07, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), 0x09, rgb_t(0xff, 0x00, 0x00));
- palette_set_color(machine(), 0x0c, rgb_t(0x00, 0x00, 0xff));
- palette_set_color(machine(), 0x0d, rgb_t(0x7f, 0x7f, 0x00));
- palette_set_color(machine(), 0x0f, rgb_t(0xff, 0xff, 0xff));
+ palette.set_pen_color(0x02, rgb_t(0x00, 0xff, 0x00));
+ palette.set_pen_color(0x03, rgb_t(0xff, 0x7f, 0x00));
+ palette.set_pen_color(0x07, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(0x09, rgb_t(0xff, 0x00, 0x00));
+ palette.set_pen_color(0x0c, rgb_t(0x00, 0x00, 0xff));
+ palette.set_pen_color(0x0d, rgb_t(0x7f, 0x7f, 0x00));
+ palette.set_pen_color(0x0f, rgb_t(0xff, 0xff, 0xff));
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, othello_state )
@@ -434,7 +434,8 @@ static MACHINE_CONFIG_START( othello, othello_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*6-1, 0*8, 64*8-1)
MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update)
- MCFG_PALETTE_LENGTH(0x10)
+ MCFG_PALETTE_ADD("palette", 0x10)
+ MCFG_PALETTE_INIT_OWNER(othello_state, othello)
MCFG_MC6845_ADD("crtc", H46505, "screen", 1000000 /* ? MHz */, h46505_intf) /* H46505 @ CPU clock */
diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c
index 62649aaeac2..cae3db70864 100644
--- a/src/mame/drivers/othunder.c
+++ b/src/mame/drivers/othunder.c
@@ -691,12 +691,13 @@ static MACHINE_CONFIG_START( othunder, othunder_state )
MCFG_SCREEN_UPDATE_DRIVER(othunder_state, screen_update_othunder)
MCFG_GFXDECODE_ADD("gfxdecode", othunder)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_TC0100SCN_ADD("tc0100scn", othunder_tc0100scn_intf)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr", othunder_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c
index b3be0a48f69..08c9cae0eca 100644
--- a/src/mame/drivers/overdriv.c
+++ b/src/mame/drivers/overdriv.c
@@ -152,7 +152,7 @@ WRITE16_MEMBER(overdriv_state::overdriv_cpuB_irq_y_w)
static ADDRESS_MAP_START( overdriv_master_map, AS_PROGRAM, 16, overdriv_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM /* work RAM */
- AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x080000, 0x080fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("INPUTS")
AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("SYSTEM")
AM_RANGE(0x0e0000, 0x0e0001) AM_WRITENOP /* unknown (always 0x30) */
@@ -345,8 +345,6 @@ static MACHINE_CONFIG_START( overdriv, overdriv_state )
MCFG_EEPROM_SERIAL_DATA(overdriv_default_eeprom, 128)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
@@ -355,16 +353,21 @@ static MACHINE_CONFIG_START( overdriv, overdriv_state )
MCFG_SCREEN_UPDATE_DRIVER(overdriv_state, screen_update_overdriv)
// MCFG_GFXDECODE_ADD("gfxdecode", overdriv)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K053246_ADD("k053246", overdriv_k053246_intf)
MCFG_K053246_GFXDECODE("gfxdecode")
+ MCFG_K053246_PALETTE("palette")
MCFG_K051316_ADD("k051316_1", overdriv_k051316_intf_1)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
MCFG_K051316_ADD("k051316_2", overdriv_k051316_intf_2)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
MCFG_K053251_ADD("k053251")
MCFG_K053250_ADD("k053250_1", "screen", 0, 0)
MCFG_K053250_ADD("k053250_2", "screen", 0, 0)
diff --git a/src/mame/drivers/pacland.c b/src/mame/drivers/pacland.c
index a9d54776810..9553f19d140 100644
--- a/src/mame/drivers/pacland.c
+++ b/src/mame/drivers/pacland.c
@@ -441,7 +441,8 @@ static MACHINE_CONFIG_START( pacland, pacland_state )
MCFG_SCREEN_UPDATE_DRIVER(pacland_state, screen_update_pacland)
MCFG_GFXDECODE_ADD("gfxdecode", pacland)
- MCFG_PALETTE_LENGTH(256*4+256*4+64*16)
+ MCFG_PALETTE_ADD("palette", 256*4+256*4+64*16)
+ MCFG_PALETTE_INIT_OWNER(pacland_state, pacland)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c
index a1ecf5c8c0a..5ad4764a0ff 100644
--- a/src/mame/drivers/pacman.c
+++ b/src/mame/drivers/pacman.c
@@ -3329,13 +3329,13 @@ static MACHINE_CONFIG_START( pacman, pacman_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", pacman)
- MCFG_PALETTE_LENGTH(128*4)
+ MCFG_PALETTE_ADD("palette", 128*4)
+ MCFG_PALETTE_INIT_OWNER(pacman_state,pacman)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacman)
- MCFG_PALETTE_INIT_OVERRIDE(pacman_state,pacman)
MCFG_VIDEO_START_OVERRIDE(pacman_state,pacman)
/* sound hardware */
diff --git a/src/mame/drivers/pandoras.c b/src/mame/drivers/pandoras.c
index 6a7a0eefc5c..275379285ad 100644
--- a/src/mame/drivers/pandoras.c
+++ b/src/mame/drivers/pandoras.c
@@ -355,8 +355,8 @@ static MACHINE_CONFIG_START( pandoras, pandoras_state )
MCFG_SCREEN_UPDATE_DRIVER(pandoras_state, screen_update_pandoras)
MCFG_GFXDECODE_ADD("gfxdecode", pandoras)
- MCFG_PALETTE_LENGTH(16*16+16*16)
-
+ MCFG_PALETTE_ADD("palette", 16*16+16*16)
+ MCFG_PALETTE_INIT_OWNER(pandoras_state, pandoras)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/panicr.c b/src/mame/drivers/panicr.c
index 5c8fbb9031e..f607defcb7e 100644
--- a/src/mame/drivers/panicr.c
+++ b/src/mame/drivers/panicr.c
@@ -108,7 +108,7 @@ public:
TILE_GET_INFO_MEMBER(get_txttile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(panicr);
UINT32 screen_update_panicr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(panicr_scanline);
void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect );
@@ -131,14 +131,11 @@ public:
***************************************************************************/
-void panicr_state::palette_init()
+PALETTE_INIT_MEMBER(panicr_state, panicr)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
- /* allocate the colortable */
- machine().colortable = colortable_alloc(machine(), 0x100);
-
/* create a lookup table for the palette */
for (i = 0; i < 0x100; i++)
{
@@ -146,7 +143,7 @@ void panicr_state::palette_init()
int g = pal4bit(color_prom[i + 0x100]);
int b = pal4bit(color_prom[i + 0x200]);
- colortable_palette_set_color(machine().colortable, i, rgb_t(r, g, b));
+ palette.set_indirect_color(i, rgb_t(r, g, b));
}
/* color_prom now points to the beginning of the lookup table */
@@ -162,7 +159,7 @@ void panicr_state::palette_init()
else
ctabentry = (color_prom[i] & 0x3f) | 0x80;
- colortable_entry_set_value(machine().colortable, i, ctabentry);
+ palette.set_pen_indirect(i, ctabentry);
}
// tile lookup table
@@ -170,9 +167,8 @@ void panicr_state::palette_init()
{
UINT8 ctabentry = (color_prom[i+0x100] & 0x3f) | 0x00;
- colortable_entry_set_value(machine().colortable, ((i&0x0f) + ((i&0xf0)<<1)) +0x200, ctabentry);
- colortable_entry_set_value(machine().colortable, ((i&0x0f) + ((i&0xf0)<<1)) +0x210, ctabentry);
-
+ palette.set_pen_indirect(((i&0x0f) + ((i&0xf0)<<1)) +0x200, ctabentry);
+ palette.set_pen_indirect(((i&0x0f) + ((i&0xf0)<<1)) +0x210, ctabentry);
}
// sprite lookup table
@@ -185,8 +181,7 @@ void panicr_state::palette_init()
else
ctabentry = (color_prom[i+0x200] & 0x3f) | 0x40;
- colortable_entry_set_value(machine().colortable, i+0x100, ctabentry);
-
+ palette.set_pen_indirect(i+0x100, ctabentry);
}
}
@@ -246,7 +241,7 @@ void panicr_state::video_start()
m_infotilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_infotile_info_2),this),TILEMAP_SCAN_ROWS,16,16,1024,16 );
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, m_gfxdecode->gfx(0), 0);
+ m_palette->configure_tilemap_groups(*m_txttilemap, *m_gfxdecode->gfx(0), 0);
}
void panicr_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect )
@@ -279,10 +274,10 @@ void panicr_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect )
color = spriteram[offs+1] & 0x0f;
sprite = spriteram[offs+0] | (*m_spritebank << 8);
- m_gfxdecode->gfx(2)->transmask(bitmap,cliprect,
+ m_gfxdecode->gfx(2)->transmask(m_palette,bitmap,cliprect,
sprite,
color,flipx,flipy,x,y,
- colortable_get_transpen_mask(machine().colortable, m_gfxdecode->gfx(2), color, 0));
+ m_palette->transpen_mask(*m_gfxdecode->gfx(2), color, 0));
}
}
@@ -295,7 +290,7 @@ UINT32 panicr_state::screen_update_panicr(screen_device &screen, bitmap_ind16 &b
// m_infotilemap_2->draw(screen, *m_temprender, m_tempbitmap_clip, 0,0);
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
m_txttilemap->mark_all_dirty();
@@ -627,8 +622,8 @@ static MACHINE_CONFIG_START( panicr, panicr_state )
MCFG_SCREEN_UPDATE_DRIVER(panicr_state, screen_update_panicr)
MCFG_GFXDECODE_ADD("gfxdecode", panicr)
- MCFG_PALETTE_LENGTH(256*4)
-
+ MCFG_PALETTE_ADD("palette", 256*4)
+ MCFG_PALETTE_INIT_OWNER(panicr_state, panicr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/paradise.c b/src/mame/drivers/paradise.c
index 4c4e91b776b..912fbd8f53e 100644
--- a/src/mame/drivers/paradise.c
+++ b/src/mame/drivers/paradise.c
@@ -715,7 +715,7 @@ static MACHINE_CONFIG_START( paradise, paradise_state )
MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_paradise)
MCFG_GFXDECODE_ADD("gfxdecode", paradise)
- MCFG_PALETTE_LENGTH(0x800 + 16)
+ MCFG_PALETTE_ADD("palette", 0x800 + 16)
/* sound hardware */
diff --git a/src/mame/drivers/paranoia.c b/src/mame/drivers/paranoia.c
index c5c3f10cc06..dcca9b8be81 100644
--- a/src/mame/drivers/paranoia.c
+++ b/src/mame/drivers/paranoia.c
@@ -201,9 +201,9 @@ static MACHINE_CONFIG_START( paranoia, paranoia_state )
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242)
MCFG_SCREEN_UPDATE_STATIC( pce )
- /* MCFG_GFXDECODE_ADD("gfxdecode", pce_gfxdecodeinfo ) */
- MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT( vce )
+ /* MCFG_GFXDECODE_ADD("gfxdecode", pce_gfxdecodeinfo ) */
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_LEGACY( vce )
MCFG_VIDEO_START( pce )
diff --git a/src/mame/drivers/parodius.c b/src/mame/drivers/parodius.c
index 6c3bba3b0ee..3215fc0c527 100644
--- a/src/mame/drivers/parodius.c
+++ b/src/mame/drivers/parodius.c
@@ -43,9 +43,9 @@ WRITE8_MEMBER(parodius_state::bankedram_w)
if (m_videobank & 0x01)
{
if (m_videobank & 0x04)
- paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset + 0x0800, data);
+ m_palette->write(space, offset + 0x0800, data);
else
- paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data);
+ m_palette->write(space, offset, data);
}
else
m_ram[offset] = data;
@@ -286,8 +286,6 @@ static MACHINE_CONFIG_START( parodius, parodius_state )
/* NMIs are triggered by the 053260 */
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -295,13 +293,17 @@ static MACHINE_CONFIG_START( parodius, parodius_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(parodius_state, screen_update_parodius)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", parodius_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K053245_ADD("k053245", parodius_k05324x_intf)
MCFG_K053245_GFXDECODE("gfxdecode")
+ MCFG_K053245_PALETTE("palette")
MCFG_K053251_ADD("k053251")
/* sound hardware */
diff --git a/src/mame/drivers/pasha2.c b/src/mame/drivers/pasha2.c
index c2f67e63d2a..8a4f456ebeb 100644
--- a/src/mame/drivers/pasha2.c
+++ b/src/mame/drivers/pasha2.c
@@ -155,10 +155,10 @@ WRITE16_MEMBER(pasha2_state::pasha2_palette_w)
offset &= 0xff;
color = (m_paletteram[offset] >> 8) | (m_paletteram[offset + 0x100] & 0xff00);
- palette_set_color_rgb(machine(), offset * 2 + 0, pal5bit(color), pal5bit(color >> 5), pal5bit(color >> 10));
+ m_palette->set_pen_color(offset * 2 + 0, pal5bit(color), pal5bit(color >> 5), pal5bit(color >> 10));
color = (m_paletteram[offset] & 0xff) | ((m_paletteram[offset + 0x100] & 0xff) << 8);
- palette_set_color_rgb(machine(), offset * 2 + 1, pal5bit(color), pal5bit(color >> 5), pal5bit(color >> 10));
+ m_palette->set_pen_color(offset * 2 + 1, pal5bit(color), pal5bit(color >> 5), pal5bit(color >> 10));
}
WRITE16_MEMBER(pasha2_state::vbuffer_set_w)
@@ -429,7 +429,7 @@ static MACHINE_CONFIG_START( pasha2, pasha2_state )
MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(pasha2_state, screen_update_pasha2)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
/* sound hardware */
diff --git a/src/mame/drivers/pass.c b/src/mame/drivers/pass.c
index 663fab985c0..fce8192b8f5 100644
--- a/src/mame/drivers/pass.c
+++ b/src/mame/drivers/pass.c
@@ -113,7 +113,7 @@ static ADDRESS_MAP_START( pass_map, AS_PROGRAM, 16, pass_state )
AM_RANGE(0x080000, 0x083fff) AM_RAM
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(pass_bg_videoram_w) AM_SHARE("bg_videoram") // Background
AM_RANGE(0x210000, 0x213fff) AM_RAM_WRITE(pass_fg_videoram_w) AM_SHARE("fg_videoram") // Foreground
- AM_RANGE(0x220000, 0x2203ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x220000, 0x2203ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x230000, 0x230001) AM_WRITE(soundlatch_word_w)
AM_RANGE(0x230100, 0x230101) AM_READ_PORT("DSW")
AM_RANGE(0x230200, 0x230201) AM_READ_PORT("INPUTS")
@@ -251,7 +251,8 @@ static MACHINE_CONFIG_START( pass, pass_state )
MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(pass_state, screen_update_pass)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_GFXDECODE_ADD("gfxdecode", pass)
diff --git a/src/mame/drivers/pastelg.c b/src/mame/drivers/pastelg.c
index ba1b1dfbf9b..4b7c67265d8 100644
--- a/src/mame/drivers/pastelg.c
+++ b/src/mame/drivers/pastelg.c
@@ -424,8 +424,8 @@ static MACHINE_CONFIG_START( pastelg, pastelg_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(pastelg_state, pastelg)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -480,7 +480,7 @@ static MACHINE_CONFIG_START( threeds, pastelg_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg)
- MCFG_PALETTE_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
/* sound hardware */
diff --git a/src/mame/drivers/pbaction.c b/src/mame/drivers/pbaction.c
index 00353f67116..3c3df6b5372 100644
--- a/src/mame/drivers/pbaction.c
+++ b/src/mame/drivers/pbaction.c
@@ -90,7 +90,7 @@ static ADDRESS_MAP_START( pbaction_map, AS_PROGRAM, 8, pbaction_state )
AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(pbaction_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(pbaction_colorram_w) AM_SHARE("colorram")
AM_RANGE(0xe000, 0xe07f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xe400, 0xe5ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe400, 0xe5ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xe600, 0xe600) AM_READ_PORT("P1") AM_WRITE(nmi_mask_w)
AM_RANGE(0xe601, 0xe601) AM_READ_PORT("P2")
AM_RANGE(0xe602, 0xe602) AM_READ_PORT("SYSTEM")
@@ -293,8 +293,8 @@ static MACHINE_CONFIG_START( pbaction, pbaction_state )
MCFG_SCREEN_UPDATE_DRIVER(pbaction_state, screen_update_pbaction)
MCFG_GFXDECODE_ADD("gfxdecode", pbaction)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pcktgal.c b/src/mame/drivers/pcktgal.c
index 2349bc4de3e..d527ad551f4 100644
--- a/src/mame/drivers/pcktgal.c
+++ b/src/mame/drivers/pcktgal.c
@@ -241,7 +241,8 @@ static MACHINE_CONFIG_START( pcktgal, pcktgal_state )
MCFG_SCREEN_UPDATE_DRIVER(pcktgal_state, screen_update_pcktgal)
MCFG_GFXDECODE_ADD("gfxdecode", pcktgal)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(pcktgal_state, pcktgal)
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
diff --git a/src/mame/drivers/pcxt.c b/src/mame/drivers/pcxt.c
index e0068502022..6b66ea5983f 100644
--- a/src/mame/drivers/pcxt.c
+++ b/src/mame/drivers/pcxt.c
@@ -160,7 +160,7 @@ UINT32 pcxt_state::screen_update_tetriskr(screen_device &screen, bitmap_rgb32 &b
color |= ((bg_rom[y*320/8+x+(pen_i*0x20000)+yi*0x400+m_bg_bank*0x2000+1] >> (7-xi)) & 1) << pen_i;
if(cliprect.contains(x*8+xi, y*8+yi))
- bitmap.pix32(y*8+yi, x*8+xi) = machine().pens[color];
+ bitmap.pix32(y*8+yi, x*8+xi) = m_palette->pen(color);
}
}
}
diff --git a/src/mame/drivers/pengo.c b/src/mame/drivers/pengo.c
index 5cd746c5956..6aa2ae3e19a 100644
--- a/src/mame/drivers/pengo.c
+++ b/src/mame/drivers/pengo.c
@@ -383,13 +383,13 @@ static MACHINE_CONFIG_START( pengo, pengo_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", pengo)
- MCFG_PALETTE_LENGTH(128*4)
+ MCFG_PALETTE_ADD("palette", 128*4)
+ MCFG_PALETTE_INIT_OWNER(pengo_state,pacman)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(pengo_state, screen_update_pacman)
- MCFG_PALETTE_INIT_OVERRIDE(pengo_state,pacman)
MCFG_VIDEO_START_OVERRIDE(pengo_state,pengo)
/* sound hardware */
diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c
index 115e01c20b6..54a5d9ef466 100644
--- a/src/mame/drivers/peplus.c
+++ b/src/mame/drivers/peplus.c
@@ -280,10 +280,9 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
UINT32 screen_update_peplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void peplus_load_superdata(const char *bank_name);
- void peplus_init();
+ DECLARE_PALETTE_INIT(peplus);
required_device<cpu_device> m_maincpu;
required_device<i2cmem_device> m_i2cmem;
required_device<gfxdecode_device> m_gfxdecode;
@@ -347,7 +346,7 @@ WRITE8_MEMBER(peplus_state::peplus_bgcolor_w)
{
int i;
- for (i = 0; i < machine().total_colors(); i++)
+ for (i = 0; i < m_palette->entries(); i++)
{
int bit0, bit1, bit2, r, g, b;
@@ -369,7 +368,7 @@ WRITE8_MEMBER(peplus_state::peplus_bgcolor_w)
bit2 = 0;
b = 0x21 * bit2 + 0x47 * bit1 + 0x97 * bit0;
- palette_set_color(machine(), (15 + (i*16)), rgb_t(r, g, b));
+ m_palette->set_pen_color((15 + (i*16)), rgb_t(r, g, b));
}
}
@@ -591,7 +590,7 @@ READ8_MEMBER(peplus_state::peplus_sf000_r)
/* Last Color in Every Palette is bgcolor */
READ8_MEMBER(peplus_state::peplus_bgcolor_r)
{
- return palette_get_color(machine(), 15); // Return bgcolor from First Palette
+ return m_palette->pen_color(15); // Return bgcolor from First Palette
}
READ8_MEMBER(peplus_state::peplus_dropdoor_r)
@@ -998,7 +997,7 @@ UINT32 peplus_state::screen_update_peplus(screen_device &screen, bitmap_ind16 &b
return 0;
}
-void peplus_state::palette_init()
+PALETTE_INIT_MEMBER(peplus_state, peplus)
{
const UINT8 *color_prom = memregion("proms")->base();
UINT32 proms_size = memregion("proms")->bytes();
@@ -1010,7 +1009,7 @@ void peplus_state::palette_init()
*/
int i;
- for (i = 0;i < machine().total_colors();i++)
+ for (i = 0;i < palette.entries();i++)
{
int bit0, bit1, bit2, r, g, b;
@@ -1032,7 +1031,7 @@ void peplus_state::palette_init()
bit2 = 0;
b = 0x21 * bit2 + 0x47 * bit1 + 0x97 * bit0;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -1345,7 +1344,8 @@ static MACHINE_CONFIG_START( peplus, peplus_state )
MCFG_SCREEN_UPDATE_DRIVER(peplus_state, screen_update_peplus)
MCFG_GFXDECODE_ADD("gfxdecode", peplus)
- MCFG_PALETTE_LENGTH(16*16*2)
+ MCFG_PALETTE_ADD("palette", 16*16*2)
+ MCFG_PALETTE_INIT_OWNER(peplus_state, peplus)
MCFG_MC6845_ADD("crtc", R6545_1, "screen", MC6845_CLOCK, mc6845_intf)
MCFG_X2404P_ADD("i2cmem")
diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c
index 9895986e2d9..789ec1948ca 100644
--- a/src/mame/drivers/pgm.c
+++ b/src/mame/drivers/pgm.c
@@ -316,7 +316,7 @@ ADDRESS_MAP_START( pgm_base_mem, AS_PROGRAM, 16, pgm_state )
AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_SHARE("sram") /* Main Ram */
AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_READWRITE(pgm_videoram_r, pgm_videoram_w) AM_SHARE("videoram") /* IGS023 VIDEO CHIP */
- AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa00000, 0xa011ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_SHARE("videoregs") /* Video Regs inc. Zoom Table */
AM_RANGE(0xc00002, 0xc00003) AM_READ(soundlatch_word_r) AM_WRITE(m68k_l1_w)
@@ -529,7 +529,8 @@ MACHINE_CONFIG_FRAGMENT( pgmbase )
MCFG_SCREEN_VBLANK_DRIVER(pgm_state, screen_eof_pgm)
MCFG_GFXDECODE_ADD("gfxdecode", pgm)
- MCFG_PALETTE_LENGTH(0x1200/2)
+ MCFG_PALETTE_ADD("palette", 0x1200/2)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(pgm_state,pgm)
diff --git a/src/mame/drivers/pgm2.c b/src/mame/drivers/pgm2.c
index fc59cb2b891..87ef4cff407 100644
--- a/src/mame/drivers/pgm2.c
+++ b/src/mame/drivers/pgm2.c
@@ -216,7 +216,7 @@ static MACHINE_CONFIG_START( pgm2, pgm2_state )
MCFG_SCREEN_VBLANK_DRIVER(pgm2_state, screen_eof_pgm2)
MCFG_GFXDECODE_ADD("gfxdecode", pgm2)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/phoenix.c b/src/mame/drivers/phoenix.c
index ab6aca43fb2..bc142a21a5c 100644
--- a/src/mame/drivers/phoenix.c
+++ b/src/mame/drivers/phoenix.c
@@ -462,9 +462,9 @@ static MACHINE_CONFIG_START( phoenix, phoenix_state )
MCFG_SCREEN_UPDATE_DRIVER(phoenix_state, screen_update_phoenix)
MCFG_GFXDECODE_ADD("gfxdecode", phoenix)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
- MCFG_PALETTE_INIT_OVERRIDE(phoenix_state,phoenix)
+ MCFG_PALETTE_INIT_OWNER(phoenix_state,phoenix)
MCFG_VIDEO_START_OVERRIDE(phoenix_state,phoenix)
/* sound hardware */
@@ -492,7 +492,8 @@ static MACHINE_CONFIG_DERIVED( pleiads, phoenix )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", pleiads)
- MCFG_PALETTE_INIT_OVERRIDE(phoenix_state,pleiads)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(phoenix_state,pleiads)
/* sound hardware */
MCFG_TMS36XX_REPLACE("tms", 247)
@@ -528,9 +529,9 @@ static MACHINE_CONFIG_START( survival, phoenix_state )
MCFG_SCREEN_UPDATE_DRIVER(phoenix_state, screen_update_phoenix)
MCFG_GFXDECODE_ADD("gfxdecode", phoenix)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
- MCFG_PALETTE_INIT_OVERRIDE(phoenix_state,survival)
+ MCFG_PALETTE_INIT_OWNER(phoenix_state,survival)
MCFG_VIDEO_START_OVERRIDE(phoenix_state,phoenix)
/* sound hardware */
diff --git a/src/mame/drivers/photon.c b/src/mame/drivers/photon.c
index a812a498c49..4b1ed32987a 100644
--- a/src/mame/drivers/photon.c
+++ b/src/mame/drivers/photon.c
@@ -215,8 +215,8 @@ static MACHINE_CONFIG_START( photon, photon_state )
MCFG_SCREEN_SIZE(256+32, 192+32)
MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1)
MCFG_SCREEN_UPDATE_DRIVER(photon_state, screen_update_photon)
- MCFG_PALETTE_LENGTH(16)
-
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_INIT_OWNER(pk8000_base_state, pk8000)
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 df3b2cb8643..32fc35bcbd6 100644
--- a/src/mame/drivers/photon2.c
+++ b/src/mame/drivers/photon2.c
@@ -35,7 +35,7 @@ public:
DECLARE_WRITE8_MEMBER(photon2_misc_w);
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(photon2);
UINT32 screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void screen_eof_spectrum(screen_device &screen, bool state);
TIMER_DEVICE_CALLBACK_MEMBER(spec_interrupt_hack);
@@ -89,9 +89,9 @@ static const rgb_t spectrum_palette[16] = {
};
/* Initialise the palette */
-void photon2_state::palette_init()
+PALETTE_INIT_MEMBER(photon2_state, photon2)
{
- palette_set_colors(machine(), 0, spectrum_palette, ARRAY_LENGTH(spectrum_palette));
+ palette.set_pen_colors(0, spectrum_palette, ARRAY_LENGTH(spectrum_palette));
}
void photon2_state::video_start()
@@ -336,8 +336,8 @@ static MACHINE_CONFIG_START( photon2, photon2_state )
MCFG_SCREEN_UPDATE_DRIVER(photon2_state, screen_update_spectrum)
MCFG_SCREEN_VBLANK_DRIVER(photon2_state, screen_eof_spectrum)
- MCFG_PALETTE_LENGTH(16)
-
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_INIT_OWNER(photon2_state, photon2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/photoply.c b/src/mame/drivers/photoply.c
index a6cef441bb3..50510dc7adc 100644
--- a/src/mame/drivers/photoply.c
+++ b/src/mame/drivers/photoply.c
@@ -123,7 +123,7 @@ static MACHINE_CONFIG_START( photoply, photoply_state )
MCFG_FRAGMENT_ADD( pcat_common )
- MCFG_GFXDECODE_ADD("gfxdecode", photoply )
+ MCFG_GFXDECODE_ADD("gfxdecode", photoply )
MCFG_IDE_CONTROLLER_ADD("ide", ata_devices, "hdd", NULL, true)
MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_2", pic8259_device, ir6_w))
diff --git a/src/mame/drivers/pinball2k.c b/src/mame/drivers/pinball2k.c
index f466347bc7c..809ad1698e5 100644
--- a/src/mame/drivers/pinball2k.c
+++ b/src/mame/drivers/pinball2k.c
@@ -136,7 +136,7 @@ void pinball2k_state::video_start()
int i;
for (i=0; i < 16; i++)
{
- palette_set_color(machine(), i, cga_palette[i]);
+ m_palette->set_pen_color(i, cga_palette[i]);
}
}
@@ -145,7 +145,7 @@ void pinball2k_state::draw_char(bitmap_rgb32 &bitmap, const rectangle &cliprect,
int i,j;
const UINT8 *dp;
int index = 0;
- const pen_t *pens = gfx->machine().pens;
+ const pen_t *pens = m_palette->pens();
dp = gfx->get_data(ch);
@@ -584,7 +584,7 @@ static MACHINE_CONFIG_START( mediagx, pinball2k_state )
MCFG_IDE_CONTROLLER_ADD("ide", ata_devices, "hdd", NULL, true)
MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_2", pic8259_device, ir6_w))
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -594,7 +594,7 @@ static MACHINE_CONFIG_START( mediagx, pinball2k_state )
MCFG_SCREEN_UPDATE_DRIVER(pinball2k_state, screen_update_mediagx)
MCFG_GFXDECODE_ADD("gfxdecode", CGA)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/pingpong.c b/src/mame/drivers/pingpong.c
index 24acd7026e3..408cb85100b 100644
--- a/src/mame/drivers/pingpong.c
+++ b/src/mame/drivers/pingpong.c
@@ -456,8 +456,8 @@ static MACHINE_CONFIG_START( pingpong, pingpong_state )
MCFG_SCREEN_UPDATE_DRIVER(pingpong_state, screen_update_pingpong)
MCFG_GFXDECODE_ADD("gfxdecode", pingpong)
- MCFG_PALETTE_LENGTH(64*4+64*4)
-
+ MCFG_PALETTE_ADD("palette", 64*4+64*4)
+ MCFG_PALETTE_INIT_OWNER(pingpong_state, pingpong)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pinkiri8.c b/src/mame/drivers/pinkiri8.c
index 7b23922f6fc..0184867c2f3 100644
--- a/src/mame/drivers/pinkiri8.c
+++ b/src/mame/drivers/pinkiri8.c
@@ -167,7 +167,7 @@ void pinkiri8_state::draw_background(bitmap_ind16 &bitmap, const rectangle &clip
attr = m_janshi_back_vram[count + 2] ^ 0xf0;
col = (attr >> 4) | 0x10;
- gfx->transpen(bitmap,cliprect, tile, col, 0, 0, x * 16, y * 8, 0);
+ gfx->transpen(m_palette,bitmap,cliprect, tile, col, 0, 0, x * 16, y * 8, 0);
count += 4;
}
@@ -313,7 +313,7 @@ void pinkiri8_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
{
for (int xx=0;xx<width;xx++)
{
- gfx->transpen(bitmap,cliprect,spr_offs+count,col,0,0,(x+xx*16) -7 ,(y+yy*8)-33,0);
+ gfx->transpen(m_palette,bitmap,cliprect,spr_offs+count,col,0,0,(x+xx*16) -7 ,(y+yy*8)-33,0);
count++;
}
}
@@ -330,7 +330,7 @@ UINT32 pinkiri8_state::screen_update_pinkiri8(screen_device &screen, bitmap_ind1
int r = (val & 0x001f) >> 0;
int g = (val & 0x03e0) >> 5;
int b = (val & 0x7c00) >> 10;
- palette_set_color_rgb(machine(), pen, pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color(pen, pal5bit(r), pal5bit(g), pal5bit(b));
}
@@ -358,7 +358,7 @@ UINT32 pinkiri8_state::screen_update_pinkiri8(screen_device &screen, bitmap_ind1
#endif
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
draw_background(bitmap, cliprect);
@@ -1095,7 +1095,7 @@ static MACHINE_CONFIG_START( pinkiri8, pinkiri8_state )
MCFG_SCREEN_UPDATE_DRIVER(pinkiri8_state, screen_update_pinkiri8)
MCFG_GFXDECODE_ADD("gfxdecode", pinkiri8)
- MCFG_PALETTE_LENGTH(0x2000)
+ MCFG_PALETTE_ADD("palette", 0x2000)
MCFG_DEVICE_ADD("janshivdp", JANSHIVDP, 0)
diff --git a/src/mame/drivers/pipedrm.c b/src/mame/drivers/pipedrm.c
index 71986a0a038..c86b748d11a 100644
--- a/src/mame/drivers/pipedrm.c
+++ b/src/mame/drivers/pipedrm.c
@@ -286,7 +286,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, pipedrm_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xc000, 0xcfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd000, 0xffff) AM_READWRITE(fromance_videoram_r, fromance_videoram_w) AM_SHARE("videoram")
ADDRESS_MAP_END
@@ -661,13 +661,15 @@ static MACHINE_CONFIG_START( pipedrm, pipedrm_state )
MCFG_SCREEN_UPDATE_DRIVER(pipedrm_state, screen_update_pipedrm)
MCFG_GFXDECODE_ADD("gfxdecode", pipedrm)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_GFXREGION(2)
MCFG_VSYSTEM_SPR2_SET_OFFSETS(-13, -6)
MCFG_VSYSTEM_SPR2_SET_PRITYPE(3)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(pipedrm_state,pipedrm)
@@ -706,7 +708,8 @@ static MACHINE_CONFIG_START( hatris, pipedrm_state )
MCFG_SCREEN_UPDATE_DRIVER(pipedrm_state, screen_update_fromance)
MCFG_GFXDECODE_ADD("gfxdecode", hatris)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(pipedrm_state,hatris)
diff --git a/src/mame/drivers/pipeline.c b/src/mame/drivers/pipeline.c
index f966deabf29..9619d5b7c8d 100644
--- a/src/mame/drivers/pipeline.c
+++ b/src/mame/drivers/pipeline.c
@@ -102,7 +102,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
TILE_GET_INFO_MEMBER(get_tile_info2);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(pipeline);
UINT32 screen_update_pipeline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(protection_deferred_w);
required_device<cpu_device> m_maincpu;
@@ -168,7 +168,7 @@ WRITE8_MEMBER(pipeline_state::vram2_w)
if(offset<0x300)
{
offset&=0xff;
- palette_set_color_rgb(machine(), offset, pal6bit(m_palram[offset]), pal6bit(m_palram[offset+0x100]), pal6bit(m_palram[offset+0x200]));
+ m_palette->set_pen_color(offset, pal6bit(m_palram[offset]), pal6bit(m_palram[offset+0x100]), pal6bit(m_palram[offset+0x200]));
}
}
}
@@ -369,7 +369,7 @@ static const ay8910_interface ay8910_config =
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
};
-void pipeline_state::palette_init()
+PALETTE_INIT_MEMBER(pipeline_state, pipeline)
{
int r,g,b,i,c;
UINT8 *prom1 = &memregion("proms")->base()[0x000];
@@ -384,7 +384,7 @@ void pipeline_state::palette_init()
r*=36;
g*=36;
b*=85;
- palette_set_color(machine(), 0x100+i, rgb_t(r, g, b));
+ palette.set_pen_color(0x100+i, rgb_t(r, g, b));
}
}
@@ -419,8 +419,8 @@ static MACHINE_CONFIG_START( pipeline, pipeline_state )
MCFG_GFXDECODE_ADD("gfxdecode", pipeline)
- MCFG_PALETTE_LENGTH(0x100+0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100+0x100)
+ MCFG_PALETTE_INIT_OWNER(pipeline_state, pipeline)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pirates.c b/src/mame/drivers/pirates.c
index d895de932d2..0c597b7c527 100644
--- a/src/mame/drivers/pirates.c
+++ b/src/mame/drivers/pirates.c
@@ -158,7 +158,7 @@ static ADDRESS_MAP_START( pirates_map, AS_PROGRAM, 16, pirates_state )
// AM_RANGE(0x500800, 0x50080f) AM_WRITENOP
AM_RANGE(0x600000, 0x600001) AM_WRITE(pirates_out_w)
AM_RANGE(0x700000, 0x700001) AM_WRITEONLY AM_SHARE("scroll") // scroll reg
- AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x800000, 0x803fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x900000, 0x90017f) AM_RAM // more of tilemaps ?
AM_RANGE(0x900180, 0x90137f) AM_RAM_WRITE(pirates_tx_tileram_w) AM_SHARE("tx_tileram")
AM_RANGE(0x901380, 0x902a7f) AM_RAM_WRITE(pirates_fg_tileram_w) AM_SHARE("fg_tileram")
@@ -263,7 +263,8 @@ static MACHINE_CONFIG_START( pirates, pirates_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(pirates_state, screen_update_pirates)
- MCFG_PALETTE_LENGTH(0x2000)
+ MCFG_PALETTE_ADD("palette", 0x2000)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pitnrun.c b/src/mame/drivers/pitnrun.c
index 1513b9513d6..74edb2bca7b 100644
--- a/src/mame/drivers/pitnrun.c
+++ b/src/mame/drivers/pitnrun.c
@@ -252,7 +252,8 @@ static MACHINE_CONFIG_START( pitnrun, pitnrun_state )
MCFG_SCREEN_UPDATE_DRIVER(pitnrun_state, screen_update_pitnrun)
MCFG_GFXDECODE_ADD("gfxdecode", pitnrun)
- MCFG_PALETTE_LENGTH(32*3)
+ MCFG_PALETTE_ADD("palette", 32*3)
+ MCFG_PALETTE_INIT_OWNER(pitnrun_state, pitnrun)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c
index b93e3c8c2e9..ce488e8aca3 100644
--- a/src/mame/drivers/pkscram.c
+++ b/src/mame/drivers/pkscram.c
@@ -119,7 +119,7 @@ static ADDRESS_MAP_START( pkscramble_map, AS_PROGRAM, 16, pkscram_state )
AM_RANGE(0x045000, 0x045fff) AM_RAM_WRITE(pkscramble_mdtilemap_w) AM_SHARE("mdtilemap_ram") // md tilemap (just a copy of fg?)
AM_RANGE(0x046000, 0x046fff) AM_RAM_WRITE(pkscramble_bgtilemap_w) AM_SHARE("bgtilemap_ram") // bg tilemap
AM_RANGE(0x047000, 0x047fff) AM_RAM // unused
- AM_RANGE(0x048000, 0x048fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x048000, 0x048fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x049000, 0x049001) AM_READ_PORT("DSW")
AM_RANGE(0x049004, 0x049005) AM_READ_PORT("INPUTS")
AM_RANGE(0x049008, 0x049009) AM_WRITE(pkscramble_output_w)
@@ -319,7 +319,8 @@ static MACHINE_CONFIG_START( pkscramble, pkscram_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
MCFG_SCREEN_UPDATE_DRIVER(pkscram_state, screen_update_pkscramble)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_GFXDECODE_ADD("gfxdecode", pkscram)
diff --git a/src/mame/drivers/pktgaldx.c b/src/mame/drivers/pktgaldx.c
index 4078074f1bd..a30f5a71492 100644
--- a/src/mame/drivers/pktgaldx.c
+++ b/src/mame/drivers/pktgaldx.c
@@ -165,7 +165,7 @@ static ADDRESS_MAP_START( pktgaldb_map, AS_PROGRAM, 16, pktgaldx_state )
AM_RANGE(0x300000, 0x30000f) AM_RAM // ??
- AM_RANGE(0x330000, 0x330bff) AM_RAM_WRITE(paletteram_xbgr_word_be_w) AM_SHARE("paletteram") // extra colours?
+ AM_RANGE(0x330000, 0x330bff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // extra colours?
ADDRESS_MAP_END
@@ -341,17 +341,21 @@ static MACHINE_CONFIG_START( pktgaldx, pktgaldx_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldx)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(XBGR)
+
MCFG_GFXDECODE_ADD("gfxdecode", pktgaldx)
MCFG_DECOCOMN_ADD("deco_common")
MCFG_DECO16IC_ADD("tilegen1", pktgaldx_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 2);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO104_ADD("ioprot104")
MCFG_DECO146_SET_INTERFACE_SCRAMBLE(8,9, 4,5,6,7 ,1,0,3,2) // hopefully this is correct, nothing else uses this arrangement!
@@ -385,7 +389,9 @@ static MACHINE_CONFIG_START( pktgaldb, pktgaldx_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldb)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(XBGR)
+
MCFG_GFXDECODE_ADD("gfxdecode", bootleg)
/* sound hardware */
diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c
index 7f3752a816e..205533b8df1 100644
--- a/src/mame/drivers/playch10.c
+++ b/src/mame/drivers/playch10.c
@@ -679,7 +679,8 @@ static MACHINE_CONFIG_START( playch10, playch10_state )
// video hardware
MCFG_GFXDECODE_ADD("gfxdecode", playch10)
- MCFG_PALETTE_LENGTH(256+8*4*16)
+ MCFG_PALETTE_ADD("palette", 256+8*4*16)
+ MCFG_PALETTE_INIT_OWNER(playch10_state, playch10)
MCFG_DEFAULT_LAYOUT(layout_dualhuov)
MCFG_SCREEN_ADD("top", RASTER)
diff --git a/src/mame/drivers/playmark.c b/src/mame/drivers/playmark.c
index eb34e3bb05c..657af486f09 100644
--- a/src/mame/drivers/playmark.c
+++ b/src/mame/drivers/playmark.c
@@ -250,7 +250,7 @@ static ADDRESS_MAP_START( wbeachvl_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x71001a, 0x71001b) AM_READ_PORT("P4")
// AM_RANGE(0x71001c, 0x71001d) AM_READ(playmark_snd_status???)
// AM_RANGE(0x71001e, 0x71001f) AM_WRITENOP//playmark_snd_command_w },
- AM_RANGE(0x780000, 0x780fff) AM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x780000, 0x780fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -1059,7 +1059,8 @@ static MACHINE_CONFIG_START( bigtwin, playmark_state )
MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwin)
MCFG_GFXDECODE_ADD("gfxdecode", playmark)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
MCFG_VIDEO_START_OVERRIDE(playmark_state,bigtwin)
@@ -1093,7 +1094,8 @@ static MACHINE_CONFIG_START( bigtwinb, playmark_state )
MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwinb)
MCFG_GFXDECODE_ADD("gfxdecode", bigtwinb)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
MCFG_VIDEO_START_OVERRIDE(playmark_state,bigtwinb)
@@ -1130,7 +1132,8 @@ static MACHINE_CONFIG_START( wbeachvl, playmark_state )
MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_wbeachvl)
MCFG_GFXDECODE_ADD("gfxdecode", wbeachvl)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
MCFG_VIDEO_START_OVERRIDE(playmark_state,wbeachvl)
@@ -1164,7 +1167,8 @@ static MACHINE_CONFIG_START( excelsr, playmark_state )
MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_excelsr)
MCFG_GFXDECODE_ADD("gfxdecode", excelsr)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
MCFG_VIDEO_START_OVERRIDE(playmark_state,excelsr)
@@ -1201,7 +1205,8 @@ static MACHINE_CONFIG_START( hotmind, playmark_state )
MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes)
MCFG_GFXDECODE_ADD("gfxdecode", hrdtimes)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
MCFG_VIDEO_START_OVERRIDE(playmark_state,hotmind)
@@ -1239,7 +1244,8 @@ static MACHINE_CONFIG_START( hrdtimes, playmark_state )
MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes)
MCFG_GFXDECODE_ADD("gfxdecode", hrdtimes)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
MCFG_VIDEO_START_OVERRIDE(playmark_state,hrdtimes)
diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c
index e42d824d4b9..c8e5b688fdc 100644
--- a/src/mame/drivers/plygonet.c
+++ b/src/mame/drivers/plygonet.c
@@ -298,7 +298,7 @@ WRITE32_MEMBER(polygonet_state::plygonet_palette_w)
g = (m_generic_paletteram_32[offset] >> 8) & 0xff;
b = (m_generic_paletteram_32[offset] >> 0) & 0xff;
- palette_set_color(machine(),offset,rgb_t(r,g,b));
+ m_palette->set_pen_color(offset,rgb_t(r,g,b));
}
@@ -676,7 +676,7 @@ static MACHINE_CONFIG_START( plygonet, polygonet_state )
MCFG_SCREEN_VISIBLE_AREA(64, 64+368-1, 0, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(polygonet_state, screen_update_polygonet)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD("palette", 32768)
MCFG_K053936_ADD("k053936", polygonet_k053936_intf)
diff --git a/src/mame/drivers/pokechmp.c b/src/mame/drivers/pokechmp.c
index bad860f112e..51fec6fe009 100644
--- a/src/mame/drivers/pokechmp.c
+++ b/src/mame/drivers/pokechmp.c
@@ -92,8 +92,8 @@ static ADDRESS_MAP_START( pokechmp_map, AS_PROGRAM, 8, pokechmp_state )
AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW") AM_WRITE(pokechmp_bank_w)
/* Extra on Poke Champ (not on Pocket Gal) */
- AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
- AM_RANGE(0x2400, 0x27ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w) AM_SHARE("paletteram")
+ AM_RANGE(0x2000, 0x23ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
+ AM_RANGE(0x2400, 0x27ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("fixed")
@@ -221,8 +221,8 @@ static MACHINE_CONFIG_START( pokechmp, pokechmp_state )
MCFG_SCREEN_UPDATE_DRIVER(pokechmp_state, screen_update_pokechmp)
MCFG_GFXDECODE_ADD("gfxdecode", pokechmp)
- MCFG_PALETTE_LENGTH(0x400)
-
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/poker72.c b/src/mame/drivers/poker72.c
index f4acdba9487..172775dab93 100644
--- a/src/mame/drivers/poker72.c
+++ b/src/mame/drivers/poker72.c
@@ -34,7 +34,7 @@ public:
DECLARE_DRIVER_INIT(poker72);
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(poker72);
UINT32 screen_update_poker72(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -62,7 +62,7 @@ UINT32 poker72_state::screen_update_poker72(screen_device &screen, bitmap_ind16
tile|= m_tile_bank << 12;
- m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,tile,color,fx,fy,x*8,y*8);
+ m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,tile,color,fx,fy,x*8,y*8);
count+=2;
}
@@ -80,7 +80,7 @@ WRITE8_MEMBER(poker72_state::poker72_paletteram_w)
g = m_pal[(offset & 0x3ff)+0x400] & 0x3f;
b = m_pal[(offset & 0x3ff)+0x800] & 0x3f;
- palette_set_color_rgb( machine(), offset & 0x3ff, pal6bit(r), pal6bit(g), pal6bit(b));
+ m_palette->set_pen_color( offset & 0x3ff, pal6bit(r), pal6bit(g), pal6bit(b));
}
WRITE8_MEMBER(poker72_state::output_w)
@@ -322,7 +322,7 @@ static GFXDECODE_START( poker72 )
GFXDECODE_END
/* default 444 palette for debug purpose */
-void poker72_state::palette_init()
+PALETTE_INIT_MEMBER(poker72_state, poker72)
{
int x,r,g,b;
@@ -331,7 +331,7 @@ void poker72_state::palette_init()
r = (x & 0xf)*0x10;
g = ((x & 0x3c)>>2)*0x10;
b = ((x & 0xf0)>>4)*0x10;
- palette_set_color(machine(),x,rgb_t(r,g,b));
+ palette.set_pen_color(x,rgb_t(r,g,b));
}
}
@@ -370,8 +370,8 @@ static MACHINE_CONFIG_START( poker72, poker72_state )
MCFG_SCREEN_UPDATE_DRIVER(poker72_state, screen_update_poker72)
MCFG_GFXDECODE_ADD("gfxdecode", poker72)
- MCFG_PALETTE_LENGTH(0xe00)
-
+ MCFG_PALETTE_ADD("palette", 0xe00)
+ MCFG_PALETTE_INIT_OWNER(poker72_state, poker72)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c
index 8f9c2e4cd83..fa768b53cfb 100644
--- a/src/mame/drivers/polepos.c
+++ b/src/mame/drivers/polepos.c
@@ -919,10 +919,10 @@ static MACHINE_CONFIG_START( polepos, polepos_state )
MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update_polepos)
MCFG_GFXDECODE_ADD("gfxdecode", polepos)
- MCFG_PALETTE_LENGTH(0x0f00)
+ MCFG_PALETTE_ADD("palette", 0x0f00)
MCFG_DEFAULT_LAYOUT(layout_polepos)
- MCFG_PALETTE_INIT_OVERRIDE(polepos_state,polepos)
+ MCFG_PALETTE_INIT_OWNER(polepos_state,polepos)
MCFG_VIDEO_START_OVERRIDE(polepos_state,polepos)
/* sound hardware */
@@ -998,10 +998,10 @@ static MACHINE_CONFIG_START( topracern, polepos_state )
MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update_polepos)
MCFG_GFXDECODE_ADD("gfxdecode", polepos)
- MCFG_PALETTE_LENGTH(0x0f00)
+ MCFG_PALETTE_ADD("palette", 0x0f00)
MCFG_DEFAULT_LAYOUT(layout_topracer)
- MCFG_PALETTE_INIT_OVERRIDE(polepos_state,polepos)
+ MCFG_PALETTE_INIT_OWNER(polepos_state,polepos)
MCFG_VIDEO_START_OVERRIDE(polepos_state,polepos)
/* sound hardware */
diff --git a/src/mame/drivers/policetr.c b/src/mame/drivers/policetr.c
index c8ba9c262e2..d3e870e4b3c 100644
--- a/src/mame/drivers/policetr.c
+++ b/src/mame/drivers/policetr.c
@@ -410,7 +410,7 @@ static MACHINE_CONFIG_START( policetr, policetr_state )
MCFG_SCREEN_VISIBLE_AREA(0, 393, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(policetr_state, screen_update_policetr)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
diff --git a/src/mame/drivers/polyplay.c b/src/mame/drivers/polyplay.c
index e952c1209b8..2b55a37ef23 100644
--- a/src/mame/drivers/polyplay.c
+++ b/src/mame/drivers/polyplay.c
@@ -286,8 +286,8 @@ static MACHINE_CONFIG_START( polyplay, polyplay_state )
MCFG_SCREEN_UPDATE_DRIVER(polyplay_state, screen_update_polyplay)
MCFG_GFXDECODE_ADD("gfxdecode", polyplay)
- MCFG_PALETTE_LENGTH(10)
-
+ MCFG_PALETTE_ADD("palette", 10)
+ MCFG_PALETTE_INIT_OWNER(polyplay_state, polyplay)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/poolshrk.c b/src/mame/drivers/poolshrk.c
index f4bb0e1dc2b..71d06d18b58 100644
--- a/src/mame/drivers/poolshrk.c
+++ b/src/mame/drivers/poolshrk.c
@@ -202,12 +202,12 @@ static GFXDECODE_START( poolshrk )
GFXDECODE_END
-void poolshrk_state::palette_init()
+PALETTE_INIT_MEMBER(poolshrk_state, poolshrk)
{
- palette_set_color(machine(),0,rgb_t(0x7F, 0x7F, 0x7F));
- palette_set_color(machine(),1,rgb_t(0xFF, 0xFF, 0xFF));
- palette_set_color(machine(),2,rgb_t(0x7F, 0x7F, 0x7F));
- palette_set_color(machine(),3,rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(0,rgb_t(0x7F, 0x7F, 0x7F));
+ palette.set_pen_color(1,rgb_t(0xFF, 0xFF, 0xFF));
+ palette.set_pen_color(2,rgb_t(0x7F, 0x7F, 0x7F));
+ palette.set_pen_color(3,rgb_t(0x00, 0x00, 0x00));
}
@@ -226,7 +226,8 @@ static MACHINE_CONFIG_START( poolshrk, poolshrk_state )
MCFG_SCREEN_UPDATE_DRIVER(poolshrk_state, screen_update_poolshrk)
MCFG_GFXDECODE_ADD("gfxdecode", poolshrk)
- MCFG_PALETTE_LENGTH(4)
+ MCFG_PALETTE_ADD("palette", 4)
+ MCFG_PALETTE_INIT_OWNER(poolshrk_state, poolshrk)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pooyan.c b/src/mame/drivers/pooyan.c
index 6ff011bb0a9..2af7132d0ff 100644
--- a/src/mame/drivers/pooyan.c
+++ b/src/mame/drivers/pooyan.c
@@ -198,8 +198,8 @@ static MACHINE_CONFIG_START( pooyan, pooyan_state )
MCFG_SCREEN_UPDATE_DRIVER(pooyan_state, screen_update_pooyan)
MCFG_GFXDECODE_ADD("gfxdecode", pooyan)
- MCFG_PALETTE_LENGTH(16*16+16*16)
-
+ MCFG_PALETTE_ADD("palette", 16*16+16*16)
+ MCFG_PALETTE_INIT_OWNER(pooyan_state, pooyan)
/* sound hardware */
MCFG_FRAGMENT_ADD(timeplt_sound)
diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c
index 4e58f4ebb15..bb8c7430efa 100644
--- a/src/mame/drivers/popeye.c
+++ b/src/mame/drivers/popeye.c
@@ -391,8 +391,8 @@ static MACHINE_CONFIG_START( skyskipr, popeye_state )
MCFG_SCREEN_UPDATE_DRIVER(popeye_state, screen_update_popeye)
MCFG_GFXDECODE_ADD("gfxdecode", popeye)
- MCFG_PALETTE_LENGTH(16+16*2+64*4)
-
+ MCFG_PALETTE_ADD("palette", 16+16*2+64*4)
+ MCFG_PALETTE_INIT_OWNER(popeye_state, popeye)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -425,7 +425,8 @@ static MACHINE_CONFIG_DERIVED( popeyebl, popeye )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(popeyebl_map)
- MCFG_PALETTE_INIT_OVERRIDE(popeye_state,popeyebl)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(popeye_state,popeyebl)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/popobear.c b/src/mame/drivers/popobear.c
index 8c57efe2de8..660a4368e78 100644
--- a/src/mame/drivers/popobear.c
+++ b/src/mame/drivers/popobear.c
@@ -222,7 +222,7 @@ void popobear_state::video_start()
/* create the char set (gfx will then be updated dynamically from RAM) */
- m_gfxdecode->set_gfx(m_gfx_index, auto_alloc(machine(), gfx_element(machine(), popobear_char_layout, (UINT8 *)m_vram_rearranged, machine().total_colors() / 16, 0)));
+ m_gfxdecode->set_gfx(m_gfx_index, auto_alloc(machine(), gfx_element(machine(), popobear_char_layout, (UINT8 *)m_vram_rearranged, m_palette->entries() / 16, 0)));
m_bg_tilemap[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(popobear_state::get_popobear_bg0_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
m_bg_tilemap[1] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(popobear_state::get_popobear_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
@@ -338,7 +338,7 @@ void popobear_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect
// colours on game over screen are still wrong without the weird param kludge above
if (pix&0x3f)
{
- bitmap.pix16(y_draw, x_draw) = machine().pens[((pix+(add_it))&0xff)+0x100];
+ bitmap.pix16(y_draw, x_draw) = m_palette->pen(((pix+(add_it))&0xff)+0x100);
}
}
@@ -491,7 +491,7 @@ static ADDRESS_MAP_START( popobear_mem, AS_PROGRAM, 16, popobear_state )
AM_RANGE(0x480034, 0x480035) AM_RAM // coin counter or coin lockout
AM_RANGE(0x48003a, 0x48003b) AM_RAM //AM_READ(popo_48003a_r) AM_WRITE(popo_48003a_w)
- AM_RANGE(0x480400, 0x4807ff) AM_RAM AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x480400, 0x4807ff) AM_RAM AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN0")
AM_RANGE(0x520000, 0x520001) AM_READ_PORT("IN1")
@@ -651,7 +651,9 @@ static MACHINE_CONFIG_START( popobear, popobear_state )
MCFG_SCREEN_SIZE(128*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 239)
- MCFG_PALETTE_LENGTH(256*2)
+
+ MCFG_PALETTE_ADD("palette", 256*2)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/popper.c b/src/mame/drivers/popper.c
index 4a9750753d9..5ee043b93af 100644
--- a/src/mame/drivers/popper.c
+++ b/src/mame/drivers/popper.c
@@ -353,8 +353,8 @@ static MACHINE_CONFIG_START( popper, popper_state )
MCFG_SCREEN_UPDATE_DRIVER(popper_state, screen_update_popper)
MCFG_GFXDECODE_ADD("gfxdecode", popper)
- MCFG_PALETTE_LENGTH(64)
-
+ MCFG_PALETTE_ADD("palette", 64)
+ MCFG_PALETTE_INIT_OWNER(popper_state, popper)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/portrait.c b/src/mame/drivers/portrait.c
index bb25b8c34d6..a1815542916 100644
--- a/src/mame/drivers/portrait.c
+++ b/src/mame/drivers/portrait.c
@@ -260,8 +260,8 @@ static MACHINE_CONFIG_START( portrait, portrait_state )
MCFG_SCREEN_UPDATE_DRIVER(portrait_state, screen_update_portrait)
MCFG_GFXDECODE_ADD("gfxdecode", portrait)
- MCFG_PALETTE_LENGTH(0x800)
-
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_INIT_OWNER(portrait_state, portrait)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/powerbal.c b/src/mame/drivers/powerbal.c
index f33161890c7..75854ffb80f 100644
--- a/src/mame/drivers/powerbal.c
+++ b/src/mame/drivers/powerbal.c
@@ -417,7 +417,7 @@ void powerbal_state::draw_sprites_powerbal(bitmap_ind16 &bitmap, const rectangle
code = spriteram[offs + 2];
color = (spriteram[offs + 1] & 0xf000) >> 12;
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
code,
color,
flipx,0,
@@ -503,7 +503,7 @@ static MACHINE_CONFIG_START( powerbal, powerbal_state )
MCFG_SCREEN_UPDATE_DRIVER(powerbal_state, screen_update_powerbal)
MCFG_GFXDECODE_ADD("gfxdecode", powerbal)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_VIDEO_START_OVERRIDE(powerbal_state,powerbal)
@@ -536,7 +536,7 @@ static MACHINE_CONFIG_START( magicstk, powerbal_state )
MCFG_SCREEN_UPDATE_DRIVER(powerbal_state, screen_update_powerbal)
MCFG_GFXDECODE_ADD("gfxdecode", powerbal)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_VIDEO_START_OVERRIDE(powerbal_state,powerbal)
diff --git a/src/mame/drivers/powerins.c b/src/mame/drivers/powerins.c
index 49af36b87f4..f8d65e9d4a9 100644
--- a/src/mame/drivers/powerins.c
+++ b/src/mame/drivers/powerins.c
@@ -355,7 +355,7 @@ static MACHINE_CONFIG_START( powerins, powerins_state )
MCFG_SCREEN_UPDATE_DRIVER(powerins_state, screen_update_powerins)
MCFG_GFXDECODE_ADD("gfxdecode", powerins)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c
index 50d379f787e..785523b365a 100644
--- a/src/mame/drivers/ppmast93.c
+++ b/src/mame/drivers/ppmast93.c
@@ -389,8 +389,7 @@ static MACHINE_CONFIG_START( ppmast93, ppmast93_state )
MCFG_GFXDECODE_ADD("gfxdecode", ppmast93)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x100)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/prehisle.c b/src/mame/drivers/prehisle.c
index dad0c5a434b..14220bb18e8 100644
--- a/src/mame/drivers/prehisle.c
+++ b/src/mame/drivers/prehisle.c
@@ -30,7 +30,7 @@ static ADDRESS_MAP_START( prehisle_map, AS_PROGRAM, 16, prehisle_state )
AM_RANGE(0x090000, 0x0907ff) AM_RAM_WRITE(prehisle_fg_videoram16_w) AM_SHARE("videoram")
AM_RANGE(0x0a0000, 0x0a07ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x0b0000, 0x0b3fff) AM_RAM_WRITE(prehisle_bg_videoram16_w) AM_SHARE("bg_videoram16")
- AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0e0000, 0x0e00ff) AM_READ(prehisle_control16_r)
AM_RANGE(0x0f0070, 0x0ff071) AM_WRITE(prehisle_sound16_w)
AM_RANGE(0x0f0000, 0x0ff0ff) AM_WRITE(prehisle_control16_w)
@@ -217,7 +217,8 @@ static MACHINE_CONFIG_START( prehisle, prehisle_state )
MCFG_SCREEN_UPDATE_DRIVER(prehisle_state, screen_update_prehisle)
MCFG_GFXDECODE_ADD("gfxdecode", prehisle)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
/* sound hardware */
diff --git a/src/mame/drivers/progolf.c b/src/mame/drivers/progolf.c
index f07e21766e1..c1cd8cd099d 100644
--- a/src/mame/drivers/progolf.c
+++ b/src/mame/drivers/progolf.c
@@ -89,7 +89,7 @@ public:
DECLARE_WRITE8_MEMBER(progolf_videoram_w);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(progolf);
UINT32 screen_update_progolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
@@ -125,9 +125,9 @@ UINT32 progolf_state::screen_update_progolf(screen_device &screen, bitmap_ind16
{
int tile = videoram[count];
- m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,tile,1,0,0,(256-x*8)+scroll,y*8);
+ m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,tile,1,0,0,(256-x*8)+scroll,y*8);
/* wrap-around */
- m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,tile,1,0,0,(256-x*8)+scroll-1024,y*8);
+ m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,tile,1,0,0,(256-x*8)+scroll-1024,y*8);
count++;
}
@@ -149,7 +149,7 @@ UINT32 progolf_state::screen_update_progolf(screen_device &screen, bitmap_ind16
color = m_fg_fb[(xi+yi*8)+count*0x40];
if(color != 0 && cliprect.contains(x+yi, 256-y+xi))
- bitmap.pix16(x+yi, 256-y+xi) = machine().pens[(color & 0x7)];
+ bitmap.pix16(x+yi, 256-y+xi) = m_palette->pen((color & 0x7));
}
}
@@ -392,12 +392,12 @@ static MC6845_INTERFACE( mc6845_intf )
};
-void progolf_state::palette_init()
+PALETTE_INIT_MEMBER(progolf_state, progolf)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
- for (i = 0;i < machine().total_colors();i++)
+ for (i = 0;i < m_palette->entries();i++)
{
int bit0,bit1,bit2,r,g,b;
@@ -417,7 +417,7 @@ void progolf_state::palette_init()
bit2 = (color_prom[i] >> 7) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ m_palette->set_pen_color(i,rgb_t(r,g,b));
}
}
@@ -440,7 +440,8 @@ static MACHINE_CONFIG_START( progolf, progolf_state )
MCFG_SCREEN_UPDATE_DRIVER(progolf_state, screen_update_progolf)
MCFG_GFXDECODE_ADD("gfxdecode", progolf)
- MCFG_PALETTE_LENGTH(32*3)
+ MCFG_PALETTE_ADD("palette", 32*3)
+ MCFG_PALETTE_INIT_OWNER(progolf_state, progolf)
MCFG_MC6845_ADD("crtc", MC6845, "screen", 3000000/4, mc6845_intf) /* hand tuned to get ~57 fps */
diff --git a/src/mame/drivers/psattack.c b/src/mame/drivers/psattack.c
index 9516e36abf6..97b40768a16 100644
--- a/src/mame/drivers/psattack.c
+++ b/src/mame/drivers/psattack.c
@@ -190,8 +190,7 @@ static MACHINE_CONFIG_START( psattack, psattack_state )
MCFG_SCREEN_VBLANK_DRIVER(psattack_state, screen_eof_psattack)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGGG_BBBBB)
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD_RRRRRGGGGGGBBBBB("palette")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c
index 4d1f110e435..3ad78f16d27 100644
--- a/src/mame/drivers/psikyo.c
+++ b/src/mame/drivers/psikyo.c
@@ -308,7 +308,7 @@ READ32_MEMBER(psikyo_state::s1945_input_r)
static ADDRESS_MAP_START( psikyo_map, AS_PROGRAM, 32, psikyo_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM (not all used)
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites, buffered by two frames (list buffered + fb buffered)
- AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_dword_be_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(psikyo_vram_0_w) AM_SHARE("vram_0") // Layer 0
AM_RANGE(0x802000, 0x803fff) AM_RAM_WRITE(psikyo_vram_1_w) AM_SHARE("vram_1") // Layer 1
AM_RANGE(0x804000, 0x807fff) AM_RAM AM_SHARE("vregs") // RAM + Vregs
@@ -356,7 +356,7 @@ static ADDRESS_MAP_START( psikyo_bootleg_map, AS_PROGRAM, 32, psikyo_state )
AM_RANGE(0x200000, 0x200fff) AM_RAM AM_SHARE("boot_spritebuf") // RAM (it copies the spritelist here, the HW probably doesn't have automatic buffering like the originals?
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites, buffered by two frames (list buffered + fb buffered)
- AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_dword_be_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(psikyo_vram_0_w) AM_SHARE("vram_0") // Layer 0
AM_RANGE(0x802000, 0x803fff) AM_RAM_WRITE(psikyo_vram_1_w) AM_SHARE("vram_1") // Layer 1
AM_RANGE(0x804000, 0x807fff) AM_RAM AM_SHARE("vregs") // RAM + Vregs
@@ -1051,7 +1051,8 @@ static MACHINE_CONFIG_START( sngkace, psikyo_state )
MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo)
MCFG_GFXDECODE_ADD("gfxdecode", psikyo)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(psikyo_state,sngkace)
@@ -1095,7 +1096,8 @@ static MACHINE_CONFIG_START( gunbird, psikyo_state )
MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo)
MCFG_GFXDECODE_ADD("gfxdecode", psikyo)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(psikyo_state,psikyo)
@@ -1128,7 +1130,8 @@ static MACHINE_CONFIG_START( s1945bl, psikyo_state ) /* Bootleg hardware based o
MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo)
MCFG_GFXDECODE_ADD("gfxdecode", psikyo)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(psikyo_state,psikyo)
@@ -1176,7 +1179,8 @@ static MACHINE_CONFIG_START( s1945, psikyo_state )
MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo)
MCFG_GFXDECODE_ADD("gfxdecode", psikyo)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(psikyo_state,psikyo)
diff --git a/src/mame/drivers/psikyo4.c b/src/mame/drivers/psikyo4.c
index 47d74bb18d1..9c65d148383 100644
--- a/src/mame/drivers/psikyo4.c
+++ b/src/mame/drivers/psikyo4.c
@@ -209,8 +209,8 @@ WRITE32_MEMBER(psikyo4_state::ps4_paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_
g = ((m_paletteram[offset] & 0x00ff0000) >> 16);
r = ((m_paletteram[offset] & 0xff000000) >> 24);
- palette_set_color(machine(), offset, rgb_t(r, g, b));
- palette_set_color(machine(), offset + 0x800, rgb_t(r, g, b)); // For screen 2
+ m_palette->set_pen_color(offset, rgb_t(r, g, b));
+ m_palette->set_pen_color(offset + 0x800, rgb_t(r, g, b)); // For screen 2
}
WRITE32_MEMBER(psikyo4_state::ps4_bgpen_1_dword_w)
@@ -222,7 +222,7 @@ WRITE32_MEMBER(psikyo4_state::ps4_bgpen_1_dword_w)
g = ((m_bgpen_1[0] & 0x00ff0000) >>16);
r = ((m_bgpen_1[0] & 0xff000000) >>24);
- palette_set_color(machine(), 0x1000, rgb_t(r, g, b)); // Clear colour for screen 1
+ m_palette->set_pen_color(0x1000, rgb_t(r, g, b)); // Clear colour for screen 1
}
WRITE32_MEMBER(psikyo4_state::ps4_bgpen_2_dword_w)
@@ -234,7 +234,7 @@ WRITE32_MEMBER(psikyo4_state::ps4_bgpen_2_dword_w)
g = ((m_bgpen_2[0] & 0x00ff0000) >>16);
r = ((m_bgpen_2[0] & 0xff000000) >>24);
- palette_set_color(machine(), 0x1001, rgb_t(r, g, b)); // Clear colour for screen 2
+ m_palette->set_pen_color(0x1001, rgb_t(r, g, b)); // Clear colour for screen 2
}
WRITE32_MEMBER(psikyo4_state::ps4_screen1_brt_w)
@@ -253,7 +253,7 @@ WRITE32_MEMBER(psikyo4_state::ps4_screen1_brt_w)
int i;
for (i = 0; i < 0x800; i++)
- palette_set_pen_contrast(machine(), i, brt1);
+ m_palette->set_pen_contrast(i, brt1);
m_oldbrt1 = brt1;
}
@@ -283,7 +283,7 @@ WRITE32_MEMBER(psikyo4_state::ps4_screen2_brt_w)
int i;
for (i = 0x800; i < 0x1000; i++)
- palette_set_pen_contrast(machine(), i, brt2);
+ m_palette->set_pen_contrast(i, brt2);
m_oldbrt2 = brt2;
}
@@ -661,7 +661,7 @@ static MACHINE_CONFIG_START( ps4big, psikyo4_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", ps4)
- MCFG_PALETTE_LENGTH((0x2000/4)*2 + 2) /* 0x2000/4 for each screen. 1 for each screen clear colour */
+ MCFG_PALETTE_ADD("palette", (0x2000/4)*2 + 2) /* 0x2000/4 for each screen. 1 for each screen clear colour */
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
MCFG_SCREEN_ADD("lscreen", RASTER)
diff --git a/src/mame/drivers/psikyosh.c b/src/mame/drivers/psikyosh.c
index 4dd47e5a97d..c37af22f690 100644
--- a/src/mame/drivers/psikyosh.c
+++ b/src/mame/drivers/psikyosh.c
@@ -356,7 +356,7 @@ WRITE32_MEMBER(psikyosh_state::paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dwo
g = ((m_paletteram[offset] & 0x00ff0000) >>16);
r = ((m_paletteram[offset] & 0xff000000) >>24);
- palette_set_color(machine(), offset, rgb_t(r, g, b));
+ m_palette->set_pen_color(offset, rgb_t(r, g, b));
}
WRITE32_MEMBER(psikyosh_state::psikyosh_vidregs_w)
@@ -802,7 +802,7 @@ static MACHINE_CONFIG_START( psikyo3v1, psikyosh_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram32_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", psikyosh)
- MCFG_PALETTE_LENGTH(0x5000/4)
+ MCFG_PALETTE_ADD("palette", 0x5000/4)
/* sound hardware */
diff --git a/src/mame/drivers/psychic5.c b/src/mame/drivers/psychic5.c
index b8fad19930b..aa57764e27b 100644
--- a/src/mame/drivers/psychic5.c
+++ b/src/mame/drivers/psychic5.c
@@ -678,7 +678,7 @@ static MACHINE_CONFIG_START( psychic5, psychic5_state )
MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_psychic5)
MCFG_GFXDECODE_ADD("gfxdecode", psychic5)
- MCFG_PALETTE_LENGTH(768)
+ MCFG_PALETTE_ADD("palette", 768)
MCFG_VIDEO_START_OVERRIDE(psychic5_state,psychic5)
MCFG_VIDEO_RESET_OVERRIDE(psychic5_state,psychic5)
@@ -723,7 +723,7 @@ static MACHINE_CONFIG_START( bombsa, psychic5_state )
MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_bombsa)
MCFG_GFXDECODE_ADD("gfxdecode", bombsa)
- MCFG_PALETTE_LENGTH(768)
+ MCFG_PALETTE_ADD("palette", 768)
MCFG_VIDEO_START_OVERRIDE(psychic5_state,bombsa)
MCFG_VIDEO_RESET_OVERRIDE(psychic5_state,bombsa)
diff --git a/src/mame/drivers/pturn.c b/src/mame/drivers/pturn.c
index b7d5f8a479c..ea1be3e9634 100644
--- a/src/mame/drivers/pturn.c
+++ b/src/mame/drivers/pturn.c
@@ -202,7 +202,7 @@ UINT32 pturn_state::screen_update_pturn(screen_device &screen, bitmap_ind16 &bit
if(sx|sy)
{
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect,
spriteram[offs+1] & 0x3f ,
(spriteram[offs+2] & 0x1f),
flipx, flipy,
@@ -504,8 +504,7 @@ static MACHINE_CONFIG_START( pturn, pturn_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(pturn_state, screen_update_pturn)
- MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x100)
MCFG_GFXDECODE_ADD("gfxdecode", pturn)
diff --git a/src/mame/drivers/punchout.c b/src/mame/drivers/punchout.c
index bc4d4a64256..93939bd7252 100644
--- a/src/mame/drivers/punchout.c
+++ b/src/mame/drivers/punchout.c
@@ -947,7 +947,7 @@ static MACHINE_CONFIG_START( punchout, punchout_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", punchout)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
MCFG_DEFAULT_LAYOUT(layout_dualhovu)
MCFG_SCREEN_ADD("top", RASTER)
diff --git a/src/mame/drivers/pushman.c b/src/mame/drivers/pushman.c
index 0f1721b428e..e9ee88c6ff9 100644
--- a/src/mame/drivers/pushman.c
+++ b/src/mame/drivers/pushman.c
@@ -148,7 +148,7 @@ static ADDRESS_MAP_START( pushman_map, AS_PROGRAM, 16, pushman_state )
AM_RANGE(0xfe8000, 0xfe8003) AM_WRITE(pushman_scroll_w)
AM_RANGE(0xfe800e, 0xfe800f) AM_WRITENOP /* ? */
AM_RANGE(0xfec000, 0xfec7ff) AM_RAM_WRITE(pushman_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0xff8000, 0xff87ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xff8000, 0xff87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xffc000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -181,7 +181,7 @@ static ADDRESS_MAP_START( bballs_map, AS_PROGRAM, 16, pushman_state )
AM_RANGE(0xe8000, 0xe8003) AM_WRITE(pushman_scroll_w)
AM_RANGE(0xe800e, 0xe800f) AM_WRITENOP /* ? */
AM_RANGE(0xec000, 0xec7ff) AM_RAM_WRITE(pushman_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0xf8000, 0xf87ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf8000, 0xf87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfc000, 0xfffff) AM_RAM
ADDRESS_MAP_END
@@ -437,8 +437,9 @@ static MACHINE_CONFIG_START( pushman, pushman_state )
MCFG_SCREEN_UPDATE_DRIVER(pushman_state, screen_update_pushman)
MCFG_GFXDECODE_ADD("gfxdecode", pushman)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -483,8 +484,9 @@ static MACHINE_CONFIG_START( bballs, pushman_state )
MCFG_SCREEN_UPDATE_DRIVER(pushman_state, screen_update_pushman)
MCFG_GFXDECODE_ADD("gfxdecode", pushman)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/pyson.c b/src/mame/drivers/pyson.c
index d9c8bc6bcd9..f43c78b0408 100644
--- a/src/mame/drivers/pyson.c
+++ b/src/mame/drivers/pyson.c
@@ -208,7 +208,7 @@ static MACHINE_CONFIG_START( pyson, pyson_state )
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD("palette", 65536)
MACHINE_CONFIG_END
#define PYSON_BIOS \
diff --git a/src/mame/drivers/pzletime.c b/src/mame/drivers/pzletime.c
index f7abf79717d..81f61736e22 100644
--- a/src/mame/drivers/pzletime.c
+++ b/src/mame/drivers/pzletime.c
@@ -64,7 +64,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(pzletime);
UINT32 screen_update_pzletime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<okim6295_device> m_oki;
@@ -106,7 +106,7 @@ UINT32 pzletime_state::screen_update_pzletime(screen_device &screen, bitmap_ind1
int count;
int y, x;
- bitmap.fill(machine().pens[0], cliprect); //bg pen
+ bitmap.fill(m_palette->pen(0), cliprect); //bg pen
m_txt_tilemap->set_scrolly(0, m_tilemap_regs[0] - 3);
m_txt_tilemap->set_scrollx(0, m_tilemap_regs[1]);
@@ -148,7 +148,7 @@ UINT32 pzletime_state::screen_update_pzletime(screen_device &screen, bitmap_ind1
// is spriteram[offs + 0] & 0x200 flipy? it's always set
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, spr_offs, colour, 0, 1, sx, sy, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, spr_offs, colour, 0, 1, sx, sy, 0);
}
}
@@ -199,7 +199,7 @@ WRITE16_MEMBER(pzletime_state::video_regs_w)
{
for (i = 0; i < 0x300; i++)
{
- palette_set_pen_contrast(machine(), i, (double)0x8000/(double)m_video_regs[0]);
+ m_palette->set_pen_contrast(i, (double)0x8000/(double)m_video_regs[0]);
}
}
}
@@ -209,7 +209,7 @@ WRITE16_MEMBER(pzletime_state::video_regs_w)
{
for (i = 0x300; i < 32768 + 0x300; i++)
{
- palette_set_pen_contrast(machine(), i, (double)0x8000/(double)m_video_regs[1]);
+ m_palette->set_pen_contrast(i, (double)0x8000/(double)m_video_regs[1]);
}
}
}
@@ -229,7 +229,7 @@ static ADDRESS_MAP_START( pzletime_map, AS_PROGRAM, 16, pzletime_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM
AM_RANGE(0x700000, 0x700005) AM_RAM_WRITE(video_regs_w) AM_SHARE("video_regs")
AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x900000, 0x9005ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x900000, 0x9005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xa00000, 0xa00007) AM_RAM AM_SHARE("tilemap_regs")
AM_RANGE(0xb00000, 0xb3ffff) AM_RAM AM_SHARE("bg_videoram")
AM_RANGE(0xc00000, 0xc00fff) AM_RAM_WRITE(mid_videoram_w) AM_SHARE("mid_videoram")
@@ -301,7 +301,7 @@ static GFXDECODE_START( pzletime )
GFXDECODE_ENTRY( "gfx3", 0, layout16x16, 0x000, 0x10 )
GFXDECODE_END
-void pzletime_state::palette_init()
+PALETTE_INIT_MEMBER(pzletime_state, pzletime)
{
int i;
@@ -309,7 +309,7 @@ void pzletime_state::palette_init()
/* 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_pen_color(i + 0x300, pal5bit(i >> 10), pal5bit(i >> 5), pal5bit(i >> 0));
}
void pzletime_state::machine_start()
@@ -338,7 +338,10 @@ static MACHINE_CONFIG_START( pzletime, pzletime_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_DRIVER(pzletime_state, screen_update_pzletime)
MCFG_GFXDECODE_ADD("gfxdecode", pzletime)
- MCFG_PALETTE_LENGTH(0x300 + 32768)
+ MCFG_PALETTE_ADD("palette", 0x300 + 32768)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ MCFG_PALETTE_INIT_OWNER(pzletime_state, pzletime)
+
MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c
index 520da90653a..06bb8cbe39d 100644
--- a/src/mame/drivers/qdrmfgp.c
+++ b/src/mame/drivers/qdrmfgp.c
@@ -301,7 +301,7 @@ static ADDRESS_MAP_START( qdrmfgp_map, AS_PROGRAM, 16, qdrmfgp_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_SHARE("workram") /* work ram */
AM_RANGE(0x180000, 0x183fff) AM_RAM AM_SHARE("nvram") /* backup ram */
- AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x280000, 0x280fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x30003f) AM_DEVWRITE("k056832", k056832_device, word_w) /* video reg */
AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff) /* ccu */
AM_RANGE(0x330000, 0x330001) AM_READ_PORT("SENSOR") /* battery power & service sw */
@@ -324,7 +324,7 @@ static ADDRESS_MAP_START( qdrmfgp2_map, AS_PROGRAM, 16, qdrmfgp_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x110fff) AM_RAM AM_SHARE("workram") /* work ram */
AM_RANGE(0x180000, 0x183fff) AM_RAM AM_SHARE("nvram") /* backup ram */
- AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x280000, 0x280fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x30003f) AM_DEVWRITE("k056832", k056832_device, word_w) /* video reg */
AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0xff00) /* ccu */
AM_RANGE(0x330000, 0x330001) AM_READ_PORT("SENSOR") /* battery power & service */
@@ -633,13 +633,15 @@ static MACHINE_CONFIG_START( qdrmfgp, qdrmfgp_state )
MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
MCFG_SCREEN_UPDATE_DRIVER(qdrmfgp_state, screen_update_qdrmfgp)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(qdrmfgp_state,qdrmfgp)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K056832_ADD("k056832", qdrmfgp_k056832_intf)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K053252_ADD("k053252", XTAL_32MHz/4, qdrmfgp_k053252_intf)
/* sound hardware */
@@ -672,13 +674,15 @@ static MACHINE_CONFIG_START( qdrmfgp2, qdrmfgp_state )
MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
MCFG_SCREEN_UPDATE_DRIVER(qdrmfgp_state, screen_update_qdrmfgp)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(qdrmfgp_state,qdrmfgp2)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K056832_ADD("k056832", qdrmfgp2_k056832_intf)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K053252_ADD("k053252", XTAL_32MHz/4, qdrmfgp2_k053252_intf)
/* sound hardware */
diff --git a/src/mame/drivers/quakeat.c b/src/mame/drivers/quakeat.c
index 9eae04d0d60..8091b0ca110 100644
--- a/src/mame/drivers/quakeat.c
+++ b/src/mame/drivers/quakeat.c
@@ -131,7 +131,7 @@ static MACHINE_CONFIG_START( quake, quakeat_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(quakeat_state, screen_update_quake)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/quasar.c b/src/mame/drivers/quasar.c
index f4ce158998b..c722372e000 100644
--- a/src/mame/drivers/quasar.c
+++ b/src/mame/drivers/quasar.c
@@ -337,13 +337,13 @@ static MACHINE_CONFIG_START( quasar, quasar_state )
MCFG_SCREEN_UPDATE_DRIVER(quasar_state, screen_update_quasar)
MCFG_GFXDECODE_ADD("gfxdecode", quasar)
- MCFG_PALETTE_LENGTH((64+1)*8+(4*256))
+ MCFG_PALETTE_ADD("palette", (64+1)*8+(4*256))
+ MCFG_PALETTE_INIT_OWNER(quasar_state,quasar)
MCFG_S2636_ADD("s2636_0", s2636_0_config)
MCFG_S2636_ADD("s2636_1", s2636_1_config)
MCFG_S2636_ADD("s2636_2", s2636_2_config)
- MCFG_PALETTE_INIT_OVERRIDE(quasar_state,quasar)
MCFG_VIDEO_START_OVERRIDE(quasar_state,quasar)
/* sound hardware */
diff --git a/src/mame/drivers/quizdna.c b/src/mame/drivers/quizdna.c
index 0c4c596f935..37df47f0193 100644
--- a/src/mame/drivers/quizdna.c
+++ b/src/mame/drivers/quizdna.c
@@ -455,7 +455,7 @@ static MACHINE_CONFIG_START( quizdna, quizdna_state )
MCFG_SCREEN_UPDATE_DRIVER(quizdna_state, screen_update_quizdna)
MCFG_GFXDECODE_ADD("gfxdecode", quizdna)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
diff --git a/src/mame/drivers/quizo.c b/src/mame/drivers/quizo.c
index ea992f36994..5ae2a186e3d 100644
--- a/src/mame/drivers/quizo.c
+++ b/src/mame/drivers/quizo.c
@@ -42,7 +42,7 @@ public:
DECLARE_WRITE8_MEMBER(port70_w);
DECLARE_WRITE8_MEMBER(port60_w);
DECLARE_DRIVER_INIT(quizo);
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(quizo);
UINT32 screen_update_quizo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
};
@@ -54,7 +54,7 @@ public:
static const UINT8 rombankLookup[]={ 2, 3, 4, 4, 4, 4, 4, 5, 0, 1};
-void quizo_state::palette_init()
+PALETTE_INIT_MEMBER(quizo_state, quizo)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
@@ -77,7 +77,7 @@ void quizo_state::palette_init()
bit2 = (*color_prom >> 7) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
color_prom++;
}
}
@@ -220,7 +220,8 @@ static MACHINE_CONFIG_START( quizo, quizo_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(quizo_state, screen_update_quizo)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_INIT_OWNER(quizo_state, quizo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/quizpani.c b/src/mame/drivers/quizpani.c
index 8c66000589a..55d20f2bfe7 100644
--- a/src/mame/drivers/quizpani.c
+++ b/src/mame/drivers/quizpani.c
@@ -61,7 +61,7 @@ static ADDRESS_MAP_START( quizpani_map, AS_PROGRAM, 16, quizpani_state )
AM_RANGE(0x100018, 0x100019) AM_WRITE(quizpani_tilesbank_w)
AM_RANGE(0x104000, 0x104001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x104020, 0x104027) AM_DEVWRITE("nmk112", nmk112_device, okibank_lsb_w)
- AM_RANGE(0x108000, 0x1083ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x108000, 0x1083ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x108400, 0x1085ff) AM_WRITENOP
AM_RANGE(0x10c000, 0x10c007) AM_RAM AM_SHARE("scrollreg")
AM_RANGE(0x10c008, 0x10c403) AM_WRITENOP
@@ -200,7 +200,8 @@ static MACHINE_CONFIG_START( quizpani, quizpani_state )
MCFG_CPU_PERIODIC_INT_DRIVER(quizpani_state, irq1_line_hold, 164) // music tempo
MCFG_GFXDECODE_ADD("gfxdecode", quizpani)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
diff --git a/src/mame/drivers/quizpun2.c b/src/mame/drivers/quizpun2.c
index 1d2d6232999..ea2330435f1 100644
--- a/src/mame/drivers/quizpun2.c
+++ b/src/mame/drivers/quizpun2.c
@@ -177,9 +177,9 @@ UINT32 quizpun2_state::screen_update_quizpun2(screen_device &screen, bitmap_ind1
#endif
if (layers_ctrl & 1) m_bg_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- else bitmap.fill(get_black_pen(machine()), cliprect);
+ else bitmap.fill(m_palette->black_pen(), cliprect);
-bitmap.fill(get_black_pen(machine()), cliprect);
+bitmap.fill(m_palette->black_pen(), cliprect);
if (layers_ctrl & 2) m_fg_tmap->draw(screen, bitmap, cliprect, 0, 0);
return 0;
@@ -372,7 +372,7 @@ static ADDRESS_MAP_START( quizpun2_map, AS_PROGRAM, 8, quizpun2_state )
AM_RANGE( 0xc000, 0xc7ff ) AM_RAM_WRITE(bg_ram_w ) AM_SHARE("bg_ram") // 4 * 400
AM_RANGE( 0xc800, 0xcfff ) AM_RAM //
- AM_RANGE( 0xd000, 0xd3ff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w ) AM_SHARE("paletteram")
+ AM_RANGE( 0xd000, 0xd3ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE( 0xe000, 0xffff ) AM_RAM
ADDRESS_MAP_END
@@ -512,7 +512,8 @@ static MACHINE_CONFIG_START( quizpun2, quizpun2_state )
MCFG_SCREEN_UPDATE_DRIVER(quizpun2_state, screen_update_quizpun2)
MCFG_GFXDECODE_ADD("gfxdecode", quizpun2)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/quizshow.c b/src/mame/drivers/quizshow.c
index 6bb1bc70602..73b014b575b 100644
--- a/src/mame/drivers/quizshow.c
+++ b/src/mame/drivers/quizshow.c
@@ -71,7 +71,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(quizshow);
UINT32 screen_update_quizshow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(quizshow_clock_timer_cb);
};
@@ -83,12 +83,10 @@ public:
***************************************************************************/
-void quizshow_state::palette_init()
+PALETTE_INIT_MEMBER(quizshow_state, quizshow)
{
- machine().colortable = colortable_alloc(machine(), 2);
-
- colortable_palette_set_color(machine().colortable, 0, rgb_t::black);
- colortable_palette_set_color(machine().colortable, 1, rgb_t::white);
+ palette.set_indirect_color(0, rgb_t::black);
+ palette.set_indirect_color(1, rgb_t::white);
// normal, blink/off, invert, blink+invert
const int lut_pal[16] = {
@@ -99,7 +97,7 @@ void quizshow_state::palette_init()
};
for (int i = 0; i < 16 ; i++)
- colortable_entry_set_value(machine().colortable, i, lut_pal[i]);
+ palette.set_pen_indirect(i, lut_pal[i]);
}
TILE_GET_INFO_MEMBER(quizshow_state::get_tile_info)
@@ -392,7 +390,8 @@ static MACHINE_CONFIG_START( quizshow, quizshow_state )
MCFG_SCREEN_UPDATE_DRIVER(quizshow_state, screen_update_quizshow)
MCFG_GFXDECODE_ADD("gfxdecode", quizshow)
- MCFG_PALETTE_LENGTH(8*2)
+ MCFG_PALETTE_ADD("palette", 8*2)
+ MCFG_PALETTE_INIT_OWNER(quizshow_state, quizshow)
/* sound hardware (discrete) */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/r2dx_v33.c b/src/mame/drivers/r2dx_v33.c
index 7be751b2747..20f2b5c33d1 100644
--- a/src/mame/drivers/r2dx_v33.c
+++ b/src/mame/drivers/r2dx_v33.c
@@ -165,7 +165,7 @@ void r2dx_v33_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect
for (ax=0; ax<dx; ax++)
for (ay=0; ay<dy; ay++)
{
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
sprite++,
color,fx,fy,x+ax*16,y+ay*16,15);
}
@@ -175,7 +175,7 @@ void r2dx_v33_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect
for (ax=0; ax<dx; ax++)
for (ay=0; ay<dy; ay++)
{
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
sprite++,
color,fx,fy,x+ax*16,y+(dy-ay-1)*16,15);
}
@@ -188,7 +188,7 @@ void r2dx_v33_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect
for (ax=0; ax<dx; ax++)
for (ay=0; ay<dy; ay++)
{
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
sprite++,
color,fx,fy,x+(dx-ax-1)*16,y+ay*16,15);
}
@@ -198,7 +198,7 @@ void r2dx_v33_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect
for (ax=0; ax<dx; ax++)
for (ay=0; ay<dy; ay++)
{
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
sprite++,
color,fx,fy,x+(dx-ax-1)*16,y+(dy-ay-1)*16,15);
}
@@ -222,7 +222,7 @@ void r2dx_v33_state::video_start()
UINT32 r2dx_v33_state::screen_update_rdx_v33(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
m_md_tilemap->draw(screen, bitmap, cliprect, 0, 0);
@@ -434,7 +434,7 @@ static ADDRESS_MAP_START( rdx_v33_map, AS_PROGRAM, 16, r2dx_v33_state )
AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(rdx_tx_vram_w) AM_SHARE("tx_vram")
AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */
AM_RANGE(0x10000, 0x1efff) AM_RAM
- AM_RANGE(0x1f000, 0x1ffff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1f000, 0x1ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("bank1")
AM_RANGE(0x40000, 0xfffff) AM_ROM AM_REGION("mainprg", 0x40000 )
@@ -507,7 +507,7 @@ static ADDRESS_MAP_START( nzerotea_map, AS_PROGRAM, 16, r2dx_v33_state )
AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(rdx_tx_vram_w) AM_SHARE("tx_vram")
AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */
AM_RANGE(0x10000, 0x1efff) AM_RAM
- AM_RANGE(0x1f000, 0x1ffff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1f000, 0x1ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("bank1")
AM_RANGE(0x40000, 0xfffff) AM_ROM AM_REGION("mainprg", 0x40000 )
@@ -711,8 +711,8 @@ static MACHINE_CONFIG_START( rdx_v33, r2dx_v33_state )
MCFG_SCREEN_UPDATE_DRIVER(r2dx_v33_state, screen_update_rdx_v33)
MCFG_GFXDECODE_ADD("gfxdecode", rdx_v33)
- MCFG_PALETTE_LENGTH(2048)
-
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -741,8 +741,8 @@ static MACHINE_CONFIG_START( nzerotea, r2dx_v33_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(r2dx_v33_state, screen_update_rdx_v33)
MCFG_GFXDECODE_ADD("gfxdecode", rdx_v33)
- MCFG_PALETTE_LENGTH(2048)
-
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* 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 3beb483f50b..6acf0b15a57 100644
--- a/src/mame/drivers/rabbit.c
+++ b/src/mame/drivers/rabbit.c
@@ -312,8 +312,8 @@ void rabbit_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect
if(xpos&0x800)xpos-=0x1000;
- gfx->transpen(*m_sprite_bitmap,m_sprite_clip,tileno,colr,!xflip/*wrongdecode?*/,yflip,xpos+0x20-8/*-(m_spriteregs[0]&0x00000fff)*/,ypos-24/*-((m_spriteregs[1]&0x0fff0000)>>16)*/,15);
-// gfx->transpen(bitmap,cliprect,tileno,colr,!xflip/*wrongdecode?*/,yflip,xpos+0xa0-8/*-(m_spriteregs[0]&0x00000fff)*/,ypos-24+0x80/*-((m_spriteregs[1]&0x0fff0000)>>16)*/,0);
+ gfx->transpen(m_palette,*m_sprite_bitmap,m_sprite_clip,tileno,colr,!xflip/*wrongdecode?*/,yflip,xpos+0x20-8/*-(m_spriteregs[0]&0x00000fff)*/,ypos-24/*-((m_spriteregs[1]&0x0fff0000)>>16)*/,15);
+// gfx->transpen(m_palette,bitmap,cliprect,tileno,colr,!xflip/*wrongdecode?*/,yflip,xpos+0xa0-8/*-(m_spriteregs[0]&0x00000fff)*/,ypos-24+0x80/*-((m_spriteregs[1]&0x0fff0000)>>16)*/,0);
source-=2;
@@ -479,7 +479,7 @@ UINT32 rabbit_state::screen_update_rabbit(screen_device &screen, bitmap_ind16 &b
{
int prilevel;
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
// popmessage("%08x %08x", m_viewregs0[0], m_viewregs0[1]);
// popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[0][0],m_tilemap_regs[0][1],m_tilemap_regs[0][2],m_tilemap_regs[0][3],m_tilemap_regs[0][4],m_tilemap_regs[0][5]);
@@ -522,7 +522,7 @@ WRITE32_MEMBER(rabbit_state::rabbit_paletteram_dword_w)
r = ((m_generic_paletteram_32[offset] & 0x0000ff00) >>8);
g = ((m_generic_paletteram_32[offset] & 0x00ff0000) >>16);
- palette_set_color(machine(),offset,rgb_t(r,g,b));
+ m_palette->set_pen_color(offset,rgb_t(r,g,b));
}
READ32_MEMBER(rabbit_state::rabbit_tilemap0_r)
@@ -908,9 +908,7 @@ static MACHINE_CONFIG_START( rabbit, rabbit_state )
// MCFG_SCREEN_VISIBLE_AREA(0*8, 20*16-1, 32*16, 48*16-1)
MCFG_SCREEN_UPDATE_DRIVER(rabbit_state, screen_update_rabbit)
- MCFG_PALETTE_LENGTH(0x4000)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
-
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x4000)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/raiden.c b/src/mame/drivers/raiden.c
index f8b281e6b3d..73ccf1b0555 100644
--- a/src/mame/drivers/raiden.c
+++ b/src/mame/drivers/raiden.c
@@ -76,7 +76,7 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16, raiden_state )
AM_RANGE(0x00000, 0x01fff) AM_RAM
AM_RANGE(0x02000, 0x027ff) AM_RAM_WRITE(raiden_background_w) AM_SHARE("back_data")
AM_RANGE(0x02800, 0x02fff) AM_RAM_WRITE(raiden_foreground_w) AM_SHARE("fore_data")
- AM_RANGE(0x03000, 0x03fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x03000, 0x03fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x04000, 0x04fff) AM_RAM AM_SHARE("shared_ram")
AM_RANGE(0x07ffe, 0x07fff) AM_WRITENOP // ?
AM_RANGE(0x08000, 0x08001) AM_WRITENOP // watchdog?
@@ -105,7 +105,7 @@ static ADDRESS_MAP_START( raidenu_sub_map, AS_PROGRAM, 16, raiden_state )
AM_RANGE(0x00000, 0x05fff) AM_RAM
AM_RANGE(0x06000, 0x067ff) AM_RAM_WRITE(raiden_background_w) AM_SHARE("back_data")
AM_RANGE(0x06800, 0x06fff) AM_RAM_WRITE(raiden_foreground_w) AM_SHARE("fore_data")
- AM_RANGE(0x07000, 0x07fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x07000, 0x07fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08000, 0x08fff) AM_RAM AM_SHARE("shared_ram")
AM_RANGE(0x0a000, 0x0a001) AM_WRITENOP // ?
AM_RANGE(0x0c000, 0x0c001) AM_WRITENOP // watchdog?
@@ -291,7 +291,8 @@ static MACHINE_CONFIG_START( raiden, raiden_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", raiden)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* 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)
diff --git a/src/mame/drivers/raiden2.c b/src/mame/drivers/raiden2.c
index 3d0f3ba0791..8ff0c399d59 100644
--- a/src/mame/drivers/raiden2.c
+++ b/src/mame/drivers/raiden2.c
@@ -798,7 +798,7 @@ void raiden2_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,
- gfx->transpen(
+ gfx->transpen(m_palette,
bitmap,
cliprect,
tile_number,
@@ -807,7 +807,7 @@ void raiden2_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,
(sx+xstep*xtiles)&ZEROTEAM_MASK_X,(sy+ystep*ytiles)&ZEROTEAM_MASK_Y,15);
- gfx->transpen(
+ gfx->transpen(m_palette,
bitmap,
cliprect,
tile_number,
@@ -816,7 +816,7 @@ void raiden2_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,
((sx+xstep*xtiles)&ZEROTEAM_MASK_X)-0x200,(sy+ystep*ytiles)&ZEROTEAM_MASK_Y,15);
- gfx->transpen(
+ gfx->transpen(m_palette,
bitmap,
cliprect,
tile_number,
@@ -825,7 +825,7 @@ void raiden2_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,
(sx+xstep*xtiles)&ZEROTEAM_MASK_X,((sy+ystep*ytiles)&ZEROTEAM_MASK_Y)-0x200,15);
- gfx->transpen(
+ gfx->transpen(m_palette,
bitmap,
cliprect,
tile_number,
@@ -1007,7 +1007,7 @@ VIDEO_START_MEMBER(raiden2_state,raiden2)
UINT32 raiden2_state::screen_update_raiden2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
//if (!machine().input().code_pressed(KEYCODE_Q))
{
@@ -1482,7 +1482,7 @@ static ADDRESS_MAP_START( raiden2_mem, AS_PROGRAM, 16, raiden2_state )
AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */
AM_RANGE(0x10000, 0x1efff) AM_RAM
- AM_RANGE(0x1f000, 0x1ffff) AM_RAM AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1f000, 0x1ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("mainbank")
AM_RANGE(0x40000, 0xfffff) AM_ROM AM_REGION("mainprg", 0x40000)
@@ -1518,7 +1518,7 @@ static ADDRESS_MAP_START( zeroteam_mem, AS_PROGRAM, 16, raiden2_state )
AM_RANGE(0x0c000, 0x0c7ff) AM_RAM_WRITE(raiden2_foreground_w) AM_SHARE("fore_data")
AM_RANGE(0x0c800, 0x0cfff) AM_RAM_WRITE(raiden2_midground_w) AM_SHARE("mid_data")
AM_RANGE(0x0d000, 0x0dfff) AM_RAM_WRITE(raiden2_text_w) AM_SHARE("text_data")
- AM_RANGE(0x0e000, 0x0efff) AM_RAM AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0e000, 0x0efff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0f000, 0x0ffff) AM_RAM AM_SHARE("sprites")
AM_RANGE(0x10000, 0x1ffff) AM_RAM
@@ -1548,7 +1548,7 @@ static ADDRESS_MAP_START( xsedae_mem, AS_PROGRAM, 16, raiden2_state )
AM_RANGE(0x0c000, 0x0c7ff) AM_RAM_WRITE(raiden2_foreground_w) AM_SHARE("fore_data")
AM_RANGE(0x0c800, 0x0cfff) AM_RAM_WRITE(raiden2_midground_w) AM_SHARE("mid_data")
AM_RANGE(0x0d000, 0x0dfff) AM_RAM_WRITE(raiden2_text_w) AM_SHARE("text_data")
- AM_RANGE(0x0e000, 0x0efff) AM_RAM AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0e000, 0x0efff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0f000, 0x0ffff) AM_RAM AM_SHARE("sprites")
AM_RANGE(0x10000, 0x1ffff) AM_RAM
@@ -1888,7 +1888,8 @@ static MACHINE_CONFIG_START( raiden2, raiden2_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(raiden2_state, screen_update_raiden2)
MCFG_GFXDECODE_ADD("gfxdecode", raiden2)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0)
@@ -1944,7 +1945,8 @@ static MACHINE_CONFIG_START( zeroteam, raiden2_state )
MCFG_SCREEN_RAW_PARAMS(XTAL_32MHz/4,546,0,40*8,264,0,32*8) /* hand-tuned to match ~55.47 */
MCFG_SCREEN_UPDATE_DRIVER(raiden2_state, screen_update_raiden2)
MCFG_GFXDECODE_ADD("gfxdecode", raiden2)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0)
diff --git a/src/mame/drivers/rainbow.c b/src/mame/drivers/rainbow.c
index ee457232665..dabb8c780e7 100644
--- a/src/mame/drivers/rainbow.c
+++ b/src/mame/drivers/rainbow.c
@@ -345,7 +345,7 @@ WRITE16_MEMBER(rbisland_state::jumping_sound_w)
static ADDRESS_MAP_START( rbisland_map, AS_PROGRAM, 16, rbisland_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x10c000, 0x10ffff) AM_RAM /* main RAM */
- AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x201000, 0x203fff) AM_RAM /* r/w in initial checks */
AM_RANGE(0x390000, 0x390003) AM_READ_PORT("DSWA")
AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(rbisland_spritectrl_w)
@@ -366,7 +366,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( jumping_map, AS_PROGRAM, 16, rbisland_state )
AM_RANGE(0x000000, 0x09ffff) AM_ROM
AM_RANGE(0x10c000, 0x10ffff) AM_RAM /* main RAM */
- AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x201000, 0x203fff) AM_RAM /* r/w in initial checks */
AM_RANGE(0x400000, 0x400001) AM_READ_PORT("DSWA")
AM_RANGE(0x400002, 0x400003) AM_READ_PORT("DSWB")
@@ -667,12 +667,15 @@ static MACHINE_CONFIG_START( rbisland, rbisland_state )
MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_rainbow)
MCFG_GFXDECODE_ADD("gfxdecode", rbisland)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_PC080SN_ADD("pc080sn", rbisland_pc080sn_intf)
MCFG_PC080SN_GFXDECODE("gfxdecode")
+ MCFG_PC080SN_PALETTE("palette")
MCFG_PC090OJ_ADD("pc090oj", rbisland_pc090oj_intf)
MCFG_PC090OJ_GFXDECODE("gfxdecode")
+ MCFG_PC090OJ_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -710,12 +713,14 @@ static MACHINE_CONFIG_START( jumping, rbisland_state )
MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_jumping)
MCFG_GFXDECODE_ADD("gfxdecode", jumping)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(rbisland_state,jumping)
MCFG_PC080SN_ADD("pc080sn", jumping_pc080sn_intf)
MCFG_PC080SN_GFXDECODE("gfxdecode")
+ MCFG_PC080SN_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/rallyx.c b/src/mame/drivers/rallyx.c
index 407eb68a67d..a74e6f36eb6 100644
--- a/src/mame/drivers/rallyx.c
+++ b/src/mame/drivers/rallyx.c
@@ -860,8 +860,6 @@ static MACHINE_CONFIG_START( rallyx, rallyx_state )
MCFG_MACHINE_RESET_OVERRIDE(rallyx_state,rallyx)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60.606060)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -870,9 +868,11 @@ static MACHINE_CONFIG_START( rallyx, rallyx_state )
MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_rallyx)
MCFG_GFXDECODE_ADD("gfxdecode", rallyx)
- MCFG_PALETTE_LENGTH(64*4+4)
- MCFG_PALETTE_INIT_OVERRIDE(rallyx_state,rallyx)
+ MCFG_PALETTE_ADD("palette", 64*4+4)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+
+ MCFG_PALETTE_INIT_OWNER(rallyx_state,rallyx)
MCFG_VIDEO_START_OVERRIDE(rallyx_state,rallyx)
/* sound hardware */
@@ -898,8 +898,6 @@ static MACHINE_CONFIG_START( jungler, rallyx_state )
MCFG_MACHINE_RESET_OVERRIDE(rallyx_state,rallyx)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */)
@@ -908,9 +906,11 @@ static MACHINE_CONFIG_START( jungler, rallyx_state )
MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_jungler)
MCFG_GFXDECODE_ADD("gfxdecode", jungler)
- MCFG_PALETTE_LENGTH(64*4+4+64)
- MCFG_PALETTE_INIT_OVERRIDE(rallyx_state,jungler)
+ MCFG_PALETTE_ADD("palette", 64*4+4+64)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+
+ MCFG_PALETTE_INIT_OWNER(rallyx_state,jungler)
MCFG_VIDEO_START_OVERRIDE(rallyx_state,jungler)
/* sound hardware */
diff --git a/src/mame/drivers/rampart.c b/src/mame/drivers/rampart.c
index 68b61c483b1..6fff1a51a5e 100644
--- a/src/mame/drivers/rampart.c
+++ b/src/mame/drivers/rampart.c
@@ -348,7 +348,7 @@ static MACHINE_CONFIG_START( rampart, rampart_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", rampart)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "screen", rampart_state::s_mob_config)
MCFG_ATARI_MOTION_OBJECTS_GFXDECODE("gfxdecode")
diff --git a/src/mame/drivers/rastan.c b/src/mame/drivers/rastan.c
index 72d6f2b1dcf..f3a38a695a6 100644
--- a/src/mame/drivers/rastan.c
+++ b/src/mame/drivers/rastan.c
@@ -202,7 +202,7 @@ WRITE8_MEMBER(rastan_state::rastan_msm5205_stop_w)
static ADDRESS_MAP_START( rastan_map, AS_PROGRAM, 16, rastan_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x10c000, 0x10ffff) AM_RAM
- AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x350008, 0x350009) AM_WRITENOP /* 0 only (often) ? */
AM_RANGE(0x380000, 0x380001) AM_WRITE(rastan_spritectrl_w) /* sprite palette bank, coin counters & lockout */
AM_RANGE(0x390000, 0x390001) AM_READ_PORT("P1")
@@ -401,12 +401,15 @@ static MACHINE_CONFIG_START( rastan, rastan_state )
MCFG_SCREEN_UPDATE_DRIVER(rastan_state, screen_update_rastan)
MCFG_GFXDECODE_ADD("gfxdecode", rastan)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_PC080SN_ADD("pc080sn", rastan_pc080sn_intf)
MCFG_PC080SN_GFXDECODE("gfxdecode")
+ MCFG_PC080SN_PALETTE("palette")
MCFG_PC090OJ_ADD("pc090oj", rastan_pc090oj_intf)
MCFG_PC090OJ_GFXDECODE("gfxdecode")
+ MCFG_PC090OJ_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/rastersp.c b/src/mame/drivers/rastersp.c
index 07cf737bf49..754f7f5c47f 100644
--- a/src/mame/drivers/rastersp.c
+++ b/src/mame/drivers/rastersp.c
@@ -126,7 +126,7 @@ public:
UINT8 m_io_reg;
UINT8 m_irq_status;
UINT32 m_dpyaddr;
- UINT16 *m_palette;
+ UINT16 *m_paletteram;
UINT32 m_speedup_count;
UINT32 m_tms_io_regs[0x80];
bitmap_ind16 m_update_bitmap;
@@ -156,7 +156,7 @@ void rastersp_state::machine_start()
m_nvram8 = auto_alloc_array(machine(), UINT8, NVRAM_SIZE);
- m_palette = auto_alloc_array(machine(), UINT16, 0x8000);
+ m_paletteram = auto_alloc_array(machine(), UINT16, 0x8000);
membank("bank1")->set_base(m_dram);
membank("bank2")->set_base(&m_dram[0x10000/4]);
@@ -207,7 +207,7 @@ WRITE32_MEMBER( rastersp_state::dpylist_w )
// TODO: This should probably be done in sync with the video scan
if (m_dpyaddr == 0)
{
- m_update_bitmap.fill(get_black_pen(machine()));
+ m_update_bitmap.fill(m_palette->black_pen());
return;
}
@@ -244,7 +244,7 @@ WRITE32_MEMBER( rastersp_state::dpylist_w )
UINT32 pixels = (word2 >> 16) & 0x1ff;
UINT32 palbase = (word2 >> 4) & 0xf00;
- UINT16* palptr = &m_palette[palbase];
+ UINT16* palptr = &m_paletteram[palbase];
UINT8* srcptr = reinterpret_cast<UINT8*>(&m_dram[0]);
UINT32 acc = srcaddr << 8;
@@ -300,7 +300,7 @@ void rastersp_state::upload_palette(UINT32 word1, UINT32 word2)
while (entries--)
{
UINT32 data = m_dram[addr / 4];
- m_palette[index++] = data & 0xffff;
+ m_paletteram[index++] = data & 0xffff;
addr += 4;
}
}
@@ -906,8 +906,7 @@ static MACHINE_CONFIG_START( rastersp, rastersp_state )
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGGG_BBBBB)
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD_RRRRRGGGGGGBBBBB("palette")
/* Sound */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/rbmk.c b/src/mame/drivers/rbmk.c
index 3f551422f07..ed98ffdc38d 100644
--- a/src/mame/drivers/rbmk.c
+++ b/src/mame/drivers/rbmk.c
@@ -129,7 +129,7 @@ static ADDRESS_MAP_START( rbmk_mem, AS_PROGRAM, 16, rbmk_state )
AM_RANGE(0x500000, 0x50ffff) AM_RAM
AM_RANGE(0x940000, 0x940fff) AM_RAM AM_SHARE("gms_vidram2")
AM_RANGE(0x980300, 0x983fff) AM_RAM // 0x2048 words ???, byte access
- AM_RANGE(0x900000, 0x900fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x900000, 0x900fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x9c0000, 0x9c0fff) AM_RAM AM_SHARE("gms_vidram")
AM_RANGE(0xb00000, 0xb00001) AM_WRITE(eeprom_w)
AM_RANGE(0xC00000, 0xC00001) AM_READ_PORT("IN0") AM_WRITE(gms_write1)
@@ -515,7 +515,7 @@ UINT32 rbmk_state::screen_update_rbmk(screen_device &screen, bitmap_ind16 &bitma
for (x=0;x<64;x++)
{
int tile = m_gms_vidram2[count+0x600];
- m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,(tile&0xfff)+((m_tilebank&0x10)>>4)*0x1000,tile>>12,0,0,x*8,y*32);
+ m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,(tile&0xfff)+((m_tilebank&0x10)>>4)*0x1000,tile>>12,0,0,x*8,y*32);
count++;
}
}
@@ -527,7 +527,7 @@ UINT32 rbmk_state::screen_update_rbmk(screen_device &screen, bitmap_ind16 &bitma
for (x=0;x<64;x++)
{
int tile = m_gms_vidram[count];
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,(tile&0xfff)+((m_tilebank>>1)&3)*0x1000,tile>>12,0,0,x*8,y*8,0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,(tile&0xfff)+((m_tilebank>>1)&3)*0x1000,tile>>12,0,0,x*8,y*8,0);
count++;
}
}
@@ -559,8 +559,8 @@ static MACHINE_CONFIG_START( rbmk, rbmk_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(rbmk_state, screen_update_rbmk)
- MCFG_PALETTE_LENGTH(0x800)
-
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
diff --git a/src/mame/drivers/rcorsair.c b/src/mame/drivers/rcorsair.c
index 1318cd20aed..cee28384b20 100644
--- a/src/mame/drivers/rcorsair.c
+++ b/src/mame/drivers/rcorsair.c
@@ -144,7 +144,7 @@ static MACHINE_CONFIG_START( rcorsair, rcorsair_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
MCFG_GFXDECODE_ADD("gfxdecode", rcorsair)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MACHINE_CONFIG_END
ROM_START( rcorsair )
diff --git a/src/mame/drivers/realbrk.c b/src/mame/drivers/realbrk.c
index df208f6bb9f..9685b18b0ea 100644
--- a/src/mame/drivers/realbrk.c
+++ b/src/mame/drivers/realbrk.c
@@ -154,7 +154,7 @@ WRITE16_MEMBER(realbrk_state::backup_ram_w)
static ADDRESS_MAP_START( base_mem, AS_PROGRAM, 16, realbrk_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram" ) // Palette
+ AM_RANGE(0x400000, 0x40ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(realbrk_vram_0_w) AM_SHARE("vram_0") // Background (0)
AM_RANGE(0x602000, 0x603fff) AM_RAM_WRITE(realbrk_vram_1_w) AM_SHARE("vram_1") // Background (1)
AM_RANGE(0x604000, 0x604fff) AM_RAM_WRITE(realbrk_vram_2_w) AM_SHARE("vram_2") // Text (2)
@@ -780,8 +780,8 @@ static MACHINE_CONFIG_START( realbrk, realbrk_state )
MCFG_SCREEN_UPDATE_DRIVER(realbrk_state, screen_update_realbrk)
MCFG_GFXDECODE_ADD("gfxdecode", realbrk)
- MCFG_PALETTE_LENGTH(0x8000)
-
+ MCFG_PALETTE_ADD("palette", 0x8000)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/redclash.c b/src/mame/drivers/redclash.c
index d171ee0ac49..51e16cd804e 100644
--- a/src/mame/drivers/redclash.c
+++ b/src/mame/drivers/redclash.c
@@ -364,9 +364,9 @@ static MACHINE_CONFIG_START( zerohour, ladybug_state )
MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_redclash)
MCFG_GFXDECODE_ADD("gfxdecode", redclash)
- MCFG_PALETTE_LENGTH(4*8+4*16+32)
+ MCFG_PALETTE_ADD("palette", 4*8+4*16+32)
- MCFG_PALETTE_INIT_OVERRIDE(ladybug_state,redclash)
+ MCFG_PALETTE_INIT_OWNER(ladybug_state,redclash)
MCFG_VIDEO_START_OVERRIDE(ladybug_state,redclash)
/* sound hardware */
@@ -392,9 +392,9 @@ static MACHINE_CONFIG_START( redclash, ladybug_state )
MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_redclash)
MCFG_GFXDECODE_ADD("gfxdecode", redclash)
- MCFG_PALETTE_LENGTH(4*8+4*16+32)
+ MCFG_PALETTE_ADD("palette", 4*8+4*16+32)
- MCFG_PALETTE_INIT_OVERRIDE(ladybug_state,redclash)
+ MCFG_PALETTE_INIT_OWNER(ladybug_state,redclash)
MCFG_VIDEO_START_OVERRIDE(ladybug_state,redclash)
/* sound hardware */
diff --git a/src/mame/drivers/relief.c b/src/mame/drivers/relief.c
index cdf7ef34fa2..b4f3af9d650 100644
--- a/src/mame/drivers/relief.c
+++ b/src/mame/drivers/relief.c
@@ -273,7 +273,7 @@ static MACHINE_CONFIG_START( relief, relief_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", relief)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_ATARI_VAD_ADD("vad", "screen", WRITELINE(atarigen_state, scanline_int_write_line))
MCFG_ATARI_VAD_PLAYFIELD(relief_state, get_playfield_tile_info)
diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c
index 6d27db3387d..666f8c5abbc 100644
--- a/src/mame/drivers/renegade.c
+++ b/src/mame/drivers/renegade.c
@@ -635,8 +635,8 @@ static ADDRESS_MAP_START( renegade_map, AS_PROGRAM, 8, renegade_state )
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(renegade_videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(renegade_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x3000, 0x30ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x3100, 0x31ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x3000, 0x30ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x3100, 0x31ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("IN0") AM_WRITE(renegade_scroll0_w) /* Player#1 controls, P1,P2 start */
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("IN1") AM_WRITE(renegade_scroll1_w) /* Player#2 controls, coin triggers */
AM_RANGE(0x3802, 0x3802) AM_READ_PORT("DSW2") AM_WRITE(sound_w) /* DIP2 various IO ports */
@@ -894,8 +894,8 @@ static MACHINE_CONFIG_START( renegade, renegade_state )
MCFG_SCREEN_UPDATE_DRIVER(renegade_state, screen_update_renegade)
MCFG_GFXDECODE_ADD("gfxdecode", renegade)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/retofinv.c b/src/mame/drivers/retofinv.c
index cee79d41698..e1d9e0b422c 100644
--- a/src/mame/drivers/retofinv.c
+++ b/src/mame/drivers/retofinv.c
@@ -370,8 +370,8 @@ static MACHINE_CONFIG_START( retofinv, retofinv_state )
MCFG_SCREEN_UPDATE_DRIVER(retofinv_state, screen_update_retofinv)
MCFG_GFXDECODE_ADD("gfxdecode", retofinv)
- MCFG_PALETTE_LENGTH(256*2+64*16+64*16)
-
+ MCFG_PALETTE_ADD("palette", 256*2+64*16+64*16)
+ MCFG_PALETTE_INIT_OWNER(retofinv_state, retofinv)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/rgum.c b/src/mame/drivers/rgum.c
index 9e0928b44a6..7348ba47d05 100644
--- a/src/mame/drivers/rgum.c
+++ b/src/mame/drivers/rgum.c
@@ -57,7 +57,7 @@ UINT32 rgum_state::screen_update_royalgum(screen_device &screen, bitmap_ind16 &b
{
int tile = m_vram[count] | ((m_cram[count] & 0xf) <<8);
- gfx->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*8);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*8,y*8);
count++;
}
@@ -287,7 +287,7 @@ static MACHINE_CONFIG_START( rgum, rgum_state )
MCFG_I8255A_ADD( "ppi8255", ppi8255_intf )
MCFG_GFXDECODE_ADD("gfxdecode", rgum)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/rltennis.c b/src/mame/drivers/rltennis.c
index a8a3f572414..319abb2285f 100644
--- a/src/mame/drivers/rltennis.c
+++ b/src/mame/drivers/rltennis.c
@@ -185,11 +185,11 @@ static MACHINE_CONFIG_START( rltennis, rltennis_state )
MCFG_SCREEN_VISIBLE_AREA(0,319, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(rltennis_state, screen_update_rltennis)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/rmhaihai.c b/src/mame/drivers/rmhaihai.c
index 2554d6e3dbf..dd8bf03eabc 100644
--- a/src/mame/drivers/rmhaihai.c
+++ b/src/mame/drivers/rmhaihai.c
@@ -485,9 +485,8 @@ static MACHINE_CONFIG_START( rmhaihai, rmhaihai_state )
MCFG_SCREEN_UPDATE_DRIVER(rmhaihai_state, screen_update_rmhaihai)
MCFG_GFXDECODE_ADD("gfxdecode", rmhaihai)
- MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x100)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -507,7 +506,8 @@ static MACHINE_CONFIG_DERIVED( rmhaisei, rmhaihai )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", themj)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 0x200)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( themj, rmhaihai )
@@ -522,7 +522,8 @@ static MACHINE_CONFIG_DERIVED( themj, rmhaihai )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", themj)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 0x200)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/rockrage.c b/src/mame/drivers/rockrage.c
index 7213fcae894..cf0d06fac8b 100644
--- a/src/mame/drivers/rockrage.c
+++ b/src/mame/drivers/rockrage.c
@@ -271,10 +271,11 @@ static MACHINE_CONFIG_START( rockrage, rockrage_state )
MCFG_K007342_GFXDECODE("gfxdecode")
MCFG_K007420_ADD("k007420", rockrage_k007420_intf)
+ MCFG_K007420_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", rockrage)
- MCFG_PALETTE_LENGTH(64 + 2*16*16)
-
+ MCFG_PALETTE_ADD("palette", 64 + 2*16*16)
+ MCFG_PALETTE_INIT_OWNER(rockrage_state, rockrage)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/rocnrope.c b/src/mame/drivers/rocnrope.c
index 6cf438183f4..9a76da73491 100644
--- a/src/mame/drivers/rocnrope.c
+++ b/src/mame/drivers/rocnrope.c
@@ -208,8 +208,8 @@ static MACHINE_CONFIG_START( rocnrope, rocnrope_state )
MCFG_SCREEN_UPDATE_DRIVER(rocnrope_state, screen_update_rocnrope)
MCFG_GFXDECODE_ADD("gfxdecode", rocnrope)
- MCFG_PALETTE_LENGTH(16*16+16*16)
-
+ MCFG_PALETTE_ADD("palette", 16*16+16*16)
+ MCFG_PALETTE_INIT_OWNER(rocnrope_state, rocnrope)
/* sound hardware */
MCFG_FRAGMENT_ADD(timeplt_sound)
diff --git a/src/mame/drivers/rohga.c b/src/mame/drivers/rohga.c
index 6e9a8ee8052..da1e660d447 100644
--- a/src/mame/drivers/rohga.c
+++ b/src/mame/drivers/rohga.c
@@ -829,7 +829,7 @@ static MACHINE_CONFIG_START( rohga, rohga_state )
MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga)
MCFG_GFXDECODE_ADD("gfxdecode", rohga)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_VIDEO_START_OVERRIDE(rohga_state,rohga)
@@ -837,13 +837,16 @@ static MACHINE_CONFIG_START( rohga, rohga_state )
MCFG_DECO16IC_ADD("tilegen1", rohga_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", rohga_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO104_ADD("ioprot104")
@@ -887,23 +890,27 @@ static MACHINE_CONFIG_START( wizdfire, rohga_state )
MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_wizdfire)
MCFG_GFXDECODE_ADD("gfxdecode", wizdfire)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_DECOCOMN_ADD("deco_common")
MCFG_DECO16IC_ADD("tilegen1", rohga_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", rohga_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 4);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO104_ADD("ioprot104")
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE
@@ -950,23 +957,27 @@ static MACHINE_CONFIG_START( nitrobal, rohga_state )
MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_nitrobal)
MCFG_GFXDECODE_ADD("gfxdecode", wizdfire)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_DECOCOMN_ADD("deco_common")
MCFG_DECO16IC_ADD("tilegen1", nitrobal_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", nitrobal_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 4);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(rohga_state,wizdfire)
@@ -1014,7 +1025,7 @@ static MACHINE_CONFIG_START( schmeisr, rohga_state )
MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga)
MCFG_GFXDECODE_ADD("gfxdecode", schmeisr)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_VIDEO_START_OVERRIDE(rohga_state,schmeisr)
@@ -1022,13 +1033,16 @@ static MACHINE_CONFIG_START( schmeisr, rohga_state )
MCFG_DECO16IC_ADD("tilegen1", rohga_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", rohga_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO104_ADD("ioprot104")
diff --git a/src/mame/drivers/rollerg.c b/src/mame/drivers/rollerg.c
index 918664308c5..e4ffa738905 100644
--- a/src/mame/drivers/rollerg.c
+++ b/src/mame/drivers/rollerg.c
@@ -96,7 +96,7 @@ static ADDRESS_MAP_START( rollerg_map, AS_PROGRAM, 8, rollerg_state )
AM_RANGE(0x0300, 0x030f) AM_DEVREADWRITE("k053244", k05324x_device, k053244_r, k053244_w)
AM_RANGE(0x0800, 0x0fff) AM_READ(rollerg_k051316_r) AM_DEVWRITE("k051316", k051316_device, write)
AM_RANGE(0x1000, 0x17ff) AM_DEVREADWRITE("k053244", k05324x_device, k053245_r, k053245_w)
- AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1800, 0x1fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x2000, 0x3aff) AM_RAM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -278,8 +278,6 @@ static MACHINE_CONFIG_START( rollerg, rollerg_state )
/* NMIs are generated by the 053260 */
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@@ -287,15 +285,19 @@ static MACHINE_CONFIG_START( rollerg, rollerg_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(rollerg_state, screen_update_rollerg)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K053244_ADD("k053244", rollerg_k05324x_intf)
MCFG_K053244_GFXDECODE("gfxdecode")
+ MCFG_K053244_PALETTE("palette")
MCFG_K051316_ADD("k051316", rollerg_k051316_intf)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
MCFG_K053252_ADD("k053252", 3000000*2, rollerg_k053252_intf)
diff --git a/src/mame/drivers/rollrace.c b/src/mame/drivers/rollrace.c
index 2b40b1b3df2..5f50e5a98a3 100644
--- a/src/mame/drivers/rollrace.c
+++ b/src/mame/drivers/rollrace.c
@@ -238,8 +238,8 @@ static MACHINE_CONFIG_START( rollrace, rollrace_state )
MCFG_SCREEN_UPDATE_DRIVER(rollrace_state, screen_update_rollrace)
MCFG_GFXDECODE_ADD("gfxdecode", rollrace)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(rollrace_state, rollrace)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/roul.c b/src/mame/drivers/roul.c
index 20d7ce98c56..d6e44459b4e 100644
--- a/src/mame/drivers/roul.c
+++ b/src/mame/drivers/roul.c
@@ -85,7 +85,7 @@ public:
DECLARE_WRITE8_MEMBER(sound_latch_w);
DECLARE_WRITE8_MEMBER(ball_w);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(roul);
UINT32 screen_update_roul(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_soundcpu;
@@ -95,7 +95,7 @@ public:
#define VIDEOBUF_SIZE 256*256
-void roul_state::palette_init()
+PALETTE_INIT_MEMBER(roul_state, roul)
{
const UINT8 *color_prom = memregion("proms")->base();
int bit6, bit7, bit0, bit1, r, g, b;
@@ -116,7 +116,7 @@ void roul_state::palette_init()
bit1 = (color_prom[0] >> 5) & 0x01;
r = 0x0e * bit6 + 0x1f * bit7 + 0x43 * bit0 + 0x8f * bit1;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
color_prom++;
}
}
@@ -302,8 +302,8 @@ static MACHINE_CONFIG_START( roul, roul_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(roul_state, screen_update_roul)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(roul_state, 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 9c7526c868c..967c0d1de91 100644
--- a/src/mame/drivers/royalmah.c
+++ b/src/mame/drivers/royalmah.c
@@ -197,7 +197,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(mjtensin_rtc_irq);
DECLARE_DRIVER_INIT(janptr96);
DECLARE_DRIVER_INIT(ippatsu);
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(royalmah);
DECLARE_PALETTE_INIT(mjderngr);
UINT32 screen_update_royalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(suzume_irq);
@@ -210,7 +210,7 @@ public:
-void royalmah_state::palette_init()
+PALETTE_INIT_MEMBER(royalmah_state, royalmah)
{
offs_t i;
const UINT8 *prom = memregion("proms")->base();
@@ -240,7 +240,7 @@ void royalmah_state::palette_init()
bit2 = (data >> 7) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color_rgb(machine(),i, r,g,b);
+ palette.set_pen_color(i, r,g,b);
}
}
@@ -259,7 +259,7 @@ PALETTE_INIT_MEMBER(royalmah_state,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_pen_color(i, pal5bit(r), pal5bit(g), pal5bit(b));
}
}
@@ -3234,7 +3234,8 @@ static MACHINE_CONFIG_START( royalmah, royalmah_state )
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_PALETTE_LENGTH(16*2)
+ MCFG_PALETTE_ADD("palette", 16*2)
+ MCFG_PALETTE_INIT_OWNER(royalmah_state,royalmah)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_SIZE(256, 256)
@@ -3345,8 +3346,9 @@ static MACHINE_CONFIG_DERIVED( mjderngr, dondenmj )
MCFG_CPU_IO_MAP(mjderngr_iomap)
/* video hardware */
- MCFG_PALETTE_LENGTH(16*32)
- MCFG_PALETTE_INIT_OVERRIDE(royalmah_state,mjderngr)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 16*32)
+ MCFG_PALETTE_INIT_OWNER(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 c8c7bb07c50..0e94d0dd3cd 100644
--- a/src/mame/drivers/rpunch.c
+++ b/src/mame/drivers/rpunch.c
@@ -225,7 +225,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, rpunch_state )
AM_RANGE(0x040000, 0x04ffff) AM_RAM AM_SHARE("bitmapram")
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x080000, 0x083fff) AM_RAM_WRITE(rpunch_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x0a0000, 0x0a07ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0a0000, 0x0a07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0c0000, 0x0c0007) AM_WRITE(rpunch_scrollreg_w)
AM_RANGE(0x0c0008, 0x0c0009) AM_WRITE(rpunch_crtc_data_w)
AM_RANGE(0x0c000c, 0x0c000d) AM_WRITE(rpunch_videoreg_w)
@@ -491,7 +491,8 @@ static MACHINE_CONFIG_START( rpunch, rpunch_state )
MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch)
MCFG_GFXDECODE_ADD("gfxdecode", rpunch)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
@@ -526,7 +527,8 @@ static MACHINE_CONFIG_START( svolleybl, rpunch_state )
MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch)
MCFG_GFXDECODE_ADD("gfxdecode", svolleybl)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/runaway.c b/src/mame/drivers/runaway.c
index 6835aa35883..46f10e5ba93 100644
--- a/src/mame/drivers/runaway.c
+++ b/src/mame/drivers/runaway.c
@@ -361,7 +361,7 @@ static MACHINE_CONFIG_START( runaway, runaway_state )
MCFG_SCREEN_UPDATE_DRIVER(runaway_state, screen_update_runaway)
MCFG_GFXDECODE_ADD("gfxdecode", runaway)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
/* sound hardware */
diff --git a/src/mame/drivers/rungun.c b/src/mame/drivers/rungun.c
index d978f9a04bd..f95682f80cd 100644
--- a/src/mame/drivers/rungun.c
+++ b/src/mame/drivers/rungun.c
@@ -164,7 +164,7 @@ INTERRUPT_GEN_MEMBER(rungun_state::rng_interrupt)
static ADDRESS_MAP_START( rungun_map, AS_PROGRAM, 16, rungun_state )
AM_RANGE(0x000000, 0x2fffff) AM_ROM // main program + data
- AM_RANGE(0x300000, 0x3007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x300000, 0x3007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x380000, 0x39ffff) AM_RAM // work RAM
AM_RANGE(0x400000, 0x43ffff) AM_READNOP // AM_READ(K053936_0_rom_r ) // '936 ROM readback window
AM_RANGE(0x480000, 0x48001f) AM_READWRITE(rng_sysregs_r, rng_sysregs_w) AM_SHARE("sysreg")
@@ -393,7 +393,7 @@ static MACHINE_CONFIG_START( rng, rungun_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_BEFORE_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -402,11 +402,15 @@ static MACHINE_CONFIG_START( rng, rungun_state )
MCFG_SCREEN_VISIBLE_AREA(88, 88+384-1, 24, 24+224-1)
MCFG_SCREEN_UPDATE_DRIVER(rungun_state, screen_update_rng)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_K053936_ADD("k053936", rng_k053936_intf)
MCFG_K055673_ADD("k055673", rng_k055673_intf)
MCFG_K055673_GFXDECODE("gfxdecode")
+ MCFG_K055673_PALETTE("palette")
MCFG_K053252_ADD("k053252", 16000000/2, rng_k053252_intf)
/* sound hardware */
diff --git a/src/mame/drivers/safarir.c b/src/mame/drivers/safarir.c
index 89f17b4cb1e..5c9c70c8bac 100644
--- a/src/mame/drivers/safarir.c
+++ b/src/mame/drivers/safarir.c
@@ -85,7 +85,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void machine_start();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(safarir);
UINT32 screen_update_safarir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -146,14 +146,14 @@ static GFXDECODE_START( safarir )
GFXDECODE_END
-void safarir_state::palette_init()
+PALETTE_INIT_MEMBER(safarir_state, safarir)
{
int i;
- for (i = 0; i < machine().total_colors() / 2; i++)
+ for (i = 0; i < palette.entries() / 2; i++)
{
- palette_set_color(machine(), (i * 2) + 0, rgb_t::black);
- palette_set_color(machine(), (i * 2) + 1, rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0)));
+ palette.set_pen_color((i * 2) + 0, rgb_t::black);
+ palette.set_pen_color((i * 2) + 1, rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0)));
}
}
@@ -408,7 +408,9 @@ static MACHINE_CONFIG_START( safarir, safarir_state )
MCFG_CPU_PROGRAM_MAP(main_map)
/* video hardware */
- MCFG_PALETTE_LENGTH(2*8)
+ MCFG_PALETTE_ADD("palette", 2*8)
+ MCFG_PALETTE_INIT_OWNER(safarir_state, safarir)
+
MCFG_GFXDECODE_ADD("gfxdecode", safarir)
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/sandscrp.c b/src/mame/drivers/sandscrp.c
index c8c8f6a9cd5..00812a0ee71 100644
--- a/src/mame/drivers/sandscrp.c
+++ b/src/mame/drivers/sandscrp.c
@@ -266,7 +266,7 @@ static ADDRESS_MAP_START( sandscrp, AS_PROGRAM, 16, sandscrp_state )
AM_RANGE(0x300000, 0x30001f) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_regs_r, kaneko_tmap_regs_w)
AM_RANGE(0x400000, 0x403fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
AM_RANGE(0x500000, 0x501fff) AM_DEVREADWRITE("pandora", kaneko_pandora_device, spriteram_LSB_r, spriteram_LSB_w ) // sprites
- AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x600000, 0x600fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xa00000, 0xa00001) AM_WRITE(sandscrp_coin_counter_w) // Coin Counters (Lockout unused)
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1")
AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2")
@@ -510,7 +510,8 @@ static MACHINE_CONFIG_START( sandscrp, sandscrp_state )
MCFG_SCREEN_VBLANK_DRIVER(sandscrp_state, screen_eof_sandscrp)
MCFG_GFXDECODE_ADD("gfxdecode", sandscrp)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0)
kaneko_view2_tilemap_device::set_gfx_region(*device, 1);
@@ -522,6 +523,7 @@ static MACHINE_CONFIG_START( sandscrp, sandscrp_state )
MCFG_KANEKO_PANDORA_ADD("pandora", sandscrp_pandora_config)
MCFG_KANEKO_PANDORA_GFXDECODE("gfxdecode")
+ MCFG_KANEKO_PANDORA_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/sangho.c b/src/mame/drivers/sangho.c
index 201813e9c48..ad294330634 100644
--- a/src/mame/drivers/sangho.c
+++ b/src/mame/drivers/sangho.c
@@ -469,8 +469,6 @@ static MACHINE_CONFIG_START( pzlestar, sangho_state )
MCFG_MACHINE_RESET_OVERRIDE(sangho_state,pzlestar)
- MCFG_PALETTE_LENGTH(19780)
-
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, 3580000)
@@ -499,7 +497,7 @@ static MACHINE_CONFIG_START( sexyboom, sangho_state )
MCFG_MACHINE_RESET_OVERRIDE(sangho_state,sexyboom)
- MCFG_PALETTE_LENGTH(19780)
+ MCFG_PALETTE_ADD("palette", 19780)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, 3580000)
diff --git a/src/mame/drivers/sanremo.c b/src/mame/drivers/sanremo.c
index 856fcc45582..1f565cae981 100644
--- a/src/mame/drivers/sanremo.c
+++ b/src/mame/drivers/sanremo.c
@@ -122,7 +122,7 @@ public:
DECLARE_WRITE8_MEMBER(lamps_w);
int banksel;
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(sanremo);
UINT32 screen_update_sanremo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -161,15 +161,15 @@ UINT32 sanremo_state::screen_update_sanremo(screen_device &screen, bitmap_ind16
return 0;
}
-void sanremo_state::palette_init()
+PALETTE_INIT_MEMBER(sanremo_state, sanremo)
{
int index;
for (index = 0; index < 0x8; index++)
- palette_set_color_rgb(machine(), index, pal1bit((index >> 0)&1), pal1bit((index >> 1)&1), pal1bit((index >> 2)&1));
+ palette.set_pen_color(index, rgb_t(pal1bit((index >> 0)&1), pal1bit((index >> 1)&1), pal1bit((index >> 2)&1)));
for (index = 0x8; index < 0x10; index++)
- palette_set_color_rgb(machine(), index, pal2bit((index >> 0)&1), pal2bit((index >> 1)&1), pal2bit((index >> 2)&1));
+ palette.set_pen_color(index, rgb_t(pal2bit((index >> 0)&1), pal2bit((index >> 1)&1), pal2bit((index >> 2)&1)));
}
@@ -401,7 +401,8 @@ static MACHINE_CONFIG_START( sanremo, sanremo_state )
MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf)
MCFG_GFXDECODE_ADD("gfxdecode", sanremo)
- MCFG_PALETTE_LENGTH(0x10)
+ MCFG_PALETTE_ADD("palette", 0x10)
+ MCFG_PALETTE_INIT_OWNER(sanremo_state, sanremo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c
index 2a8fc794b64..a6850da3067 100644
--- a/src/mame/drivers/sauro.c
+++ b/src/mame/drivers/sauro.c
@@ -386,8 +386,7 @@ static MACHINE_CONFIG_START( tecfri, sauro_state )
MCFG_SCREEN_SIZE(32 * 8, 32 * 8)
MCFG_SCREEN_VISIBLE_AREA(1 * 8, 31 * 8 - 1, 2 * 8, 30 * 8 - 1)
- MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 1024)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sbasketb.c b/src/mame/drivers/sbasketb.c
index 67881e394f6..ce65e059d3a 100644
--- a/src/mame/drivers/sbasketb.c
+++ b/src/mame/drivers/sbasketb.c
@@ -198,8 +198,8 @@ static MACHINE_CONFIG_START( sbasketb, sbasketb_state )
MCFG_SCREEN_UPDATE_DRIVER(sbasketb_state, screen_update_sbasketb)
MCFG_GFXDECODE_ADD("gfxdecode", sbasketb)
- MCFG_PALETTE_LENGTH(16*16+16*16*16)
-
+ MCFG_PALETTE_ADD("palette", 16*16+16*16*16)
+ MCFG_PALETTE_INIT_OWNER(sbasketb_state, sbasketb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sbowling.c b/src/mame/drivers/sbowling.c
index e6bc9c28892..249f2b2fe81 100644
--- a/src/mame/drivers/sbowling.c
+++ b/src/mame/drivers/sbowling.c
@@ -74,7 +74,7 @@ public:
DECLARE_READ8_MEMBER(controls_r);
TILE_GET_INFO_MEMBER(get_sb_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(sbowling);
UINT32 screen_update_sbowling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(sbw_interrupt);
};
@@ -338,7 +338,7 @@ static GFXDECODE_START( sbowling )
GFXDECODE_END
-void sbowling_state::palette_init()
+PALETTE_INIT_MEMBER(sbowling_state, sbowling)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
@@ -353,7 +353,7 @@ void sbowling_state::palette_init()
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 < palette.entries();i++)
{
int bit0,bit1,bit2,r,g,b;
@@ -374,7 +374,7 @@ void sbowling_state::palette_init()
bit2 = (color_prom[i+0x400] >> 3) & 0x01;
r = (int)(outputs_r[ (bit0<<0) | (bit1<<1) | (bit2<<2) ] + 0.5);
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
}
}
@@ -393,7 +393,8 @@ static MACHINE_CONFIG_START( sbowling, sbowling_state )
MCFG_GFXDECODE_ADD("gfxdecode", sbowling)
- MCFG_PALETTE_LENGTH(0x400)
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_INIT_OWNER(sbowling_state, sbowling)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c
index a64f769f5df..a3f0c30f948 100644
--- a/src/mame/drivers/sbrkout.c
+++ b/src/mame/drivers/sbrkout.c
@@ -347,7 +347,7 @@ UINT32 sbrkout_state::screen_update_sbrkout(screen_device &screen, bitmap_ind16
int sx = 31 * 8 - videoram[0x380 + 0x10 + ball * 2];
int sy = 30 * 8 - videoram[0x380 + 0x18 + ball * 2];
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, 0, 0, 0, sx, sy, 0);
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, 0, 0, 0, sx, sy, 0);
}
return 0;
}
@@ -516,13 +516,12 @@ static MACHINE_CONFIG_START( sbrkout, sbrkout_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", sbrkout)
- MCFG_PALETTE_LENGTH(2)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK/2, 384, 0, 256, 262, 0, 224)
MCFG_SCREEN_UPDATE_DRIVER(sbrkout_state, screen_update_sbrkout)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sbugger.c b/src/mame/drivers/sbugger.c
index 048e8ab0a52..68fcc622000 100644
--- a/src/mame/drivers/sbugger.c
+++ b/src/mame/drivers/sbugger.c
@@ -239,8 +239,8 @@ static MACHINE_CONFIG_START( sbugger, sbugger_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(sbugger_state, screen_update_sbugger)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(sbugger_state, sbugger)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/scobra.c b/src/mame/drivers/scobra.c
index 8acbf9452f6..ea91c98c0f3 100644
--- a/src/mame/drivers/scobra.c
+++ b/src/mame/drivers/scobra.c
@@ -759,9 +759,9 @@ static MACHINE_CONFIG_START( type1, scobra_state )
MCFG_SCREEN_UPDATE_DRIVER(scobra_state, screen_update_galaxold)
MCFG_GFXDECODE_ADD("gfxdecode", scobra)
- MCFG_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 1 for background */
+ MCFG_PALETTE_ADD("palette", 32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 1 for background */
- MCFG_PALETTE_INIT_OVERRIDE(scobra_state,scrambold)
+ MCFG_PALETTE_INIT_OWNER(scobra_state,scrambold)
MCFG_VIDEO_START_OVERRIDE(scobra_state,scrambold)
/* sound hardware */
@@ -784,9 +784,10 @@ static MACHINE_CONFIG_DERIVED( rescue, type1 )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_PALETTE_LENGTH(32+64+2+128) /* 32 for characters, 64 for stars, 2 for bullets, 128 for background */
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+128) /* 32 for characters, 64 for stars, 2 for bullets, 128 for background */
- MCFG_PALETTE_INIT_OVERRIDE(scobra_state,rescue)
+ MCFG_PALETTE_INIT_OWNER(scobra_state,rescue)
MCFG_VIDEO_START_OVERRIDE(scobra_state,rescue)
MACHINE_CONFIG_END
@@ -797,9 +798,10 @@ static MACHINE_CONFIG_DERIVED( minefld, type1 )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_PALETTE_LENGTH(32+64+2+256) /* 32 for characters, 64 for stars, 2 for bullets, 256 for background */
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+256) /* 32 for characters, 64 for stars, 2 for bullets, 256 for background */
- MCFG_PALETTE_INIT_OVERRIDE(scobra_state,minefld)
+ MCFG_PALETTE_INIT_OWNER(scobra_state,minefld)
MCFG_VIDEO_START_OVERRIDE(scobra_state,minefld)
MACHINE_CONFIG_END
@@ -831,9 +833,10 @@ static MACHINE_CONFIG_DERIVED( stratgyx, type2 )
MCFG_I8255A_ADD( "ppi8255_1", stratgyx_ppi_1_intf )
/* video hardware */
- MCFG_PALETTE_LENGTH(32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */
- MCFG_PALETTE_INIT_OVERRIDE(scobra_state,stratgyx)
+ MCFG_PALETTE_INIT_OWNER(scobra_state,stratgyx)
MCFG_VIDEO_START_OVERRIDE(scobra_state,stratgyx)
MACHINE_CONFIG_END
@@ -843,9 +846,10 @@ static MACHINE_CONFIG_DERIVED( darkplnt, type2 )
/* basic machine hardware */
/* video hardware */
- MCFG_PALETTE_LENGTH(32+64+2) /* 32 for characters, 64 (buffer) for stars, 2 for bullets */
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2) /* 32 for characters, 64 (buffer) for stars, 2 for bullets */
- MCFG_PALETTE_INIT_OVERRIDE(scobra_state,darkplnt)
+ MCFG_PALETTE_INIT_OWNER(scobra_state,darkplnt)
MCFG_VIDEO_START_OVERRIDE(scobra_state,darkplnt)
MACHINE_CONFIG_END
@@ -886,9 +890,9 @@ static MACHINE_CONFIG_START( hustler, scobra_state )
MCFG_SCREEN_UPDATE_DRIVER(scobra_state, screen_update_galaxold)
MCFG_GFXDECODE_ADD("gfxdecode", scobra)
- MCFG_PALETTE_LENGTH(32+64+2) /* 32 for characters, 64 for stars, 2 for bullets */
+ MCFG_PALETTE_ADD("palette", 32+64+2) /* 32 for characters, 64 for stars, 2 for bullets */
- MCFG_PALETTE_INIT_OVERRIDE(scobra_state,galaxold)
+ MCFG_PALETTE_INIT_OWNER(scobra_state,galaxold)
MCFG_VIDEO_START_OVERRIDE(scobra_state,scrambold)
/* sound hardware */
diff --git a/src/mame/drivers/scotrsht.c b/src/mame/drivers/scotrsht.c
index 61beffe7d1a..e0c940fa7cb 100644
--- a/src/mame/drivers/scotrsht.c
+++ b/src/mame/drivers/scotrsht.c
@@ -197,8 +197,8 @@ static MACHINE_CONFIG_START( scotrsht, scotrsht_state )
MCFG_SCREEN_UPDATE_DRIVER(scotrsht_state, screen_update_scotrsht)
MCFG_GFXDECODE_ADD("gfxdecode", scotrsht)
- MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
-
+ MCFG_PALETTE_ADD("palette", 16*8*16+16*8*16)
+ MCFG_PALETTE_INIT_OWNER(scotrsht_state, scotrsht)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/scramble.c b/src/mame/drivers/scramble.c
index 2e731ce30dd..be6b1fd3950 100644
--- a/src/mame/drivers/scramble.c
+++ b/src/mame/drivers/scramble.c
@@ -1477,9 +1477,9 @@ static MACHINE_CONFIG_START( scramble, scramble_state )
MCFG_SCREEN_UPDATE_DRIVER(scramble_state, screen_update_galaxold)
MCFG_GFXDECODE_ADD("gfxdecode", scramble)
- MCFG_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
+ MCFG_PALETTE_ADD("palette", 32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
- MCFG_PALETTE_INIT_OVERRIDE(scramble_state,scrambold)
+ MCFG_PALETTE_INIT_OWNER(scramble_state,scrambold)
MCFG_VIDEO_START_OVERRIDE(scramble_state,scrambold)
/* sound hardware */
@@ -1503,8 +1503,9 @@ static MACHINE_CONFIG_DERIVED( mars, scramble )
MCFG_I8255A_ADD( "ppi8255_1", stratgyx_ppi_1_intf )
/* 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_OVERRIDE(scramble_state,galaxold)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
+ MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( devilfsh, scramble )
@@ -1515,8 +1516,9 @@ static MACHINE_CONFIG_DERIVED( devilfsh, scramble )
/* video hardware */
MCFG_GFXDECODE_MODIFY("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_OVERRIDE(scramble_state,galaxold)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
+ MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( newsin7, scramble )
@@ -1527,8 +1529,9 @@ static MACHINE_CONFIG_DERIVED( newsin7, scramble )
/* video hardware */
MCFG_GFXDECODE_MODIFY("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_OVERRIDE(scramble_state,galaxold)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
+ MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold)
MCFG_VIDEO_START_OVERRIDE(scramble_state,scrambold)
MACHINE_CONFIG_END
@@ -1543,8 +1546,9 @@ static MACHINE_CONFIG_DERIVED( mrkougar, scramble )
/* video hardware */
MCFG_GFXDECODE_MODIFY("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_OVERRIDE(scramble_state,galaxold)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
+ MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mrkougb, scramble )
@@ -1557,8 +1561,9 @@ static MACHINE_CONFIG_DERIVED( mrkougb, scramble )
MCFG_I8255A_ADD( "ppi8255_1", mrkougar_ppi_1_intf )
/* 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_OVERRIDE(scramble_state,galaxold)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
+ MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( ckongs, scramble )
@@ -1568,8 +1573,9 @@ static MACHINE_CONFIG_DERIVED( ckongs, scramble )
MCFG_CPU_PROGRAM_MAP(ckongs_map)
/* 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_OVERRIDE(scramble_state,galaxold)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
+ MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold)
MCFG_VIDEO_START_OVERRIDE(scramble_state,ckongs)
MACHINE_CONFIG_END
@@ -1588,8 +1594,9 @@ static MACHINE_CONFIG_DERIVED( hotshock, scramble )
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_OVERRIDE(scramble_state,galaxold)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
+ MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold)
MCFG_VIDEO_START_OVERRIDE(scramble_state,pisces)
MCFG_SOUND_MODIFY("8910.1")
@@ -1607,8 +1614,9 @@ static MACHINE_CONFIG_DERIVED( cavelon, scramble )
/* basic machine hardware */
/* 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_OVERRIDE(scramble_state,galaxold)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
+ MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold)
MCFG_VIDEO_START_OVERRIDE(scramble_state,ckongs)
MACHINE_CONFIG_END
@@ -1635,9 +1643,9 @@ static MACHINE_CONFIG_DERIVED( triplep, scramble )
MCFG_DEVICE_REMOVE("konami_7474")
/* video hardware */
- MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets */
-
- MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets */
+ MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold)
/* sound hardware */
MCFG_SOUND_MODIFY("8910.1")
@@ -1654,9 +1662,10 @@ static MACHINE_CONFIG_DERIVED( mariner, triplep )
/* basic machine hardware */
/* video hardware */
- MCFG_PALETTE_LENGTH(32+64+2+16) /* 32 for characters, 64 for stars, 2 for bullets, 16 for background */
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+16) /* 32 for characters, 64 for stars, 2 for bullets, 16 for background */
- MCFG_PALETTE_INIT_OVERRIDE(scramble_state,mariner)
+ MCFG_PALETTE_INIT_OWNER(scramble_state,mariner)
MCFG_VIDEO_START_OVERRIDE(scramble_state,mariner)
MACHINE_CONFIG_END
@@ -1673,9 +1682,10 @@ static MACHINE_CONFIG_DERIVED( hunchbks, scramble )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
/* video hardware */
- MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets */
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets */
- MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold)
+ MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( hncholms, hunchbks )
@@ -1714,9 +1724,9 @@ static MACHINE_CONFIG_START( ad2083, scramble_state )
MCFG_SCREEN_UPDATE_DRIVER(scramble_state, screen_update_galaxold)
MCFG_GFXDECODE_ADD("gfxdecode", ad2083)
- MCFG_PALETTE_LENGTH(32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */
+ MCFG_PALETTE_ADD("palette", 32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */
- MCFG_PALETTE_INIT_OVERRIDE(scramble_state,turtles)
+ MCFG_PALETTE_INIT_OWNER(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 dedcbead124..fd7178269f8 100644
--- a/src/mame/drivers/scregg.c
+++ b/src/mame/drivers/scregg.c
@@ -268,9 +268,9 @@ static MACHINE_CONFIG_START( dommy, scregg_state )
MCFG_SCREEN_UPDATE_DRIVER(scregg_state, screen_update_eggs)
MCFG_GFXDECODE_ADD("gfxdecode", scregg)
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OVERRIDE(scregg_state,btime)
+ MCFG_PALETTE_INIT_OWNER(scregg_state,btime)
MCFG_VIDEO_START_OVERRIDE(scregg_state,btime)
/* sound hardware */
@@ -300,9 +300,9 @@ static MACHINE_CONFIG_START( scregg, scregg_state )
MCFG_SCREEN_UPDATE_DRIVER(scregg_state, screen_update_eggs)
MCFG_GFXDECODE_ADD("gfxdecode", scregg)
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OVERRIDE(scregg_state,btime)
+ MCFG_PALETTE_INIT_OWNER(scregg_state,btime)
MCFG_VIDEO_START_OVERRIDE(scregg_state,btime)
/* sound hardware */
diff --git a/src/mame/drivers/sderby.c b/src/mame/drivers/sderby.c
index 14d25fd272f..3a790e8de9e 100644
--- a/src/mame/drivers/sderby.c
+++ b/src/mame/drivers/sderby.c
@@ -302,7 +302,7 @@ static ADDRESS_MAP_START( sderby_map, AS_PROGRAM, 16, sderby_state )
AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r)
AM_RANGE(0x308008, 0x308009) AM_WRITE(sderby_out_w) /* output port */
AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x380000, 0x380fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* unknown... write 0x01 in game, and 0x00 on reset */
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xffc000, 0xffffff) AM_RAM
@@ -320,7 +320,7 @@ static ADDRESS_MAP_START( sderbya_map, AS_PROGRAM, 16, sderby_state )
AM_RANGE(0x308000, 0x30800d) AM_READ(sderbya_input_r)
AM_RANGE(0x308008, 0x308009) AM_WRITE(sderby_out_w) /* output port */
AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x380000, 0x380fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x300001) AM_WRITENOP /* unknown... write 0x01 in game, and 0x00 on reset */ //MOD
AM_RANGE(0xcf0000, 0xcf07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xcfc000, 0xcfffff) AM_RAM //MOD
@@ -339,7 +339,7 @@ static ADDRESS_MAP_START( luckboom_map, AS_PROGRAM, 16, sderby_state )
AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r)
AM_RANGE(0x308008, 0x308009) AM_WRITE(sderby_out_w) /* output port */
AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x380000, 0x380fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* unknown... write 0x01 in game, and 0x00 on reset */
AM_RANGE(0xe00000, 0xe007ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xff0000, 0xffffff) AM_RAM
@@ -358,7 +358,7 @@ static ADDRESS_MAP_START( spacewin_map, AS_PROGRAM, 16, sderby_state )
AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r)
AM_RANGE(0x308008, 0x308009) AM_WRITE(scmatto_out_w) /* output port */
AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x380000, 0x380fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd00000, 0xd001ff) AM_RAM
AM_RANGE(0x800000, 0x800fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x801000, 0x80100d) AM_WRITENOP /* unknown */
@@ -380,7 +380,7 @@ static ADDRESS_MAP_START( roulette_map, AS_PROGRAM, 16, sderby_state )
AM_RANGE(0x70800a, 0x70800b) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x70800c, 0x70800d) AM_WRITENOP /* watchdog?? (0x0003) */
AM_RANGE(0x70800e, 0x70800f) AM_READWRITE(rprot_r, rprot_w) /* MCU communication */
- AM_RANGE(0x780000, 0x780fff) AM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x780000, 0x780fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xff0000, 0xff07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xffc000, 0xffffff) AM_RAM
@@ -563,7 +563,8 @@ static MACHINE_CONFIG_START( sderby, sderby_state )
MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_sderby)
MCFG_GFXDECODE_ADD("gfxdecode", sderby)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -586,7 +587,8 @@ static MACHINE_CONFIG_START( sderbya, sderby_state )
MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_sderby)
MCFG_GFXDECODE_ADD("gfxdecode", sderby)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -611,7 +613,8 @@ static MACHINE_CONFIG_START( luckboom, sderby_state )
MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_sderby)
MCFG_GFXDECODE_ADD("gfxdecode", sderby)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -634,7 +637,8 @@ static MACHINE_CONFIG_START( spacewin, sderby_state )
MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_pmroulet)
MCFG_GFXDECODE_ADD("gfxdecode", sderby)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -657,7 +661,8 @@ static MACHINE_CONFIG_START( pmroulet, sderby_state )
MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_pmroulet)
MCFG_GFXDECODE_ADD("gfxdecode", sderby)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
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/seabattl.c b/src/mame/drivers/seabattl.c
index e1b86270fcb..56842979bcb 100644
--- a/src/mame/drivers/seabattl.c
+++ b/src/mame/drivers/seabattl.c
@@ -91,7 +91,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(seabattl);
UINT32 screen_update_seabattl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
bool m_waveenable;
UINT8 m_collision;
@@ -105,24 +105,24 @@ public:
***************************************************************************/
-void seabattl_state::palette_init()
+PALETTE_INIT_MEMBER(seabattl_state, seabattl)
{
// sprites (m.obj) + s2636
for (int i = 0; i < 8; i++)
{
- palette_set_color(machine(), i, rgb_t((i & 1) ? 0xff : 0x00, (i & 2) ? 0xff : 0x00, (i & 4) ? 0xff : 0x00));
+ palette.set_pen_color(i, rgb_t((i & 1) ? 0xff : 0x00, (i & 2) ? 0xff : 0x00, (i & 4) ? 0xff : 0x00));
}
// scr
for (int i = 0; i < 8; i++)
{
- palette_set_color(machine(), 8 + 2 * i + 0, rgb_t::black);
- palette_set_color(machine(), 8 + 2 * i + 1, rgb_t((i & 1) ? 0xff : 0x00, (i & 2) ? 0xff : 0x00, (i & 4) ? 0xff : 0x00));
+ palette.set_pen_color(8 + 2 * i + 0, rgb_t::black);
+ palette.set_pen_color(8 + 2 * i + 1, rgb_t((i & 1) ? 0xff : 0x00, (i & 2) ? 0xff : 0x00, (i & 4) ? 0xff : 0x00));
}
// wave
- palette_set_color(machine(), 24, rgb_t::black);
- palette_set_color(machine(), 25, rgb_t(0x00, 0xff, 0xff)); // cyan
+ palette.set_pen_color(24, rgb_t::black);
+ palette.set_pen_color(25, rgb_t(0x00, 0xff, 0xff)); // cyan
}
TILE_GET_INFO_MEMBER(seabattl_state::get_bg_tile_info)
@@ -156,7 +156,7 @@ UINT32 seabattl_state::screen_update_seabattl(screen_device &screen, bitmap_ind1
{
for ( x = 0; x < 32; x++ )
{
- m_gfxdecode->gfx(2)->opaque(bitmap,cliprect, (y & 0x0f) + (((x & 0x0f) + ((screen.frame_number() & 0xe0) >> 4)) << 4), 0, 0, 0, x*8, y*8 );
+ m_gfxdecode->gfx(2)->opaque(m_palette,bitmap,cliprect, (y & 0x0f) + (((x & 0x0f) + ((screen.frame_number() & 0xe0) >> 4)) << 4), 0, 0, 0, x*8, y*8 );
}
}
}
@@ -180,7 +180,7 @@ UINT32 seabattl_state::screen_update_seabattl(screen_device &screen, bitmap_ind1
int x = ((offset & 0x0f) << 4) - ((m_objram[offset] & 0xf0) >> 4);
int y = (offset & 0xf0);
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, code, 0, 0, 0, x, y, 0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, code, 0, 0, 0, x, y, 0);
}
}
@@ -545,7 +545,8 @@ static MACHINE_CONFIG_START( seabattl, seabattl_state )
MCFG_SCREEN_UPDATE_DRIVER(seabattl_state, screen_update_seabattl)
MCFG_GFXDECODE_ADD("gfxdecode", seabattl)
- MCFG_PALETTE_LENGTH(26)
+ MCFG_PALETTE_ADD("palette", 26)
+ MCFG_PALETTE_INIT_OWNER(seabattl_state, seabattl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c
index a9f71e4dba6..0f054fdf3e9 100644
--- a/src/mame/drivers/segac2.c
+++ b/src/mame/drivers/segac2.c
@@ -219,7 +219,7 @@ WRITE16_MEMBER(segac2_state::palette_w )
b = ((newword >> 7) & 0x1e) | ((newword >> 14) & 0x01);
/* set the color */
- palette_set_color_rgb(space.machine(), offset, pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color(offset, pal5bit(r), pal5bit(g), pal5bit(b));
// megadrive_vdp_palette_lookup[offset] = (b) | (g << 5) | (r << 10);
// megadrive_vdp_palette_lookup_sprite[offset] = (b) | (g << 5) | (r << 10);
@@ -227,13 +227,13 @@ WRITE16_MEMBER(segac2_state::palette_w )
tmpr = r >> 1;
tmpg = g >> 1;
tmpb = b >> 1;
- palette_set_color_rgb(space.machine(), offset + 0x800, pal5bit(tmpr), pal5bit(tmpg), pal5bit(tmpb));
+ m_palette->set_pen_color(offset + 0x800, pal5bit(tmpr), pal5bit(tmpg), pal5bit(tmpb));
// how is it calculated on c2?
tmpr = tmpr | 0x10;
tmpg = tmpg | 0x10;
tmpb = tmpb | 0x10;
- palette_set_color_rgb(space.machine(), offset + 0x1000, pal5bit(tmpr), pal5bit(tmpg), pal5bit(tmpb));
+ m_palette->set_pen_color(offset + 0x1000, pal5bit(tmpr), pal5bit(tmpg), pal5bit(tmpb));
}
@@ -1257,10 +1257,10 @@ VIDEO_START_MEMBER(segac2_state,segac2_new)
// and applies it's own external colour circuity
UINT32 segac2_state::screen_update_segac2_new(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- const pen_t *paldata = machine().pens;
+ const pen_t *paldata = m_palette->pens();
if (!m_segac2_enable_display)
{
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
return 0;
}
@@ -1376,7 +1376,7 @@ static MACHINE_CONFIG_START( segac, segac2_state )
MCFG_SCREEN_UPDATE_DRIVER(segac2_state, screen_update_segac2_new)
MCFG_SCREEN_VBLANK_DRIVER(segac2_state, screen_eof_megadriv )
- MCFG_PALETTE_LENGTH(2048*3)
+ MCFG_PALETTE_ADD("palette", 2048*3)
MCFG_VIDEO_START_OVERRIDE(segac2_state,segac2_new)
diff --git a/src/mame/drivers/segae.c b/src/mame/drivers/segae.c
index 6c119039057..8a5c134091d 100644
--- a/src/mame/drivers/segae.c
+++ b/src/mame/drivers/segae.c
@@ -992,8 +992,6 @@ static MACHINE_CONFIG_START( systeme, systeme_state )
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 192)
MCFG_SCREEN_UPDATE_DRIVER(systeme_state, screen_update_systeme)
- MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE)
-
MCFG_SEGA315_5124_ADD("vdp1", _315_5124_1_intf)
MCFG_DEVICE_ADDRESS_MAP(AS_0, vdp1_map)
diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c
index db5e2d0a8c8..4afe5703cbb 100644
--- a/src/mame/drivers/segag80r.c
+++ b/src/mame/drivers/segag80r.c
@@ -829,7 +829,7 @@ static MACHINE_CONFIG_START( g80r_base, segag80r_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", segag80r)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
@@ -871,7 +871,8 @@ static MACHINE_CONFIG_DERIVED( spaceod, g80r_base )
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_SCREEN_MODIFY("screen")
MCFG_GFXDECODE_MODIFY("gfxdecode", spaceod)
- MCFG_PALETTE_LENGTH(64+64)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 64+64)
/* sound boards */
MCFG_FRAGMENT_ADD(spaceod_sound_board)
@@ -887,7 +888,8 @@ static MACHINE_CONFIG_DERIVED( monsterb, g80r_base )
/* background board changes */
MCFG_GFXDECODE_MODIFY("gfxdecode", monsterb)
- MCFG_PALETTE_LENGTH(64+64)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 64+64)
/* sound boards */
MCFG_FRAGMENT_ADD(monsterb_sound_board)
@@ -900,7 +902,8 @@ static MACHINE_CONFIG_DERIVED( pignewt, g80r_base )
/* background board changes */
MCFG_GFXDECODE_MODIFY("gfxdecode", monsterb)
- MCFG_PALETTE_LENGTH(64+64)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 64+64)
/* sound boards */
MCFG_SEGAUSB_ADD("usbsnd")
@@ -918,7 +921,8 @@ static MACHINE_CONFIG_DERIVED( sindbadm, g80r_base )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", monsterb)
- MCFG_PALETTE_LENGTH(64+64)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 64+64)
/* sound boards */
diff --git a/src/mame/drivers/segahang.c b/src/mame/drivers/segahang.c
index 8c7940bd0c9..09d2fb7ef90 100644
--- a/src/mame/drivers/segahang.c
+++ b/src/mame/drivers/segahang.c
@@ -822,7 +822,7 @@ static MACHINE_CONFIG_START( shared_base, segahang_state )
// video hardware
MCFG_GFXDECODE_ADD("gfxdecode", segahang)
- MCFG_PALETTE_LENGTH(2048*3)
+ MCFG_PALETTE_ADD("palette", 2048*3)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_25MHz/4, 400, 0, 320, 262, 0, 224)
diff --git a/src/mame/drivers/segajw.c b/src/mame/drivers/segajw.c
index b4056fecb17..3c83f432cb4 100644
--- a/src/mame/drivers/segajw.c
+++ b/src/mame/drivers/segajw.c
@@ -43,7 +43,6 @@ protected:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
};
@@ -81,10 +80,6 @@ void segajw_state::machine_reset()
{
}
-void segajw_state::palette_init()
-{
-}
-
static MACHINE_CONFIG_START( segajw, segajw_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",M68000,8000000) // unknown clock
@@ -99,7 +94,7 @@ 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_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/segald.c b/src/mame/drivers/segald.c
index 579c899e580..aef17cebbf5 100644
--- a/src/mame/drivers/segald.c
+++ b/src/mame/drivers/segald.c
@@ -77,7 +77,7 @@ void segald_state::astron_draw_characters(bitmap_rgb32 &bitmap,const rectangle &
for (characterY = 0; characterY < 32; characterY++)
{
int current_screen_character = (characterY*32) + characterX;
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, m_fix_ram[current_screen_character],
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, m_fix_ram[current_screen_character],
1, 0, 0, characterX*8, characterY*8, 0);
}
}
@@ -226,7 +226,7 @@ WRITE8_MEMBER(segald_state::astron_COLOR_write)
b = (highBits & 0x0f);
a = (highBits & 0x80) ? 0 : 255;
- palette_set_color(machine(), palIndex, rgb_t(a, r, g, b));
+ m_palette->set_pen_color(palIndex, rgb_t(a, r, g, b));
logerror("COLOR write : 0x%04x @ 0x%04x [0x%x]\n", data, offset, space.device().safe_pc());
}
@@ -379,7 +379,7 @@ static MACHINE_CONFIG_START( astron, segald_state )
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
MCFG_GFXDECODE_ADD("gfxdecode", segald)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardare */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/segaorun.c b/src/mame/drivers/segaorun.c
index ea4897c5368..03e225c5eaa 100644
--- a/src/mame/drivers/segaorun.c
+++ b/src/mame/drivers/segaorun.c
@@ -1204,7 +1204,7 @@ static MACHINE_CONFIG_START( outrun_base, segaorun_state )
// video hardware
MCFG_GFXDECODE_ADD("gfxdecode", segaorun)
- MCFG_PALETTE_LENGTH(4096*3)
+ MCFG_PALETTE_ADD("palette", 4096*3)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_25MHz/4, 400, 0, 320, 262, 0, 224)
diff --git a/src/mame/drivers/segas16a.c b/src/mame/drivers/segas16a.c
index 4e0f6cab611..266b4aaca12 100644
--- a/src/mame/drivers/segas16a.c
+++ b/src/mame/drivers/segas16a.c
@@ -1925,7 +1925,7 @@ static MACHINE_CONFIG_START( system16a, segas16a_state )
MCFG_SEGAIC16VID_GFXDECODE("gfxdecode")
MCFG_GFXDECODE_ADD("gfxdecode", segas16a)
- MCFG_PALETTE_LENGTH(2048*3)
+ MCFG_PALETTE_ADD("palette", 2048*3)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c
index d216b6c9bf6..be69e347a03 100644
--- a/src/mame/drivers/segas16b.c
+++ b/src/mame/drivers/segas16b.c
@@ -3273,7 +3273,7 @@ static MACHINE_CONFIG_START( system16b, segas16b_state )
// video hardware
MCFG_GFXDECODE_ADD("gfxdecode", segas16b)
- MCFG_PALETTE_LENGTH(2048*3)
+ MCFG_PALETTE_ADD("palette", 2048*3)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_25MHz/4, 400, 0, 320, 262, 0, 224)
diff --git a/src/mame/drivers/segas18.c b/src/mame/drivers/segas18.c
index 357ce0dcf07..426a833431b 100644
--- a/src/mame/drivers/segas18.c
+++ b/src/mame/drivers/segas18.c
@@ -1251,7 +1251,7 @@ static MACHINE_CONFIG_START( system18, segas18_state )
MCFG_SCREEN_UPDATE_DRIVER(segas18_state, screen_update)
MCFG_GFXDECODE_ADD("gfxdecode", segas18)
- MCFG_PALETTE_LENGTH(2048*3+2048 + 64*3)
+ MCFG_PALETTE_ADD("palette", 2048*3+2048 + 64*3)
MCFG_SEGA_SYS16B_SPRITES_ADD("sprites")
MCFG_SEGAIC16VID_ADD("segaic16vid")
diff --git a/src/mame/drivers/segas24.c b/src/mame/drivers/segas24.c
index 0f18a74de7b..13eecd9ba00 100644
--- a/src/mame/drivers/segas24.c
+++ b/src/mame/drivers/segas24.c
@@ -1106,7 +1106,7 @@ WRITE16_MEMBER( segas24_state::sys16_paletteram_w )
g |= g >> 5;
b |= b >> 5;
- palette_set_color(machine(), offset, rgb_t(r, g, b));
+ m_palette->set_pen_color(offset, rgb_t(r, g, b));
if(data & 0x8000) {
r = 255-0.6*(255-r);
@@ -1117,7 +1117,7 @@ WRITE16_MEMBER( segas24_state::sys16_paletteram_w )
g = 0.6*g;
b = 0.6*b;
}
- palette_set_color(machine(), offset+machine().total_colors()/2, rgb_t(r, g, b));
+ m_palette->set_pen_color(offset+m_palette->entries()/2, rgb_t(r, g, b));
}
@@ -1946,6 +1946,7 @@ static MACHINE_CONFIG_START( system24, segas24_state )
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_S24TILE_DEVICE_ADD("tile", 0xfff)
MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode")
+ MCFG_S24TILE_DEVICE_PALETTE("palette")
MCFG_S24SPRITE_DEVICE_ADD("sprite")
MCFG_S24MIXER_DEVICE_ADD("mixer")
@@ -1953,7 +1954,7 @@ static MACHINE_CONFIG_START( system24, segas24_state )
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/)
MCFG_SCREEN_UPDATE_DRIVER(segas24_state, screen_update_system24)
- MCFG_PALETTE_LENGTH(8192*2)
+ MCFG_PALETTE_ADD("palette", 8192*2)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c
index df97bc232aa..f9142692e67 100644
--- a/src/mame/drivers/segas32.c
+++ b/src/mame/drivers/segas32.c
@@ -2344,7 +2344,7 @@ static MACHINE_CONFIG_START( system32, segas32_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", segas32)
- MCFG_PALETTE_LENGTH(0x4000)
+ MCFG_PALETTE_ADD("palette", 0x4000)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -2401,7 +2401,7 @@ static MACHINE_CONFIG_START( multi32, segas32_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", segas32)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/segaxbd.c b/src/mame/drivers/segaxbd.c
index 54634cf1f0a..b4e0ffdea59 100644
--- a/src/mame/drivers/segaxbd.c
+++ b/src/mame/drivers/segaxbd.c
@@ -1557,7 +1557,7 @@ static MACHINE_CONFIG_START( xboard, segaxbd_state )
// video hardware
MCFG_GFXDECODE_ADD("gfxdecode", segaxbd)
- MCFG_PALETTE_LENGTH(8192*3)
+ MCFG_PALETTE_ADD("palette", 8192*3)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/8, 400, 0, 320, 262, 0, 224)
diff --git a/src/mame/drivers/segaybd.c b/src/mame/drivers/segaybd.c
index 2ee1c4da660..31b3d083970 100644
--- a/src/mame/drivers/segaybd.c
+++ b/src/mame/drivers/segaybd.c
@@ -1194,7 +1194,7 @@ static MACHINE_CONFIG_START( yboard, segaybd_state )
MCFG_SEGAIC16VID_ADD("segaic16vid")
MCFG_SEGAIC16VID_GFXDECODE("gfxdecode")
- MCFG_PALETTE_LENGTH(8192*3)
+ MCFG_PALETTE_ADD("palette", 8192*3)
// sound hardware
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/seibuspi.c b/src/mame/drivers/seibuspi.c
index 3b18e98c65b..aee062cc357 100644
--- a/src/mame/drivers/seibuspi.c
+++ b/src/mame/drivers/seibuspi.c
@@ -1846,8 +1846,8 @@ static MACHINE_CONFIG_START( spi, seibuspi_state )
MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi)
MCFG_GFXDECODE_ADD("gfxdecode", spi)
- MCFG_PALETTE_LENGTH(6144)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 6144)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1944,8 +1944,8 @@ static MACHINE_CONFIG_START( sys386i, seibuspi_state )
MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi)
MCFG_GFXDECODE_ADD("gfxdecode", spi)
- MCFG_PALETTE_LENGTH(6144)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 6144)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1997,8 +1997,8 @@ static MACHINE_CONFIG_START( sys386f, seibuspi_state )
MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_sys386f)
MCFG_GFXDECODE_ADD("gfxdecode", sys386f)
- MCFG_PALETTE_LENGTH(8192)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 8192)
MCFG_VIDEO_START_OVERRIDE(seibuspi_state, sys386f)
diff --git a/src/mame/drivers/seicross.c b/src/mame/drivers/seicross.c
index 53a1fd5d934..1b6a68118e7 100644
--- a/src/mame/drivers/seicross.c
+++ b/src/mame/drivers/seicross.c
@@ -419,8 +419,8 @@ static MACHINE_CONFIG_START( nvram, seicross_state )
MCFG_SCREEN_UPDATE_DRIVER(seicross_state, screen_update_seicross)
MCFG_GFXDECODE_ADD("gfxdecode", seicross)
- MCFG_PALETTE_LENGTH(64)
-
+ MCFG_PALETTE_ADD("palette", 64)
+ MCFG_PALETTE_INIT_OWNER(seicross_state, seicross)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sengokmj.c b/src/mame/drivers/sengokmj.c
index 7a172fba155..5d99042cfa3 100644
--- a/src/mame/drivers/sengokmj.c
+++ b/src/mame/drivers/sengokmj.c
@@ -271,11 +271,11 @@ void sengokmj_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap
for (ax=0; ax<dx; ax++)
for (ay=0; ay<dy; ay++) {
if (!fx)
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
sprite++,
color,fx,fy,x+ax*16,y+ay*16,15);
else
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,
sprite++,
color,fx,fy,x+(dx-1-ax)*16,y+ay*16,15);
}
@@ -296,7 +296,7 @@ void sengokmj_state::video_start()
UINT32 sengokmj_state::screen_update_sengokmj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(screen.machine().pens[0x7ff], cliprect); //black pen
+ bitmap.fill(m_palette->pen(0x7ff), cliprect); //black pen
/* TODO: offsetted? */
m_sc0_tilemap->set_scrollx(0, (SEIBU_CRTC_SC0_SX + 128) & 0x1ff );
@@ -372,7 +372,7 @@ static ADDRESS_MAP_START( sengokmj_map, AS_PROGRAM, 16, sengokmj_state )
AM_RANGE(0x0c800, 0x0cfff) AM_RAM_WRITE(seibucrtc_sc1vram_w) AM_SHARE("sc1_vram")
AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(seibucrtc_sc2vram_w) AM_SHARE("sc2_vram")
AM_RANGE(0x0d800, 0x0e7ff) AM_RAM_WRITE(seibucrtc_sc3vram_w) AM_SHARE("sc3_vram")
- AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0f800, 0x0ffff) AM_RAM AM_SHARE("sprite_ram")
AM_RANGE(0xc0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
@@ -581,7 +581,8 @@ static MACHINE_CONFIG_START( sengokmj, sengokmj_state )
MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0)
MCFG_GFXDECODE_ADD("gfxdecode", sengokmj)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4,1320000)
diff --git a/src/mame/drivers/senjyo.c b/src/mame/drivers/senjyo.c
index 28190a34cad..1d3e0c7323b 100644
--- a/src/mame/drivers/senjyo.c
+++ b/src/mame/drivers/senjyo.c
@@ -124,7 +124,7 @@ WRITE8_MEMBER(senjyo_state::senjyo_paletteram_w)
int bb = b|((b!=0)?i:0);
m_generic_paletteram_8[offset] = data;
- palette_set_color_rgb(machine(), offset, pal4bit(rr), pal4bit(gg), pal4bit(bb) );
+ m_palette->set_pen_color(offset, pal4bit(rr), pal4bit(gg), pal4bit(bb) );
}
static ADDRESS_MAP_START( senjyo_map, AS_PROGRAM, 8, senjyo_state )
@@ -574,8 +574,8 @@ static MACHINE_CONFIG_START( senjyo, senjyo_state )
MCFG_SCREEN_UPDATE_DRIVER(senjyo_state, screen_update_senjyo)
MCFG_GFXDECODE_ADD("gfxdecode", senjyo)
- MCFG_PALETTE_LENGTH(512+2) /* 512 real palette + 2 for the radar */
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 512+2) /* 512 real palette + 2 for the radar */
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c
index c3742b67355..e57d24ef651 100644
--- a/src/mame/drivers/seta.c
+++ b/src/mame/drivers/seta.c
@@ -7491,6 +7491,7 @@ static MACHINE_CONFIG_START( tndrcade, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -7501,7 +7502,7 @@ static MACHINE_CONFIG_START( tndrcade, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", tndrcade)
- MCFG_PALETTE_LENGTH(512) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 512) /* sprites only */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -7542,6 +7543,7 @@ static MACHINE_CONFIG_START( twineagl, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -7552,7 +7554,7 @@ static MACHINE_CONFIG_START( twineagl, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", downtown)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_VIDEO_START_OVERRIDE(seta_state,twineagl_1_layer)
@@ -7585,6 +7587,7 @@ static MACHINE_CONFIG_START( downtown, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -7595,7 +7598,7 @@ static MACHINE_CONFIG_START( downtown, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", downtown)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
@@ -7644,6 +7647,7 @@ static MACHINE_CONFIG_START( usclssic, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -7654,9 +7658,9 @@ static MACHINE_CONFIG_START( usclssic, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_usclssic)
MCFG_GFXDECODE_ADD("gfxdecode", usclssic)
- MCFG_PALETTE_LENGTH(16*32 + 64*32*2) /* sprites, layer */
+ MCFG_PALETTE_ADD("palette", 16*32 + 64*32*2) /* sprites, layer */
- MCFG_PALETTE_INIT_OVERRIDE(seta_state,usclssic) /* layer is 6 planes deep */
+ MCFG_PALETTE_INIT_OWNER(seta_state,usclssic) /* layer is 6 planes deep */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
/* sound hardware */
@@ -7694,6 +7698,7 @@ static MACHINE_CONFIG_START( calibr50, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -7704,7 +7709,7 @@ static MACHINE_CONFIG_START( calibr50, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", downtown)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
@@ -7735,6 +7740,7 @@ static MACHINE_CONFIG_START( metafox, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -7745,7 +7751,7 @@ static MACHINE_CONFIG_START( metafox, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", downtown)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
@@ -7772,6 +7778,7 @@ static MACHINE_CONFIG_START( atehate, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -7782,7 +7789,7 @@ static MACHINE_CONFIG_START( atehate, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", tndrcade)
- MCFG_PALETTE_LENGTH(512) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 512) /* sprites only */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -7815,6 +7822,7 @@ static MACHINE_CONFIG_START( blandia, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -7826,9 +7834,9 @@ static MACHINE_CONFIG_START( blandia, seta_state )
MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
MCFG_GFXDECODE_ADD("gfxdecode", blandia)
- MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */
+ MCFG_PALETTE_ADD("palette", (16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */
- MCFG_PALETTE_INIT_OVERRIDE(seta_state,blandia) /* layers 1&2 are 6 planes deep */
+ MCFG_PALETTE_INIT_OWNER(seta_state,blandia) /* layers 1&2 are 6 planes deep */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
@@ -7849,6 +7857,7 @@ static MACHINE_CONFIG_START( blandiap, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -7860,9 +7869,9 @@ static MACHINE_CONFIG_START( blandiap, seta_state )
MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
MCFG_GFXDECODE_ADD("gfxdecode", blandia)
- MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */
+ MCFG_PALETTE_ADD("palette", (16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */
- MCFG_PALETTE_INIT_OVERRIDE(seta_state,blandia) /* layers 1&2 are 6 planes deep */
+ MCFG_PALETTE_INIT_OWNER(seta_state,blandia) /* layers 1&2 are 6 planes deep */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
@@ -7888,6 +7897,7 @@ static MACHINE_CONFIG_START( blockcar, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -7898,7 +7908,7 @@ static MACHINE_CONFIG_START( blockcar, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", tndrcade)
- MCFG_PALETTE_LENGTH(512) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 512) /* sprites only */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -7961,6 +7971,7 @@ static MACHINE_CONFIG_START( daioh, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -7971,7 +7982,7 @@ static MACHINE_CONFIG_START( daioh, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", msgundam)
- MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */
+ MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer1, layer2 */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
@@ -8003,6 +8014,7 @@ static MACHINE_CONFIG_START( drgnunit, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8014,7 +8026,7 @@ static MACHINE_CONFIG_START( drgnunit, seta_state )
MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
MCFG_GFXDECODE_ADD("gfxdecode", downtown)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
@@ -8039,6 +8051,7 @@ static MACHINE_CONFIG_START( qzkklgy2, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8050,7 +8063,7 @@ static MACHINE_CONFIG_START( qzkklgy2, seta_state )
MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
MCFG_GFXDECODE_ADD("gfxdecode", qzkklgy2)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
@@ -8088,6 +8101,7 @@ static MACHINE_CONFIG_START( setaroul, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
MCFG_NVRAM_ADD_RANDOM_FILL("nvram")
@@ -8101,8 +8115,8 @@ static MACHINE_CONFIG_START( setaroul, seta_state )
MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_setaroul)
MCFG_GFXDECODE_ADD("gfxdecode", setaroul)
- MCFG_PALETTE_LENGTH(512)
- MCFG_PALETTE_INIT_OVERRIDE(seta_state,setaroul)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(seta_state,setaroul)
MCFG_VIDEO_START_OVERRIDE(seta_state,setaroul_1_layer)
@@ -8129,6 +8143,7 @@ static MACHINE_CONFIG_START( eightfrc, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8139,7 +8154,7 @@ static MACHINE_CONFIG_START( eightfrc, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", msgundam)
- MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */
+ MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer1, layer2 */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
@@ -8171,6 +8186,7 @@ static MACHINE_CONFIG_START( extdwnhl, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8181,9 +8197,9 @@ static MACHINE_CONFIG_START( extdwnhl, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", zingzip)
- MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2) /* sprites, layer2, layer1 */
+ MCFG_PALETTE_ADD("palette", 16*32+16*32+64*32*2) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INIT_OVERRIDE(seta_state,zingzip) /* layer 1 gfx is 6 planes deep */
+ MCFG_PALETTE_INIT_OWNER(seta_state,zingzip) /* layer 1 gfx is 6 planes deep */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
@@ -8233,6 +8249,7 @@ static MACHINE_CONFIG_START( gundhara, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8243,9 +8260,9 @@ static MACHINE_CONFIG_START( gundhara, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", jjsquawk)
- MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */
+ MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INIT_OVERRIDE(seta_state,gundhara) /* layers are 6 planes deep (seta_state,but have only 4 palettes) */
+ MCFG_PALETTE_INIT_OWNER(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 */
@@ -8275,6 +8292,7 @@ static MACHINE_CONFIG_START( jjsquawk, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8285,9 +8303,9 @@ static MACHINE_CONFIG_START( jjsquawk, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", jjsquawk)
- MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */
+ MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INIT_OVERRIDE(seta_state,jjsquawk) /* layers are 6 planes deep */
+ MCFG_PALETTE_INIT_OWNER(seta_state,jjsquawk) /* layers are 6 planes deep */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
@@ -8308,6 +8326,7 @@ static MACHINE_CONFIG_START( jjsquawb, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8318,9 +8337,9 @@ static MACHINE_CONFIG_START( jjsquawb, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", jjsquawk)
- MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */
+ MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INIT_OVERRIDE(seta_state,jjsquawk) /* layers are 6 planes deep */
+ MCFG_PALETTE_INIT_OWNER(seta_state,jjsquawk) /* layers are 6 planes deep */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
@@ -8350,6 +8369,7 @@ static MACHINE_CONFIG_START( kamenrid, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8360,7 +8380,7 @@ static MACHINE_CONFIG_START( kamenrid, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", msgundam)
- MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
+ MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
@@ -8388,6 +8408,7 @@ static MACHINE_CONFIG_START( orbs, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8398,7 +8419,7 @@ static MACHINE_CONFIG_START( orbs, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", orbs)
- MCFG_PALETTE_LENGTH(512) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 512) /* sprites only */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -8427,6 +8448,7 @@ static MACHINE_CONFIG_START( keroppi, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8437,7 +8459,7 @@ static MACHINE_CONFIG_START( keroppi, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", orbs)
- MCFG_PALETTE_LENGTH(512) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 512) /* sprites only */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -8464,6 +8486,7 @@ static MACHINE_CONFIG_START( krzybowl, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8474,7 +8497,7 @@ static MACHINE_CONFIG_START( krzybowl, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", tndrcade)
- MCFG_PALETTE_LENGTH(512) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 512) /* sprites only */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -8506,6 +8529,7 @@ static MACHINE_CONFIG_START( madshark, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8516,9 +8540,9 @@ static MACHINE_CONFIG_START( madshark, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", jjsquawk)
- MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */
+ MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INIT_OVERRIDE(seta_state,jjsquawk) /* layers are 6 planes deep */
+ MCFG_PALETTE_INIT_OWNER(seta_state,jjsquawk) /* layers are 6 planes deep */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
@@ -8549,6 +8573,7 @@ static MACHINE_CONFIG_START( magspeed, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8559,7 +8584,7 @@ static MACHINE_CONFIG_START( magspeed, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", msgundam)
- MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
+ MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
@@ -8596,6 +8621,7 @@ static MACHINE_CONFIG_START( msgundam, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8607,7 +8633,7 @@ static MACHINE_CONFIG_START( msgundam, seta_state )
MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
MCFG_GFXDECODE_ADD("gfxdecode", msgundam)
- MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
+ MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
@@ -8635,6 +8661,7 @@ static MACHINE_CONFIG_START( oisipuzl, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8645,7 +8672,7 @@ static MACHINE_CONFIG_START( oisipuzl, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", msgundam)
- MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
+ MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */
MCFG_VIDEO_START_OVERRIDE(seta_state,oisipuzl_2_layers) // flip is inverted for the tilemaps
@@ -8673,6 +8700,7 @@ static MACHINE_CONFIG_START( triplfun, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8683,7 +8711,7 @@ static MACHINE_CONFIG_START( triplfun, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", msgundam)
- MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
+ MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */
MCFG_VIDEO_START_OVERRIDE(seta_state,oisipuzl_2_layers) // flip is inverted for the tilemaps
@@ -8709,6 +8737,7 @@ static MACHINE_CONFIG_START( kiwame, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8719,7 +8748,7 @@ static MACHINE_CONFIG_START( kiwame, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", tndrcade)
- MCFG_PALETTE_LENGTH(512) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 512) /* sprites only */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -8749,6 +8778,7 @@ static MACHINE_CONFIG_START( rezon, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8759,7 +8789,7 @@ static MACHINE_CONFIG_START( rezon, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", msgundam)
- MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */
+ MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer1, layer2 */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
@@ -8789,6 +8819,7 @@ static MACHINE_CONFIG_START( thunderl, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8799,7 +8830,7 @@ static MACHINE_CONFIG_START( thunderl, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", tndrcade)
- MCFG_PALETTE_LENGTH(512) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 512) /* sprites only */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -8861,6 +8892,7 @@ static MACHINE_CONFIG_START( wiggie, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8871,7 +8903,7 @@ static MACHINE_CONFIG_START( wiggie, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", wiggie)
- MCFG_PALETTE_LENGTH(512) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 512) /* sprites only */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -8896,6 +8928,7 @@ static MACHINE_CONFIG_START( wits, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8906,7 +8939,7 @@ static MACHINE_CONFIG_START( wits, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", tndrcade)
- MCFG_PALETTE_LENGTH(512) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 512) /* sprites only */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -8933,6 +8966,7 @@ static MACHINE_CONFIG_START( umanclub, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8943,7 +8977,7 @@ static MACHINE_CONFIG_START( umanclub, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", tndrcade)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -8974,6 +9008,7 @@ static MACHINE_CONFIG_START( utoukond, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -8984,7 +9019,7 @@ static MACHINE_CONFIG_START( utoukond, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", msgundam)
- MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
+ MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
@@ -9024,6 +9059,7 @@ static MACHINE_CONFIG_START( wrofaero, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -9034,7 +9070,7 @@ static MACHINE_CONFIG_START( wrofaero, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", msgundam)
- MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */
+ MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer1, layer2 */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
@@ -9068,6 +9104,7 @@ static MACHINE_CONFIG_START( zingzip, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -9078,9 +9115,9 @@ static MACHINE_CONFIG_START( zingzip, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", zingzip)
- MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2) /* sprites, layer2, layer1 */
+ MCFG_PALETTE_ADD("palette", 16*32+16*32+64*32*2) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INIT_OVERRIDE(seta_state,zingzip) /* layer 1 gfx is 6 planes deep */
+ MCFG_PALETTE_INIT_OWNER(seta_state,zingzip) /* layer 1 gfx is 6 planes deep */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
@@ -9122,6 +9159,7 @@ static MACHINE_CONFIG_START( pairlove, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -9132,7 +9170,7 @@ static MACHINE_CONFIG_START( pairlove, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", tndrcade)
- MCFG_PALETTE_LENGTH(2048) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 2048) /* sprites only */
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -9170,6 +9208,7 @@ static MACHINE_CONFIG_START( crazyfgt, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -9180,9 +9219,9 @@ static MACHINE_CONFIG_START( crazyfgt, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE_ADD("gfxdecode", crazyfgt)
- MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer1, layer2 */
+ MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer1, layer2 */
- MCFG_PALETTE_INIT_OVERRIDE(seta_state,gundhara) /* layers are 6 planes deep (seta_state,but have only 4 palettes) */
+ MCFG_PALETTE_INIT_OWNER(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 */
@@ -9235,6 +9274,7 @@ static MACHINE_CONFIG_START( inttoote, seta_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -9245,9 +9285,9 @@ static MACHINE_CONFIG_START( inttoote, seta_state )
MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_inttoote)
MCFG_GFXDECODE_ADD("gfxdecode", inttoote)
- MCFG_PALETTE_LENGTH(512 * 1)
+ MCFG_PALETTE_ADD("palette", 512 * 1)
- MCFG_PALETTE_INIT_OVERRIDE(seta_state,inttoote)
+ MCFG_PALETTE_INIT_OWNER(seta_state,inttoote)
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
/* sound hardware */
diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c
index 6b851644b68..8ee543529e9 100644
--- a/src/mame/drivers/seta2.c
+++ b/src/mame/drivers/seta2.c
@@ -168,7 +168,7 @@ static ADDRESS_MAP_START( grdians_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x800000, 0x800001) AM_WRITE(grdians_lockout_w)
AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xc50000, 0xc5ffff) AM_RAM // cleared
AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers
AM_RANGE(0xe00010, 0xe0001f) AM_WRITE(seta2_sound_bank_w) // Samples Banks
@@ -206,7 +206,7 @@ static ADDRESS_MAP_START( gundamex_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x800000, 0x800001) AM_WRITE(grdians_lockout_w)
AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xc50000, 0xc5ffff) AM_RAM // cleared
AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers
AM_RANGE(0xe00010, 0xe0001f) AM_WRITE(seta2_sound_bank_w) // Samples Banks
@@ -264,7 +264,7 @@ static ADDRESS_MAP_START( mj4simai_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x600300, 0x60030f) AM_WRITE(seta2_sound_bank_w) // Samples Banks
AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers
AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
ADDRESS_MAP_END
@@ -287,7 +287,7 @@ static ADDRESS_MAP_START( myangel_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x700310, 0x70031f) AM_WRITE(seta2_sound_bank_w) // Samples Banks
AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers
AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
ADDRESS_MAP_END
@@ -310,7 +310,7 @@ static ADDRESS_MAP_START( myangel2_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x600300, 0x60030f) AM_WRITE(seta2_sound_bank_w) // Samples Banks
AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
AM_RANGE(0xd00000, 0xd3ffff) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE(0xd40000, 0xd4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xd40000, 0xd4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xd60000, 0xd6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers
AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
ADDRESS_MAP_END
@@ -354,7 +354,7 @@ static ADDRESS_MAP_START( pzlbowl_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x500006, 0x500007) AM_READ(watchdog_reset16_r) // Watchdog
AM_RANGE(0x700000, 0x700001) AM_READ(pzlbowl_protection_r) // Protection
AM_RANGE(0x800000, 0x83ffff) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE(0x840000, 0x84ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x840000, 0x84ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x860000, 0x86003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers
AM_RANGE(0x900000, 0x903fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
@@ -380,7 +380,7 @@ static ADDRESS_MAP_START( penbros_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x600006, 0x600007) AM_READ(watchdog_reset16_r) // Watchdog
//AM_RANGE(0x700000, 0x700001) AM_READ(pzlbowl_protection_r) // Protection
AM_RANGE(0xb00000, 0xb3ffff) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE(0xb40000, 0xb4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xb40000, 0xb4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xb60000, 0xb6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs")
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
@@ -439,7 +439,7 @@ static ADDRESS_MAP_START( reelquak_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x400300, 0x40030f) AM_WRITE(seta2_sound_bank_w) // Samples Banks
AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers
AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
ADDRESS_MAP_END
@@ -495,7 +495,7 @@ static ADDRESS_MAP_START( samshoot_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE( 0x700006, 0x700007 ) AM_READ(watchdog_reset16_r ) // Watchdog?
AM_RANGE( 0x800000, 0x83ffff ) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE( 0x840000, 0x84ffff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE( 0x840000, 0x84ffff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE( 0x860000, 0x86003f ) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers
AM_RANGE( 0x900000, 0x903fff ) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
@@ -581,7 +581,7 @@ static ADDRESS_MAP_START( funcube_map, AS_PROGRAM, 32, seta2_state )
AM_RANGE( 0x00500000, 0x00500003 ) AM_READWRITE(oki_read, oki_write)
AM_RANGE( 0x00800000, 0x0083ffff ) AM_READWRITE16(spriteram16_word_r, spriteram16_word_w, 0xffffffff ) AM_SHARE("spriteram")
- AM_RANGE( 0x00840000, 0x0084ffff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_dword_be_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE( 0x00840000, 0x0084ffff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE( 0x00860000, 0x0086003f ) AM_WRITE16(seta2_vregs_w, 0xffffffff ) AM_SHARE("vregs")
AM_RANGE( 0x00c00000, 0x00c002ff ) AM_READWRITE(funcube_nvram_dword_r, funcube_nvram_dword_w )
@@ -600,7 +600,7 @@ static ADDRESS_MAP_START( funcube2_map, AS_PROGRAM, 32, seta2_state )
AM_RANGE( 0x00600000, 0x00600003 ) AM_READWRITE(oki_read, oki_write)
AM_RANGE( 0x00800000, 0x0083ffff ) AM_READWRITE16(spriteram16_word_r, spriteram16_word_w, 0xffffffff ) AM_SHARE("spriteram")
- AM_RANGE( 0x00840000, 0x0084ffff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_dword_be_w) AM_SHARE("paletteram")
+ AM_RANGE( 0x00840000, 0x0084ffff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE( 0x00860000, 0x0086003f ) AM_WRITE16(seta2_vregs_w, 0xffffffff ) AM_SHARE("vregs")
AM_RANGE( 0x00c00000, 0x00c002ff ) AM_READWRITE(funcube_nvram_dword_r, funcube_nvram_dword_w )
@@ -2029,7 +2029,8 @@ static MACHINE_CONFIG_START( seta2, seta2_state )
MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2)
MCFG_GFXDECODE_ADD("gfxdecode", seta2)
- MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity
+ MCFG_PALETTE_ADD("palette", 0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(seta2_state,seta2)
@@ -2229,7 +2230,8 @@ static MACHINE_CONFIG_START( funcube, seta2_state )
MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2)
MCFG_GFXDECODE_ADD("gfxdecode", funcube)
- MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity
+ MCFG_PALETTE_ADD("palette", 0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(seta2_state,seta2)
@@ -2280,7 +2282,8 @@ static MACHINE_CONFIG_START( namcostr, seta2_state )
MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2)
MCFG_GFXDECODE_ADD("gfxdecode", funcube)
- MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity
+ MCFG_PALETTE_ADD("palette", 0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(seta2_state,seta2)
diff --git a/src/mame/drivers/sf.c b/src/mame/drivers/sf.c
index f2ca8507cdd..c9d2294f0cc 100644
--- a/src/mame/drivers/sf.c
+++ b/src/mame/drivers/sf.c
@@ -198,7 +198,7 @@ WRITE8_MEMBER(sf_state::msm2_5205_w)
static ADDRESS_MAP_START( sf_map, AS_PROGRAM, 16, sf_state )
AM_RANGE(0x000000, 0x04ffff) AM_ROM
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(sf_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xb00000, 0xb007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("COINS")
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN0")
AM_RANGE(0xc00004, 0xc00005) AM_READ(button1_r)
@@ -220,7 +220,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sfus_map, AS_PROGRAM, 16, sf_state )
AM_RANGE(0x000000, 0x04ffff) AM_ROM
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(sf_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xb00000, 0xb007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0")
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1")
AM_RANGE(0xc00004, 0xc00005) AM_READ(dummy_r)
@@ -242,7 +242,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sfjp_map, AS_PROGRAM, 16, sf_state )
AM_RANGE(0x000000, 0x04ffff) AM_ROM
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(sf_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xb00000, 0xb007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("COINS")
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P1")
AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("P2")
@@ -841,8 +841,9 @@ static MACHINE_CONFIG_START( sf, sf_state )
MCFG_SCREEN_UPDATE_DRIVER(sf_state, screen_update_sf)
MCFG_GFXDECODE_ADD("gfxdecode", sf)
- MCFG_PALETTE_LENGTH(1024)
-
+
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/sfbonus.c b/src/mame/drivers/sfbonus.c
index b0c6a1b388c..cd782cecf93 100644
--- a/src/mame/drivers/sfbonus.c
+++ b/src/mame/drivers/sfbonus.c
@@ -1076,8 +1076,8 @@ UINT32 sfbonus_state::screen_update_sfbonus(screen_device &screen, bitmap_ind16
globalyscroll += 8;
globalxscroll += 8;
- bitmap.fill(machine().pens[0], cliprect);
- m_temp_reel_bitmap->fill(machine().pens[0], cliprect);
+ bitmap.fill(m_palette->pen(0), cliprect);
+ m_temp_reel_bitmap->fill(m_palette->pen(0), cliprect);
/* render reels to bitmap */
sfbonus_draw_reel_layer(screen,*m_temp_reel_bitmap,cliprect,0);
@@ -1377,9 +1377,9 @@ static MACHINE_CONFIG_START( sfbonus, sfbonus_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 288-1)
MCFG_SCREEN_UPDATE_DRIVER(sfbonus_state, screen_update_sfbonus)
- MCFG_PALETTE_LENGTH(0x100*2) // *2 for priority workaraound / custom drawing
+ MCFG_PALETTE_ADD("palette", 0x100*2) // *2 for priority workaraound / custom drawing
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
/* Parrot 3 seems fine at 1 Mhz, but Double Challenge isn't? */
diff --git a/src/mame/drivers/sfkick.c b/src/mame/drivers/sfkick.c
index d0df5d98486..9e7d6f8f5a8 100644
--- a/src/mame/drivers/sfkick.c
+++ b/src/mame/drivers/sfkick.c
@@ -496,7 +496,7 @@ static MACHINE_CONFIG_START( sfkick, sfkick_state )
MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, MSX2_TOTAL_YRES_PIXELS)
MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_I8255A_ADD( "ppi8255", ppi8255_intf )
diff --git a/src/mame/drivers/shadfrce.c b/src/mame/drivers/shadfrce.c
index b4e65e1278f..143b1ca244c 100644
--- a/src/mame/drivers/shadfrce.c
+++ b/src/mame/drivers/shadfrce.c
@@ -271,7 +271,7 @@ WRITE16_MEMBER(shadfrce_state::shadfrce_sound_brt_w)
double brt = (data & 0xff) / 255.0;
for (i = 0; i < 0x4000; i++)
- palette_set_pen_contrast(machine(), i, brt);
+ m_palette->set_pen_contrast(i, brt);
}
}
@@ -366,7 +366,7 @@ static ADDRESS_MAP_START( shadfrce_map, AS_PROGRAM, 16, shadfrce_state )
AM_RANGE(0x102800, 0x103fff) AM_RAM
AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE(shadfrce_fgvideoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0x142000, 0x143fff) AM_RAM AM_SHARE("spvideoram") /* sprites */
- AM_RANGE(0x180000, 0x187fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x180000, 0x187fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE(shadfrce_bg0scrollx_w) /* SCROLL X */
AM_RANGE(0x1c0002, 0x1c0003) AM_WRITE(shadfrce_bg0scrolly_w) /* SCROLL Y */
AM_RANGE(0x1c0004, 0x1c0005) AM_WRITE(shadfrce_bg1scrollx_w) /* SCROLL X */
@@ -555,8 +555,8 @@ static MACHINE_CONFIG_START( shadfrce, shadfrce_state )
MCFG_SCREEN_VBLANK_DRIVER(shadfrce_state, screen_eof_shadfrce)
MCFG_GFXDECODE_ADD("gfxdecode", shadfrce)
- MCFG_PALETTE_LENGTH(0x4000)
-
+ MCFG_PALETTE_ADD("palette", 0x4000)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/shangha3.c b/src/mame/drivers/shangha3.c
index bf5240718a0..442490626e0 100644
--- a/src/mame/drivers/shangha3.c
+++ b/src/mame/drivers/shangha3.c
@@ -127,7 +127,7 @@ WRITE16_MEMBER(shangha3_state::shangha3_irq_ack_w)
static ADDRESS_MAP_START( shangha3_map, AS_PROGRAM, 16, shangha3_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x100000, 0x100fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x200000, 0x200001) AM_READ_PORT("INPUTS")
AM_RANGE(0x200002, 0x200003) AM_READ_PORT("SYSTEM")
AM_RANGE(0x200008, 0x200009) AM_WRITE(shangha3_blitter_go_w)
@@ -145,7 +145,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( heberpop_map, AS_PROGRAM, 16, shangha3_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x100000, 0x100fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x200000, 0x200001) AM_READ_PORT("INPUTS")
AM_RANGE(0x200002, 0x200003) AM_READ_PORT("SYSTEM")
AM_RANGE(0x200004, 0x200005) AM_READ_PORT("DSW")
@@ -168,7 +168,7 @@ static ADDRESS_MAP_START( blocken_map, AS_PROGRAM, 16, shangha3_state )
AM_RANGE(0x10000a, 0x10000b) AM_READNOP AM_WRITE(shangha3_irq_ack_w) // r -> unknown purpose (value doesn't matter, left-over?)
AM_RANGE(0x10000c, 0x10000d) AM_WRITE(blocken_coinctrl_w)
AM_RANGE(0x10000e, 0x10000f) AM_WRITE(heberpop_sound_command_w)
- AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_SHARE("ram") /* gfx & work ram */
AM_RANGE(0x340000, 0x340001) AM_WRITE(shangha3_flipscreen_w)
AM_RANGE(0x360000, 0x360001) AM_WRITE(shangha3_gfxlist_addr_w)
@@ -478,8 +478,6 @@ static MACHINE_CONFIG_START( shangha3, shangha3_state )
MCFG_CPU_VBLANK_INT_DRIVER("screen", shangha3_state, irq4_line_assert)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(60)
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@@ -490,8 +488,10 @@ static MACHINE_CONFIG_START( shangha3, shangha3_state )
MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3)
MCFG_GFXDECODE_ADD("gfxdecode", shangha3)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
+ MCFG_PALETTE_ENABLE_SHADOWS()
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -517,8 +517,6 @@ static MACHINE_CONFIG_START( heberpop, shangha3_state )
MCFG_CPU_IO_MAP(heberpop_sound_io_map) /* NMI triggered by YM3438 */
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(60)
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@@ -529,8 +527,10 @@ static MACHINE_CONFIG_START( heberpop, shangha3_state )
MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3)
MCFG_GFXDECODE_ADD("gfxdecode", shangha3)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
+ MCFG_PALETTE_ENABLE_SHADOWS()
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -557,8 +557,6 @@ static MACHINE_CONFIG_START( blocken, shangha3_state )
MCFG_CPU_IO_MAP(heberpop_sound_io_map) /* NMI triggered by YM3438 */
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(60)
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@@ -569,8 +567,10 @@ static MACHINE_CONFIG_START( blocken, shangha3_state )
MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3)
MCFG_GFXDECODE_ADD("gfxdecode", shangha3)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx)
+ MCFG_PALETTE_ENABLE_SHADOWS()
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/shanghai.c b/src/mame/drivers/shanghai.c
index 97bc97fc1a5..0916a2922bb 100644
--- a/src/mame/drivers/shanghai.c
+++ b/src/mame/drivers/shanghai.c
@@ -52,7 +52,7 @@ PALETTE_INIT_MEMBER(shanghai_state,shanghai)
int i;
- for (i = 0;i < machine().total_colors();i++)
+ for (i = 0;i < palette.entries();i++)
{
int bit0,bit1,bit2,r,g,b;
@@ -73,7 +73,7 @@ PALETTE_INIT_MEMBER(shanghai_state,shanghai)
bit2 = (i >> 1) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
}
}
@@ -150,7 +150,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( shangha2_map, AS_PROGRAM, 16, shanghai_state )
AM_RANGE(0x00000, 0x03fff) AM_RAM
- AM_RANGE(0x04000, 0x041ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x04000, 0x041ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x80000, 0xfffff) AM_ROM
ADDRESS_MAP_END
@@ -189,7 +189,7 @@ static ADDRESS_MAP_START( kothello_map, AS_PROGRAM, 16, shanghai_state )
AM_RANGE(0x09012, 0x09013) AM_READ_PORT("P2")
AM_RANGE(0x09014, 0x09015) AM_READ_PORT("SYSTEM")
AM_RANGE(0x09016, 0x0901f) AM_WRITENOP // 0x9016 is set to 0 at the boot
- AM_RANGE(0x0a000, 0x0a1ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0a000, 0x0a1ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0b010, 0x0b01f) AM_DEVREADWRITE("seibu_sound", seibu_sound_device, main_word_r, main_word_w)
AM_RANGE(0x80000, 0xfffff) AM_ROM
ADDRESS_MAP_END
@@ -453,9 +453,9 @@ static MACHINE_CONFIG_START( shanghai, shanghai_state )
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) // Base Screen is 384 pixel
MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(shanghai_state,shanghai)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
+ MCFG_PALETTE_INIT_OWNER(shanghai_state,shanghai)
MCFG_HD63484_ADD("hd63484", shanghai_hd63484_intf)
@@ -486,8 +486,8 @@ static MACHINE_CONFIG_START( shangha2, shanghai_state )
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) // Base Screen is 384 pixel
MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_HD63484_ADD("hd63484", shanghai_hd63484_intf)
@@ -521,8 +521,8 @@ static MACHINE_CONFIG_START( kothello, shanghai_state )
MCFG_SCREEN_VISIBLE_AREA(8, 384-1, 0, 250-1) // Base Screen is 376 pixel
MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_HD63484_ADD("hd63484", shanghai_hd63484_intf)
diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c
index 82cea41bb34..2d519eea86a 100644
--- a/src/mame/drivers/shangkid.c
+++ b/src/mame/drivers/shangkid.c
@@ -387,9 +387,7 @@ static MACHINE_CONFIG_START( chinhero, shangkid_state )
MCFG_SCREEN_UPDATE_DRIVER(shangkid_state, screen_update_shangkid)
MCFG_GFXDECODE_ADD("gfxdecode", chinhero)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_VIDEO_START_OVERRIDE(shangkid_state,shangkid)
/* sound hardware */
@@ -466,9 +464,9 @@ static MACHINE_CONFIG_START( dynamski, shangkid_state )
MCFG_SCREEN_UPDATE_DRIVER(shangkid_state, screen_update_dynamski)
MCFG_GFXDECODE_ADD("gfxdecode", dynamski)
- MCFG_PALETTE_LENGTH(16*4+16*4)
+ MCFG_PALETTE_ADD("palette", 16*4+16*4)
- MCFG_PALETTE_INIT_OVERRIDE(shangkid_state,dynamski)
+ MCFG_PALETTE_INIT_OWNER(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 ccfc234fc65..7efc4dc4aff 100644
--- a/src/mame/drivers/shaolins.c
+++ b/src/mame/drivers/shaolins.c
@@ -201,8 +201,8 @@ static MACHINE_CONFIG_START( shaolins, shaolins_state )
MCFG_SCREEN_UPDATE_DRIVER(shaolins_state, screen_update_shaolins)
MCFG_GFXDECODE_ADD("gfxdecode", shaolins)
- MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
-
+ MCFG_PALETTE_ADD("palette", 16*8*16+16*8*16)
+ MCFG_PALETTE_INIT_OWNER(shaolins_state, shaolins)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/shisen.c b/src/mame/drivers/shisen.c
index aebbb47823b..1c135de0331 100644
--- a/src/mame/drivers/shisen.c
+++ b/src/mame/drivers/shisen.c
@@ -223,7 +223,7 @@ static MACHINE_CONFIG_START( shisen, shisen_state )
MCFG_SCREEN_UPDATE_DRIVER(shisen_state, screen_update_sichuan2)
MCFG_GFXDECODE_ADD("gfxdecode", shisen)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
diff --git a/src/mame/drivers/shootout.c b/src/mame/drivers/shootout.c
index 85bc4d77f00..f1e073ec494 100644
--- a/src/mame/drivers/shootout.c
+++ b/src/mame/drivers/shootout.c
@@ -274,8 +274,8 @@ static MACHINE_CONFIG_START( shootout, shootout_state )
MCFG_SCREEN_UPDATE_DRIVER(shootout_state, screen_update_shootout)
MCFG_GFXDECODE_ADD("gfxdecode", shootout)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(shootout_state, shootout)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -302,8 +302,8 @@ static MACHINE_CONFIG_START( shootouj, shootout_state )
MCFG_SCREEN_UPDATE_DRIVER(shootout_state, screen_update_shootouj)
MCFG_GFXDECODE_ADD("gfxdecode", shootout)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(shootout_state, shootout)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/shougi.c b/src/mame/drivers/shougi.c
index e3df87616e6..ee1f67d7d43 100644
--- a/src/mame/drivers/shougi.c
+++ b/src/mame/drivers/shougi.c
@@ -113,7 +113,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();
+ DECLARE_PALETTE_INIT(shougi);
UINT32 screen_update_shougi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(shougi_vblank_nmi);
required_device<cpu_device> m_maincpu;
@@ -140,7 +140,7 @@ public:
***************************************************************************/
-void shougi_state::palette_init()
+PALETTE_INIT_MEMBER(shougi_state, shougi)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
@@ -154,7 +154,7 @@ void shougi_state::palette_init()
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 < palette.entries();i++)
{
int bit0,bit1,bit2,r,g,b;
@@ -175,7 +175,7 @@ void shougi_state::palette_init()
bit1 = (color_prom[i] >> 7) & 0x01;
b = combine_2_weights(weights_b, bit0, bit1);
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
}
}
@@ -430,8 +430,8 @@ static MACHINE_CONFIG_START( shougi, shougi_state )
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255)
MCFG_SCREEN_UPDATE_DRIVER(shougi_state, screen_update_shougi)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(shougi_state, shougi)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/shtzone.c b/src/mame/drivers/shtzone.c
index 9ebe02db017..f658cf4ca40 100644
--- a/src/mame/drivers/shtzone.c
+++ b/src/mame/drivers/shtzone.c
@@ -107,7 +107,7 @@ static MACHINE_CONFIG_START( shtzone, shtzone_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(shtzone_state, screen_update_shtzone)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/shuuz.c b/src/mame/drivers/shuuz.c
index 661b8a6e889..021774ff0be 100644
--- a/src/mame/drivers/shuuz.c
+++ b/src/mame/drivers/shuuz.c
@@ -234,7 +234,7 @@ static MACHINE_CONFIG_START( shuuz, shuuz_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", shuuz)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_ATARI_VAD_ADD("vad", "screen", WRITELINE(atarigen_state, scanline_int_write_line))
MCFG_ATARI_VAD_PLAYFIELD(shuuz_state, get_playfield_tile_info)
diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c
index 1a8f7c579aa..0a650788389 100644
--- a/src/mame/drivers/sidearms.c
+++ b/src/mame/drivers/sidearms.c
@@ -71,8 +71,8 @@ READ8_MEMBER(sidearms_state::turtship_ports_r)
static ADDRESS_MAP_START( sidearms_map, AS_PROGRAM, 8, sidearms_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0xc000, 0xc3ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0xc400, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0xc800, 0xc800) AM_READ_PORT("SYSTEM") AM_WRITE(soundlatch_byte_w)
AM_RANGE(0xc801, 0xc801) AM_READ_PORT("P1") AM_WRITE(sidearms_bankswitch_w)
AM_RANGE(0xc802, 0xc802) AM_READ_PORT("P2") AM_WRITE(watchdog_reset_w)
@@ -94,8 +94,8 @@ static ADDRESS_MAP_START( turtship_map, AS_PROGRAM, 8, sidearms_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0xe400, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0xc000, 0xc3ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0xc400, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0xe800, 0xe807) AM_READ(turtship_ports_r)
AM_RANGE(0xe800, 0xe800) AM_WRITE(soundlatch_byte_w)
AM_RANGE(0xe801, 0xe801) AM_WRITE(sidearms_bankswitch_w)
@@ -141,8 +141,8 @@ WRITE8_MEMBER(sidearms_state::whizz_bankswitch_w)
static ADDRESS_MAP_START( whizz_map, AS_PROGRAM, 8, sidearms_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0xc000, 0xc3ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0xc400, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0xc800, 0xc800) AM_READ_PORT("DSW0") AM_WRITE(soundlatch_byte_w)
AM_RANGE(0xc801, 0xc801) AM_READ_PORT("DSW1") AM_WRITE(whizz_bankswitch_w)
AM_RANGE(0xc802, 0xc802) AM_READ_PORT("DSW2") AM_WRITE(watchdog_reset_w)
@@ -623,8 +623,9 @@ static MACHINE_CONFIG_START( sidearms, sidearms_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", sidearms)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -667,7 +668,9 @@ static MACHINE_CONFIG_START( turtship, sidearms_state )
MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms)
MCFG_GFXDECODE_ADD("gfxdecode", turtship)
- MCFG_PALETTE_LENGTH(1024)
+
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -713,7 +716,9 @@ static MACHINE_CONFIG_START( whizz, sidearms_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", turtship)
- MCFG_PALETTE_LENGTH(1024)
+
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sidepckt.c b/src/mame/drivers/sidepckt.c
index 369745a3b8f..98b574977a6 100644
--- a/src/mame/drivers/sidepckt.c
+++ b/src/mame/drivers/sidepckt.c
@@ -380,7 +380,8 @@ static MACHINE_CONFIG_START( sidepckt, sidepckt_state )
MCFG_SCREEN_UPDATE_DRIVER(sidepckt_state, screen_update_sidepckt)
MCFG_GFXDECODE_ADD("gfxdecode", sidepckt)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(sidepckt_state, sidepckt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sigmab52.c b/src/mame/drivers/sigmab52.c
index de796ec9114..0192a1dcece 100644
--- a/src/mame/drivers/sigmab52.c
+++ b/src/mame/drivers/sigmab52.c
@@ -150,7 +150,7 @@ public:
DECLARE_DRIVER_INIT(jwildb52);
virtual void machine_start();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(sigmab52);
UINT32 screen_update_jwildb52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(timer_irq);
required_device<cpu_device> m_maincpu;
@@ -236,7 +236,7 @@ if (!machine().input().code_pressed(KEYCODE_O))
}
-void sigmab52_state::palette_init()
+PALETTE_INIT_MEMBER(sigmab52_state, sigmab52)
{
}
@@ -606,8 +606,8 @@ static MACHINE_CONFIG_START( jwildb52, sigmab52_state )
MCFG_HD63484_ADD("hd63484", jwildb52_hd63484_intf)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(sigmab52_state, sigmab52)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c
index 812561f6ef7..9429f56fcea 100644
--- a/src/mame/drivers/sigmab98.c
+++ b/src/mame/drivers/sigmab98.c
@@ -300,7 +300,7 @@ void sigmab98_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
{
for (x = x0; x != x1; x += dx)
{
- m_gfxdecode->gfx(gfx)->zoom_transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(gfx)->zoom_transpen(m_palette,bitmap,cliprect,
code++, color,
flipx, flipy,
(sx + x * dim) / 0x10000, (sy + y * dim) / 0x10000,
@@ -326,7 +326,7 @@ UINT32 sigmab98_state::screen_update_sigmab98(screen_device &screen, bitmap_ind1
}
#endif
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
// Draw from priority 3 (bottom, converted to a bitmask) to priority 0 (top)
draw_sprites(bitmap, cliprect, layers_ctrl & 8);
@@ -508,7 +508,7 @@ static ADDRESS_MAP_START( gegege_mem_map, AS_PROGRAM, 8, sigmab98_state )
AM_RANGE( 0xa000, 0xafff ) AM_RAM AM_SHARE("spriteram")
- AM_RANGE( 0xc000, 0xc1ff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE( 0xc000, 0xc1ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE( 0xc800, 0xc87f ) AM_RAM
@@ -751,7 +751,7 @@ static ADDRESS_MAP_START( animalc_map, AS_PROGRAM, 8, sigmab98_state )
AM_RANGE( 0xa000, 0xafff ) AM_RAM
AM_RANGE( 0xb000, 0xbfff ) AM_RAMBANK("sprbank")
- AM_RANGE( 0xd000, 0xd1ff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_be_w ) AM_SHARE("paletteram")
+ AM_RANGE( 0xd000, 0xd1ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE( 0xd800, 0xd87f ) AM_RAM // table?
AM_RANGE( 0xe011, 0xe011 ) AM_WRITENOP // IRQ Enable? Screen disable?
@@ -944,7 +944,7 @@ WRITE8_MEMBER(sigmab98_state::haekaka_b000_w)
case 0x67: // PALETTERAM + TABLE? + REGS
if (offset < 0x200)
{
- paletteram_xRRRRRGGGGGBBBBB_byte_be_w(space, offset, data);
+ m_palette->write(space, offset, data);
// m_generic_paletteram_8[offset] = data;
return;
}
@@ -1185,7 +1185,7 @@ WRITE8_MEMBER(sigmab98_state::itazuram_nvram_palette_w)
{
if (m_rambank == 0x64)
{
- paletteram_xRRRRRGGGGGBBBBB_byte_be_w(space, offset, data);
+ m_palette->write(space, offset, data);
// m_generic_paletteram_8[offset] = data;
}
else if (m_rambank == 0x52)
@@ -1203,7 +1203,7 @@ WRITE8_MEMBER(sigmab98_state::itazuram_palette_w)
if (m_rombank == 0x6c)
{
if (offset < 0x200)
- paletteram_xRRRRRGGGGGBBBBB_byte_be_w(space, offset, data);
+ m_palette->write(space, offset, data);
// m_generic_paletteram_8[offset] = data;
}
else
@@ -1424,7 +1424,7 @@ WRITE8_MEMBER(sigmab98_state::tdoboon_c000_w)
case 0x66: // PALETTERAM + TABLE?
if (offset < 0x200)
{
- paletteram_xRRRRRGGGGGBBBBB_byte_be_w(space, offset, data);
+ m_palette->write(space, offset, data);
// m_generic_paletteram_8[offset] = data;
return;
}
@@ -1701,7 +1701,8 @@ static MACHINE_CONFIG_START( gegege, sigmab98_state )
MCFG_SCREEN_UPDATE_DRIVER(sigmab98_state, screen_update_sigmab98)
MCFG_GFXDECODE_ADD("gfxdecode", sigmab98)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
// sound hardware
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1741,7 +1742,9 @@ static MACHINE_CONFIG_START( sammymdl, sigmab98_state )
MCFG_SCREEN_VBLANK_DRIVER(sigmab98_state, screen_eof_sammymdl)
MCFG_GFXDECODE_ADD("gfxdecode", sigmab98)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+
// sound hardware
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/silkroad.c b/src/mame/drivers/silkroad.c
index 4c1c1c6aaa6..da963185595 100644
--- a/src/mame/drivers/silkroad.c
+++ b/src/mame/drivers/silkroad.c
@@ -130,7 +130,7 @@ ROM15.BIN MX29F1610, SOP44 Surface Mounted Mask ROM /
WRITE32_MEMBER(silkroad_state::paletteram32_xRRRRRGGGGGBBBBB_dword_w)
{
COMBINE_DATA(&m_generic_paletteram_32[offset]);
- palette_set_color_rgb(machine(),offset,pal5bit(m_generic_paletteram_32[offset] >> (10+16)),pal5bit(m_generic_paletteram_32[offset] >> (5+16)),pal5bit(m_generic_paletteram_32[offset] >> (0+16)));
+ m_palette->set_pen_color(offset,pal5bit(m_generic_paletteram_32[offset] >> (10+16)),pal5bit(m_generic_paletteram_32[offset] >> (5+16)),pal5bit(m_generic_paletteram_32[offset] >> (0+16)));
}
WRITE32_MEMBER(silkroad_state::silk_6295_bank_w)
@@ -284,7 +284,7 @@ static MACHINE_CONFIG_START( silkroad, silkroad_state )
MCFG_SCREEN_UPDATE_DRIVER(silkroad_state, screen_update_silkroad)
MCFG_GFXDECODE_ADD("gfxdecode", silkroad)
- MCFG_PALETTE_LENGTH(0x2000)
+ MCFG_PALETTE_ADD("palette", 0x2000)
/* sound hardware */
diff --git a/src/mame/drivers/silvmil.c b/src/mame/drivers/silvmil.c
index 615937be952..2627fe0e8ad 100644
--- a/src/mame/drivers/silvmil.c
+++ b/src/mame/drivers/silvmil.c
@@ -176,7 +176,7 @@ static ADDRESS_MAP_START( silvmil_map, AS_PROGRAM, 16, silvmil_state )
AM_RANGE(0x120000, 0x120fff) AM_RAM_WRITE(silvmil_fg_videoram_w) AM_SHARE("fg_videoram")
AM_RANGE(0x122000, 0x122fff) AM_RAM_WRITE(silvmil_bg_videoram_w) AM_SHARE("bg_videoram")
- AM_RANGE(0x200000, 0x2005ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x2005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x210000, 0x2107ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x270000, 0x270001) AM_WRITE(silvmil_soundcmd_w)
AM_RANGE(0x280000, 0x280001) AM_READ_PORT("P1_P2")
@@ -322,7 +322,8 @@ static MACHINE_CONFIG_START( silvmil, silvmil_state )
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(silvmil_state, screen_update_silvmil)
- MCFG_PALETTE_LENGTH(0x300)
+ MCFG_PALETTE_ADD("palette", 0x300)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_GFXDECODE_ADD("gfxdecode", silvmil)
@@ -331,6 +332,7 @@ static MACHINE_CONFIG_START( silvmil, silvmil_state )
decospr_device::set_is_bootleg(*device, true);
decospr_device::set_offsets(*device, 5,7);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/simpl156.c b/src/mame/drivers/simpl156.c
index b12e4c07729..54fa02f0f3d 100644
--- a/src/mame/drivers/simpl156.c
+++ b/src/mame/drivers/simpl156.c
@@ -151,7 +151,7 @@ WRITE32_MEMBER(simpl156_state::simpl156_palette_w)
color = offset;
dat = m_generic_paletteram_16[offset] & 0xffff;
- palette_set_color_rgb(machine(),color,pal5bit(dat >> 0),pal5bit(dat >> 5),pal5bit(dat >> 10));
+ m_palette->set_pen_color(color,pal5bit(dat >> 0),pal5bit(dat >> 5),pal5bit(dat >> 10));
}
@@ -434,16 +434,18 @@ static MACHINE_CONFIG_START( chainrec, simpl156_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(simpl156_state, screen_update_simpl156)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
MCFG_GFXDECODE_ADD("gfxdecode", simpl156)
MCFG_DECO16IC_ADD("tilegen1", simpl156_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 2);
decospr_device::set_pri_callback(*device, simpl156_pri_callback);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/simpsons.c b/src/mame/drivers/simpsons.c
index 85567173019..e1f11914330 100644
--- a/src/mame/drivers/simpsons.c
+++ b/src/mame/drivers/simpsons.c
@@ -333,7 +333,7 @@ static MACHINE_CONFIG_START( simpsons, simpsons_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.1856)
@@ -342,13 +342,18 @@ static MACHINE_CONFIG_START( simpsons, simpsons_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(simpsons_state, screen_update_simpsons)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", simpsons_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K053246_ADD("k053246", simpsons_k053246_intf)
MCFG_K053246_GFXDECODE("gfxdecode")
+ MCFG_K053246_PALETTE("palette")
MCFG_K053251_ADD("k053251")
/* sound hardware */
diff --git a/src/mame/drivers/skimaxx.c b/src/mame/drivers/skimaxx.c
index 8bdf37747e4..795ef350b84 100644
--- a/src/mame/drivers/skimaxx.c
+++ b/src/mame/drivers/skimaxx.c
@@ -536,10 +536,9 @@ static MACHINE_CONFIG_START( skimaxx, skimaxx_state )
MCFG_SCREEN_UPDATE_DEVICE("tms", tms34010_device, tms340x0_ind16)
-// MCFG_GFXDECODE_ADD("gfxdecode", skimaxx )
+// MCFG_GFXDECODE_ADD("gfxdecode", skimaxx )
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/skullxbo.c b/src/mame/drivers/skullxbo.c
index 52110c0ff26..7ce51fa9c06 100644
--- a/src/mame/drivers/skullxbo.c
+++ b/src/mame/drivers/skullxbo.c
@@ -236,7 +236,7 @@ static MACHINE_CONFIG_START( skullxbo, skullxbo_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", skullxbo)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, skullxbo_state, get_playfield_tile_info, 16,8, SCAN_COLS, 64,64)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, skullxbo_state, get_alpha_tile_info, 16,8, SCAN_ROWS, 64,32, 0)
diff --git a/src/mame/drivers/skyarmy.c b/src/mame/drivers/skyarmy.c
index 23e73e556d8..066eed95380 100644
--- a/src/mame/drivers/skyarmy.c
+++ b/src/mame/drivers/skyarmy.c
@@ -54,7 +54,7 @@ public:
DECLARE_WRITE8_MEMBER(nmi_enable_w);
TILE_GET_INFO_MEMBER(get_skyarmy_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(skyarmy);
UINT32 screen_update_skyarmy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(skyarmy_nmi_source);
required_device<cpu_device> m_maincpu;
@@ -91,7 +91,7 @@ WRITE8_MEMBER(skyarmy_state::skyarmy_colorram_w)
m_tilemap->mark_tile_dirty(offset);
}
-void skyarmy_state::palette_init()
+PALETTE_INIT_MEMBER(skyarmy_state, skyarmy)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
@@ -115,7 +115,7 @@ void skyarmy_state::palette_init()
bit2 = (*color_prom >> 7) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
color_prom++;
}
}
@@ -147,7 +147,7 @@ UINT32 skyarmy_state::screen_update_skyarmy(screen_device &screen, bitmap_ind16
flipy = (spriteram[offs+1]&0x80)>>7;
flipx = (spriteram[offs+1]&0x40)>>6;
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,
spriteram[offs+1]&0x3f,
pal,
flipx,flipy,
@@ -295,8 +295,8 @@ static MACHINE_CONFIG_START( skyarmy, skyarmy_state )
MCFG_SCREEN_UPDATE_DRIVER(skyarmy_state, screen_update_skyarmy)
MCFG_GFXDECODE_ADD("gfxdecode", skyarmy)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(skyarmy_state, skyarmy)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c
index 3d8fcc965b2..3c5b337a32c 100644
--- a/src/mame/drivers/skydiver.c
+++ b/src/mame/drivers/skydiver.c
@@ -112,7 +112,7 @@ static const int colortable_source[] =
0x01, 0x02
};
-void skydiver_state::palette_init()
+PALETTE_INIT_MEMBER(skydiver_state, skydiver)
{
int i;
@@ -127,7 +127,7 @@ void skydiver_state::palette_init()
default: color = rgb_t(0xa0, 0xa0, 0xa0); break; /* grey */
}
- palette_set_color(machine(), i, color);
+ palette.set_pen_color(i, color);
}
}
@@ -388,7 +388,7 @@ static MACHINE_CONFIG_START( skydiver, skydiver_state )
MCFG_SCREEN_UPDATE_DRIVER(skydiver_state, screen_update_skydiver)
MCFG_GFXDECODE_ADD("gfxdecode", skydiver)
- MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0]))
+ MCFG_PALETTE_ADD("palette", sizeof(colortable_source) / sizeof(colortable_source[0]))
/* sound hardware */
diff --git a/src/mame/drivers/skyfox.c b/src/mame/drivers/skyfox.c
index b8fab5ab118..0f3d921cb7b 100644
--- a/src/mame/drivers/skyfox.c
+++ b/src/mame/drivers/skyfox.c
@@ -249,8 +249,8 @@ static MACHINE_CONFIG_START( skyfox, skyfox_state )
MCFG_SCREEN_UPDATE_DRIVER(skyfox_state, screen_update_skyfox)
MCFG_GFXDECODE_ADD("gfxdecode", skyfox)
- MCFG_PALETTE_LENGTH(256+256) /* 256 static colors (+256 for the background??) */
-
+ MCFG_PALETTE_ADD("palette", 256+256) /* 256 static colors (+256 for the background??) */
+ MCFG_PALETTE_INIT_OWNER(skyfox_state, skyfox)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/skykid.c b/src/mame/drivers/skykid.c
index 12fda79a507..210434e4a6d 100644
--- a/src/mame/drivers/skykid.c
+++ b/src/mame/drivers/skykid.c
@@ -460,8 +460,8 @@ static MACHINE_CONFIG_START( skykid, skykid_state )
MCFG_SCREEN_UPDATE_DRIVER(skykid_state, screen_update_skykid)
MCFG_GFXDECODE_ADD("gfxdecode", skykid)
- MCFG_PALETTE_LENGTH(64*4+128*4+64*8)
-
+ MCFG_PALETTE_ADD("palette", 64*4+128*4+64*8)
+ MCFG_PALETTE_INIT_OWNER(skykid_state, skykid)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c
index 9181df9df5d..8e5a2d1cb4d 100644
--- a/src/mame/drivers/skylncr.c
+++ b/src/mame/drivers/skylncr.c
@@ -282,7 +282,7 @@ WRITE8_MEMBER(skylncr_state::skylncr_paletteram_w)
g = (g << 2) | (g >> 4);
b = (b << 2) | (b >> 4);
- palette_set_color(machine(), m_color / 3, rgb_t(r, g, b));
+ m_palette->set_pen_color(m_color / 3, rgb_t(r, g, b));
m_color = (m_color + 1) % (0x100 * 3);
}
}
@@ -305,7 +305,7 @@ WRITE8_MEMBER(skylncr_state::skylncr_paletteram2_w)
g = (g << 2) | (g >> 4);
b = (b << 2) | (b >> 4);
- palette_set_color(machine(), 0x100 + m_color2 / 3, rgb_t(r, g, b));
+ m_palette->set_pen_color(0x100 + m_color2 / 3, rgb_t(r, g, b));
m_color2 = (m_color2 + 1) % (0x100 * 3);
}
}
@@ -730,7 +730,7 @@ static MACHINE_CONFIG_START( skylncr, skylncr_state )
MCFG_SCREEN_UPDATE_DRIVER(skylncr_state, screen_update_skylncr)
MCFG_GFXDECODE_ADD("gfxdecode", skylncr)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
/* sound hardware */
diff --git a/src/mame/drivers/skyraid.c b/src/mame/drivers/skyraid.c
index 02019a787da..af8b0f8b497 100644
--- a/src/mame/drivers/skyraid.c
+++ b/src/mame/drivers/skyraid.c
@@ -10,28 +10,28 @@ Atari Sky Raider driver
-void skyraid_state::palette_init()
+PALETTE_INIT_MEMBER(skyraid_state, skyraid)
{
- palette_set_color(machine(), 0, rgb_t(0x00, 0x00, 0x00)); /* terrain */
- palette_set_color(machine(), 1, rgb_t(0x18, 0x18, 0x18));
- palette_set_color(machine(), 2, rgb_t(0x30, 0x30, 0x30));
- palette_set_color(machine(), 3, rgb_t(0x48, 0x48, 0x48));
- palette_set_color(machine(), 4, rgb_t(0x60, 0x60, 0x60));
- palette_set_color(machine(), 5, rgb_t(0x78, 0x78, 0x78));
- palette_set_color(machine(), 6, rgb_t(0x90, 0x90, 0x90));
- palette_set_color(machine(), 7, rgb_t(0xA8, 0xA8, 0xA8));
- palette_set_color(machine(), 8, rgb_t(0x10, 0x10, 0x10)); /* sprites */
- palette_set_color(machine(), 9, rgb_t(0xE0, 0xE0, 0xE0));
- palette_set_color(machine(), 10, rgb_t(0xA0, 0xA0, 0xA0));
- palette_set_color(machine(), 11, rgb_t(0x48, 0x48, 0x48));
- palette_set_color(machine(), 12, rgb_t(0x10, 0x10, 0x10));
- palette_set_color(machine(), 13, rgb_t(0x48, 0x48, 0x48));
- palette_set_color(machine(), 14, rgb_t(0xA0, 0xA0, 0xA0));
- palette_set_color(machine(), 15, rgb_t(0xE0, 0xE0, 0xE0));
- palette_set_color(machine(), 16, rgb_t(0x00, 0x00, 0x00)); /* missiles */
- palette_set_color(machine(), 17, rgb_t(0xFF, 0xFF, 0xFF));
- palette_set_color(machine(), 18, rgb_t(0x00, 0x00, 0x00)); /* text */
- palette_set_color(machine(), 19, rgb_t(0xE0, 0xE0, 0xE0));
+ palette.set_pen_color(0, rgb_t(0x00, 0x00, 0x00)); /* terrain */
+ palette.set_pen_color(1, rgb_t(0x18, 0x18, 0x18));
+ palette.set_pen_color(2, rgb_t(0x30, 0x30, 0x30));
+ palette.set_pen_color(3, rgb_t(0x48, 0x48, 0x48));
+ palette.set_pen_color(4, rgb_t(0x60, 0x60, 0x60));
+ palette.set_pen_color(5, rgb_t(0x78, 0x78, 0x78));
+ palette.set_pen_color(6, rgb_t(0x90, 0x90, 0x90));
+ palette.set_pen_color(7, rgb_t(0xA8, 0xA8, 0xA8));
+ palette.set_pen_color(8, rgb_t(0x10, 0x10, 0x10)); /* sprites */
+ palette.set_pen_color(9, rgb_t(0xE0, 0xE0, 0xE0));
+ palette.set_pen_color(10, rgb_t(0xA0, 0xA0, 0xA0));
+ palette.set_pen_color(11, rgb_t(0x48, 0x48, 0x48));
+ palette.set_pen_color(12, rgb_t(0x10, 0x10, 0x10));
+ palette.set_pen_color(13, rgb_t(0x48, 0x48, 0x48));
+ palette.set_pen_color(14, rgb_t(0xA0, 0xA0, 0xA0));
+ palette.set_pen_color(15, rgb_t(0xE0, 0xE0, 0xE0));
+ palette.set_pen_color(16, rgb_t(0x00, 0x00, 0x00)); /* missiles */
+ palette.set_pen_color(17, rgb_t(0xFF, 0xFF, 0xFF));
+ palette.set_pen_color(18, rgb_t(0x00, 0x00, 0x00)); /* text */
+ palette.set_pen_color(19, rgb_t(0xE0, 0xE0, 0xE0));
}
READ8_MEMBER(skyraid_state::skyraid_port_0_r)
@@ -230,8 +230,8 @@ static MACHINE_CONFIG_START( skyraid, skyraid_state )
MCFG_GFXDECODE_ADD("gfxdecode", skyraid)
- MCFG_PALETTE_LENGTH(20)
-
+ MCFG_PALETTE_ADD("palette", 20)
+ MCFG_PALETTE_INIT_OWNER(skyraid_state, skyraid)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/slapfght.c b/src/mame/drivers/slapfght.c
index 34f1862bde7..967e14c7fe4 100644
--- a/src/mame/drivers/slapfght.c
+++ b/src/mame/drivers/slapfght.c
@@ -754,9 +754,7 @@ static MACHINE_CONFIG_START( perfrman, slapfght_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", perfrman)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_VIDEO_START_OVERRIDE(slapfght_state,perfrman)
/* sound hardware */
@@ -800,9 +798,7 @@ static MACHINE_CONFIG_START( tigerhb, slapfght_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", slapfght)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_VIDEO_START_OVERRIDE(slapfght_state,slapfight)
/* sound hardware */
@@ -848,9 +844,7 @@ static MACHINE_CONFIG_START( tigerh, slapfght_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", slapfght)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_VIDEO_START_OVERRIDE(slapfght_state,slapfight)
/* sound hardware */
@@ -897,9 +891,7 @@ static MACHINE_CONFIG_START( slapfigh, slapfght_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", slapfght)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_VIDEO_START_OVERRIDE(slapfght_state,slapfight)
/* sound hardware */
diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c
index 0fcd4b2c190..b0b64a6b2ed 100644
--- a/src/mame/drivers/slapshot.c
+++ b/src/mame/drivers/slapshot.c
@@ -160,7 +160,7 @@ WRITE16_MEMBER(slapshot_state::color_ram_word_w)
g = (m_color_ram[offset] & 0xff00) >> 8;
b = (m_color_ram[offset] & 0xff);
- palette_set_color(machine(), offset / 2, rgb_t(r,g,b));
+ m_palette->set_pen_color(offset / 2, rgb_t(r,g,b));
}
}
@@ -547,7 +547,7 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state )
MCFG_SCREEN_VBLANK_DRIVER(slapshot_state, screen_eof_taito_no_buffer)
MCFG_GFXDECODE_ADD("gfxdecode", slapshot)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_TC0480SCP_ADD("tc0480scp", slapshot_tc0480scp_intf)
@@ -594,7 +594,7 @@ static MACHINE_CONFIG_START( opwolf3, slapshot_state )
MCFG_SCREEN_VBLANK_DRIVER(slapshot_state, screen_eof_taito_no_buffer)
MCFG_GFXDECODE_ADD("gfxdecode", slapshot)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_TC0480SCP_ADD("tc0480scp", slapshot_tc0480scp_intf)
diff --git a/src/mame/drivers/sliver.c b/src/mame/drivers/sliver.c
index 6b374553656..2fe87b0a3c2 100644
--- a/src/mame/drivers/sliver.c
+++ b/src/mame/drivers/sliver.c
@@ -482,7 +482,8 @@ static MACHINE_CONFIG_START( sliver, sliver_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 384-1-16, 0*8, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(sliver_state, screen_update_sliver)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/slotcarn.c b/src/mame/drivers/slotcarn.c
index 55c7022e5e0..ef06c584c57 100644
--- a/src/mame/drivers/slotcarn.c
+++ b/src/mame/drivers/slotcarn.c
@@ -626,7 +626,7 @@ static MACHINE_CONFIG_START( slotcarn, slotcarn_state )
MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf)
MCFG_GFXDECODE_ADD("gfxdecode", slotcarn)
- MCFG_PALETTE_LENGTH(0x400)
+ MCFG_PALETTE_ADD("palette", 0x400)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/smsmcorp.c b/src/mame/drivers/smsmcorp.c
index ea12230d622..7e5b79fc146 100644
--- a/src/mame/drivers/smsmcorp.c
+++ b/src/mame/drivers/smsmcorp.c
@@ -244,7 +244,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(smsmfg);
DECLARE_MACHINE_START(sureshot);
UINT32 screen_update_sms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
@@ -489,13 +489,13 @@ UINT32 smsmfg_state::screen_update_sms(screen_device &screen, bitmap_ind16 &bitm
return 0;
}
-void smsmfg_state::palette_init()
+PALETTE_INIT_MEMBER(smsmfg_state, smsmfg)
{
int i;
for (i = 0; i < 8; i++ )
{
- palette_set_color(machine(), i, rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i)));
+ palette.set_pen_color(i, rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i)));
}
}
@@ -582,8 +582,8 @@ static MACHINE_CONFIG_START( sms, smsmfg_state )
MCFG_SCREEN_VISIBLE_AREA(0, 0x1af, 0, 0xff)
MCFG_SCREEN_UPDATE_DRIVER(smsmfg_state, screen_update_sms)
- MCFG_PALETTE_LENGTH(8)
-
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(smsmfg_state, smsmfg)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/snk.c b/src/mame/drivers/snk.c
index 65defa1be5b..027f7582648 100644
--- a/src/mame/drivers/snk.c
+++ b/src/mame/drivers/snk.c
@@ -3622,8 +3622,6 @@ static MACHINE_CONFIG_START( marvins, snk_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(36*8, 28*8)
@@ -3631,9 +3629,11 @@ static MACHINE_CONFIG_START( marvins, snk_state )
MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_marvins)
MCFG_GFXDECODE_ADD("gfxdecode", marvins)
- MCFG_PALETTE_LENGTH(0x400)
- MCFG_PALETTE_INIT_OVERRIDE(snk_state,tnk3)
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+
+ MCFG_PALETTE_INIT_OWNER(snk_state,tnk3)
MCFG_VIDEO_START_OVERRIDE(snk_state,marvins)
/* sound hardware */
@@ -3691,8 +3691,6 @@ static MACHINE_CONFIG_START( jcross, snk_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(36*8, 28*8)
@@ -3700,9 +3698,11 @@ static MACHINE_CONFIG_START( jcross, snk_state )
MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tnk3)
MCFG_GFXDECODE_ADD("gfxdecode", tnk3)
- MCFG_PALETTE_LENGTH(0x400)
- MCFG_PALETTE_INIT_OVERRIDE(snk_state,tnk3)
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+
+ MCFG_PALETTE_INIT_OWNER(snk_state,tnk3)
MCFG_VIDEO_START_OVERRIDE(snk_state,jcross)
/* sound hardware */
@@ -3769,8 +3769,6 @@ static MACHINE_CONFIG_START( tnk3, snk_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(36*8, 28*8)
@@ -3778,9 +3776,11 @@ static MACHINE_CONFIG_START( tnk3, snk_state )
MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tnk3)
MCFG_GFXDECODE_ADD("gfxdecode", tnk3)
- MCFG_PALETTE_LENGTH(0x400)
- MCFG_PALETTE_INIT_OVERRIDE(snk_state,tnk3)
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+
+ MCFG_PALETTE_INIT_OWNER(snk_state,tnk3)
MCFG_VIDEO_START_OVERRIDE(snk_state,tnk3)
/* sound hardware */
@@ -3853,8 +3853,6 @@ static MACHINE_CONFIG_START( ikari, snk_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(36*8, 28*8)
@@ -3862,9 +3860,10 @@ static MACHINE_CONFIG_START( ikari, snk_state )
MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_ikari)
MCFG_GFXDECODE_ADD("gfxdecode", ikari)
- MCFG_PALETTE_LENGTH(0x400)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x400)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+
MCFG_VIDEO_START_OVERRIDE(snk_state,ikari)
/* sound hardware */
@@ -3918,9 +3917,7 @@ static MACHINE_CONFIG_START( bermudat, snk_state )
MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_gwar)
MCFG_GFXDECODE_ADD("gfxdecode", gwar)
- MCFG_PALETTE_LENGTH(0x400)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x400)
MCFG_VIDEO_START_OVERRIDE(snk_state,gwar)
/* sound hardware */
@@ -4013,8 +4010,6 @@ static MACHINE_CONFIG_START( tdfever, snk_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(50*8, 28*8)
@@ -4022,9 +4017,10 @@ static MACHINE_CONFIG_START( tdfever, snk_state )
MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tdfever)
MCFG_GFXDECODE_ADD("gfxdecode", tdfever)
- MCFG_PALETTE_LENGTH(0x400)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x400)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+
MCFG_VIDEO_START_OVERRIDE(snk_state,tdfever)
/* sound hardware */
diff --git a/src/mame/drivers/snk6502.c b/src/mame/drivers/snk6502.c
index d9d9a73fcc4..25167cf5a3e 100644
--- a/src/mame/drivers/snk6502.c
+++ b/src/mame/drivers/snk6502.c
@@ -831,9 +831,9 @@ static MACHINE_CONFIG_START( sasuke, snk6502_state )
MCFG_SCREEN_UPDATE_DRIVER(snk6502_state, screen_update_snk6502)
MCFG_GFXDECODE_ADD("gfxdecode", sasuke)
- MCFG_PALETTE_LENGTH(32)
+ MCFG_PALETTE_ADD("palette", 32)
- MCFG_PALETTE_INIT_OVERRIDE(snk6502_state,satansat)
+ MCFG_PALETTE_INIT_OWNER(snk6502_state,satansat)
MCFG_VIDEO_START_OVERRIDE(snk6502_state,satansat)
MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK / 16, mc6845_intf)
@@ -904,9 +904,9 @@ static MACHINE_CONFIG_START( vanguard, snk6502_state )
MCFG_SCREEN_UPDATE_DRIVER(snk6502_state, screen_update_snk6502)
MCFG_GFXDECODE_ADD("gfxdecode", vanguard)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
- MCFG_PALETTE_INIT_OVERRIDE(snk6502_state,snk6502)
+ MCFG_PALETTE_INIT_OWNER(snk6502_state,snk6502)
MCFG_VIDEO_START_OVERRIDE(snk6502_state,snk6502)
MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK / 16, mc6845_intf)
diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c
index afbea47d4cb..77cbf96c14d 100644
--- a/src/mame/drivers/snk68.c
+++ b/src/mame/drivers/snk68.c
@@ -596,7 +596,7 @@ static MACHINE_CONFIG_START( pow, snk68_state )
MCFG_SCREEN_UPDATE_DRIVER(snk68_state, screen_update_pow)
MCFG_GFXDECODE_ADD("gfxdecode", pow)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
/* sound hardware */
diff --git a/src/mame/drivers/snookr10.c b/src/mame/drivers/snookr10.c
index 3e892cf94ab..d86dd579ff2 100644
--- a/src/mame/drivers/snookr10.c
+++ b/src/mame/drivers/snookr10.c
@@ -1042,7 +1042,8 @@ static MACHINE_CONFIG_START( snookr10, snookr10_state )
MCFG_SCREEN_UPDATE_DRIVER(snookr10_state, screen_update_snookr10)
MCFG_GFXDECODE_ADD("gfxdecode", snookr10)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(snookr10_state, snookr10)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1057,7 +1058,8 @@ static MACHINE_CONFIG_DERIVED( apple10, snookr10 )
MCFG_CPU_MODIFY("maincpu")
/* video hardware */
- MCFG_PALETTE_INIT_OVERRIDE(snookr10_state, apple10)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(snookr10_state, apple10)
MCFG_VIDEO_START_OVERRIDE(snookr10_state, apple10)
MACHINE_CONFIG_END
@@ -1076,7 +1078,8 @@ static MACHINE_CONFIG_DERIVED( crystalc, snookr10 )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(crystalc_map)
- MCFG_PALETTE_INIT_OVERRIDE(snookr10_state, crystalc)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(snookr10_state, crystalc)
MCFG_VIDEO_START_OVERRIDE(snookr10_state, crystalc)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c
index 7cc789c20a3..a467b30f634 100644
--- a/src/mame/drivers/snowbros.c
+++ b/src/mame/drivers/snowbros.c
@@ -196,7 +196,7 @@ static ADDRESS_MAP_START( snowbros_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSW1")
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW2")
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x600000, 0x6001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x700000, 0x701fff) AM_DEVREADWRITE("pandora", kaneko_pandora_device, spriteram_LSB_r, spriteram_LSB_w)
AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
@@ -278,7 +278,7 @@ static ADDRESS_MAP_START( wintbob_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSW1")
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW2")
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x600000, 0x6001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x700000, 0x701fff) AM_RAM AM_SHARE("spriteram16b")
AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
@@ -299,7 +299,7 @@ static ADDRESS_MAP_START( honeydol_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x900000, 0x900001) AM_READ_PORT("DSW1")
AM_RANGE(0x900002, 0x900003) AM_READ_PORT("DSW2")
AM_RANGE(0x900004, 0x900005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xa00000, 0xa007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa00000, 0xa007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xb00000, 0xb01fff) AM_RAM AM_SHARE("spriteram16b")
ADDRESS_MAP_END
@@ -336,7 +336,7 @@ static ADDRESS_MAP_START( twinadv_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSW1")
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW2")
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x600000, 0x6001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x700000, 0x701fff) AM_RAM AM_SHARE("spriteram16b")
AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
@@ -376,7 +376,7 @@ static ADDRESS_MAP_START( hyperpac_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW2")
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x600000, 0x6001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x700000, 0x701fff) AM_DEVREADWRITE("pandora", kaneko_pandora_device, spriteram_LSB_r, spriteram_LSB_w)
AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
@@ -512,7 +512,7 @@ static ADDRESS_MAP_START( snowbros3_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE( 0x500000, 0x500001) AM_READ_PORT("DSW1")
AM_RANGE( 0x500002, 0x500003) AM_READ_PORT("DSW2")
AM_RANGE( 0x500004, 0x500005) AM_READ_PORT("SYSTEM")
- AM_RANGE( 0x600000, 0x6003ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE( 0x600000, 0x6003ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE( 0x700000, 0x7021ff) AM_RAM AM_SHARE("spriteram16b")
AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
@@ -531,7 +531,7 @@ static ADDRESS_MAP_START( finalttr_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW2")
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x600000, 0x6001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x700000, 0x701fff) AM_DEVREADWRITE("pandora", kaneko_pandora_device, spriteram_LSB_r, spriteram_LSB_w)
AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
@@ -1536,10 +1536,12 @@ static MACHINE_CONFIG_START( snowbros, snowbros_state )
MCFG_SCREEN_VBLANK_DRIVER(snowbros_state, screen_eof_snowbros)
MCFG_GFXDECODE_ADD("gfxdecode", snowbros)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_KANEKO_PANDORA_ADD("pandora", snowbros_pandora_config)
MCFG_KANEKO_PANDORA_GFXDECODE("gfxdecode")
+ MCFG_KANEKO_PANDORA_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1647,7 +1649,8 @@ static MACHINE_CONFIG_START( honeydol, snowbros_state )
MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_honeydol)
MCFG_GFXDECODE_ADD("gfxdecode", honeydol)
- MCFG_PALETTE_LENGTH(0x800/2)
+ MCFG_PALETTE_ADD("palette", 0x800/2)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1684,7 +1687,8 @@ static MACHINE_CONFIG_START( twinadv, snowbros_state )
MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_twinadv)
MCFG_GFXDECODE_ADD("gfxdecode", twinadv)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1756,7 +1760,8 @@ static MACHINE_CONFIG_START( snowbro3, snowbros_state )
MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_snowbro3)
MCFG_GFXDECODE_ADD("gfxdecode", sb3)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/solomon.c b/src/mame/drivers/solomon.c
index 671dba8bc7e..3c6b6bbab27 100644
--- a/src/mame/drivers/solomon.c
+++ b/src/mame/drivers/solomon.c
@@ -51,7 +51,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, solomon_state )
AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(solomon_colorram2_w) AM_SHARE("colorram2")
AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(solomon_videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0xe000, 0xe07f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xe400, 0xe5ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe400, 0xe5ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xe600, 0xe600) AM_READ_PORT("P1")
AM_RANGE(0xe601, 0xe601) AM_READ_PORT("P2")
AM_RANGE(0xe602, 0xe602) AM_READ_PORT("SYSTEM")
@@ -222,8 +222,8 @@ static MACHINE_CONFIG_START( solomon, solomon_state )
MCFG_SCREEN_UPDATE_DRIVER(solomon_state, screen_update_solomon)
MCFG_GFXDECODE_ADD("gfxdecode", solomon)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sonson.c b/src/mame/drivers/sonson.c
index b6f17c2e9c5..54da5f5dfd8 100644
--- a/src/mame/drivers/sonson.c
+++ b/src/mame/drivers/sonson.c
@@ -255,8 +255,9 @@ static MACHINE_CONFIG_START( sonson, sonson_state )
MCFG_SCREEN_UPDATE_DRIVER(sonson_state, screen_update_sonson)
MCFG_GFXDECODE_ADD("gfxdecode", sonson)
- MCFG_PALETTE_LENGTH(64*4+32*8)
+ MCFG_PALETTE_ADD("palette", 64*4+32*8)
+ MCFG_PALETTE_INIT_OWNER(sonson_state, sonson)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sothello.c b/src/mame/drivers/sothello.c
index 028ccfe04c1..4d0308de526 100644
--- a/src/mame/drivers/sothello.c
+++ b/src/mame/drivers/sothello.c
@@ -389,7 +389,7 @@ static MACHINE_CONFIG_START( sothello, sothello_state )
MCFG_SCREEN_SIZE(512 + 32, (212 + 28) * 2)
MCFG_SCREEN_VISIBLE_AREA(0, 512 + 32 - 1, 0, (212 + 28) * 2 - 1)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/spaceg.c b/src/mame/drivers/spaceg.c
index 55e2cad191e..89933931275 100644
--- a/src/mame/drivers/spaceg.c
+++ b/src/mame/drivers/spaceg.c
@@ -190,7 +190,7 @@ public:
required_shared_ptr<UINT8> m_io9401;
DECLARE_WRITE8_MEMBER(zvideoram_w);
DECLARE_READ8_MEMBER(spaceg_colorram_r);
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(spaceg);
UINT32 screen_update_spaceg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
};
@@ -201,31 +201,31 @@ public:
*
*************************************/
-void spaceg_state::palette_init()
+PALETTE_INIT_MEMBER(spaceg_state, spaceg)
{
int i;
for (i = 0; i < 128; i++)
- palette_set_color (machine(), i, rgb_t(0x00,0x00,0x00));
+ palette.set_pen_color (i, rgb_t(0x00,0x00,0x00));
// proms are currently undumped...
- palette_set_color (machine(), 0, rgb_t(0x00,0x00,0x00)); //ok czarny
- palette_set_color (machine(), 1, rgb_t(0x7f,0x00,0x00));//???
- palette_set_color (machine(), 2, rgb_t(0xff,0xff,0xff)); //ok+ bialy
- palette_set_color (machine(), 3, rgb_t(0xff,0x00,0x00)); //ok j.czerw.
- palette_set_color (machine(), 4, rgb_t(0x3f,0x3f,0xff)); //ok j.niebieski
- palette_set_color (machine(), 5, rgb_t(0x3f,0xff,0x3f)); //ok j.zielony
- palette_set_color (machine(), 6, rgb_t(0xff,0xbf,0xbf)); //ok+ 'majtki'
- palette_set_color (machine(), 7, rgb_t(0xff,0xff,0x00)); //ok+ zolty
-
- palette_set_color (machine(), 8, rgb_t(0xff,0x7f,0x00)); //ok+ pomaranczowy
- palette_set_color (machine(), 9, rgb_t(0x3f,0xbf,0xff)); //ok j.niebieski (ciemniejszy od 13)
- palette_set_color (machine(), 10, rgb_t(0x3f,0xbf,0x3f)); //ok+ c.zielony
- palette_set_color (machine(), 11, rgb_t(0x00,0xff,0x00)); //ok j.zielony
- palette_set_color (machine(), 12, rgb_t(0x7f,0x00,0x00)); //ok brazowy (c.czerw)
- palette_set_color (machine(), 13, rgb_t(0x7f,0xbf,0xff)); //ok j.niebieski (jasniejszy od 9)
- palette_set_color (machine(), 14, rgb_t(0x00,0xff,0xff));//???
- palette_set_color (machine(), 15, rgb_t(0x7f,0x7f,0x7f));//???
+ palette.set_pen_color (0, rgb_t(0x00,0x00,0x00)); //ok czarny
+ palette.set_pen_color (1, rgb_t(0x7f,0x00,0x00));//???
+ palette.set_pen_color (2, rgb_t(0xff,0xff,0xff)); //ok+ bialy
+ palette.set_pen_color (3, rgb_t(0xff,0x00,0x00)); //ok j.czerw.
+ palette.set_pen_color (4, rgb_t(0x3f,0x3f,0xff)); //ok j.niebieski
+ palette.set_pen_color (5, rgb_t(0x3f,0xff,0x3f)); //ok j.zielony
+ palette.set_pen_color (6, rgb_t(0xff,0xbf,0xbf)); //ok+ 'majtki'
+ palette.set_pen_color (7, rgb_t(0xff,0xff,0x00)); //ok+ zolty
+
+ palette.set_pen_color (8, rgb_t(0xff,0x7f,0x00)); //ok+ pomaranczowy
+ palette.set_pen_color (9, rgb_t(0x3f,0xbf,0xff)); //ok j.niebieski (ciemniejszy od 13)
+ palette.set_pen_color (10, rgb_t(0x3f,0xbf,0x3f)); //ok+ c.zielony
+ palette.set_pen_color (11, rgb_t(0x00,0xff,0x00)); //ok j.zielony
+ palette.set_pen_color (12, rgb_t(0x7f,0x00,0x00)); //ok brazowy (c.czerw)
+ palette.set_pen_color (13, rgb_t(0x7f,0xbf,0xff)); //ok j.niebieski (jasniejszy od 9)
+ palette.set_pen_color (14, rgb_t(0x00,0xff,0xff));//???
+ palette.set_pen_color (15, rgb_t(0x7f,0x7f,0x7f));//???
}
WRITE8_MEMBER(spaceg_state::zvideoram_w)
@@ -281,13 +281,13 @@ READ8_MEMBER(spaceg_state::spaceg_colorram_r)
{
/* palette 1 */
int col_ind = offset & 0x1f;
- palette_set_color_rgb(machine(), 0x10 + 0x00 + col_ind, pal3bit(rgbcolor >> 0), pal3bit(rgbcolor >> 6), pal3bit(rgbcolor >> 3));
+ m_palette->set_pen_color(0x10 + 0x00 + col_ind, pal3bit(rgbcolor >> 0), pal3bit(rgbcolor >> 6), pal3bit(rgbcolor >> 3));
}
else if ((offset >= 0x300) && (offset < 0x320)) /* 0xa300- 0xa31f */
{
/* palette 2 */
int col_ind = offset & 0x1f;
- palette_set_color_rgb(machine(), 0x10 + 0x00 + col_ind, pal3bit(rgbcolor >> 0), pal3bit(rgbcolor >> 6), pal3bit(rgbcolor >> 3));
+ m_palette->set_pen_color(0x10 + 0x00 + col_ind, pal3bit(rgbcolor >> 0), pal3bit(rgbcolor >> 6), pal3bit(rgbcolor >> 3));
}
else
logerror("palette? read from colorram offset = %04x\n",offset);
@@ -423,7 +423,8 @@ static MACHINE_CONFIG_START( spaceg, spaceg_state )
MCFG_SCREEN_VISIBLE_AREA(0, 255, 32, 255)
MCFG_SCREEN_UPDATE_DRIVER(spaceg_state, screen_update_spaceg)
- MCFG_PALETTE_LENGTH(16+128-16)
+ MCFG_PALETTE_ADD("palette", 16+128-16)
+ MCFG_PALETTE_INIT_OWNER(spaceg_state, spaceg)
/* sound hardware */
// MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/spbactn.c b/src/mame/drivers/spbactn.c
index 77a7f4814de..c173c983532 100644
--- a/src/mame/drivers/spbactn.c
+++ b/src/mame/drivers/spbactn.c
@@ -153,7 +153,7 @@ static ADDRESS_MAP_START( spbactn_map, AS_PROGRAM, 16, spbactn_state )
AM_RANGE(0x50000, 0x50fff) AM_RAM AM_SHARE("spvideoram")
AM_RANGE(0x60000, 0x67fff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0x70000, 0x77fff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bgvideoram")
- AM_RANGE(0x80000, 0x827ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x80000, 0x827ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x90000, 0x90001) AM_READ_PORT("IN0")
AM_RANGE(0x90010, 0x90011) AM_READ_PORT("IN1")
AM_RANGE(0x90020, 0x90021) AM_READ_PORT("SYSTEM")
@@ -201,7 +201,7 @@ static ADDRESS_MAP_START( spbactnp_map, AS_PROGRAM, 16, spbactn_state )
AM_RANGE(0x50000, 0x50fff) AM_RAM AM_SHARE("spvideoram")
AM_RANGE(0x60000, 0x67fff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0x70000, 0x77fff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bgvideoram")
- AM_RANGE(0x80000, 0x827ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_word_w) AM_SHARE("paletteram") // yes R and G are swapped vs. the released version
+ AM_RANGE(0x80000, 0x827ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // yes R and G are swapped vs. the released version
AM_RANGE(0x90002, 0x90003) AM_WRITE( spbatnp_90002_w )
AM_RANGE(0x90006, 0x90007) AM_WRITE( spbatnp_90006_w )
@@ -427,8 +427,8 @@ static MACHINE_CONFIG_START( spbactn, spbactn_state )
MCFG_SCREEN_UPDATE_DRIVER(spbactn_state, screen_update_spbactn)
MCFG_GFXDECODE_ADD("gfxdecode", spbactn)
- MCFG_PALETTE_LENGTH(0x2800/2)
-
+ MCFG_PALETTE_ADD("palette", 0x2800/2)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -469,8 +469,8 @@ static MACHINE_CONFIG_START( spbactnp, spbactn_state )
MCFG_SCREEN_UPDATE_DRIVER(spbactn_state, screen_update_spbactnp)
MCFG_GFXDECODE_ADD("gfxdecode", spbactnp)
- MCFG_PALETTE_LENGTH(0x2800/2)
-
+ MCFG_PALETTE_ADD("palette", 0x2800/2)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
/* sound hardware - different? */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/spcforce.c b/src/mame/drivers/spcforce.c
index 954d63ea46b..560badffb85 100644
--- a/src/mame/drivers/spcforce.c
+++ b/src/mame/drivers/spcforce.c
@@ -238,7 +238,7 @@ static const int colortable_source[] =
0, 2, 3, 4, 5, 6, 7, 0
};
-void spcforce_state::palette_init()
+PALETTE_INIT_MEMBER(spcforce_state, spcforce)
{
int i;
@@ -247,7 +247,7 @@ void spcforce_state::palette_init()
int data = colortable_source[i];
rgb_t color = rgb_t(pal1bit(data >> 0), pal1bit(data >> 1), pal1bit(data >> 2));
- palette_set_color(machine(), i, color);
+ palette.set_pen_color(i, color);
}
}
@@ -279,7 +279,8 @@ static MACHINE_CONFIG_START( spcforce, spcforce_state )
MCFG_SCREEN_UPDATE_DRIVER(spcforce_state, screen_update_spcforce)
MCFG_GFXDECODE_ADD("gfxdecode", spcforce)
- MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0]))
+ MCFG_PALETTE_ADD("palette", sizeof(colortable_source) / sizeof(colortable_source[0]))
+ MCFG_PALETTE_INIT_OWNER(spcforce_state, spcforce)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/spdodgeb.c b/src/mame/drivers/spdodgeb.c
index 061e6b1f448..4274f16e23f 100644
--- a/src/mame/drivers/spdodgeb.c
+++ b/src/mame/drivers/spdodgeb.c
@@ -429,8 +429,8 @@ static MACHINE_CONFIG_START( spdodgeb, spdodgeb_state )
MCFG_SCREEN_UPDATE_DRIVER(spdodgeb_state, screen_update_spdodgeb)
MCFG_GFXDECODE_ADD("gfxdecode", spdodgeb)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_OWNER(spdodgeb_state, spdodgeb)
/* sound hardware */
diff --git a/src/mame/drivers/speedatk.c b/src/mame/drivers/speedatk.c
index 226c69842b6..916aeb5bce0 100644
--- a/src/mame/drivers/speedatk.c
+++ b/src/mame/drivers/speedatk.c
@@ -338,8 +338,8 @@ static MACHINE_CONFIG_START( speedatk, speedatk_state )
MCFG_MC6845_ADD("crtc", H46505, "screen", MASTER_CLOCK/16, mc6845_intf) /* hand tuned to get ~60 fps */
MCFG_GFXDECODE_ADD("gfxdecode", speedatk)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(speedatk_state, speedatk)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/speedbal.c b/src/mame/drivers/speedbal.c
index 67547f0623c..601d69342a1 100644
--- a/src/mame/drivers/speedbal.c
+++ b/src/mame/drivers/speedbal.c
@@ -50,7 +50,7 @@ static ADDRESS_MAP_START( main_cpu_map, AS_PROGRAM, 8, speedbal_state )
AM_RANGE(0xdc00, 0xdfff) AM_RAM AM_SHARE("share1") // shared with SOUND
AM_RANGE(0xe000, 0xe1ff) AM_RAM_WRITE(speedbal_background_videoram_w) AM_SHARE("bg_videoram")
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(speedbal_foreground_videoram_w) AM_SHARE("fg_videoram")
- AM_RANGE(0xf000, 0xf5ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf000, 0xf5ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf600, 0xfeff) AM_RAM
AM_RANGE(0xff00, 0xffff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
@@ -256,7 +256,8 @@ static MACHINE_CONFIG_START( speedbal, speedbal_state )
MCFG_SCREEN_UPDATE_DRIVER(speedbal_state, screen_update_speedbal)
MCFG_GFXDECODE_ADD("gfxdecode", speedbal)
- MCFG_PALETTE_LENGTH(768)
+ MCFG_PALETTE_ADD("palette", 768)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/speedspn.c b/src/mame/drivers/speedspn.c
index 4fe745b6967..36182c9912f 100644
--- a/src/mame/drivers/speedspn.c
+++ b/src/mame/drivers/speedspn.c
@@ -107,7 +107,7 @@ WRITE8_MEMBER(speedspn_state::oki_banking_w)
static ADDRESS_MAP_START( speedspn_map, AS_PROGRAM, 8, speedspn_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_le_w) AM_SHARE("paletteram") /* RAM COLOUR */
+ AM_RANGE(0x8000, 0x87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* RAM COLOUR */
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(speedspn_attram_w) AM_SHARE("attram")
AM_RANGE(0x9000, 0x9fff) AM_READWRITE(speedspn_vidram_r,speedspn_vidram_w) /* RAM FIX / RAM OBJECTS (selected by bit 0 of port 17) */
AM_RANGE(0xa000, 0xa7ff) AM_RAM
@@ -286,8 +286,8 @@ static MACHINE_CONFIG_START( speedspn, speedspn_state )
MCFG_SCREEN_UPDATE_DRIVER(speedspn_state, screen_update_speedspn)
MCFG_GFXDECODE_ADD("gfxdecode", speedspn)
- MCFG_PALETTE_LENGTH(0x400)
-
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/speglsht.c b/src/mame/drivers/speglsht.c
index ca45e0d0f9a..1706ba5c7cd 100644
--- a/src/mame/drivers/speglsht.c
+++ b/src/mame/drivers/speglsht.c
@@ -369,7 +369,7 @@ UINT32 speglsht_state::screen_update_speglsht(screen_device &screen, bitmap_rgb3
{
if(srcline[x])
{
- rgb_t color=palette_get_color(machine(), srcline[x]);
+ rgb_t color=m_palette->pen_color(srcline[x]);
PLOT_PIXEL_RGB(x,y,color.r(),color.g(),color.b());
}
}
@@ -403,7 +403,7 @@ static MACHINE_CONFIG_START( speglsht, speglsht_state )
MCFG_SCREEN_UPDATE_DRIVER(speglsht_state, screen_update_speglsht)
MCFG_GFXDECODE_ADD("gfxdecode", speglsht)
- MCFG_PALETTE_LENGTH(16*16*4+1)
+ MCFG_PALETTE_ADD("palette", 16*16*4+1)
MCFG_VIDEO_START_OVERRIDE(speglsht_state,speglsht)
diff --git a/src/mame/drivers/splash.c b/src/mame/drivers/splash.c
index e3f1b9ec325..c9d3b2a05f3 100644
--- a/src/mame/drivers/splash.c
+++ b/src/mame/drivers/splash.c
@@ -100,7 +100,7 @@ static ADDRESS_MAP_START( splash_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x880000, 0x8817ff) AM_RAM_WRITE(splash_vram_w) AM_SHARE("videoram") /* Video RAM */
AM_RANGE(0x881800, 0x881803) AM_RAM AM_SHARE("vregs") /* Scroll registers */
AM_RANGE(0x881804, 0x881fff) AM_RAM /* Work RAM */
- AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")/* Palette is xRRRRxGGGGxBBBBx */
+ AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* Palette is xRRRRxGGGGxBBBBx */
AM_RANGE(0x900000, 0x900fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */
AM_RANGE(0xffc000, 0xffffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
@@ -173,7 +173,7 @@ static ADDRESS_MAP_START( roldfrog_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x880000, 0x8817ff) AM_RAM_WRITE(splash_vram_w) AM_SHARE("videoram") /* Video RAM */
AM_RANGE(0x881800, 0x881803) AM_RAM AM_SHARE("vregs") /* Scroll registers */
AM_RANGE(0x881804, 0x881fff) AM_RAM /* Work RAM */
- AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")/* Palette is xRRRRxGGGGxBBBBx */
+ AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* Palette is xRRRRxGGGGxBBBBx */
AM_RANGE(0xa00000, 0xa00001) AM_READ(roldfrog_bombs_r)
AM_RANGE(0xd00000, 0xd00fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */
AM_RANGE(0xe00000, 0xe00001) AM_WRITEONLY AM_SHARE("bitmap_mode") /* Bitmap Mode? */
@@ -234,7 +234,7 @@ static ADDRESS_MAP_START( funystrp_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x880000, 0x8817ff) AM_RAM_WRITE(splash_vram_w) AM_SHARE("videoram") /* Video RAM */
AM_RANGE(0x881800, 0x881803) AM_RAM AM_SHARE("vregs") /* Scroll registers */
AM_RANGE(0x881804, 0x881fff) AM_WRITENOP
- AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")/* Palette is xRRRRxGGGGxBBBBx */
+ AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* Palette is xRRRRxGGGGxBBBBx */
AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE(spr_read, spr_write) AM_SHARE("spriteram") /* Sprite RAM */
AM_RANGE(0xfe0000, 0xffffff) AM_RAM AM_MASK(0xffff) /* there's fe0000 <-> ff0000 compare */ /* Work RAM */
ADDRESS_MAP_END
@@ -503,7 +503,8 @@ static MACHINE_CONFIG_START( splash, splash_state )
MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_splash)
MCFG_GFXDECODE_ADD("gfxdecode", splash)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_MACHINE_RESET_OVERRIDE(splash_state, splash )
@@ -556,7 +557,8 @@ static MACHINE_CONFIG_START( roldfrog, splash_state )
MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_splash)
MCFG_GFXDECODE_ADD("gfxdecode", splash)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_MACHINE_RESET_OVERRIDE(splash_state, splash )
@@ -634,7 +636,8 @@ static MACHINE_CONFIG_START( funystrp, splash_state )
MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_funystrp)
MCFG_GFXDECODE_ADD("gfxdecode", splash)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_MACHINE_RESET_OVERRIDE(splash_state, funystrp )
diff --git a/src/mame/drivers/splus.c b/src/mame/drivers/splus.c
index 2895e312893..7821ecbe032 100644
--- a/src/mame/drivers/splus.c
+++ b/src/mame/drivers/splus.c
@@ -678,7 +678,7 @@ static MACHINE_CONFIG_START( splus, splus_state ) // basic machine hardware
MCFG_NVRAM_ADD_0FILL("cmosh")
// video hardware (ALL FAKE, NO VIDEO)
- MCFG_PALETTE_LENGTH(16*16)
+ MCFG_PALETTE_ADD("palette", 16*16)
MCFG_SCREEN_ADD("scrn", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
diff --git a/src/mame/drivers/spoker.c b/src/mame/drivers/spoker.c
index f7269a38bba..fbf80927bbe 100644
--- a/src/mame/drivers/spoker.c
+++ b/src/mame/drivers/spoker.c
@@ -105,7 +105,7 @@ void spoker_state::video_start()
UINT32 spoker_state::screen_update_spoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
return 0;
@@ -225,8 +225,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( spoker_portmap, AS_IO, 8, spoker_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // Z180 internal regs
- AM_RANGE( 0x2000, 0x23ff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram")
- AM_RANGE( 0x2400, 0x27ff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2")
+ AM_RANGE( 0x2000, 0x23ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE( 0x2400, 0x27ff ) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE( 0x3000, 0x33ff ) AM_RAM_WRITE(bg_tile_w ) AM_SHARE("bg_tile_ram")
@@ -256,8 +256,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( 3super8_portmap, AS_IO, 8, spoker_state )
// AM_RANGE( 0x1000, 0x1fff ) AM_WRITENOP
- AM_RANGE( 0x2000, 0x27ff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram")
- AM_RANGE( 0x2800, 0x2fff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2")
+ AM_RANGE( 0x2000, 0x27ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE( 0x2800, 0x2fff ) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE( 0x3000, 0x33ff ) AM_RAM_WRITE(bg_tile_w ) AM_SHARE("bg_tile_ram")
@@ -538,8 +538,8 @@ static MACHINE_CONFIG_START( spoker, spoker_state )
MCFG_SCREEN_UPDATE_DRIVER(spoker_state, screen_update_spoker)
MCFG_GFXDECODE_ADD("gfxdecode", spoker)
- MCFG_PALETTE_LENGTH(0x400)
-
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/spool99.c b/src/mame/drivers/spool99.c
index 8b58f56e5db..7828aca839a 100644
--- a/src/mame/drivers/spool99.c
+++ b/src/mame/drivers/spool99.c
@@ -227,7 +227,7 @@ static ADDRESS_MAP_START( spool99_map, AS_PROGRAM, 8, spool99_state )
AM_RANGE(0xafef, 0xafef) AM_WRITE(eeprom_dataline_w )
AM_RANGE(0xaff8, 0xaff8) AM_DEVWRITE("oki", okim6295_device, write)
- AM_RANGE(0xb000, 0xb3ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xb000, 0xb3ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xb800, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(spool99_vram_w) AM_SHARE("vram")
@@ -273,7 +273,7 @@ static ADDRESS_MAP_START( vcarn_map, AS_PROGRAM, 8, spool99_state )
AM_RANGE(0xa747, 0xa747) AM_WRITE(eeprom_dataline_w )
AM_RANGE(0xa780, 0xa780) AM_DEVWRITE("oki", okim6295_device, write)
- AM_RANGE(0xa800, 0xabff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa800, 0xabff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xb000, 0xdfff) AM_RAM
// AM_RANGE(0xdf00, 0xdfff) AM_READWRITE(vcarn_io_r,vcarn_io_w) AM_SHARE("vcarn_io")
@@ -363,7 +363,8 @@ static MACHINE_CONFIG_START( spool99, spool99_state )
MCFG_SCREEN_VISIBLE_AREA(7*8, 55*8-1, 1*8, 31*8-1) //384x240,raw guess
MCFG_SCREEN_UPDATE_DRIVER(spool99_state, screen_update_spool99)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
diff --git a/src/mame/drivers/sprcros2.c b/src/mame/drivers/sprcros2.c
index 2a92c78a1f0..7bc10134751 100644
--- a/src/mame/drivers/sprcros2.c
+++ b/src/mame/drivers/sprcros2.c
@@ -279,8 +279,8 @@ static MACHINE_CONFIG_START( sprcros2, sprcros2_state )
MCFG_SCREEN_UPDATE_DRIVER(sprcros2_state, screen_update_sprcros2)
MCFG_GFXDECODE_ADD("gfxdecode", sprcros2)
- MCFG_PALETTE_LENGTH(768)
-
+ MCFG_PALETTE_ADD("palette", 768)
+ MCFG_PALETTE_INIT_OWNER(sprcros2_state, sprcros2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c
index 70a76e1c719..e73db2debac 100644
--- a/src/mame/drivers/sprint2.c
+++ b/src/mame/drivers/sprint2.c
@@ -498,8 +498,8 @@ static MACHINE_CONFIG_START( sprint2, sprint2_state )
MCFG_SCREEN_VBLANK_DRIVER(sprint2_state, screen_eof_sprint2)
MCFG_GFXDECODE_ADD("gfxdecode", sprint2)
- MCFG_PALETTE_LENGTH(12)
-
+ MCFG_PALETTE_ADD("palette", 12)
+ MCFG_PALETTE_INIT_OWNER(sprint2_state, sprint2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c
index bd2b0736ceb..b5cfcb84035 100644
--- a/src/mame/drivers/sprint4.c
+++ b/src/mame/drivers/sprint4.c
@@ -411,8 +411,8 @@ static MACHINE_CONFIG_START( sprint4, sprint4_state )
MCFG_SCREEN_VBLANK_DRIVER(sprint4_state, screen_eof_sprint4)
MCFG_GFXDECODE_ADD("gfxdecode", sprint4)
- MCFG_PALETTE_LENGTH(10)
-
+ MCFG_PALETTE_ADD("palette", 10)
+ MCFG_PALETTE_INIT_OWNER(sprint4_state, sprint4)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/sprint8.c b/src/mame/drivers/sprint8.c
index e79f474eff3..5369026e9ad 100644
--- a/src/mame/drivers/sprint8.c
+++ b/src/mame/drivers/sprint8.c
@@ -465,9 +465,8 @@ static MACHINE_CONFIG_START( sprint8, sprint8_state )
MCFG_SCREEN_VBLANK_DRIVER(sprint8_state, screen_eof_sprint8)
MCFG_GFXDECODE_ADD("gfxdecode", sprint8)
- MCFG_PALETTE_LENGTH(36)
-
-
+ MCFG_PALETTE_ADD("palette", 36)
+ MCFG_PALETTE_INIT_OWNER(sprint8_state, sprint8)
/* sound hardware */
/* the proper way is to hook up 4 speakers, but they are not really
diff --git a/src/mame/drivers/spy.c b/src/mame/drivers/spy.c
index 454765bbfce..4151decd943 100644
--- a/src/mame/drivers/spy.c
+++ b/src/mame/drivers/spy.c
@@ -58,7 +58,7 @@ WRITE8_MEMBER(spy_state::spy_bankedram1_w)
{
if (m_rambank & 1)
{
- paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space,offset,data);
+ m_palette->write(space,offset,data);
}
else if (m_rambank & 2)
{
@@ -527,8 +527,6 @@ static MACHINE_CONFIG_START( spy, spy_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -536,13 +534,17 @@ static MACHINE_CONFIG_START( spy, spy_state )
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(spy_state, screen_update_spy)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", spy_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", spy_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c
index f6d89e87d55..01bc08c8062 100644
--- a/src/mame/drivers/srmp2.c
+++ b/src/mame/drivers/srmp2.c
@@ -421,7 +421,7 @@ static ADDRESS_MAP_START( mjyuugi_map, AS_PROGRAM, 16, srmp2_state )
AM_RANGE(0x300000, 0x300001) AM_READ8(mjyuugi_irq4_ack_r,0x00ff) /* irq ack lv 4? */
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSW3-1") /* DSW 3-1 */
AM_RANGE(0x500010, 0x500011) AM_READ_PORT("DSW3-2") /* DSW 3-2 */
- AM_RANGE(0x700000, 0x7003ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x700000, 0x7003ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x800000, 0x800001) AM_READNOP /* ??? */
AM_RANGE(0x900000, 0x900001) AM_READWRITE8(iox_mux_r, iox_command_w,0x00ff) /* key matrix | I/O */
AM_RANGE(0x900002, 0x900003) AM_READWRITE8(iox_status_r,iox_data_w,0x00ff)
@@ -1169,6 +1169,7 @@ static MACHINE_CONFIG_START( srmp2, srmp2_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1179,9 +1180,10 @@ static MACHINE_CONFIG_START( srmp2, srmp2_state )
MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_srmp2)
MCFG_GFXDECODE_ADD("gfxdecode", srmp2)
- MCFG_PALETTE_LENGTH(1024) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 1024) /* sprites only */
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
- MCFG_PALETTE_INIT_OVERRIDE(srmp2_state,srmp2)
+ MCFG_PALETTE_INIT_OWNER(srmp2_state,srmp2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1211,6 +1213,7 @@ static MACHINE_CONFIG_START( srmp3, srmp2_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1221,9 +1224,10 @@ static MACHINE_CONFIG_START( srmp3, srmp2_state )
MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_srmp3)
MCFG_GFXDECODE_ADD("gfxdecode", srmp3)
- MCFG_PALETTE_LENGTH(512) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 512) /* sprites only */
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
- MCFG_PALETTE_INIT_OVERRIDE(srmp2_state,srmp3)
+ MCFG_PALETTE_INIT_OWNER(srmp2_state,srmp3)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1262,6 +1266,7 @@ static MACHINE_CONFIG_START( mjyuugi, srmp2_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1272,7 +1277,8 @@ static MACHINE_CONFIG_START( mjyuugi, srmp2_state )
MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_mjyuugi)
MCFG_GFXDECODE_ADD("gfxdecode", srmp3)
- MCFG_PALETTE_LENGTH(512) /* sprites only */
+ MCFG_PALETTE_ADD("palette", 512) /* sprites only */
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/srmp5.c b/src/mame/drivers/srmp5.c
index c6bde4360fe..709de62a279 100644
--- a/src/mame/drivers/srmp5.c
+++ b/src/mame/drivers/srmp5.c
@@ -229,7 +229,7 @@ READ32_MEMBER(srmp5_state::srmp5_palette_r)
WRITE32_MEMBER(srmp5_state::srmp5_palette_w)
{
COMBINE_DATA(&m_palram[offset]);
- palette_set_color(machine(), offset, rgb_t(data << 3 & 0xFF, data >> 2 & 0xFF, data >> 7 & 0xFF));
+ m_palette->set_pen_color(offset, rgb_t(data << 3 & 0xFF, data >> 2 & 0xFF, data >> 7 & 0xFF));
}
WRITE32_MEMBER(srmp5_state::bank_w)
{
@@ -552,9 +552,9 @@ static MACHINE_CONFIG_START( srmp5, srmp5_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 2*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(srmp5_state, screen_update_srmp5)
- MCFG_PALETTE_LENGTH(0x1800)
+ MCFG_PALETTE_ADD("palette", 0x1800)
#ifdef DEBUG_CHAR
- MCFG_GFXDECODE_ADD("gfxdecode", srmp5 )
+ MCFG_GFXDECODE_ADD("gfxdecode", srmp5 )
#endif
MCFG_VIDEO_START_OVERRIDE(st0016_state,st0016)
diff --git a/src/mame/drivers/srmp6.c b/src/mame/drivers/srmp6.c
index ef0fe73e57f..ade067146d8 100644
--- a/src/mame/drivers/srmp6.c
+++ b/src/mame/drivers/srmp6.c
@@ -156,7 +156,7 @@ void srmp6_state::update_palette()
b += ((0x1F - b) * brg) >> 5;
if(b > 0x1F) b = 0x1F;
}
- palette_set_color(machine(), i, rgb_t(r << 3, g << 3, b << 3));
+ m_palette->set_pen_color(i, rgb_t(r << 3, g << 3, b << 3));
}
}
@@ -167,7 +167,7 @@ void srmp6_state::video_start()
m_sprram_old = auto_alloc_array_clear(machine(), UINT16, 0x80000/2);
/* create the char set (gfx will then be updated dynamically from RAM) */
- m_gfxdecode->set_gfx(0, auto_alloc(machine(), gfx_element(machine(), tiles8x8_layout, (UINT8*)m_tileram, machine().total_colors() / 256, 0)));
+ m_gfxdecode->set_gfx(0, auto_alloc(machine(), gfx_element(machine(), tiles8x8_layout, (UINT8*)m_tileram, m_palette->entries() / 256, 0)));
m_gfxdecode->gfx(0)->set_granularity(256);
m_brightness = 0x60;
@@ -275,7 +275,7 @@ UINT32 srmp6_state::screen_update_srmp6(screen_device &screen, bitmap_rgb32 &bit
else
yb=y+(height-yw-1)*8+global_y;
- m_gfxdecode->gfx(0)->alpha(bitmap,cliprect,tileno,global_pal,flip_x,flip_y,xb,yb,0,alpha);
+ m_gfxdecode->gfx(0)->alpha(m_palette,bitmap,cliprect,tileno,global_pal,flip_x,flip_y,xb,yb,0,alpha);
tileno++;
}
}
@@ -504,7 +504,7 @@ WRITE16_MEMBER(srmp6_state::paletteram_w)
INT8 r, g, b;
int brg = m_brightness - 0x60;
- paletteram_xBBBBBGGGGGRRRRR_word_w(space, offset, data, mem_mask);
+ m_palette->write(space, offset, data, mem_mask);
if(brg)
{
@@ -529,7 +529,7 @@ WRITE16_MEMBER(srmp6_state::paletteram_w)
if(b > 0x1F) b = 0x1F;
}
- palette_set_color(machine(), offset, rgb_t(r << 3, g << 3, b << 3));
+ m_palette->set_pen_color(offset, rgb_t(r << 3, g << 3, b << 3));
}
}
@@ -677,7 +677,8 @@ static MACHINE_CONFIG_START( srmp6, srmp6_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(srmp6_state, screen_update_srmp6)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
diff --git a/src/mame/drivers/srumbler.c b/src/mame/drivers/srumbler.c
index 53e1120e415..5c054bd1d67 100644
--- a/src/mame/drivers/srumbler.c
+++ b/src/mame/drivers/srumbler.c
@@ -86,7 +86,7 @@ static ADDRESS_MAP_START( srumbler_map, AS_PROGRAM, 8, srumbler_state )
AM_RANGE(0x6000, 0x6fff) AM_ROMBANK("6000") /* Banked ROM */
AM_RANGE(0x6000, 0x6fff) AM_WRITENOP /* Video RAM 2 ??? (not used) */
AM_RANGE(0x7000, 0x7fff) AM_ROMBANK("7000") /* Banked ROM */
- AM_RANGE(0x7000, 0x73ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x7000, 0x73ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x8000, 0x8fff) AM_ROMBANK("8000") /* Banked ROM */
AM_RANGE(0x9000, 0x9fff) AM_ROMBANK("9000") /* Banked ROM */
AM_RANGE(0xa000, 0xafff) AM_ROMBANK("a000") /* Banked ROM */
@@ -257,8 +257,9 @@ static MACHINE_CONFIG_START( srumbler, srumbler_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", srumbler)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ssfindo.c b/src/mame/drivers/ssfindo.c
index 02dc2b175f3..8fe992147c7 100644
--- a/src/mame/drivers/ssfindo.c
+++ b/src/mame/drivers/ssfindo.c
@@ -300,7 +300,7 @@ WRITE32_MEMBER(ssfindo_state::FIFO_w)
if(!(data>>28))
{
- palette_set_color_rgb(machine(), m_PS7500_FIFO[1]&0xff, data&0xff,(data>>8)&0xff,(data>>16)&0xff);
+ m_palette->set_pen_color(m_PS7500_FIFO[1]&0xff, data&0xff,(data>>8)&0xff,(data>>16)&0xff);
m_PS7500_FIFO[1]++; //autoinc
}
}
@@ -774,7 +774,7 @@ static MACHINE_CONFIG_START( ssfindo, ssfindo_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(ssfindo_state, screen_update_ssfindo)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( ppcar, ssfindo )
diff --git a/src/mame/drivers/sshangha.c b/src/mame/drivers/sshangha.c
index 0ce3e3b1c3f..5e2e99a55e7 100644
--- a/src/mame/drivers/sshangha.c
+++ b/src/mame/drivers/sshangha.c
@@ -92,7 +92,7 @@ void sshangha_state::machine_reset()
inline void sshangha_state::sshangha_set_color_888(pen_t color, int rshift, int gshift, int bshift, UINT32 data)
{
- palette_set_color_rgb(machine(), color, (data >> rshift) & 0xff, (data >> gshift) & 0xff, (data >> bshift) & 0xff);
+ m_palette->set_pen_color(color, (data >> rshift) & 0xff, (data >> gshift) & 0xff, (data >> bshift) & 0xff);
}
@@ -418,18 +418,21 @@ static MACHINE_CONFIG_START( sshangha, sshangha_state )
MCFG_SCREEN_UPDATE_DRIVER(sshangha_state, screen_update_sshangha)
MCFG_GFXDECODE_ADD("gfxdecode", sshangha)
- MCFG_PALETTE_LENGTH(0x4000)
+ MCFG_PALETTE_ADD("palette", 0x4000)
MCFG_DECO16IC_ADD("tilegen1", sshangha_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 2);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 2);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_DECO146_ADD("ioprot")
diff --git a/src/mame/drivers/sshot.c b/src/mame/drivers/sshot.c
index 8122f40c58a..423204a2fb6 100644
--- a/src/mame/drivers/sshot.c
+++ b/src/mame/drivers/sshot.c
@@ -182,7 +182,6 @@ public:
DECLARE_WRITE8_MEMBER(supershot_output1_w);
TILE_GET_INFO_MEMBER(get_supershot_text_tile_info);
virtual void video_start();
- virtual void palette_init();
UINT32 screen_update_supershot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -335,12 +334,6 @@ static GFXDECODE_START( supershot )
GFXDECODE_ENTRY( "gfx", 0, supershot_charlayout, 0, 1 )
GFXDECODE_END
-void supershot_state::palette_init()
-{
- palette_set_color(machine(),0,rgb_t::black); /* black */
- palette_set_color(machine(),1,rgb_t::white); /* white */
-}
-
static MACHINE_CONFIG_START( supershot, supershot_state )
/* basic machine hardware */
@@ -357,7 +350,7 @@ static MACHINE_CONFIG_START( supershot, supershot_state )
MCFG_SCREEN_UPDATE_DRIVER(supershot_state, screen_update_supershot)
MCFG_GFXDECODE_ADD("gfxdecode", supershot)
- MCFG_PALETTE_LENGTH(2)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
//...
diff --git a/src/mame/drivers/ssingles.c b/src/mame/drivers/ssingles.c
index a5e80c93d9c..a0b07eb57c3 100644
--- a/src/mame/drivers/ssingles.c
+++ b/src/mame/drivers/ssingles.c
@@ -575,7 +575,7 @@ static MACHINE_CONFIG_START( ssingles, ssingles_state )
MCFG_SCREEN_RAW_PARAMS(4000000, 256, 0, 256, 256, 0, 256) /* temporary, CRTC will configure screen */
MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
- MCFG_PALETTE_LENGTH(4) //guess
+ MCFG_PALETTE_ADD("palette", 4) //guess
MCFG_GFXDECODE_ADD("gfxdecode", ssingles)
diff --git a/src/mame/drivers/sslam.c b/src/mame/drivers/sslam.c
index e2aa8b74ecc..aa18844b867 100644
--- a/src/mame/drivers/sslam.c
+++ b/src/mame/drivers/sslam.c
@@ -714,7 +714,7 @@ static MACHINE_CONFIG_START( sslam, sslam_state )
MCFG_SCREEN_UPDATE_DRIVER(sslam_state, screen_update_sslam)
MCFG_GFXDECODE_ADD("gfxdecode", sslam)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
MCFG_VIDEO_START_OVERRIDE(sslam_state,sslam)
@@ -744,7 +744,7 @@ static MACHINE_CONFIG_START( powerbls, sslam_state )
MCFG_SCREEN_UPDATE_DRIVER(sslam_state, screen_update_powerbls)
MCFG_GFXDECODE_ADD("gfxdecode", powerbls)
- MCFG_PALETTE_LENGTH(0x200)
+ MCFG_PALETTE_ADD("palette", 0x200)
MCFG_VIDEO_START_OVERRIDE(sslam_state,powerbls)
diff --git a/src/mame/drivers/ssozumo.c b/src/mame/drivers/ssozumo.c
index ab27afd23fd..94fd0c797c6 100644
--- a/src/mame/drivers/ssozumo.c
+++ b/src/mame/drivers/ssozumo.c
@@ -205,8 +205,8 @@ static MACHINE_CONFIG_START( ssozumo, ssozumo_state )
MCFG_SCREEN_UPDATE_DRIVER(ssozumo_state, screen_update_ssozumo)
MCFG_GFXDECODE_ADD("gfxdecode", ssozumo)
- MCFG_PALETTE_LENGTH(64 + 16)
-
+ MCFG_PALETTE_ADD("palette", 64 + 16)
+ MCFG_PALETTE_INIT_OWNER(ssozumo_state, ssozumo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/sspeedr.c b/src/mame/drivers/sspeedr.c
index a62cdabbb6f..de31ed95382 100644
--- a/src/mame/drivers/sspeedr.c
+++ b/src/mame/drivers/sspeedr.c
@@ -11,7 +11,7 @@ Taito Super Speed Race driver
-void sspeedr_state::palette_init()
+PALETTE_INIT_MEMBER(sspeedr_state, sspeedr)
{
int i;
@@ -28,7 +28,7 @@ void sspeedr_state::palette_init()
b += 0x4f;
}
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -202,8 +202,8 @@ static MACHINE_CONFIG_START( sspeedr, sspeedr_state )
MCFG_SCREEN_VBLANK_DRIVER(sspeedr_state, screen_eof_sspeedr)
MCFG_GFXDECODE_ADD("gfxdecode", sspeedr)
- MCFG_PALETTE_LENGTH(16)
-
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_INIT_OWNER(sspeedr_state, sspeedr)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ssrj.c b/src/mame/drivers/ssrj.c
index 242ed8d9f88..a58fa50dc06 100644
--- a/src/mame/drivers/ssrj.c
+++ b/src/mame/drivers/ssrj.c
@@ -156,8 +156,8 @@ static MACHINE_CONFIG_START( ssrj, ssrj_state )
MCFG_SCREEN_VBLANK_DRIVER(ssrj_state, screen_eof_ssrj)
MCFG_GFXDECODE_ADD("gfxdecode", ssrj)
- MCFG_PALETTE_LENGTH(128)
-
+ MCFG_PALETTE_ADD("palette", 128)
+ MCFG_PALETTE_INIT_OWNER(ssrj_state, ssrj)
/* sound hardware */
diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c
index 249fe4caf04..53df8a50878 100644
--- a/src/mame/drivers/ssv.c
+++ b/src/mame/drivers/ssv.c
@@ -2593,7 +2593,7 @@ static MACHINE_CONFIG_START( ssv, ssv_state )
MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_ssv)
MCFG_GFXDECODE_ADD("gfxdecode", ssv)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2642,6 +2642,7 @@ static MACHINE_CONFIG_DERIVED( gdfs, ssv )
MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0)
MCFG_ST0020_SPRITES_GFXDECODE("gfxdecode")
+ MCFG_ST0020_SPRITES_PALETTE("palette")
MCFG_GFXDECODE_MODIFY("gfxdecode", gdfs)
MCFG_VIDEO_START_OVERRIDE(ssv_state,gdfs)
diff --git a/src/mame/drivers/st0016.c b/src/mame/drivers/st0016.c
index 86964a66652..0e1732ba6df 100644
--- a/src/mame/drivers/st0016.c
+++ b/src/mame/drivers/st0016.c
@@ -423,7 +423,7 @@ static MACHINE_CONFIG_START( st0016, st0016_state )
MCFG_SCREEN_UPDATE_DRIVER(st0016_state, screen_update_st0016)
MCFG_GFXDECODE_ADD("gfxdecode", st0016)
- MCFG_PALETTE_LENGTH(16*16*4+1)
+ MCFG_PALETTE_ADD("palette", 16*16*4+1)
MCFG_VIDEO_START_OVERRIDE(st0016_state,st0016)
diff --git a/src/mame/drivers/stadhero.c b/src/mame/drivers/stadhero.c
index 0cf86a58d22..4f304f8d78e 100644
--- a/src/mame/drivers/stadhero.c
+++ b/src/mame/drivers/stadhero.c
@@ -74,7 +74,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, stadhero_state )
AM_RANGE(0x240010, 0x240017) AM_DEVWRITE("tilegen1", deco_bac06_device, pf_control_1_w)
AM_RANGE(0x260000, 0x261fff) AM_DEVREADWRITE("tilegen1", deco_bac06_device, pf_data_r, pf_data_w)
AM_RANGE(0x30c000, 0x30c00b) AM_READWRITE(stadhero_control_r, stadhero_control_w)
- AM_RANGE(0x310000, 0x3107ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x310000, 0x3107ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xff8000, 0xffbfff) AM_RAM /* Main ram */
AM_RANGE(0xffc000, 0xffc7ff) AM_MIRROR(0x000800) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
@@ -236,7 +236,8 @@ static MACHINE_CONFIG_START( stadhero, stadhero_state )
MCFG_SCREEN_UPDATE_DRIVER(stadhero_state, screen_update_stadhero)
MCFG_GFXDECODE_ADD("gfxdecode", stadhero)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
deco_bac06_device::set_gfx_region_wide(*device,1,1,2);
@@ -245,6 +246,7 @@ static MACHINE_CONFIG_START( stadhero, stadhero_state )
MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
deco_mxc06_device::set_gfx_region(*device, 2);
MCFG_DECO_MXC06_GFXDECODE("gfxdecode")
+ MCFG_DECO_MXC06_PALETTE("palette")
/* sound hardware */
diff --git a/src/mame/drivers/starcrus.c b/src/mame/drivers/starcrus.c
index dd967b3a999..bf1ac48abfc 100644
--- a/src/mame/drivers/starcrus.c
+++ b/src/mame/drivers/starcrus.c
@@ -151,9 +151,8 @@ static MACHINE_CONFIG_START( starcrus, starcrus_state )
MCFG_SCREEN_UPDATE_DRIVER(starcrus_state, screen_update_starcrus)
MCFG_GFXDECODE_ADD("gfxdecode", starcrus)
- MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c
index 29307ed7994..4c52e007823 100644
--- a/src/mame/drivers/starshp1.c
+++ b/src/mame/drivers/starshp1.c
@@ -308,8 +308,8 @@ static MACHINE_CONFIG_START( starshp1, starshp1_state )
MCFG_SCREEN_VBLANK_DRIVER(starshp1_state, screen_eof_starshp1)
MCFG_GFXDECODE_ADD("gfxdecode", starshp1)
- MCFG_PALETTE_LENGTH(19)
-
+ MCFG_PALETTE_ADD("palette", 19)
+ MCFG_PALETTE_INIT_OWNER(starshp1_state, starshp1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/statriv2.c b/src/mame/drivers/statriv2.c
index 9a9d3d04314..ee700719809 100644
--- a/src/mame/drivers/statriv2.c
+++ b/src/mame/drivers/statriv2.c
@@ -116,7 +116,7 @@ public:
TILE_GET_INFO_MEMBER(horizontal_tile_info);
TILE_GET_INFO_MEMBER(vertical_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(statriv2);
DECLARE_VIDEO_START(vertical);
UINT32 screen_update_statriv2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(statriv2_interrupt);
@@ -158,14 +158,14 @@ TILE_GET_INFO_MEMBER(statriv2_state::vertical_tile_info)
*
*************************************/
-void statriv2_state::palette_init()
+PALETTE_INIT_MEMBER(statriv2_state, statriv2)
{
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_pen_color(2*i+0, pal1bit(i >> 2), pal1bit(i >> 0), pal1bit(i >> 1));
+ palette.set_pen_color(2*i+1, pal1bit(i >> 5), pal1bit(i >> 3), pal1bit(i >> 4));
}
}
@@ -205,7 +205,7 @@ WRITE8_MEMBER(statriv2_state::statriv2_videoram_w)
UINT32 statriv2_state::screen_update_statriv2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
if (m_tms->screen_reset())
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
else
m_tilemap->draw(screen, bitmap, cliprect, 0, 0);
return 0;
@@ -626,8 +626,8 @@ static MACHINE_CONFIG_START( statriv2, statriv2_state )
MCFG_TMS9927_ADD("tms", MASTER_CLOCK/2, tms9927_intf)
MCFG_GFXDECODE_ADD("gfxdecode", horizontal)
- MCFG_PALETTE_LENGTH(2*64)
-
+ MCFG_PALETTE_ADD("palette", 2*64)
+ MCFG_PALETTE_INIT_OWNER(statriv2_state, statriv2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/stfight.c b/src/mame/drivers/stfight.c
index fabec1c1b5a..1f75184652b 100644
--- a/src/mame/drivers/stfight.c
+++ b/src/mame/drivers/stfight.c
@@ -562,7 +562,8 @@ static MACHINE_CONFIG_START( stfight, stfight_state )
MCFG_VIDEO_START_OVERRIDE(stfight_state,stfight)
MCFG_GFXDECODE_ADD("gfxdecode", stfight)
- MCFG_PALETTE_LENGTH(16*4+16*16+16*16+16*16)
+ MCFG_PALETTE_ADD("palette", 16*4+16*16+16*16+16*16)
+ MCFG_PALETTE_INIT_OWNER(stfight_state, stfight)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/stlforce.c b/src/mame/drivers/stlforce.c
index 370985c5d38..3ece7c027dc 100644
--- a/src/mame/drivers/stlforce.c
+++ b/src/mame/drivers/stlforce.c
@@ -100,7 +100,7 @@ static ADDRESS_MAP_START( stlforce_map, AS_PROGRAM, 16, stlforce_state )
AM_RANGE(0x103400, 0x1037ff) AM_RAM AM_SHARE("mlow_scrollram")
AM_RANGE(0x103800, 0x103bff) AM_RAM AM_SHARE("mhigh_scrollram")
AM_RANGE(0x103c00, 0x103fff) AM_RAM AM_SHARE("vidattrram")
- AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x105000, 0x107fff) AM_RAM /* unknown / ram */
AM_RANGE(0x108000, 0x108fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x109000, 0x11ffff) AM_RAM
@@ -201,8 +201,8 @@ static MACHINE_CONFIG_START( stlforce, stlforce_state )
MCFG_SCREEN_UPDATE_DRIVER(stlforce_state, screen_update_stlforce)
MCFG_GFXDECODE_ADD("gfxdecode", stlforce)
- MCFG_PALETTE_LENGTH(0x800)
-
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/strnskil.c b/src/mame/drivers/strnskil.c
index bacdbba0fb4..b85c8897006 100644
--- a/src/mame/drivers/strnskil.c
+++ b/src/mame/drivers/strnskil.c
@@ -352,8 +352,8 @@ static MACHINE_CONFIG_START( strnskil, strnskil_state )
MCFG_SCREEN_UPDATE_DRIVER(strnskil_state, screen_update_strnskil)
MCFG_GFXDECODE_ADD("gfxdecode", strnskil)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_OWNER(strnskil_state, strnskil)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/stuntair.c b/src/mame/drivers/stuntair.c
index 6512a97fc8a..8b38eab1eb0 100644
--- a/src/mame/drivers/stuntair.c
+++ b/src/mame/drivers/stuntair.c
@@ -153,12 +153,12 @@ PALETTE_INIT_MEMBER(stuntair_state, stuntair)
int g = (data&0x38)>>3;
int r = (data&0x07)>>0;
- palette_set_color(machine(),i,rgb_t(r<<5,g<<5,b<<6));
+ palette.set_pen_color(i,rgb_t(r<<5,g<<5,b<<6));
}
// just set the FG layer to black and white
- palette_set_color(machine(),0x100,rgb_t(0x00,0x00,0x00));
- palette_set_color(machine(),0x101,rgb_t(0xff,0xff,0xff));
+ palette.set_pen_color(0x100,rgb_t(0x00,0x00,0x00));
+ palette.set_pen_color(0x101,rgb_t(0xff,0xff,0xff));
}
@@ -213,7 +213,7 @@ void stuntair_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
y = 240 - y;
- gfx->transpen(bitmap,cliprect,tile,colour,flipx,flipy,x,y,0);
+ gfx->transpen(m_palette,bitmap,cliprect,tile,colour,flipx,flipy,x,y,0);
}
}
@@ -541,9 +541,9 @@ static MACHINE_CONFIG_START( stuntair, stuntair_state )
MCFG_SCREEN_UPDATE_DRIVER(stuntair_state, screen_update_stuntair)
MCFG_GFXDECODE_ADD("gfxdecode", stuntair)
- MCFG_PALETTE_LENGTH(0x100+2)
+ MCFG_PALETTE_ADD("palette", 0x100+2)
- MCFG_PALETTE_INIT_OVERRIDE(stuntair_state, stuntair)
+ MCFG_PALETTE_INIT_OWNER(stuntair_state, stuntair)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono") // stereo?
diff --git a/src/mame/drivers/stv.c b/src/mame/drivers/stv.c
index 3cf630217b7..bc6a632df13 100644
--- a/src/mame/drivers/stv.c
+++ b/src/mame/drivers/stv.c
@@ -1013,7 +1013,7 @@ static MACHINE_CONFIG_START( stv, stv_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224)
MCFG_SCREEN_UPDATE_DRIVER(stv_state, screen_update_stv_vdp2)
- MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness.
+ MCFG_PALETTE_ADD("palette", 2048+(2048*2))//standard palette + extra memory for rgb brightness.
MCFG_GFXDECODE_ADD("gfxdecode", stv)
diff --git a/src/mame/drivers/sub.c b/src/mame/drivers/sub.c
index 23c5680bb97..aba00241f17 100644
--- a/src/mame/drivers/sub.c
+++ b/src/mame/drivers/sub.c
@@ -137,7 +137,7 @@ public:
DECLARE_WRITE8_MEMBER(subm_to_sound_w);
DECLARE_WRITE8_MEMBER(nmi_mask_w);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(sub);
UINT32 screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(subm_sound_irq);
required_device<cpu_device> m_maincpu;
@@ -167,8 +167,8 @@ UINT32 sub_state::screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap,
tile += (m_attr[count]&0xe0)<<3;
col = (m_attr[count]&0x1f);
- gfx->opaque(bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs);
- gfx->opaque(bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs+256);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs+256);
count++;
}
@@ -200,7 +200,7 @@ UINT32 sub_state::screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap,
if(fx) { x = 0xe0 - x; }
fy = (spriteram_2[i+0] & 0x40) ? 0 : 1;
- gfx_1->transpen(bitmap,cliprect,spr_offs,col,0,fy,x,y,0);
+ gfx_1->transpen(m_palette,bitmap,cliprect,spr_offs,col,0,fy,x,y,0);
}
}
@@ -220,8 +220,8 @@ UINT32 sub_state::screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap,
if(x >= 28)
{
- gfx->opaque(bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs);
- gfx->opaque(bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs+256);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs+256);
}
count++;
@@ -394,15 +394,12 @@ static GFXDECODE_START( sub )
GFXDECODE_ENTRY( "gfx2", 0, tiles16x32_layout, 0, 0x80 )
GFXDECODE_END
-void sub_state::palette_init()
+PALETTE_INIT_MEMBER(sub_state, sub)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
UINT8* lookup = memregion("proms2")->base();
- /* allocate the colortable */
- machine().colortable = colortable_alloc(machine(), 0x100);
-
for (i = 0;i < 0x100;i++)
{
int r,g,b;
@@ -410,8 +407,8 @@ void sub_state::palette_init()
g = (color_prom[0x100] >> 0);
b = (color_prom[0x200] >> 0);
- //colortable_palette_set_color(machine().colortable, i, rgb_t(r, g, b));
- colortable_palette_set_color(machine().colortable, i, rgb_t(pal4bit(r), pal4bit(g), pal4bit(b)));
+ //palette.set_indirect_color(i, rgb_t(r, g, b));
+ palette.set_indirect_color(i, rgb_t(pal4bit(r), pal4bit(g), pal4bit(b)));
color_prom++;
}
@@ -420,7 +417,7 @@ void sub_state::palette_init()
for (i = 0;i < 0x400;i++)
{
UINT8 ctabentry = lookup[i+0x400] | (lookup[i+0x000] << 4);
- colortable_entry_set_value(machine().colortable, i, ctabentry);
+ palette.set_pen_indirect(i, ctabentry);
}
}
@@ -455,8 +452,8 @@ static MACHINE_CONFIG_START( sub, sub_state )
MCFG_SCREEN_UPDATE_DRIVER(sub_state, screen_update_sub)
MCFG_GFXDECODE_ADD("gfxdecode", sub)
- MCFG_PALETTE_LENGTH(0x400)
-
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_INIT_OWNER(sub_state, sub)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/subs.c b/src/mame/drivers/subs.c
index 32dd6a7dc13..19840ed451f 100644
--- a/src/mame/drivers/subs.c
+++ b/src/mame/drivers/subs.c
@@ -29,12 +29,12 @@
*
*************************************/
-void subs_state::palette_init()
+PALETTE_INIT_MEMBER(subs_state, subs)
{
- palette_set_color(machine(),0,rgb_t(0x00,0x00,0x00)); /* BLACK - modified on video invert */
- palette_set_color(machine(),1,rgb_t(0xff,0xff,0xff)); /* WHITE - modified on video invert */
- palette_set_color(machine(),2,rgb_t(0x00,0x00,0x00)); /* BLACK - modified on video invert */
- palette_set_color(machine(),3,rgb_t(0xff,0xff,0xff)); /* WHITE - modified on video invert*/
+ palette.set_pen_color(0,rgb_t(0x00,0x00,0x00)); /* BLACK - modified on video invert */
+ palette.set_pen_color(1,rgb_t(0xff,0xff,0xff)); /* WHITE - modified on video invert */
+ palette.set_pen_color(2,rgb_t(0x00,0x00,0x00)); /* BLACK - modified on video invert */
+ palette.set_pen_color(3,rgb_t(0xff,0xff,0xff)); /* WHITE - modified on video invert*/
}
@@ -184,7 +184,10 @@ static MACHINE_CONFIG_START( subs, subs_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", subs)
- MCFG_PALETTE_LENGTH(4)
+
+ MCFG_PALETTE_ADD("palette", 4)
+ MCFG_PALETTE_INIT_OWNER(subs_state, subs)
+
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
MCFG_SCREEN_ADD("lscreen", RASTER)
diff --git a/src/mame/drivers/subsino.c b/src/mame/drivers/subsino.c
index 6fc63fa0ca5..479b1f600c0 100644
--- a/src/mame/drivers/subsino.c
+++ b/src/mame/drivers/subsino.c
@@ -602,7 +602,7 @@ PALETTE_INIT_MEMBER(subsino_state,subsino_2proms)
bit2 = (val >> 2) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -629,7 +629,7 @@ PALETTE_INIT_MEMBER(subsino_state,subsino_3proms)
bit2 = (val >> 0) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -1086,7 +1086,7 @@ WRITE8_MEMBER(subsino_state::colordac_w)
case 1:
m_stisub_colorram[m_colordac_offs] = data;
- palette_set_color_rgb(machine(), m_colordac_offs/3,
+ m_palette->set_pen_color(m_colordac_offs/3,
pal6bit(m_stisub_colorram[(m_colordac_offs/3)*3+0]),
pal6bit(m_stisub_colorram[(m_colordac_offs/3)*3+1]),
pal6bit(m_stisub_colorram[(m_colordac_offs/3)*3+2])
@@ -2817,8 +2817,8 @@ static MACHINE_CONFIG_START( victor21, subsino_state )
MCFG_GFXDECODE_ADD("gfxdecode", subsino_depth3)
- MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_2proms)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(subsino_state,subsino_2proms)
MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino)
@@ -2859,8 +2859,8 @@ static MACHINE_CONFIG_START( crsbingo, subsino_state )
MCFG_GFXDECODE_ADD("gfxdecode", subsino_depth4)
- MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_2proms)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(subsino_state,subsino_2proms)
MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino)
@@ -2890,8 +2890,8 @@ static MACHINE_CONFIG_START( srider, subsino_state )
MCFG_GFXDECODE_ADD("gfxdecode", subsino_depth4)
- MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_3proms)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(subsino_state,subsino_3proms)
MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino)
@@ -2931,8 +2931,8 @@ static MACHINE_CONFIG_START( tisub, subsino_state )
MCFG_GFXDECODE_ADD("gfxdecode", subsino_depth4_reels)
- MCFG_PALETTE_LENGTH(0x100)
- MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_3proms)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(subsino_state,subsino_3proms)
MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino_reels)
@@ -2961,8 +2961,8 @@ static MACHINE_CONFIG_START( stisub, subsino_state )
MCFG_GFXDECODE_ADD("gfxdecode", subsino_stisub)
- MCFG_PALETTE_LENGTH(0x100)
- //MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_3proms)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ //MCFG_PALETTE_INIT_OWNER(subsino_state,subsino_3proms)
MCFG_VIDEO_START_OVERRIDE(subsino_state,stisub)
diff --git a/src/mame/drivers/subsino2.c b/src/mame/drivers/subsino2.c
index 5c36c3a93c1..45238338031 100644
--- a/src/mame/drivers/subsino2.c
+++ b/src/mame/drivers/subsino2.c
@@ -692,7 +692,7 @@ UINT32 subsino2_state::screen_update_subsino2(screen_device &screen, bitmap_ind1
}
}
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
if (layers_ctrl & 1)
{
@@ -773,7 +773,7 @@ WRITE8_MEMBER(subsino2_state::hm86171_colorram_w)
case 1:
m_hm86171_colorram[m_hm86171_offs] = data;
- palette_set_color_rgb(machine(), m_hm86171_offs/3,
+ m_palette->set_pen_color(m_hm86171_offs/3,
pal6bit(m_hm86171_colorram[(m_hm86171_offs/3)*3+0]),
pal6bit(m_hm86171_colorram[(m_hm86171_offs/3)*3+1]),
pal6bit(m_hm86171_colorram[(m_hm86171_offs/3)*3+2])
@@ -2143,8 +2143,8 @@ static MACHINE_CONFIG_START( bishjan, subsino2_state )
MCFG_SCREEN_REFRESH_RATE( 60 )
MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2)
- MCFG_GFXDECODE_ADD("gfxdecode", ss9601 )
- MCFG_PALETTE_LENGTH( 256 )
+ MCFG_GFXDECODE_ADD("gfxdecode", ss9601 )
+ MCFG_PALETTE_ADD( "palette", 256 )
MCFG_VIDEO_START_OVERRIDE(subsino2_state, subsino2 )
@@ -2171,8 +2171,8 @@ static MACHINE_CONFIG_START( mtrain, subsino2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state
MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2)
- MCFG_GFXDECODE_ADD("gfxdecode", ss9601 )
- MCFG_PALETTE_LENGTH( 256 )
+ MCFG_GFXDECODE_ADD("gfxdecode", ss9601 )
+ MCFG_PALETTE_ADD( "palette", 256 )
MCFG_VIDEO_START_OVERRIDE(subsino2_state, mtrain )
@@ -2202,8 +2202,8 @@ static MACHINE_CONFIG_START( saklove, subsino2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state
MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2)
- MCFG_GFXDECODE_ADD("gfxdecode", ss9601 )
- MCFG_PALETTE_LENGTH( 256 )
+ MCFG_GFXDECODE_ADD("gfxdecode", ss9601 )
+ MCFG_PALETTE_ADD( "palette", 256 )
MCFG_VIDEO_START_OVERRIDE(subsino2_state, subsino2 )
@@ -2237,8 +2237,8 @@ static MACHINE_CONFIG_START( xplan, subsino2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state
MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2)
- MCFG_GFXDECODE_ADD("gfxdecode", ss9601 )
- MCFG_PALETTE_LENGTH( 256 )
+ MCFG_GFXDECODE_ADD("gfxdecode", ss9601 )
+ MCFG_PALETTE_ADD( "palette", 256 )
MCFG_VIDEO_START_OVERRIDE(subsino2_state, subsino2 )
diff --git a/src/mame/drivers/summit.c b/src/mame/drivers/summit.c
index 5b8ad4e4bc7..647ab01ebc6 100644
--- a/src/mame/drivers/summit.c
+++ b/src/mame/drivers/summit.c
@@ -33,7 +33,7 @@ public:
required_shared_ptr<UINT8> m_vram;
DECLARE_WRITE8_MEMBER(out_w);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(summit);
UINT32 screen_update_summit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -57,7 +57,7 @@ UINT32 summit_state::screen_update_summit(screen_device &screen, bitmap_ind16 &b
for (x=0;x<32;x++)
{
int tile = (m_vram[count] | ((m_attr[count]&1)<<8) );
- gfx->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*8);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*8,y*8);
count++;
}
@@ -295,7 +295,7 @@ static GFXDECODE_START( summit )
GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 1 )
GFXDECODE_END
-void summit_state::palette_init()
+PALETTE_INIT_MEMBER(summit_state, summit)
{
}
@@ -315,8 +315,8 @@ static MACHINE_CONFIG_START( summit, summit_state )
MCFG_GFXDECODE_ADD("gfxdecode", summit)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(summit_state, summit)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/suna16.c b/src/mame/drivers/suna16.c
index 9c6d492cb04..b20a220ff2e 100644
--- a/src/mame/drivers/suna16.c
+++ b/src/mame/drivers/suna16.c
@@ -821,7 +821,7 @@ static MACHINE_CONFIG_START( bssoccer, suna16_state )
MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16)
MCFG_GFXDECODE_ADD("gfxdecode", suna16)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
/* sound hardware */
@@ -879,7 +879,7 @@ static MACHINE_CONFIG_START( uballoon, suna16_state )
MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16)
MCFG_GFXDECODE_ADD("gfxdecode", suna16)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
/* sound hardware */
@@ -927,7 +927,7 @@ static MACHINE_CONFIG_START( sunaq, suna16_state )
MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16)
MCFG_GFXDECODE_ADD("gfxdecode", suna16)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
/* sound hardware */
@@ -988,7 +988,7 @@ static MACHINE_CONFIG_START( bestbest, suna16_state )
MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_bestbest)
MCFG_GFXDECODE_ADD("gfxdecode", bestbest)
- MCFG_PALETTE_LENGTH(256*8)
+ MCFG_PALETTE_ADD("palette", 256*8)
/* sound hardware */
diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c
index 9dc4266bd86..4c26875aefc 100644
--- a/src/mame/drivers/suna8.c
+++ b/src/mame/drivers/suna8.c
@@ -578,7 +578,7 @@ static ADDRESS_MAP_START( hardhead_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xc000, 0xd7ff) AM_RAM // RAM
- AM_RANGE(0xd800, 0xd9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xd800, 0xd9ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xda00, 0xda00) AM_RAM_READ(hardhead_ip_r) AM_SHARE("hardhead_ip") // Input Port Select
AM_RANGE(0xda80, 0xda80) AM_READ(soundlatch2_byte_r) AM_WRITE(hardhead_bankswitch_w ) // ROM Banking
AM_RANGE(0xdb00, 0xdb00) AM_WRITE(soundlatch_byte_w ) // To Sound CPU
@@ -654,7 +654,7 @@ static ADDRESS_MAP_START( rranger_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0xc280, 0xc280) AM_WRITENOP // ? NMI Ack
AM_RANGE(0xc280, 0xc280) AM_READ_PORT("DSW1") // DSW 1
AM_RANGE(0xc2c0, 0xc2c0) AM_READ_PORT("DSW2") // DSW 2
- AM_RANGE(0xc600, 0xc7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xc600, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xc800, 0xdfff) AM_RAM // Work RAM
AM_RANGE(0xe000, 0xffff) AM_RAM_WRITE(suna8_spriteram_w) AM_SHARE("spriteram") // Sprites
ADDRESS_MAP_END
@@ -949,7 +949,7 @@ static ADDRESS_MAP_START( hardhea2_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0xc533, 0xc533) AM_WRITE(hardhea2_rambank_0_w )
// Protection ***
- AM_RANGE(0xc600, 0xc7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xc600, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xc800, 0xdfff) AM_RAMBANK("bank2") // Work RAM (Banked)
AM_RANGE(0xe000, 0xffff) AM_READWRITE(suna8_banked_spriteram_r, suna8_banked_spriteram_w) // Sprites (Banked)
ADDRESS_MAP_END
@@ -1053,7 +1053,7 @@ static ADDRESS_MAP_START( starfigh_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0xc500, 0xc500) AM_WRITE(starfigh_sound_latch_w ) // To Sound CPU (can be disabled)
// (c522 + R & 0x1f) write?
- AM_RANGE(0xc600, 0xc7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xc600, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xc800, 0xdfff) AM_RAM // Work RAM
AM_RANGE(0xe000, 0xffff) AM_READWRITE(suna8_banked_spriteram_r, suna8_banked_spriteram_w) // Sprites (Banked)
ADDRESS_MAP_END
@@ -1181,7 +1181,7 @@ static ADDRESS_MAP_START( sparkman_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0xc480, 0xc480) AM_WRITE(sparkman_coin_counter_w ) // Coin Counter
AM_RANGE(0xc500, 0xc57f) AM_WRITE(starfigh_sound_latch_w ) // To Sound CPU (can be disabled)
- AM_RANGE(0xc600, 0xc7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0xc600, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0xc800, 0xdfff) AM_RAM_WRITE(suna8_wram_w) AM_SHARE("wram") // RAM
AM_RANGE(0xe000, 0xffff) AM_READWRITE(suna8_banked_spriteram_r, suna8_banked_spriteram_w) // Sprites (Banked)
ADDRESS_MAP_END
@@ -1841,7 +1841,8 @@ static MACHINE_CONFIG_START( hardhead, suna8_state )
MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
MCFG_GFXDECODE_ADD("gfxdecode", suna8)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim12)
@@ -1902,7 +1903,8 @@ static MACHINE_CONFIG_START( rranger, suna8_state )
MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
MCFG_GFXDECODE_ADD("gfxdecode", suna8)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim8)
@@ -1962,7 +1964,8 @@ static MACHINE_CONFIG_START( brickzn, suna8_state )
MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
MCFG_GFXDECODE_ADD("gfxdecode", suna8)
- MCFG_PALETTE_LENGTH(256 * 2) // 2 x Palette RAM
+ MCFG_PALETTE_ADD("palette", 256 * 2) // 2 x Palette RAM
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_brickzn)
@@ -2022,7 +2025,9 @@ static MACHINE_CONFIG_DERIVED( hardhea2, brickzn )
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", suna8_state, hardhea2_interrupt, "screen", 0, 1)
MCFG_MACHINE_RESET_OVERRIDE(suna8_state,hardhea2)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MACHINE_CONFIG_END
@@ -2062,7 +2067,8 @@ static MACHINE_CONFIG_START( starfigh, suna8_state )
MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
MCFG_GFXDECODE_ADD("gfxdecode", suna8)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_starfigh)
@@ -2109,7 +2115,8 @@ static MACHINE_CONFIG_START( sparkman, suna8_state )
MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
MCFG_GFXDECODE_ADD("gfxdecode", suna8_x2) // 2 sprite "chips"
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_sparkman)
diff --git a/src/mame/drivers/supbtime.c b/src/mame/drivers/supbtime.c
index 6a6ca76b49a..5fa987d230a 100644
--- a/src/mame/drivers/supbtime.c
+++ b/src/mame/drivers/supbtime.c
@@ -62,7 +62,7 @@ static ADDRESS_MAP_START( supbtime_map, AS_PROGRAM, 16, supbtime_state )
AM_RANGE(0x104000, 0x11ffff) AM_WRITENOP /* Nothing there */
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x120800, 0x13ffff) AM_WRITENOP /* Nothing there */
- AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x180000, 0x18000f) AM_READ(supbtime_controls_r)
AM_RANGE(0x18000a, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a0001) AM_WRITE(sound_w)
@@ -77,7 +77,7 @@ static ADDRESS_MAP_START( chinatwn_map, AS_PROGRAM, 16, supbtime_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_WRITE(sound_w)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x180000, 0x18000f) AM_READ(supbtime_controls_r)
AM_RANGE(0x18000a, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a3fff) AM_RAM
@@ -342,14 +342,17 @@ static MACHINE_CONFIG_START( supbtime, supbtime_state )
MCFG_SCREEN_UPDATE_DRIVER(supbtime_state, screen_update_supbtime)
MCFG_GFXDECODE_ADD("gfxdecode", supbtime)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_DECO16IC_ADD("tilegen1", supbtime_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 2);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -386,14 +389,17 @@ static MACHINE_CONFIG_START( chinatwn, supbtime_state )
MCFG_SCREEN_UPDATE_DRIVER(supbtime_state, screen_update_supbtime)
MCFG_GFXDECODE_ADD("gfxdecode", supbtime)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_DECO16IC_ADD("tilegen1", supbtime_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 2);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/supdrapo.c b/src/mame/drivers/supdrapo.c
index d1b56752dca..5d15c45a1c2 100644
--- a/src/mame/drivers/supdrapo.c
+++ b/src/mame/drivers/supdrapo.c
@@ -93,7 +93,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(supdrapo);
UINT32 screen_update_supdrapo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -125,7 +125,7 @@ UINT32 supdrapo_state::screen_update_supdrapo(screen_device &screen, bitmap_ind1
/* Global Column Coloring, GUESS! */
color = m_col_line[(x*2) + 1] ? (m_col_line[(x*2) + 1] - 1) & 7 : 0;
- m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, tile,color, 0, 0, x*8, y*8);
+ m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, tile,color, 0, 0, x*8, y*8);
count++;
}
@@ -136,7 +136,7 @@ UINT32 supdrapo_state::screen_update_supdrapo(screen_device &screen, bitmap_ind1
/*Maybe bit 2 & 3 of the second color prom are intensity bits? */
-void supdrapo_state::palette_init()
+PALETTE_INIT_MEMBER(supdrapo_state, supdrapo)
{
const UINT8 *color_prom = memregion("proms")->base();
int bit0, bit1, bit2 , r, g, b;
@@ -159,7 +159,7 @@ void supdrapo_state::palette_init()
bit2 = (color_prom[0x100] >> 1) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
color_prom++;
}
}
@@ -465,8 +465,8 @@ static MACHINE_CONFIG_START( supdrapo, supdrapo_state )
MCFG_SCREEN_UPDATE_DRIVER(supdrapo_state, screen_update_supdrapo)
MCFG_GFXDECODE_ADD("gfxdecode", supdrapo)
- MCFG_PALETTE_LENGTH(0x100)
-
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(supdrapo_state, supdrapo)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/superchs.c b/src/mame/drivers/superchs.c
index 1477e7b3ad8..ba9be62b178 100644
--- a/src/mame/drivers/superchs.c
+++ b/src/mame/drivers/superchs.c
@@ -103,7 +103,7 @@ WRITE32_MEMBER(superchs_state::superchs_palette_w)
g = (a &0xff00) >> 8;
b = (a &0xff);
- palette_set_color(machine(),offset,rgb_t(r,g,b));
+ m_palette->set_pen_color(offset,rgb_t(r,g,b));
}
READ32_MEMBER(superchs_state::superchs_input_r)
@@ -346,7 +346,7 @@ static MACHINE_CONFIG_START( superchs, superchs_state )
MCFG_SCREEN_UPDATE_DRIVER(superchs_state, screen_update_superchs)
MCFG_GFXDECODE_ADD("gfxdecode", superchs)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_TC0480SCP_ADD("tc0480scp", superchs_tc0480scp_intf)
diff --git a/src/mame/drivers/supercrd.c b/src/mame/drivers/supercrd.c
index 250455e98fc..cbb793dbf88 100644
--- a/src/mame/drivers/supercrd.c
+++ b/src/mame/drivers/supercrd.c
@@ -211,7 +211,7 @@ PALETTE_INIT_MEMBER(supercrd_state, supercrd)
2, resistances_g, weights_g, 100, 0);
- for (i = 0; i < machine().total_colors(); i++)
+ for (i = 0; i < palette.entries(); i++)
{
int bit0, bit1, bit2, r, g, b;
@@ -230,7 +230,7 @@ PALETTE_INIT_MEMBER(supercrd_state, supercrd)
bit1 = (color_prom[i] >> 7) & 0x01;
g = combine_2_weights(weights_g, bit0, bit1);
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
}
}
@@ -475,8 +475,8 @@ static MACHINE_CONFIG_START( supercrd, supercrd_state )
MCFG_GFXDECODE_ADD("gfxdecode", supercrd)
- MCFG_PALETTE_LENGTH(0x200)
- MCFG_PALETTE_INIT_OVERRIDE(supercrd_state, supercrd)
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_INIT_OWNER(supercrd_state, supercrd)
MCFG_VIDEO_START_OVERRIDE(supercrd_state, supercrd)
// MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/8, mc6845_intf)
diff --git a/src/mame/drivers/superdq.c b/src/mame/drivers/superdq.c
index 75c19240ea5..d5e872fc844 100644
--- a/src/mame/drivers/superdq.c
+++ b/src/mame/drivers/superdq.c
@@ -52,7 +52,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(superdq);
UINT32 screen_update_superdq(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(superdq_vblank);
required_device<cpu_device> m_maincpu;
@@ -86,7 +86,7 @@ UINT32 superdq_state::screen_update_superdq(screen_device &screen, bitmap_rgb32
*
*************************************/
-void superdq_state::palette_init()
+PALETTE_INIT_MEMBER(superdq_state, superdq)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
@@ -100,7 +100,7 @@ void superdq_state::palette_init()
2, &resistances[1], bweights, 220, 0);
/* initialize the palette with these colors */
- for (i = 0; i < machine().total_colors(); i++)
+ for (i = 0; i < palette.entries(); i++)
{
int bit0, bit1, bit2;
int r, g, b;
@@ -122,7 +122,7 @@ void superdq_state::palette_init()
bit1 = (color_prom[i] >> 0) & 0x01;
b = combine_2_weights(bweights, bit1, bit0);
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
}
}
@@ -170,9 +170,9 @@ WRITE8_MEMBER(superdq_state::superdq_io_w)
{
int index = black_color_entries[i];
if (data & 0x80)
- palette_set_color(machine(), index, palette_get_color(machine(), index) & rgb_t(0,255,255,255));
+ m_palette->set_pen_color(index, m_palette->pen_color(index) & rgb_t(0,255,255,255));
else
- palette_set_color(machine(), index, palette_get_color(machine(), index) | rgb_t(255,0,0,0));
+ m_palette->set_pen_color(index, m_palette->pen_color(index) | rgb_t(255,0,0,0));
}
/*
@@ -336,8 +336,8 @@ static MACHINE_CONFIG_START( superdq, superdq_state )
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
MCFG_GFXDECODE_ADD("gfxdecode", superdq)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(superdq_state, superdq)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c
index 6aa79505e4f..dfffe55d1ce 100644
--- a/src/mame/drivers/superqix.c
+++ b/src/mame/drivers/superqix.c
@@ -561,7 +561,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, superqix_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( pbillian_port_map, AS_IO, 8, superqix_state )
- AM_RANGE(0x0000, 0x01ff) AM_RAM_WRITE(paletteram_BBGGRRII_byte_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0000, 0x01ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0401, 0x0401) AM_DEVREAD("aysnd", ay8910_device, data_r)
AM_RANGE(0x0402, 0x0403) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
AM_RANGE(0x0408, 0x0408) AM_READ(pbillian_from_mcu_r)
@@ -574,7 +574,7 @@ static ADDRESS_MAP_START( pbillian_port_map, AS_IO, 8, superqix_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( hotsmash_port_map, AS_IO, 8, superqix_state )
- AM_RANGE(0x0000, 0x01ff) AM_RAM_WRITE(paletteram_BBGGRRII_byte_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0000, 0x01ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0401, 0x0401) AM_DEVREAD("aysnd", ay8910_device, data_r)
AM_RANGE(0x0402, 0x0403) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
AM_RANGE(0x0408, 0x0408) AM_READ(hotsmash_from_mcu_r)
@@ -587,7 +587,7 @@ static ADDRESS_MAP_START( hotsmash_port_map, AS_IO, 8, superqix_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sqix_port_map, AS_IO, 8, superqix_state )
- AM_RANGE(0x0000, 0x00ff) AM_RAM_WRITE(paletteram_BBGGRRII_byte_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0000, 0x00ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0401, 0x0401) AM_DEVREAD("ay1", ay8910_device, data_r)
AM_RANGE(0x0402, 0x0403) AM_DEVWRITE("ay1", ay8910_device, data_address_w)
AM_RANGE(0x0405, 0x0405) AM_DEVREAD("ay2", ay8910_device, data_r)
@@ -1006,7 +1006,8 @@ static MACHINE_CONFIG_START( pbillian, superqix_state )
MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_pbillian)
MCFG_GFXDECODE_ADD("gfxdecode", pbillian)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(BBGGRRII)
MCFG_VIDEO_START_OVERRIDE(superqix_state,pbillian)
@@ -1040,7 +1041,8 @@ static MACHINE_CONFIG_START( hotsmash, superqix_state )
MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_pbillian)
MCFG_GFXDECODE_ADD("gfxdecode", pbillian)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(BBGGRRII)
MCFG_VIDEO_START_OVERRIDE(superqix_state,pbillian)
@@ -1078,7 +1080,8 @@ static MACHINE_CONFIG_START( sqix, superqix_state )
MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_superqix)
MCFG_GFXDECODE_ADD("gfxdecode", sqix)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(BBGGRRII)
MCFG_VIDEO_START_OVERRIDE(superqix_state,superqix)
@@ -1121,7 +1124,8 @@ static MACHINE_CONFIG_START( sqixbl, superqix_state )
MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_superqix)
MCFG_GFXDECODE_ADD("gfxdecode", sqix)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(BBGGRRII)
MCFG_VIDEO_START_OVERRIDE(superqix_state,superqix)
diff --git a/src/mame/drivers/superwng.c b/src/mame/drivers/superwng.c
index e76d3797d3b..9a4b988aef6 100644
--- a/src/mame/drivers/superwng.c
+++ b/src/mame/drivers/superwng.c
@@ -74,7 +74,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(superwng);
UINT32 screen_update_superwng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(superwng_nmi_interrupt);
INTERRUPT_GEN_MEMBER(superwng_sound_nmi_assert);
@@ -155,7 +155,7 @@ UINT32 superwng_state::screen_update_superwng(screen_device &screen, bitmap_ind1
int sy = m_colorram_bg[i];
int color = m_colorram_bg[i + 1] & 0xf;
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,
code,
color,
flip, flip,
@@ -174,12 +174,12 @@ static const UINT8 superwng_colors[]= /* temporary */
0x00, 0xc0, 0x07, 0x3f, 0x00, 0x1f, 0x3f, 0xff, 0x00, 0x86, 0x05, 0xff, 0x00, 0xc0, 0xe8, 0xff
};
-void superwng_state::palette_init()
+PALETTE_INIT_MEMBER(superwng_state, superwng)
{
int i;
const UINT8 * ptr=superwng_colors;
- for (i = 0; i < machine().total_colors(); i++)
+ for (i = 0; i < palette.entries(); i++)
{
int bit0, bit1, bit2, r, g, b;
@@ -197,7 +197,7 @@ void superwng_state::palette_init()
bit1 = BIT(*ptr, 7);
b = 0x4f * bit0 + 0xa8 * bit1;
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
++ptr;
}
}
@@ -481,7 +481,8 @@ static MACHINE_CONFIG_START( superwng, superwng_state )
MCFG_GFXDECODE_ADD("gfxdecode", superwng)
- MCFG_PALETTE_LENGTH(0x40)
+ MCFG_PALETTE_ADD("palette", 0x40)
+ MCFG_PALETTE_INIT_OWNER(superwng_state, superwng)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c
index b91fb5e781b..af6ddcb8fdc 100644
--- a/src/mame/drivers/suprgolf.c
+++ b/src/mame/drivers/suprgolf.c
@@ -107,7 +107,7 @@ void suprgolf_state::video_start()
UINT32 suprgolf_state::screen_update_suprgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int x,y,count,color;
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
{
count = 0;
@@ -119,7 +119,7 @@ UINT32 suprgolf_state::screen_update_suprgolf(screen_device &screen, bitmap_ind1
color = m_bg_fb[count];
if(x <= cliprect.max_x && y <= cliprect.max_y)
- bitmap.pix16(y, x) = machine().pens[(color & 0x7ff)];
+ bitmap.pix16(y, x) = m_palette->pen((color & 0x7ff));
count++;
}
@@ -136,7 +136,7 @@ UINT32 suprgolf_state::screen_update_suprgolf(screen_device &screen, bitmap_ind1
color = m_fg_fb[count];
if(((m_fg_fb[count] & 0x0f) != 0x0f) && (x <= cliprect.max_x && y <= cliprect.max_y))
- bitmap.pix16(y, x) = machine().pens[(color & 0x7ff)];
+ bitmap.pix16(y, x) = m_palette->pen((color & 0x7ff));
count++;
}
@@ -169,7 +169,7 @@ WRITE8_MEMBER(suprgolf_state::suprgolf_videoram_w)
g = (datax & 0x8000) ? 0 : ((datax)&0x03e0)>>5;
r = (datax & 0x8000) ? 0 : ((datax)&0x7c00)>>10;
- palette_set_color_rgb(machine(), offset, pal5bit(r), pal5bit(g), pal5bit(b));
+ m_palette->set_pen_color(offset, pal5bit(r), pal5bit(g), pal5bit(b));
}
else
{
@@ -524,7 +524,7 @@ static MACHINE_CONFIG_START( suprgolf, suprgolf_state )
MCFG_SCREEN_UPDATE_DRIVER(suprgolf_state, screen_update_suprgolf)
MCFG_GFXDECODE_ADD("gfxdecode", suprgolf)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/suprloco.c b/src/mame/drivers/suprloco.c
index a8af507fe03..509028b117a 100644
--- a/src/mame/drivers/suprloco.c
+++ b/src/mame/drivers/suprloco.c
@@ -178,8 +178,8 @@ static MACHINE_CONFIG_START( suprloco, suprloco_state )
MCFG_SCREEN_UPDATE_DRIVER(suprloco_state, screen_update_suprloco)
MCFG_GFXDECODE_ADD("gfxdecode", suprloco)
- MCFG_PALETTE_LENGTH(512+256)
-
+ MCFG_PALETTE_ADD("palette", 512+256)
+ MCFG_PALETTE_INIT_OWNER(suprloco_state, suprloco)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c
index 49264f510e0..a2ca2c9c966 100644
--- a/src/mame/drivers/suprnova.c
+++ b/src/mame/drivers/suprnova.c
@@ -772,7 +772,7 @@ static MACHINE_CONFIG_START( skns, skns_state )
MCFG_SCREEN_UPDATE_DRIVER(skns_state, screen_update_skns)
MCFG_SCREEN_VBLANK_DRIVER(skns_state, screen_eof_skns)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD("palette", 32768)
MCFG_GFXDECODE_ADD("gfxdecode", skns_bg)
MCFG_DEVICE_ADD("spritegen", SKNS_SPRITE, 0)
diff --git a/src/mame/drivers/suprridr.c b/src/mame/drivers/suprridr.c
index 5b1c966398a..bf61391f424 100644
--- a/src/mame/drivers/suprridr.c
+++ b/src/mame/drivers/suprridr.c
@@ -375,8 +375,8 @@ static MACHINE_CONFIG_START( suprridr, suprridr_state )
MCFG_SCREEN_UPDATE_DRIVER(suprridr_state, screen_update_suprridr)
MCFG_GFXDECODE_ADD("gfxdecode", suprridr)
- MCFG_PALETTE_LENGTH(96)
-
+ MCFG_PALETTE_ADD("palette", 96)
+ MCFG_PALETTE_INIT_OWNER(suprridr_state, suprridr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c
index 3ae7e3e21f4..bef41c0570e 100644
--- a/src/mame/drivers/suprslam.c
+++ b/src/mame/drivers/suprslam.c
@@ -135,7 +135,7 @@ static ADDRESS_MAP_START( suprslam_map, AS_PROGRAM, 16, suprslam_state )
// AM_RANGE(0xff3000, 0xff3001) AM_WRITENOP // sprite buffer trigger?
AM_RANGE(0xff8000, 0xff8fff) AM_DEVREADWRITE("k053936", k053936_device, linectrl_r, linectrl_w)
AM_RANGE(0xff9000, 0xff9001) AM_WRITE(sound_command_w)
- AM_RANGE(0xffa000, 0xffafff) AM_RAM_WRITE(paletteram_xGGGGGBBBBBRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xffa000, 0xffafff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xffd000, 0xffd01f) AM_DEVWRITE("k053936", k053936_device, ctrl_w)
AM_RANGE(0xffe000, 0xffe001) AM_WRITE(suprslam_bank_w)
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("P1")
@@ -324,12 +324,14 @@ static MACHINE_CONFIG_START( suprslam, suprslam_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_DRIVER(suprslam_state, screen_update_suprslam)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xGGGGGBBBBBRRRRR)
MCFG_DEVICE_ADD("vsystem_spr", VSYSTEM_SPR, 0)
MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( suprslam_state, suprslam_tile_callback )
MCFG_VSYSTEM_SPR_SET_GFXREGION(1)
MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR_PALETTE("palette")
MCFG_K053936_ADD("k053936", suprslam_k053936_intf)
diff --git a/src/mame/drivers/surpratk.c b/src/mame/drivers/surpratk.c
index 8dc1309395a..9306a302061 100644
--- a/src/mame/drivers/surpratk.c
+++ b/src/mame/drivers/surpratk.c
@@ -44,9 +44,9 @@ WRITE8_MEMBER(surpratk_state::bankedram_w)
if (m_videobank & 0x02)
{
if (m_videobank & 0x04)
- paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space,offset + 0x0800,data);
+ m_palette->write(space,offset + 0x0800,data);
else
- paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space,offset,data);
+ m_palette->write(space,offset,data);
}
else if (m_videobank & 0x01)
m_k053244->k053245_w(space, offset, data);
@@ -211,8 +211,6 @@ static MACHINE_CONFIG_START( surpratk, surpratk_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -220,13 +218,17 @@ static MACHINE_CONFIG_START( surpratk, surpratk_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(surpratk_state, screen_update_surpratk)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", surpratk_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K053244_ADD("k053244", surpratk_k05324x_intf)
MCFG_K053244_GFXDECODE("gfxdecode")
+ MCFG_K053244_PALETTE("palette")
MCFG_K053251_ADD("k053251")
/* sound hardware */
diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c
index a3566085903..4cf2c62c009 100644
--- a/src/mame/drivers/system1.c
+++ b/src/mame/drivers/system1.c
@@ -2159,7 +2159,7 @@ static MACHINE_CONFIG_START( sys1ppi, system1_state )
MCFG_SCREEN_UPDATE_DRIVER(system1_state, screen_update_system1)
MCFG_GFXDECODE_ADD("gfxdecode", system1)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c
index cd3880c66e7..b8fde0d5a57 100644
--- a/src/mame/drivers/system16.c
+++ b/src/mame/drivers/system16.c
@@ -2008,7 +2008,7 @@ static MACHINE_CONFIG_START( system16, segas1x_bootleg_state )
MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system16)
MCFG_GFXDECODE_ADD("gfxdecode", sys16)
- MCFG_PALETTE_LENGTH(2048*SHADOW_COLORS_MULTIPLIER)
+ MCFG_PALETTE_ADD("palette", 2048*SHADOW_COLORS_MULTIPLIER)
MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state,system16)
@@ -2155,12 +2155,12 @@ static MACHINE_CONFIG_START( goldnaxeb1, segas1x_bootleg_state )
MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system16)
MCFG_GFXDECODE_ADD("gfxdecode", sys16)
- MCFG_PALETTE_LENGTH(2048*SHADOW_COLORS_MULTIPLIER)
+
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 2048*SHADOW_COLORS_MULTIPLIER)
MCFG_BOOTLEG_SYS16B_SPRITES_ADD("sprites")
MCFG_BOOTLEG_SYS16B_SPRITES_XORIGIN(189-121)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state,system16)
MACHINE_CONFIG_END
@@ -2288,7 +2288,7 @@ static MACHINE_CONFIG_START( system18, segas1x_bootleg_state )
MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system18old)
MCFG_GFXDECODE_ADD("gfxdecode", sys16)
- MCFG_PALETTE_LENGTH((2048+2048)*SHADOW_COLORS_MULTIPLIER) // 64 extra colours for vdp (but we use 2048 so shadow mask works)
+ MCFG_PALETTE_ADD("palette", (2048+2048)*SHADOW_COLORS_MULTIPLIER) // 64 extra colours for vdp (but we use 2048 so shadow mask works)
MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state,system18old)
diff --git a/src/mame/drivers/tagteam.c b/src/mame/drivers/tagteam.c
index cd2c5f19811..61b233fe4df 100644
--- a/src/mame/drivers/tagteam.c
+++ b/src/mame/drivers/tagteam.c
@@ -221,8 +221,8 @@ static MACHINE_CONFIG_START( tagteam, tagteam_state )
MCFG_SCREEN_UPDATE_DRIVER(tagteam_state, screen_update_tagteam)
MCFG_GFXDECODE_ADD("gfxdecode", tagteam)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(tagteam_state, tagteam)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c
index 6013dbc4024..18d15ac1033 100644
--- a/src/mame/drivers/tail2nos.c
+++ b/src/mame/drivers/tail2nos.c
@@ -41,7 +41,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tail2nos_state )
AM_RANGE(0xffc000, 0xffc2ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xffc300, 0xffcfff) AM_RAM
AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(tail2nos_bgvideoram_w) AM_SHARE("bgvideoram")
- AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS") AM_WRITE(tail2nos_gfxbank_w)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW")
AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w)
@@ -243,11 +243,13 @@ static MACHINE_CONFIG_START( tail2nos, tail2nos_state )
MCFG_SCREEN_UPDATE_DRIVER(tail2nos_state, screen_update_tail2nos)
MCFG_GFXDECODE_ADD("gfxdecode", tail2nos)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_K051316_ADD("k051316", tail2nos_k051316_intf)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c
index fb6c733bffd..e2312027d79 100644
--- a/src/mame/drivers/taito_b.c
+++ b/src/mame/drivers/taito_b.c
@@ -471,7 +471,7 @@ WRITE16_MEMBER(taitob_state::realpunc_output_w)
static ADDRESS_MAP_START( rastsag2_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x600000, 0x607fff) AM_RAM /* Main RAM */ /*ashura up to 603fff only*/
TC0180VCU_MEMRW( 0x400000 )
AM_RANGE(0x800000, 0x800001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
@@ -486,7 +486,7 @@ static ADDRESS_MAP_START( crimec_map, AS_PROGRAM, 16, taitob_state )
TC0180VCU_MEMRW( 0x400000 )
AM_RANGE(0x600000, 0x600001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x600002, 0x600003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
- AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x800000, 0x801fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xa00000, 0xa0ffff) AM_RAM /* Main RAM */
ADDRESS_MAP_END
@@ -498,12 +498,12 @@ static ADDRESS_MAP_START( tetrist_map, AS_PROGRAM, 16, taitob_state )
TC0180VCU_MEMRW( 0x400000 )
AM_RANGE(0x600000, 0x60000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0xff00)
AM_RANGE(0x800000, 0x807fff) AM_RAM /* Main RAM */
- AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( tetrista_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
TC0180VCU_MEMRW( 0x400000 )
AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, portreg_r, portreg_w, 0xff00)
AM_RANGE(0x600002, 0x600003) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, port_r, port_w, 0xff00)
@@ -521,7 +521,7 @@ static ADDRESS_MAP_START( hitice_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x700000, 0x700001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x700002, 0x700003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
AM_RANGE(0x800000, 0x803fff) AM_RAM /* Main RAM */
- AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xb00000, 0xb7ffff) AM_RAM_WRITE(hitice_pixelram_w) AM_SHARE("pixelram")
// { 0xbffff0, 0xbffff1, ???
AM_RANGE(0xbffff2, 0xbffff5) AM_WRITE(hitice_pixel_scroll_w)
@@ -544,7 +544,7 @@ static ADDRESS_MAP_START( rambo3_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x60001c, 0x60001d) AM_READ(trackx2_lo_r)
AM_RANGE(0x60001e, 0x60001f) AM_READ(trackx2_hi_r)
AM_RANGE(0x800000, 0x803fff) AM_RAM /* Main RAM */
- AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
@@ -559,7 +559,7 @@ static ADDRESS_MAP_START( pbobble_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x600000, 0x600003) AM_WRITE(gain_control_w)
AM_RANGE(0x700000, 0x700001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x700002, 0x700003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
- AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x800000, 0x801fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x900000, 0x90ffff) AM_RAM /* Main RAM */
ADDRESS_MAP_END
@@ -575,7 +575,7 @@ static ADDRESS_MAP_START( spacedx_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x600000, 0x600003) AM_WRITE(gain_control_w)
AM_RANGE(0x700000, 0x700001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x700002, 0x700003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
- AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x800000, 0x801fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x900000, 0x90ffff) AM_RAM /* Main RAM */
ADDRESS_MAP_END
@@ -587,7 +587,7 @@ static ADDRESS_MAP_START( spacedxo_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x210000, 0x210001) AM_READ_PORT("IN3")
AM_RANGE(0x220000, 0x220001) AM_READ_PORT("IN4")
AM_RANGE(0x230000, 0x230001) AM_READ_PORT("IN5")
- AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x302000, 0x303fff) AM_READONLY
AM_RANGE(0x400000, 0x40ffff) AM_RAM /* Main RAM */
TC0180VCU_MEMRW( 0x500000 )
@@ -605,7 +605,7 @@ static ADDRESS_MAP_START( qzshowby_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x600000, 0x600001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x600002, 0x600003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
AM_RANGE(0x700000, 0x700003) AM_WRITE(gain_control_w)
- AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x800000, 0x801fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x900000, 0x90ffff) AM_RAM /* Main RAM */
ADDRESS_MAP_END
@@ -615,7 +615,7 @@ static ADDRESS_MAP_START( viofight_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x200000, 0x200001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
TC0180VCU_MEMRW( 0x400000 )
- AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0xff00)
AM_RANGE(0xa00000, 0xa03fff) AM_RAM /* Main RAM */
ADDRESS_MAP_END
@@ -625,7 +625,7 @@ static ADDRESS_MAP_START( masterw_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x203fff) AM_RAM /* Main RAM */
TC0180VCU_MEMRW( 0x400000 )
- AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, portreg_r, portreg_w, 0xff00)
AM_RANGE(0x800002, 0x800003) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, port_r, port_w, 0xff00)
AM_RANGE(0xa00000, 0xa00001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
@@ -645,7 +645,7 @@ static ADDRESS_MAP_START( silentd_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x230000, 0x230001) AM_READ_PORT("IN5")
AM_RANGE(0x240000, 0x240001) AM_WRITENOP // ???
// AM_RANGE(0x240000, 0x240001) AM_READNOP /* read 4 times at init */
- AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x400000, 0x403fff) AM_RAM /* Main RAM */
TC0180VCU_MEMRW( 0x500000 )
ADDRESS_MAP_END
@@ -655,7 +655,7 @@ static ADDRESS_MAP_START( selfeena_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM /* Main RAM */
TC0180VCU_MEMRW( 0x200000 )
- AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x400000, 0x40000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0xff00)
AM_RANGE(0x410000, 0x41000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0xff00) /* mirror address - seems to be only used for coin control */
AM_RANGE(0x500000, 0x500001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
@@ -666,7 +666,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sbm_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* Main RAM */
- AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_wordswap_r, halfword_wordswap_w)
AM_RANGE(0x320000, 0x320001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x320002, 0x320003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -684,7 +684,7 @@ static ADDRESS_MAP_START( realpunc_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x188002, 0x188003) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_w, 0xff00)
AM_RANGE(0x18c000, 0x18c001) AM_WRITE(realpunc_output_w)
TC0180VCU_MEMRW( 0x200000 )
- AM_RANGE(0x280000, 0x281fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x280000, 0x281fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x300001) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w)
AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w)
// AM_RANGE(0x320000, 0x320001) AM_NOP // ?
@@ -2008,8 +2008,9 @@ static MACHINE_CONFIG_START( rastsag2, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
-
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
+
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order0)
MCFG_TC0180VCU_ADD("tc0180vcu", color0_tc0180vcu_intf)
@@ -2053,7 +2054,8 @@ static MACHINE_CONFIG_START( masterw, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
@@ -2079,6 +2081,9 @@ static MACHINE_CONFIG_DERIVED( tetrist, rastsag2 ) /* Nastar conversion kit with
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(tetrist_map)
+
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MACHINE_CONFIG_END
@@ -2114,7 +2119,8 @@ static MACHINE_CONFIG_START( ashura, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order0)
@@ -2159,7 +2165,8 @@ static MACHINE_CONFIG_START( crimec, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order1)
@@ -2204,7 +2211,8 @@ static MACHINE_CONFIG_START( hitice, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,hitice)
MCFG_VIDEO_RESET_OVERRIDE(taitob_state,hitice)
@@ -2255,7 +2263,8 @@ static MACHINE_CONFIG_START( rambo3p, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", rambo3)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order0)
@@ -2300,7 +2309,8 @@ static MACHINE_CONFIG_START( rambo3, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
@@ -2349,7 +2359,8 @@ static MACHINE_CONFIG_START( pbobble, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order1)
@@ -2398,7 +2409,8 @@ static MACHINE_CONFIG_START( spacedx, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order1)
@@ -2443,7 +2455,8 @@ static MACHINE_CONFIG_START( spacedxo, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
@@ -2492,7 +2505,8 @@ static MACHINE_CONFIG_START( qzshowby, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order1)
@@ -2537,7 +2551,8 @@ static MACHINE_CONFIG_START( viofight, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
@@ -2587,7 +2602,8 @@ static MACHINE_CONFIG_START( silentd, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
@@ -2632,7 +2648,8 @@ static MACHINE_CONFIG_START( selfeena, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
@@ -2686,7 +2703,8 @@ static MACHINE_CONFIG_START( ryujin, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2)
@@ -2738,7 +2756,8 @@ static MACHINE_CONFIG_START( sbm, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order0)
@@ -2788,7 +2807,8 @@ static MACHINE_CONFIG_START( realpunc, taitob_state )
MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE_ADD("gfxdecode", taito_b)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(taitob_state,realpunc)
diff --git a/src/mame/drivers/taito_f2.c b/src/mame/drivers/taito_f2.c
index 397a685fa3d..6aec0060563 100644
--- a/src/mame/drivers/taito_f2.c
+++ b/src/mame/drivers/taito_f2.c
@@ -701,7 +701,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dondokod_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff)
AM_RANGE(0x320000, 0x320001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x320002, 0x320003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -720,7 +720,7 @@ static ADDRESS_MAP_START( megab_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x120000, 0x12000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff)
AM_RANGE(0x180000, 0x180fff) AM_READWRITE(cchip2_word_r, cchip2_word_w) AM_SHARE("cchip2_ram")
AM_RANGE(0x200000, 0x20ffff) AM_RAM
- AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x400000, 0x40001f) AM_DEVWRITE8("tc0360pri", tc0360pri_device, write, 0x00ff) /* ?? */
AM_RANGE(0x600000, 0x60ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
AM_RANGE(0x610000, 0x61ffff) AM_RAM /* unused? */
@@ -730,7 +730,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( thundfox_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x100000, 0x101fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff)
AM_RANGE(0x220000, 0x220001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x220002, 0x220003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -746,7 +746,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cameltry_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff)
AM_RANGE(0x300018, 0x30001f) AM_READ(cameltry_paddle_r)
AM_RANGE(0x320000, 0x320001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
@@ -775,7 +775,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( liquidk_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff)
AM_RANGE(0x320000, 0x320001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff)
AM_RANGE(0x320002, 0x320003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
@@ -810,7 +810,7 @@ static ADDRESS_MAP_START( ssi_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_r, halfword_w)
AM_RANGE(0x200000, 0x20ffff) AM_RAM
- AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x400000, 0x400001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x400002, 0x400003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
// AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* ?? */
@@ -822,7 +822,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gunfront_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_wordswap_r, halfword_wordswap_w)
AM_RANGE(0x320000, 0x320001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x320002, 0x320003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -836,7 +836,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( growl_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300004, 0x300005) AM_WRITE(growl_coin_word_w)
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("DSWA")
AM_RANGE(0x300002, 0x300003) AM_READ_PORT("DSWB")
@@ -882,7 +882,7 @@ static ADDRESS_MAP_START( footchmp_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x400000, 0x40ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, word_r, word_w) /* tilemaps */
AM_RANGE(0x430000, 0x43002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_word_r, ctrl_word_w)
AM_RANGE(0x500000, 0x50001f) AM_DEVWRITE8("tc0360pri", tc0360pri_device, write, 0x00ff) /* 500002 written like a watchdog?! */
- AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x700006, 0x700007) AM_WRITE(taitof2_4p_coin_word_w)
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSWA")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSWB")
@@ -899,7 +899,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( koshien_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_r, halfword_w)
AM_RANGE(0x320000, 0x320001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x320002, 0x320003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -918,7 +918,7 @@ static ADDRESS_MAP_START( yuyugogo_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
AM_RANGE(0x820000, 0x82000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
AM_RANGE(0x900000, 0x90ffff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xb00000, 0xb10fff) AM_RAM /* deliberate writes to $b10xxx, I think */
AM_RANGE(0xc00000, 0xc01fff) AM_WRITE(taitof2_sprite_extension_w) AM_SHARE("sprite_ext")
AM_RANGE(0xd00000, 0xdfffff) AM_ROM AM_REGION("extra", 0)
@@ -927,7 +927,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ninjak_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x30000f) AM_READ(ninjak_input_r)
AM_RANGE(0x30000e, 0x30000f) AM_WRITE(ninjak_coin_word_w)
AM_RANGE(0x380000, 0x380001) AM_WRITE(watchdog_reset16_w) /* ??? */
@@ -943,7 +943,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( solfigtr_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300004, 0x300005) AM_WRITE(growl_coin_word_w) /* NOT VERIFIED */
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("DSWA")
AM_RANGE(0x300002, 0x300003) AM_READ_PORT("DSWB")
@@ -966,7 +966,7 @@ static ADDRESS_MAP_START( qzquest_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_r, halfword_w)
AM_RANGE(0x300000, 0x300001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff)
AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
- AM_RANGE(0x400000, 0x401fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x401fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x50ffff) AM_RAM
AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x700000, 0x70ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
@@ -982,7 +982,7 @@ static ADDRESS_MAP_START( pulirula_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x402000, 0x40200f) AM_DEVWRITE("tc0430grw", tc0280grd_device, tc0430grw_ctrl_word_w)
// AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* ??? */
AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_SHARE("sprite_ext")
- AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
AM_RANGE(0x820000, 0x82000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
AM_RANGE(0x900000, 0x90ffff) AM_RAM AM_SHARE("spriteram")
@@ -998,7 +998,7 @@ static ADDRESS_MAP_START( metalb_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x500000, 0x50ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, word_r, word_w) /* tilemaps */
AM_RANGE(0x530000, 0x53002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_word_r, ctrl_word_w)
AM_RANGE(0x600000, 0x60001f) AM_DEVWRITE8("tc0360pri", tc0360pri_device, write, 0x00ff)
- AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x700000, 0x703fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_wordswap_r, halfword_wordswap_w)
AM_RANGE(0x900000, 0x900001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x900002, 0x900003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -1010,7 +1010,7 @@ static ADDRESS_MAP_START( qzchikyu_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_r, halfword_w)
AM_RANGE(0x300000, 0x300001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff)
AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
- AM_RANGE(0x400000, 0x401fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x401fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x50ffff) AM_RAM
AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x700000, 0x70ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
@@ -1023,7 +1023,7 @@ static ADDRESS_MAP_START( yesnoj_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x500000, 0x50ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
AM_RANGE(0x520000, 0x52000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
- AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
// AM_RANGE(0x700000, 0x70000b) AM_READ(yesnoj_unknown_r) /* what's this? */
AM_RANGE(0x800000, 0x800001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x800002, 0x800003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -1045,7 +1045,7 @@ static ADDRESS_MAP_START( deadconx_map, AS_PROGRAM, 16, taitof2_state )
// AM_RANGE(0x42000c, 0x42000f) AM_WRITENOP /* zeroed */
AM_RANGE(0x430000, 0x43002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_word_r, ctrl_word_w)
AM_RANGE(0x500000, 0x50001f) AM_DEVWRITE8("tc0360pri", tc0360pri_device, write, 0x00ff) /* uses 500002 like a watchdog !? */
- AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSWA")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSWB")
AM_RANGE(0x700004, 0x700005) AM_READ_PORT("IN2")
@@ -1061,7 +1061,7 @@ static ADDRESS_MAP_START( dinorex_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x2fffff) AM_ROM
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_r, halfword_w)
AM_RANGE(0x400000, 0x400fff) AM_WRITE(taitof2_sprite_extension_w) AM_SHARE("sprite_ext")
- AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x500000, 0x501fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x600000, 0x60ffff) AM_RAM
AM_RANGE(0x700000, 0x70001f) AM_DEVWRITE8("tc0360pri", tc0360pri_device, write, 0x00ff) /* ?? */
AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_SHARE("spriteram")
@@ -1079,7 +1079,7 @@ static ADDRESS_MAP_START( qjinsei_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x300000, 0x30ffff) AM_RAM
AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* watchdog ? */
AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_SHARE("sprite_ext")
- AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
AM_RANGE(0x820000, 0x82000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
AM_RANGE(0x900000, 0x90ffff) AM_RAM AM_SHARE("spriteram")
@@ -1095,7 +1095,7 @@ static ADDRESS_MAP_START( qcrayon_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x500000, 0x500001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00)
AM_RANGE(0x500002, 0x500003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_SHARE("sprite_ext")
- AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
@@ -1106,7 +1106,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( qcrayon2_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
- AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x500000, 0x50ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
AM_RANGE(0x520000, 0x52000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
@@ -1125,7 +1125,7 @@ static ADDRESS_MAP_START( driftout_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x300000, 0x30ffff) AM_RAM
AM_RANGE(0x400000, 0x401fff) AM_DEVREADWRITE("tc0430grw", tc0280grd_device, tc0430grw_word_r, tc0430grw_word_w) /* ROZ tilemap */
AM_RANGE(0x402000, 0x40200f) AM_DEVWRITE("tc0430grw", tc0280grd_device, tc0430grw_ctrl_word_w)
- AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
AM_RANGE(0x820000, 0x82000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
AM_RANGE(0x900000, 0x90ffff) AM_RAM AM_SHARE("spriteram")
@@ -1142,7 +1142,7 @@ static ADDRESS_MAP_START( driveout_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x300000, 0x30ffff) AM_RAM
AM_RANGE(0x400000, 0x401fff) AM_DEVREADWRITE("tc0430grw", tc0280grd_device, tc0430grw_word_r, tc0430grw_word_w) /* ROZ tilemap */
AM_RANGE(0x402000, 0x40200f) AM_DEVWRITE("tc0430grw", tc0280grd_device, tc0430grw_ctrl_word_w)
- AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
AM_RANGE(0x820000, 0x82000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
AM_RANGE(0x900000, 0x90ffff) AM_RAM AM_SHARE("spriteram")
@@ -3029,7 +3029,8 @@ static MACHINE_CONFIG_START( taito_f2, taitof2_state )
MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer)
MCFG_GFXDECODE_ADD("gfxdecode", taitof2)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_default)
@@ -3058,6 +3059,8 @@ static MACHINE_CONFIG_DERIVED( taito_f2_tc0510nio, taito_f2 )
/* basic machine hardware */
MCFG_TC0510NIO_ADD("tc0510nio", taitof2_io510_intf)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MACHINE_CONFIG_END
@@ -3076,6 +3079,7 @@ static MACHINE_CONFIG_DERIVED( finalb, taito_f2_tc0220ioc )
MCFG_TC0100SCN_ADD("tc0100scn", finalb_tc0100scn_intf)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
MACHINE_CONFIG_END
@@ -3172,6 +3176,7 @@ static MACHINE_CONFIG_DERIVED( qtorimon, taito_f2_tc0220ioc )
MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
MACHINE_CONFIG_END
@@ -3207,6 +3212,7 @@ static MACHINE_CONFIG_DERIVED( quizhq, taito_f2 )
MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
MACHINE_CONFIG_END
@@ -3274,6 +3280,7 @@ static MACHINE_CONFIG_DERIVED( mjnquest, taito_f2 )
MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
MACHINE_CONFIG_END
@@ -3432,7 +3439,9 @@ static MACHINE_CONFIG_DERIVED( metalb, taito_f2_tc0510nio )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", deadconx)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_metalb)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_metalb)
@@ -3624,7 +3633,8 @@ static MACHINE_CONFIG_START( cameltrya, taitof2_state )
MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer)
MCFG_GFXDECODE_ADD("gfxdecode", pivot)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod)
@@ -3676,7 +3686,8 @@ static MACHINE_CONFIG_START( driveout, taitof2_state )
MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer)
MCFG_GFXDECODE_ADD("gfxdecode", pivot)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_driftout)
diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c
index 9c0e89915fe..7ddd327f7a7 100644
--- a/src/mame/drivers/taito_f3.c
+++ b/src/mame/drivers/taito_f3.c
@@ -452,7 +452,7 @@ static MACHINE_CONFIG_START( f3, taito_f3_state )
MCFG_SCREEN_VBLANK_DRIVER(taito_f3_state, screen_eof_f3)
MCFG_GFXDECODE_ADD("gfxdecode", taito_f3)
- MCFG_PALETTE_LENGTH(0x2000)
+ MCFG_PALETTE_ADD("palette", 0x2000)
MCFG_VIDEO_START_OVERRIDE(taito_f3_state,f3)
@@ -545,7 +545,7 @@ static MACHINE_CONFIG_START( bubsympb, taito_f3_state )
MCFG_SCREEN_VBLANK_DRIVER(taito_f3_state, screen_eof_f3)
MCFG_GFXDECODE_ADD("gfxdecode", bubsympb)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_VIDEO_START_OVERRIDE(taito_f3_state,f3)
diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c
index 6849a8e1faf..89626fd38c1 100644
--- a/src/mame/drivers/taito_h.c
+++ b/src/mame/drivers/taito_h.c
@@ -246,7 +246,7 @@ static ADDRESS_MAP_START( syvalion_map, AS_PROGRAM, 16, taitoh_state )
AM_RANGE(0x300000, 0x300001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff)
AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
AM_RANGE(0x400000, 0x420fff) AM_DEVREADWRITE("tc0080vco", tc0080vco_device, word_r, word_w)
- AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x500800, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( recordbr_map, AS_PROGRAM, 16, taitoh_state )
@@ -257,7 +257,7 @@ static ADDRESS_MAP_START( recordbr_map, AS_PROGRAM, 16, taitoh_state )
AM_RANGE(0x300000, 0x300001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff)
AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
AM_RANGE(0x400000, 0x420fff) AM_DEVREADWRITE("tc0080vco", tc0080vco_device, word_r, word_w)
- AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x500800, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( tetristh_map, AS_PROGRAM, 16, taitoh_state )
@@ -268,7 +268,7 @@ static ADDRESS_MAP_START( tetristh_map, AS_PROGRAM, 16, taitoh_state )
AM_RANGE(0x300000, 0x300001) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, portreg_r, portreg_w, 0x00ff)
AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, port_r, port_w, 0x00ff)
AM_RANGE(0x400000, 0x420fff) AM_DEVREADWRITE("tc0080vco", tc0080vco_device, word_r, word_w)
- AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x500800, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( dleague_map, AS_PROGRAM, 16, taitoh_state )
@@ -278,7 +278,7 @@ static ADDRESS_MAP_START( dleague_map, AS_PROGRAM, 16, taitoh_state )
AM_RANGE(0x300000, 0x300001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff)
AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
AM_RANGE(0x400000, 0x420fff) AM_DEVREADWRITE("tc0080vco", tc0080vco_device, word_r, word_w)
- AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x500800, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x600000, 0x600001) AM_WRITENOP /* ?? writes zero once per frame */
ADDRESS_MAP_END
@@ -695,7 +695,8 @@ static MACHINE_CONFIG_START( syvalion, taitoh_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_syvalion)
MCFG_GFXDECODE_ADD("gfxdecode", syvalion)
- MCFG_PALETTE_LENGTH(33*16)
+ MCFG_PALETTE_ADD("palette", 33*16)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_TC0080VCO_ADD("tc0080vco", syvalion_tc0080vco_intf)
MCFG_TC0080VCO_GFXDECODE("gfxdecode")
@@ -737,7 +738,8 @@ static MACHINE_CONFIG_START( recordbr, taitoh_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_recordbr)
MCFG_GFXDECODE_ADD("gfxdecode", recordbr)
- MCFG_PALETTE_LENGTH(32*16)
+ MCFG_PALETTE_ADD("palette", 32*16)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_TC0080VCO_ADD("tc0080vco", recordbr_tc0080vco_intf)
MCFG_TC0080VCO_GFXDECODE("gfxdecode")
@@ -787,7 +789,8 @@ static MACHINE_CONFIG_START( dleague, taitoh_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_dleague)
MCFG_GFXDECODE_ADD("gfxdecode", dleague)
- MCFG_PALETTE_LENGTH(33*16)
+ MCFG_PALETTE_ADD("palette", 33*16)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_TC0080VCO_ADD("tc0080vco", recordbr_tc0080vco_intf)
MCFG_TC0080VCO_GFXDECODE("gfxdecode")
diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c
index 8c1b26ee384..d541ebdd6bd 100644
--- a/src/mame/drivers/taito_l.c
+++ b/src/mame/drivers/taito_l.c
@@ -101,7 +101,7 @@ void taitol_state::palette_notifier(int addr)
else
{
// r = g = b = ((addr & 0x1e) != 0)*255;
- palette_set_color_rgb(machine(), addr / 2, pal4bit(byte0), pal4bit(byte0 >> 4), pal4bit(byte1));
+ m_palette->set_pen_color(addr / 2, pal4bit(byte0), pal4bit(byte0 >> 4), pal4bit(byte1));
}
}
@@ -1824,7 +1824,7 @@ static MACHINE_CONFIG_START( fhawk, taitol_state )
MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol)
MCFG_GFXDECODE_ADD("gfxdecode", 2)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol)
@@ -1918,7 +1918,7 @@ static MACHINE_CONFIG_START( kurikint, taitol_state )
MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol)
MCFG_GFXDECODE_ADD("gfxdecode", 2)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol)
@@ -1964,7 +1964,7 @@ static MACHINE_CONFIG_START( plotting, taitol_state )
MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol)
MCFG_GFXDECODE_ADD("gfxdecode", 1)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol)
@@ -2057,7 +2057,7 @@ static MACHINE_CONFIG_START( evilston, taitol_state )
MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol)
MCFG_GFXDECODE_ADD("gfxdecode", 2)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol)
diff --git a/src/mame/drivers/taito_o.c b/src/mame/drivers/taito_o.c
index d06dad498b9..739ef164905 100644
--- a/src/mame/drivers/taito_o.c
+++ b/src/mame/drivers/taito_o.c
@@ -65,7 +65,7 @@ static ADDRESS_MAP_START( parentj_map, AS_PROGRAM, 16, taitoo_state )
AM_RANGE(0x200000, 0x20000f) AM_READWRITE(io_r, io_w) /* TC0220IOC ? */
AM_RANGE(0x300000, 0x300003) AM_DEVREADWRITE8("ymsnd", ym2203_device, read, write, 0x00ff)
AM_RANGE(0x400000, 0x420fff) AM_DEVREADWRITE("tc0080vco", tc0080vco_device, word_r, word_w)
- AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x500800, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static INPUT_PORTS_START( parentj )
@@ -256,7 +256,8 @@ static MACHINE_CONFIG_START( parentj, taitoo_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoo_state, screen_update_parentj)
MCFG_GFXDECODE_ADD("gfxdecode", parentj)
- MCFG_PALETTE_LENGTH(33*16)
+ MCFG_PALETTE_ADD("palette", 33*16)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_TC0080VCO_ADD("tc0080vco", parentj_intf)
MCFG_TC0080VCO_GFXDECODE("gfxdecode")
diff --git a/src/mame/drivers/taito_x.c b/src/mame/drivers/taito_x.c
index e4d9a41ed26..8d029daa186 100644
--- a/src/mame/drivers/taito_x.c
+++ b/src/mame/drivers/taito_x.c
@@ -419,7 +419,7 @@ static ADDRESS_MAP_START( superman_map, AS_PROGRAM, 16, taitox_state )
AM_RANGE(0x900000, 0x9007ff) AM_READWRITE(cchip1_ram_r, cchip1_ram_w)
AM_RANGE(0x900802, 0x900803) AM_READWRITE(cchip1_ctrl_r, cchip1_ctrl_w)
AM_RANGE(0x900c00, 0x900c01) AM_WRITE(cchip1_bank_w)
- AM_RANGE(0xb00000, 0xb00fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xb00000, 0xb00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
AM_RANGE(0xd00600, 0xd00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
@@ -434,7 +434,7 @@ static ADDRESS_MAP_START( daisenpu_map, AS_PROGRAM, 16, taitox_state )
AM_RANGE(0x800000, 0x800001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff)
AM_RANGE(0x800002, 0x800003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
AM_RANGE(0x900000, 0x90000f) AM_READWRITE(daisenpu_input_r, daisenpu_input_w)
- AM_RANGE(0xb00000, 0xb00fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xb00000, 0xb00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
AM_RANGE(0xd00600, 0xd00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
@@ -449,7 +449,7 @@ static ADDRESS_MAP_START( gigandes_map, AS_PROGRAM, 16, taitox_state )
AM_RANGE(0x800000, 0x800001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff)
AM_RANGE(0x800002, 0x800003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
AM_RANGE(0x900000, 0x90000f) AM_READWRITE(daisenpu_input_r, daisenpu_input_w)
- AM_RANGE(0xb00000, 0xb00fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xb00000, 0xb00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
AM_RANGE(0xd00600, 0xd00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
@@ -464,7 +464,7 @@ static ADDRESS_MAP_START( ballbros_map, AS_PROGRAM, 16, taitox_state )
AM_RANGE(0x800000, 0x800001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff)
AM_RANGE(0x800002, 0x800003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
AM_RANGE(0x900000, 0x90000f) AM_READWRITE(daisenpu_input_r, daisenpu_input_w)
- AM_RANGE(0xb00000, 0xb00fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xb00000, 0xb00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
AM_RANGE(0xd00600, 0xd00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
@@ -820,6 +820,7 @@ static MACHINE_CONFIG_START( superman, taitox_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -830,7 +831,8 @@ static MACHINE_CONFIG_START( superman, taitox_state )
MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", superman)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(taitox_state,seta_no_layers)
@@ -863,6 +865,7 @@ static MACHINE_CONFIG_START( daisenpu, taitox_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -873,7 +876,8 @@ static MACHINE_CONFIG_START( daisenpu, taitox_state )
MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", superman)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(taitox_state,seta_no_layers)
@@ -904,6 +908,7 @@ static MACHINE_CONFIG_START( gigandes, taitox_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -914,7 +919,8 @@ static MACHINE_CONFIG_START( gigandes, taitox_state )
MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", superman)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(taitox_state,seta_no_layers)
@@ -947,6 +953,7 @@ static MACHINE_CONFIG_START( ballbros, taitox_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -957,7 +964,8 @@ static MACHINE_CONFIG_START( ballbros, taitox_state )
MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers)
MCFG_GFXDECODE_ADD("gfxdecode", ballbros)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(taitox_state,seta_no_layers)
diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c
index 19be222abf1..5d77f6799ac 100644
--- a/src/mame/drivers/taito_z.c
+++ b/src/mame/drivers/taito_z.c
@@ -1550,7 +1550,7 @@ static ADDRESS_MAP_START( bshark_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x400000, 0x40000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff)
AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_ctrl_w)
AM_RANGE(0x800000, 0x800007) AM_READWRITE(bshark_stick_r, bshark_stick_w)
- AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xc00000, 0xc00fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xd00000, 0xd0ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
AM_RANGE(0xd20000, 0xd2000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
@@ -1563,7 +1563,7 @@ static ADDRESS_MAP_START( bsharkjjs_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x400000, 0x40000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff)
AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_ctrl_w)
// AM_RANGE(0x800000, 0x800007) AM_READWRITE(bshark_stick_r, bshark_stick_w) /* No analog stick, this is the Joystick version */
- AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xc00000, 0xc00fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xd00000, 0xd0ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
AM_RANGE(0xd20000, 0xd2000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
@@ -1591,7 +1591,7 @@ static ADDRESS_MAP_START( sci_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x200010, 0x20001f) AM_READ(sci_steer_input_r)
// AM_RANGE(0x400000, 0x400001) AM_WRITE(cpua_ctrl_w) // ?? doesn't seem to fit what's written
AM_RANGE(0x420000, 0x420003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
- AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x800000, 0x801fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xa00000, 0xa0ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
AM_RANGE(0xa20000, 0xa2000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_SHARE("spriteram")
@@ -1685,7 +1685,7 @@ static ADDRESS_MAP_START( dblaxle_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x400010, 0x40001f) AM_READ(dblaxle_steer_input_r)
AM_RANGE(0x600000, 0x600001) AM_WRITE(dblaxle_cpua_ctrl_w) /* could this be causing int6 ? */
AM_RANGE(0x620000, 0x620003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
- AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x800000, 0x801fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, word_r, word_w) /* tilemap mirror */
AM_RANGE(0xa00000, 0xa0ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, word_r, word_w) /* tilemaps */
AM_RANGE(0xa30000, 0xa3002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_word_r, ctrl_word_w)
@@ -1710,7 +1710,7 @@ static ADDRESS_MAP_START( racingb_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x300010, 0x30001f) AM_READ(dblaxle_steer_input_r)
AM_RANGE(0x500002, 0x500003) AM_WRITE(cpua_ctrl_w)
AM_RANGE(0x520000, 0x520003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
- AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, word_r, word_w) /* tilemaps */
AM_RANGE(0x930000, 0x93002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_word_r, ctrl_word_w)
AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_SHARE("spriteram") /* mostly unused ? */
@@ -3085,7 +3085,8 @@ static MACHINE_CONFIG_START( contcirc, taitoz_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_contcirc)
MCFG_GFXDECODE_ADD("gfxdecode", taitoz)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
@@ -3093,6 +3094,7 @@ static MACHINE_CONFIG_START( contcirc, taitoz_state )
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
MCFG_TC0110PCR_ADD("tc0110pcr", taitoz_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_ADD("front", 0.0, 0.0, 0.7)
@@ -3148,7 +3150,8 @@ static MACHINE_CONFIG_START( chasehq, taitoz_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_chasehq)
MCFG_GFXDECODE_ADD("gfxdecode", chasehq)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
@@ -3156,6 +3159,7 @@ static MACHINE_CONFIG_START( chasehq, taitoz_state )
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
MCFG_TC0110PCR_ADD("tc0110pcr", taitoz_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_ADD("front", 0.0, 0.0, 0.7)
@@ -3213,7 +3217,8 @@ static MACHINE_CONFIG_START( enforce, taitoz_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_contcirc)
MCFG_GFXDECODE_ADD("gfxdecode", taitoz)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
@@ -3221,6 +3226,7 @@ static MACHINE_CONFIG_START( enforce, taitoz_state )
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
MCFG_TC0110PCR_ADD("tc0110pcr", taitoz_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3274,7 +3280,8 @@ static MACHINE_CONFIG_START( bshark, taitoz_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_bshark)
MCFG_GFXDECODE_ADD("gfxdecode", taitoz)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
@@ -3346,7 +3353,8 @@ static MACHINE_CONFIG_START( sci, taitoz_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_sci)
MCFG_GFXDECODE_ADD("gfxdecode", taitoz)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
@@ -3409,7 +3417,8 @@ static MACHINE_CONFIG_START( nightstr, taitoz_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_chasehq)
MCFG_GFXDECODE_ADD("gfxdecode", chasehq)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
@@ -3417,6 +3426,7 @@ static MACHINE_CONFIG_START( nightstr, taitoz_state )
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
MCFG_TC0110PCR_ADD("tc0110pcr", taitoz_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_ADD("front", 0.0, 0.0, 0.7)
@@ -3474,7 +3484,8 @@ static MACHINE_CONFIG_START( aquajack, taitoz_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_aquajack)
MCFG_GFXDECODE_ADD("gfxdecode", taitoz)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
@@ -3482,6 +3493,7 @@ static MACHINE_CONFIG_START( aquajack, taitoz_state )
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf)
MCFG_TC0110PCR_ADD("tc0110pcr", taitoz_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3536,12 +3548,13 @@ static MACHINE_CONFIG_START( spacegun, taitoz_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_spacegun)
MCFG_GFXDECODE_ADD("gfxdecode", taitoz)
- MCFG_PALETTE_LENGTH(4096)
-
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_TC0100SCN_ADD("tc0100scn", spacegun_tc0100scn_intf)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr", taitoz_tc0110pcr_intf)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -3598,7 +3611,8 @@ static MACHINE_CONFIG_START( dblaxle, taitoz_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_dblaxle)
MCFG_GFXDECODE_ADD("gfxdecode", dblaxle)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
@@ -3661,8 +3675,8 @@ static MACHINE_CONFIG_START( racingb, taitoz_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_racingb)
MCFG_GFXDECODE_ADD("gfxdecode", dblaxle)
- MCFG_PALETTE_LENGTH(4096)
-
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
MCFG_TC0480SCP_ADD("tc0480scp", taitoz_tc0480scp_intf)
diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c
index c4252b9740a..37be7b46e5e 100644
--- a/src/mame/drivers/taitoair.c
+++ b/src/mame/drivers/taitoair.c
@@ -291,7 +291,7 @@ WRITE16_MEMBER(taitoair_state::airsys_paletteram16_w)/* xxBBBBxRRRRxGGGG */
COMBINE_DATA(&m_paletteram[offset]);
a = m_paletteram[offset];
- palette_set_color_rgb(machine(), offset, pal4bit(a >> 0), pal4bit(a >> 5), pal4bit(a >> 10));
+ m_palette->set_pen_color(offset, pal4bit(a >> 0), pal4bit(a >> 5), pal4bit(a >> 10));
}
WRITE16_MEMBER(taitoair_state::airsys_gradram_w)
@@ -322,7 +322,7 @@ WRITE16_MEMBER(taitoair_state::airsys_gradram_w)
//if(g == 0) { g = (pal_g); }
//if(b == 0) { b = (pal_b); }
- palette_set_color_rgb(machine(), offset+0x2000, r, g, b);
+ m_palette->set_pen_color(offset+0x2000, r, g, b);
}
@@ -718,8 +718,8 @@ static MACHINE_CONFIG_START( airsys, taitoair_state )
MCFG_SCREEN_UPDATE_DRIVER(taitoair_state, screen_update_taitoair)
MCFG_GFXDECODE_ADD("gfxdecode", airsys)
- MCFG_PALETTE_LENGTH(512*16+512*16)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 512*16+512*16)
MCFG_TC0080VCO_ADD("tc0080vco", airsys_tc0080vco_intf)
MCFG_TC0080VCO_GFXDECODE("gfxdecode")
diff --git a/src/mame/drivers/taitojc.c b/src/mame/drivers/taitojc.c
index 15f74eefd27..8797047dc42 100644
--- a/src/mame/drivers/taitojc.c
+++ b/src/mame/drivers/taitojc.c
@@ -1278,7 +1278,7 @@ static MACHINE_CONFIG_START( taitojc, taitojc_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(taitojc_state, screen_update_taitojc)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD("palette", 32768)
/* sound hardware */
MCFG_FRAGMENT_ADD(taito_en_sound)
diff --git a/src/mame/drivers/taitosj.c b/src/mame/drivers/taitosj.c
index fb455bdd7cc..e514889d483 100644
--- a/src/mame/drivers/taitosj.c
+++ b/src/mame/drivers/taitosj.c
@@ -1809,7 +1809,7 @@ static MACHINE_CONFIG_START( nomcu, taitosj_state )
MCFG_SCREEN_UPDATE_DRIVER(taitosj_state, screen_update_taitosj)
MCFG_GFXDECODE_ADD("gfxdecode", taitosj)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
/* sound hardware */
diff --git a/src/mame/drivers/taitotx.c b/src/mame/drivers/taitotx.c
index 340a447aae2..98c8b1b935c 100644
--- a/src/mame/drivers/taitotx.c
+++ b/src/mame/drivers/taitotx.c
@@ -154,7 +154,7 @@ static MACHINE_CONFIG_START( taito_type_x, taito_type_x_state )
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
MCFG_SCREEN_UPDATE_DRIVER(taito_type_x_state, screen_update_taito_type_x)
- MCFG_PALETTE_LENGTH(0x10000)
+ MCFG_PALETTE_ADD("palette", 0x10000)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c
index 1460b29723d..d5df6cd1325 100644
--- a/src/mame/drivers/taitowlf.c
+++ b/src/mame/drivers/taitowlf.c
@@ -57,7 +57,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
#if !ENABLE_VGA
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(taitowlf);
#endif
UINT32 screen_update_taitowlf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void intel82439tx_init();
@@ -69,7 +69,7 @@ UINT32 taitowlf_state::screen_update_taitowlf(screen_device &screen, bitmap_rgb3
int x,y,count;
const UINT8 *blit_ram = m_region_user5->base();
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
count = (0);
@@ -82,7 +82,7 @@ UINT32 taitowlf_state::screen_update_taitowlf(screen_device &screen, bitmap_rgb3
color = (blit_ram[count] & 0xff);
if(cliprect.contains(x+0, y))
- bitmap.pix32(y, x+0) = machine().pens[color];
+ bitmap.pix32(y, x+0) = m_palette->pen(color);
count++;
}
@@ -352,13 +352,13 @@ void taitowlf_state::machine_reset()
#if !ENABLE_VGA
/* debug purpose*/
-void taitowlf_state::palette_init()
+PALETTE_INIT_MEMBER(taitowlf_state, taitowlf)
{
- palette_set_color(machine(),0x70,rgb_t(0xff,0xff,0xff));
- palette_set_color(machine(),0x71,rgb_t(0xff,0xff,0xff));
- palette_set_color(machine(),0x01,rgb_t(0x55,0x00,0x00));
- palette_set_color(machine(),0x10,rgb_t(0xaa,0x00,0x00));
- palette_set_color(machine(),0x00,rgb_t(0x00,0x00,0x00));
+ palette.set_pen_color(0x70,rgb_t(0xff,0xff,0xff));
+ palette.set_pen_color(0x71,rgb_t(0xff,0xff,0xff));
+ palette.set_pen_color(0x01,rgb_t(0x55,0x00,0x00));
+ palette.set_pen_color(0x10,rgb_t(0xaa,0x00,0x00));
+ palette.set_pen_color(0x00,rgb_t(0x00,0x00,0x00));
}
#endif
@@ -386,8 +386,9 @@ static MACHINE_CONFIG_START( taitowlf, taitowlf_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_PALETTE_LENGTH(256)
MCFG_SCREEN_UPDATE_DRIVER(taitowlf_state, screen_update_taitowlf)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(taitowlf_state, taitowlf)
#endif
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c
index 322be93b71b..322e738a51c 100644
--- a/src/mame/drivers/tank8.c
+++ b/src/mame/drivers/tank8.c
@@ -342,8 +342,8 @@ static MACHINE_CONFIG_START( tank8, tank8_state )
MCFG_SCREEN_VBLANK_DRIVER(tank8_state, screen_eof_tank8)
MCFG_GFXDECODE_ADD("gfxdecode", tank8)
- MCFG_PALETTE_LENGTH(20)
-
+ MCFG_PALETTE_ADD("palette", 20)
+ MCFG_PALETTE_INIT_OWNER(tank8_state, tank8)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tankbatt.c b/src/mame/drivers/tankbatt.c
index 54ede4c7f3e..3aaf8ba77e9 100644
--- a/src/mame/drivers/tankbatt.c
+++ b/src/mame/drivers/tankbatt.c
@@ -294,8 +294,8 @@ static MACHINE_CONFIG_START( tankbatt, tankbatt_state )
MCFG_SCREEN_UPDATE_DRIVER(tankbatt_state, screen_update_tankbatt)
MCFG_GFXDECODE_ADD("gfxdecode", tankbatt)
- MCFG_PALETTE_LENGTH(256*2)
-
+ MCFG_PALETTE_ADD("palette", 256*2)
+ MCFG_PALETTE_INIT_OWNER(tankbatt_state, tankbatt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c
index ab9b5f5f30d..207f6fde075 100644
--- a/src/mame/drivers/tankbust.c
+++ b/src/mame/drivers/tankbust.c
@@ -110,7 +110,7 @@ READ8_MEMBER(tankbust_state::debug_output_area_r)
-void tankbust_state::palette_init()
+PALETTE_INIT_MEMBER(tankbust_state, tankbust)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
@@ -155,7 +155,7 @@ void tankbust_state::palette_init()
bit1 = (color_prom[i] >> 7) & 0x01;
r = 0x55 * bit0 + 0xaa * bit1;
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
}
}
@@ -346,10 +346,10 @@ static MACHINE_CONFIG_START( tankbust, tankbust_state )
// MCFG_SCREEN_VISIBLE_AREA ( 0*8, 64*8-1, 1*8, 31*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(tankbust_state, screen_update_tankbust)
- MCFG_GFXDECODE_ADD("gfxdecode", tankbust )
-
- MCFG_PALETTE_LENGTH( 128 )
+ MCFG_GFXDECODE_ADD("gfxdecode", tankbust )
+ MCFG_PALETTE_ADD( "palette", 128 )
+ MCFG_PALETTE_INIT_OWNER(tankbust_state, tankbust)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c
index e232c2a481f..07be888a7c9 100644
--- a/src/mame/drivers/taotaido.c
+++ b/src/mame/drivers/taotaido.c
@@ -94,7 +94,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, taotaido_state )
AM_RANGE(0xa00000, 0xa01fff) AM_RAM AM_SHARE("spriteram") // sprite ram
AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_SHARE("spriteram2") // sprite tile lookup ram
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM // main ram
- AM_RANGE(0xffc000, 0xffcfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // palette ram
+ AM_RANGE(0xffc000, 0xffcfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette ram
AM_RANGE(0xffe000, 0xffe3ff) AM_RAM AM_SHARE("scrollram") // rowscroll / rowselect / scroll ram
AM_RANGE(0xffff80, 0xffff81) AM_READ_PORT("P1")
AM_RANGE(0xffff82, 0xffff83) AM_READ_PORT("P2")
@@ -347,13 +347,15 @@ static MACHINE_CONFIG_START( taotaido, taotaido_state )
MCFG_SCREEN_UPDATE_DRIVER(taotaido_state, screen_update_taotaido)
MCFG_SCREEN_VBLANK_DRIVER(taotaido_state, screen_eof_taotaido)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr", VSYSTEM_SPR, 0)
MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( taotaido_state, taotaido_tile_callback )
MCFG_VSYSTEM_SPR_SET_GFXREGION(0)
MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode")
-
+ MCFG_VSYSTEM_SPR_PALETTE("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/targeth.c b/src/mame/drivers/targeth.c
index f2bc7a9e0d9..23fca23ba73 100644
--- a/src/mame/drivers/targeth.c
+++ b/src/mame/drivers/targeth.c
@@ -72,7 +72,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, targeth_state )
AM_RANGE(0x108006, 0x108007) AM_READ_PORT("GUNY2")
AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */
AM_RANGE(0x10800c, 0x10800d) AM_WRITENOP /* CLR Video INT */
- AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette */
+ AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
@@ -186,8 +186,8 @@ static MACHINE_CONFIG_START( targeth, targeth_state )
MCFG_SCREEN_UPDATE_DRIVER(targeth_state, screen_update_targeth)
MCFG_GFXDECODE_ADD("gfxdecode", 0x080000)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tasman.c b/src/mame/drivers/tasman.c
index 952fbb16771..4c7cfa1760b 100644
--- a/src/mame/drivers/tasman.c
+++ b/src/mame/drivers/tasman.c
@@ -71,7 +71,7 @@ UINT32 kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_ind1
UINT32 tile = m_vram[count] & 0xffff;
if(m_screen->visible_area().contains(x*8, y*8))
- gfx->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*8);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*8,y*8);
count++;
}
@@ -86,7 +86,7 @@ UINT32 kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_ind1
UINT32 tile = m_vram[count] & 0xffff;
if(m_screen->visible_area().contains(x*8, y*8))
- gfx->transpen(bitmap,cliprect,tile,0,0,0,x*8,y*8,0);
+ gfx->transpen(m_palette,bitmap,cliprect,tile,0,0,0,x*8,y*8,0);
count++;
}
@@ -608,20 +608,23 @@ static MACHINE_CONFIG_START( kongambl, kongambl_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 80*8-1, 0*8, 64*8-1)
MCFG_SCREEN_UPDATE_DRIVER(kongambl_state, screen_update_kongambl)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
MCFG_VIDEO_START_OVERRIDE(kongambl_state,kongambl)
MCFG_K053246_ADD("k053246", k053247_intf)
MCFG_K053246_GFXDECODE("gfxdecode")
+ MCFG_K053246_PALETTE("palette")
MCFG_K055555_ADD("k055555")
MCFG_K055673_ADD_NOINTF("k055673")
MCFG_K055673_GFXDECODE("gfxdecode")
+ MCFG_K055673_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", tasman)
MCFG_K056832_ADD("k056832", k056832_intf)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c
index 3fd67bc5ac6..39534dc3c10 100644
--- a/src/mame/drivers/tatsumi.c
+++ b/src/mame/drivers/tatsumi.c
@@ -317,7 +317,7 @@ static ADDRESS_MAP_START( cyclwarr_68000a_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x0ba008, 0x0ba009) AM_READWRITE(cyclwarr_control_r, cyclwarr_control_w)
AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_SHARE("spriteram")
AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) AM_SHARE("sprite_ctlram")
- AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x140000, 0x1bffff) AM_ROMBANK("bank2") /* CPU B ROM */
AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */
ADDRESS_MAP_END
@@ -338,7 +338,7 @@ static ADDRESS_MAP_START( cyclwarr_68000b_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w)
AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w)
- AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram_xRRRRRGGGGGBBBBB_word_w)
+ AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x140000, 0x1bffff) AM_ROMBANK("bank2") /* CPU B ROM */
AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */
ADDRESS_MAP_END
@@ -373,7 +373,7 @@ static ADDRESS_MAP_START( bigfight_68000a_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x0ba008, 0x0ba009) AM_READWRITE(cyclwarr_control_r, cyclwarr_control_w)
AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_SHARE("spriteram")
AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) AM_SHARE("sprite_ctlram")
- AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x100000, 0x17ffff) AM_ROMBANK("bank2") /* CPU A ROM */
AM_RANGE(0x200000, 0x27ffff) AM_ROMBANK("bank1") /* CPU B ROM */
ADDRESS_MAP_END
@@ -392,7 +392,7 @@ static ADDRESS_MAP_START( bigfight_68000b_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w)
AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w)
- AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram_xRRRRRGGGGGBBBBB_word_w)
+ AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x100000, 0x17ffff) AM_ROMBANK("bank2") /* CPU A ROM */
AM_RANGE(0x200000, 0x27ffff) AM_ROMBANK("bank1") /* CPU B ROM */
ADDRESS_MAP_END
@@ -897,7 +897,8 @@ static MACHINE_CONFIG_START( apache3, tatsumi_state )
MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_apache3)
MCFG_GFXDECODE_ADD("gfxdecode", apache3)
- MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */
+ MCFG_PALETTE_ADD("palette", 1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(tatsumi_state,apache3)
@@ -938,7 +939,8 @@ static MACHINE_CONFIG_START( roundup5, tatsumi_state )
MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_roundup5)
MCFG_GFXDECODE_ADD("gfxdecode", roundup5)
- MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */
+ MCFG_PALETTE_ADD("palette", 1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(tatsumi_state,roundup5)
@@ -980,7 +982,8 @@ static MACHINE_CONFIG_START( cyclwarr, tatsumi_state )
MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_cyclwarr)
MCFG_GFXDECODE_ADD("gfxdecode", cyclwarr)
- MCFG_PALETTE_LENGTH(8192 + 8192)
+ MCFG_PALETTE_ADD("palette", 8192 + 8192)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(tatsumi_state,cyclwarr)
@@ -1022,7 +1025,8 @@ static MACHINE_CONFIG_START( bigfight, tatsumi_state )
MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_bigfight)
MCFG_GFXDECODE_ADD("gfxdecode", cyclwarr)
- MCFG_PALETTE_LENGTH(8192 + 8192)
+ MCFG_PALETTE_ADD("palette", 8192 + 8192)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(tatsumi_state,bigfight)
diff --git a/src/mame/drivers/tattack.c b/src/mame/drivers/tattack.c
index 647a34458fb..15a0ee0b097 100644
--- a/src/mame/drivers/tattack.c
+++ b/src/mame/drivers/tattack.c
@@ -38,7 +38,7 @@ public:
DECLARE_DRIVER_INIT(tattack);
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(tattack);
UINT32 screen_update_tattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -180,7 +180,7 @@ static GFXDECODE_START( tattack )
GFXDECODE_ENTRY( "gfx1", 0 , charlayout, 0, 1 )
GFXDECODE_END
-void tattack_state::palette_init()
+PALETTE_INIT_MEMBER(tattack_state, tattack)
{
int i,r,g,b;
for(i=0;i<8;i++)
@@ -194,8 +194,8 @@ void tattack_state::palette_init()
else
r=g=b=128;
- palette_set_color(machine(),2*i,rgb_t(0x00,0x00,0x00));
- palette_set_color(machine(),2*i+1,rgb_t(r,g,b));
+ palette.set_pen_color(2*i,rgb_t(0x00,0x00,0x00));
+ palette.set_pen_color(2*i+1,rgb_t(r,g,b));
}
}
@@ -216,8 +216,8 @@ static MACHINE_CONFIG_START( tattack, tattack_state )
MCFG_SCREEN_UPDATE_DRIVER(tattack_state, screen_update_tattack)
MCFG_GFXDECODE_ADD("gfxdecode", tattack)
- MCFG_PALETTE_LENGTH(16)
-
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_INIT_OWNER(tattack_state, tattack)
/* sound hardware */
/* Discrete ???? */
diff --git a/src/mame/drivers/taxidriv.c b/src/mame/drivers/taxidriv.c
index 78d22e51680..65f5c004d0d 100644
--- a/src/mame/drivers/taxidriv.c
+++ b/src/mame/drivers/taxidriv.c
@@ -362,7 +362,7 @@ static const ay8910_interface ay8910_interface_2 =
DEVCB_NULL
};
-void taxidriv_state::palette_init()
+PALETTE_INIT_MEMBER(taxidriv_state, taxidriv)
{
const UINT8 *color_prom = memregion("proms")->base();
int bit0, bit1, r, g, b;
@@ -382,7 +382,7 @@ void taxidriv_state::palette_init()
bit1 = (color_prom[0] >> 5) & 0x01;
b = 0x55 * bit0 + 0xaa * bit1;
- palette_set_color(machine(), i, rgb_t(r, g, b));
+ palette.set_pen_color(i, rgb_t(r, g, b));
color_prom++;
}
}
@@ -421,7 +421,8 @@ static MACHINE_CONFIG_START( taxidriv, taxidriv_state )
MCFG_SCREEN_UPDATE_DRIVER(taxidriv_state, screen_update_taxidriv)
MCFG_GFXDECODE_ADD("gfxdecode", taxidriv)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_INIT_OWNER(taxidriv_state, taxidriv)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tbowl.c b/src/mame/drivers/tbowl.c
index 80b1b115f6f..48843159c58 100644
--- a/src/mame/drivers/tbowl.c
+++ b/src/mame/drivers/tbowl.c
@@ -131,7 +131,7 @@ static ADDRESS_MAP_START( 6206C_map, AS_PROGRAM, 8, tbowl_state )
AM_RANGE(0xc000, 0xdfff) AM_READONLY
AM_RANGE(0xc000, 0xd7ff) AM_WRITEONLY
AM_RANGE(0xd800, 0xdfff) AM_WRITEONLY AM_SHARE("spriteram")
- AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_be_w) AM_SHARE("paletteram") // 2x palettes, one for each monitor?
+ AM_RANGE(0xe000, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // 2x palettes, one for each monitor?
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2")
AM_RANGE(0xf800, 0xfbff) AM_READWRITE(shared_r, shared_w)
AM_RANGE(0xfc00, 0xfc00) AM_WRITE(tbowlc_bankswitch_w)
@@ -483,7 +483,8 @@ static MACHINE_CONFIG_START( tbowl, tbowl_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", tbowl)
- MCFG_PALETTE_LENGTH(1024*2)
+ MCFG_PALETTE_ADD("palette", 1024*2)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
MCFG_SCREEN_ADD("lscreen", RASTER)
diff --git a/src/mame/drivers/tceptor.c b/src/mame/drivers/tceptor.c
index a2a28779e5f..b4bfeea6fa0 100644
--- a/src/mame/drivers/tceptor.c
+++ b/src/mame/drivers/tceptor.c
@@ -383,10 +383,13 @@ static MACHINE_CONFIG_START( tceptor, tceptor_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", tceptor)
- MCFG_PALETTE_LENGTH(4096)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_INIT_OWNER(tceptor_state, tceptor)
+
MCFG_DEFAULT_LAYOUT(layout_horizont)
MCFG_NAMCO_C45_ROAD_ADD("c45_road")
+ MCFG_NAMCO_C45_ROAD_PALETTE("palette")
MCFG_SCREEN_ADD("2dscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60.606060)
diff --git a/src/mame/drivers/tcl.c b/src/mame/drivers/tcl.c
index 3b2ce96c925..7289cbb65ba 100644
--- a/src/mame/drivers/tcl.c
+++ b/src/mame/drivers/tcl.c
@@ -141,7 +141,7 @@ static MACHINE_CONFIG_START( tcl, tcl_state )
MCFG_SCREEN_UPDATE_DRIVER(tcl_state, screen_update_tcl)
MCFG_GFXDECODE_ADD("gfxdecode", tcl)
- MCFG_PALETTE_LENGTH(16*16)
+ MCFG_PALETTE_ADD("palette", 16*16)
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf )
diff --git a/src/mame/drivers/tecmo.c b/src/mame/drivers/tecmo.c
index 8f62cbc20bc..2861ebc02c1 100644
--- a/src/mame/drivers/tecmo.c
+++ b/src/mame/drivers/tecmo.c
@@ -148,7 +148,7 @@ static ADDRESS_MAP_START( rygar_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(tecmo_bgvideoram_w) AM_SHARE("bgvideoram")
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe800, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1")
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1")
AM_RANGE(0xf801, 0xf801) AM_READ_PORT("BUTTONS1")
@@ -175,7 +175,7 @@ static ADDRESS_MAP_START( gemini_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_SHARE("txvideoram")
AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(tecmo_bgvideoram_w) AM_SHARE("bgvideoram")
- AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xe800, 0xefff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1")
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1")
@@ -204,7 +204,7 @@ static ADDRESS_MAP_START( silkworm_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_SHARE("txvideoram")
AM_RANGE(0xd000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe800, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1")
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1")
AM_RANGE(0xf801, 0xf801) AM_READ_PORT("BUTTONS1")
@@ -639,7 +639,8 @@ static MACHINE_CONFIG_START( rygar, tecmo_state )
MCFG_SCREEN_UPDATE_DRIVER(tecmo_state, screen_update_tecmo)
MCFG_GFXDECODE_ADD("gfxdecode", tecmo)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
MCFG_VIDEO_START_OVERRIDE(tecmo_state,tecmo)
@@ -698,7 +699,8 @@ static MACHINE_CONFIG_START( backfirt, tecmo_state )
MCFG_SCREEN_UPDATE_DRIVER(tecmo_state, screen_update_tecmo)
MCFG_GFXDECODE_ADD("gfxdecode", tecmo)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
MCFG_VIDEO_START_OVERRIDE(tecmo_state,tecmo)
diff --git a/src/mame/drivers/tecmo16.c b/src/mame/drivers/tecmo16.c
index 4dc9f4b8a13..df9a70be4ae 100644
--- a/src/mame/drivers/tecmo16.c
+++ b/src/mame/drivers/tecmo16.c
@@ -53,7 +53,7 @@ static ADDRESS_MAP_START( fstarfrc_map, AS_PROGRAM, 16, tecmo16_state )
AM_RANGE(0x121800, 0x121fff) AM_RAM_WRITE(tecmo16_colorram2_w) AM_SHARE("colorram2")
AM_RANGE(0x122000, 0x127fff) AM_RAM /* work area */
AM_RANGE(0x130000, 0x130fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x141fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x150000, 0x150001) AM_WRITE(tecmo16_flipscreen_w)
AM_RANGE(0x150010, 0x150011) AM_WRITE(tecmo16_sound_command_w)
AM_RANGE(0x150030, 0x150031) AM_READ_PORT("DSW2") AM_WRITENOP /* ??? */
@@ -76,7 +76,7 @@ static ADDRESS_MAP_START( ginkun_map, AS_PROGRAM, 16, tecmo16_state )
AM_RANGE(0x123000, 0x123fff) AM_RAM_WRITE(tecmo16_colorram2_w) AM_SHARE("colorram2")
AM_RANGE(0x124000, 0x124fff) AM_RAM /* extra RAM for Riot */
AM_RANGE(0x130000, 0x130fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x141fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x150000, 0x150001) AM_WRITE(tecmo16_flipscreen_w)
AM_RANGE(0x150010, 0x150011) AM_WRITE(tecmo16_sound_command_w)
AM_RANGE(0x150020, 0x150021) AM_READ_PORT("EXTRA") AM_WRITENOP /* ??? */
@@ -382,8 +382,8 @@ static MACHINE_CONFIG_START( fstarfrc, tecmo16_state )
MCFG_SCREEN_UPDATE_DRIVER(tecmo16_state, screen_update_tecmo16)
MCFG_GFXDECODE_ADD("gfxdecode", tecmo16)
- MCFG_PALETTE_LENGTH(4096)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black)
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 4096)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c
index 9207c437cc9..5489d81ab45 100644
--- a/src/mame/drivers/tecmosys.c
+++ b/src/mame/drivers/tecmosys.c
@@ -298,7 +298,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tecmosys_state )
AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(fg_tilemap_w) AM_SHARE("fgtilemap_ram") // fix ram
AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_SHARE("spriteram") // obj ram
AM_RANGE(0x880000, 0x88000b) AM_READ(unk880000_r)
- AM_RANGE(0x900000, 0x907fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // AM_WRITEONLY // obj pal
+ AM_RANGE(0x900000, 0x907fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // AM_WRITEONLY // obj pal
//AM_RANGE(0x980000, 0x9807ff) AM_WRITEONLY // bg pal
//AM_RANGE(0x980800, 0x980fff) AM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // fix pal
@@ -468,7 +468,8 @@ static MACHINE_CONFIG_START( deroon, tecmosys_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(tecmosys_state, screen_update_tecmosys)
- MCFG_PALETTE_LENGTH(0x4000+0x800)
+ MCFG_PALETTE_ADD("palette", 0x4000+0x800)
+ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/tehkanwc.c b/src/mame/drivers/tehkanwc.c
index 09b9534da9e..5e6ddab9071 100644
--- a/src/mame/drivers/tehkanwc.c
+++ b/src/mame/drivers/tehkanwc.c
@@ -220,7 +220,7 @@ static ADDRESS_MAP_START( main_mem, AS_PROGRAM, 8, tehkanwc_state )
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(tehkanwc_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(tehkanwc_colorram_w) AM_SHARE("colorram")
- AM_RANGE(0xd800, 0xddff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd800, 0xddff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xde00, 0xdfff) AM_RAM AM_SHARE("share5") /* unused part of the palette RAM, I think? Gridiron uses it */
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(tehkanwc_videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0xe800, 0xebff) AM_RAM AM_SHARE("spriteram") /* sprites */
@@ -246,7 +246,7 @@ static ADDRESS_MAP_START( sub_mem, AS_PROGRAM, 8, tehkanwc_state )
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(tehkanwc_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(tehkanwc_colorram_w) AM_SHARE("colorram")
- AM_RANGE(0xd800, 0xddff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd800, 0xddff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xde00, 0xdfff) AM_RAM AM_SHARE("share5") /* unused part of the palette RAM, I think? Gridiron uses it */
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(tehkanwc_videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0xe800, 0xebff) AM_RAM AM_SHARE("spriteram") /* sprites */
@@ -668,8 +668,8 @@ static MACHINE_CONFIG_START( tehkanwc, tehkanwc_state )
MCFG_SCREEN_UPDATE_DRIVER(tehkanwc_state, screen_update_tehkanwc)
MCFG_GFXDECODE_ADD("gfxdecode", tehkanwc)
- MCFG_PALETTE_LENGTH(768)
-
+ MCFG_PALETTE_ADD("palette", 768)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/terracre.c b/src/mame/drivers/terracre.c
index 9f0fdd09adb..ec5f0ddc929 100644
--- a/src/mame/drivers/terracre.c
+++ b/src/mame/drivers/terracre.c
@@ -530,8 +530,8 @@ static MACHINE_CONFIG_START( amazon, terracre_state )
MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon)
MCFG_GFXDECODE_ADD("gfxdecode", terracre)
- MCFG_PALETTE_LENGTH(1*16+16*16+16*256)
-
+ MCFG_PALETTE_ADD("palette", 1*16+16*16+16*256)
+ MCFG_PALETTE_INIT_OWNER(terracre_state, terracre)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -563,8 +563,8 @@ static MACHINE_CONFIG_START( ym3526, terracre_state )
MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon)
MCFG_GFXDECODE_ADD("gfxdecode", terracre)
- MCFG_PALETTE_LENGTH(1*16+16*16+16*256)
-
+ MCFG_PALETTE_ADD("palette", 1*16+16*16+16*256)
+ MCFG_PALETTE_INIT_OWNER(terracre_state, terracre)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -596,8 +596,8 @@ static MACHINE_CONFIG_START( ym2203, terracre_state )
MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon)
MCFG_GFXDECODE_ADD("gfxdecode", terracre)
- MCFG_PALETTE_LENGTH(1*16+16*16+16*256)
-
+ MCFG_PALETTE_ADD("palette", 1*16+16*16+16*256)
+ MCFG_PALETTE_INIT_OWNER(terracre_state, terracre)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tetrisp2.c b/src/mame/drivers/tetrisp2.c
index 744061f491f..cb2b6911b55 100644
--- a/src/mame/drivers/tetrisp2.c
+++ b/src/mame/drivers/tetrisp2.c
@@ -1340,7 +1340,7 @@ static MACHINE_CONFIG_START( tetrisp2, tetrisp2_state )
MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_tetrisp2)
MCFG_GFXDECODE_ADD("gfxdecode", tetrisp2)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,tetrisp2)
@@ -1371,7 +1371,7 @@ static MACHINE_CONFIG_START( nndmseal, tetrisp2_state )
MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_tetrisp2)
MCFG_GFXDECODE_ADD("gfxdecode", tetrisp2)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,nndmseal) // bg layer offset
@@ -1401,7 +1401,7 @@ static MACHINE_CONFIG_START( rockn, tetrisp2_state )
MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rockntread)
MCFG_GFXDECODE_ADD("gfxdecode", tetrisp2)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,rockntread)
@@ -1432,7 +1432,7 @@ static MACHINE_CONFIG_START( rockn2, tetrisp2_state )
MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rockntread)
MCFG_GFXDECODE_ADD("gfxdecode", tetrisp2)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,rockntread)
@@ -1461,7 +1461,7 @@ static MACHINE_CONFIG_START( rocknms, tetrisp2_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", rocknms)
- MCFG_PALETTE_LENGTH(0x10000)
+ MCFG_PALETTE_ADD("palette", 0x10000)
MCFG_DEFAULT_LAYOUT(layout_rocknms)
MCFG_SCREEN_ADD("lscreen", RASTER)
@@ -1522,7 +1522,7 @@ static MACHINE_CONFIG_START( stepstag, stepstag_state )
MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1)
MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_right)
- MCFG_PALETTE_LENGTH(0x8000) // 0x8000 * 3 needed I guess, but it hits an assert
+ MCFG_PALETTE_ADD("palette", 0x8000) // 0x8000 * 3 needed I guess, but it hits an assert
MCFG_VIDEO_START_OVERRIDE(stepstag_state, stepstag )
MCFG_GFXDECODE_ADD("gfxdecode", stepstag)
diff --git a/src/mame/drivers/thayers.c b/src/mame/drivers/thayers.c
index 43523e7f9aa..7e8846e6a84 100644
--- a/src/mame/drivers/thayers.c
+++ b/src/mame/drivers/thayers.c
@@ -802,7 +802,7 @@ static MACHINE_CONFIG_START( thayers, thayers_state )
/* video hardware */
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/thedeep.c b/src/mame/drivers/thedeep.c
index d7b2af69d0e..6ad238816cd 100644
--- a/src/mame/drivers/thedeep.c
+++ b/src/mame/drivers/thedeep.c
@@ -461,7 +461,8 @@ static MACHINE_CONFIG_START( thedeep, thedeep_state )
MCFG_SCREEN_UPDATE_DRIVER(thedeep_state, screen_update_thedeep)
MCFG_GFXDECODE_ADD("gfxdecode", thedeep)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(thedeep_state, thedeep)
/* sound hardware */
diff --git a/src/mame/drivers/thepit.c b/src/mame/drivers/thepit.c
index 8eca8cc710c..83f3836b73f 100644
--- a/src/mame/drivers/thepit.c
+++ b/src/mame/drivers/thepit.c
@@ -722,7 +722,8 @@ static MACHINE_CONFIG_START( thepit, thepit_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", thepit)
- MCFG_PALETTE_LENGTH(32+8)
+ MCFG_PALETTE_ADD("palette", 32+8)
+ MCFG_PALETTE_INIT_OWNER(thepit_state, thepit)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
@@ -768,7 +769,8 @@ static MACHINE_CONFIG_DERIVED( suprmous, intrepid )
/* basic machine hardware */
/* video hardware */
- MCFG_PALETTE_INIT_OVERRIDE(thepit_state,suprmous)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(thepit_state,suprmous)
MCFG_GFXDECODE_MODIFY("gfxdecode", suprmous)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/thief.c b/src/mame/drivers/thief.c
index b4e8220f810..471e9bc2949 100644
--- a/src/mame/drivers/thief.c
+++ b/src/mame/drivers/thief.c
@@ -449,7 +449,7 @@ static MACHINE_CONFIG_START( sharkatt, thief_state )
MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
/* sound hardware */
@@ -484,7 +484,7 @@ static MACHINE_CONFIG_START( thief, thief_state )
MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
/* sound hardware */
@@ -519,7 +519,7 @@ static MACHINE_CONFIG_START( natodef, thief_state )
MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
/* sound hardware */
diff --git a/src/mame/drivers/thoop2.c b/src/mame/drivers/thoop2.c
index d89318fe498..c57a40284cf 100644
--- a/src/mame/drivers/thoop2.c
+++ b/src/mame/drivers/thoop2.c
@@ -89,7 +89,7 @@ static ADDRESS_MAP_START( thoop2_map, AS_PROGRAM, 16, thoop2_state )
AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(thoop2_vram_w) AM_SHARE("videoram") /* Video RAM */
AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */
AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset16_w) /* INT 6 ACK/Watchdog timer */
- AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")/* Palette */
+ AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
@@ -202,8 +202,8 @@ static MACHINE_CONFIG_START( thoop2, thoop2_state )
MCFG_SCREEN_UPDATE_DRIVER(thoop2_state, screen_update_thoop2)
MCFG_GFXDECODE_ADD("gfxdecode", thoop2)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/thunderj.c b/src/mame/drivers/thunderj.c
index b7a3fba63ef..78cfc4748e0 100644
--- a/src/mame/drivers/thunderj.c
+++ b/src/mame/drivers/thunderj.c
@@ -265,7 +265,7 @@ static MACHINE_CONFIG_START( thunderj, thunderj_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", thunderj)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_ATARI_VAD_ADD("vad", "screen", WRITELINE(atarigen_state, scanline_int_write_line))
MCFG_ATARI_VAD_PLAYFIELD(thunderj_state, get_playfield_tile_info)
diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c
index e57abdecbd9..b4f2a980754 100644
--- a/src/mame/drivers/thunderx.c
+++ b/src/mame/drivers/thunderx.c
@@ -53,7 +53,7 @@ READ8_MEMBER(thunderx_state::scontra_bankedram_r)
WRITE8_MEMBER(thunderx_state::scontra_bankedram_w)
{
if (m_palette_selected)
- paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data);
+ m_palette->write(space, offset, data);
else
m_ram[offset] = data;
}
@@ -94,7 +94,7 @@ WRITE8_MEMBER(thunderx_state::thunderx_bankedram_w)
logerror("%04x pmc internal ram %04x = %02x\n",space.device().safe_pc(),offset,data);
}
else
- paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data);
+ m_palette->write(space, offset, data);
}
/*
@@ -656,8 +656,6 @@ static MACHINE_CONFIG_START( scontra, thunderx_state )
MCFG_MACHINE_RESET_OVERRIDE(thunderx_state,scontra)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -665,13 +663,17 @@ static MACHINE_CONFIG_START( scontra, thunderx_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(thunderx_state, screen_update_scontra)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", thunderx_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", thunderx_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -701,8 +703,6 @@ static MACHINE_CONFIG_START( thunderx, thunderx_state )
MCFG_MACHINE_RESET_OVERRIDE(thunderx_state,thunderx)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@@ -710,13 +710,17 @@ static MACHINE_CONFIG_START( thunderx, thunderx_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(thunderx_state, screen_update_scontra)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", thunderx_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", thunderx_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tiamc1.c b/src/mame/drivers/tiamc1.c
index eb52a9db8d5..53fcf3e9795 100644
--- a/src/mame/drivers/tiamc1.c
+++ b/src/mame/drivers/tiamc1.c
@@ -236,8 +236,8 @@ static MACHINE_CONFIG_START( tiamc1, tiamc1_state )
MCFG_SCREEN_UPDATE_DRIVER(tiamc1_state, screen_update_tiamc1)
MCFG_GFXDECODE_ADD("gfxdecode", tiamc1)
- MCFG_PALETTE_LENGTH(16)
-
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_INIT_OWNER(tiamc1_state, tiamc1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c
index de021020f96..47df6294772 100644
--- a/src/mame/drivers/tigeroad.c
+++ b/src/mame/drivers/tigeroad.c
@@ -176,7 +176,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tigeroad_state )
AM_RANGE(0xfec000, 0xfec7ff) AM_RAM_WRITE(tigeroad_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xfe8000, 0xfe8003) AM_WRITE(tigeroad_scroll_w)
AM_RANGE(0xfe800e, 0xfe800f) AM_WRITEONLY /* fe800e = watchdog or IRQ acknowledge */
- AM_RANGE(0xff8200, 0xff867f) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xff8200, 0xff867f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_SHARE("ram16")
ADDRESS_MAP_END
@@ -535,8 +535,9 @@ static MACHINE_CONFIG_START( tigeroad, tigeroad_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", tigeroad)
- MCFG_PALETTE_LENGTH(576)
+ MCFG_PALETTE_ADD("palette", 576)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/timelimt.c b/src/mame/drivers/timelimt.c
index 96b535bdd13..bd7fb810116 100644
--- a/src/mame/drivers/timelimt.c
+++ b/src/mame/drivers/timelimt.c
@@ -247,8 +247,8 @@ static MACHINE_CONFIG_START( timelimt, timelimt_state )
MCFG_SCREEN_UPDATE_DRIVER(timelimt_state, screen_update_timelimt)
MCFG_GFXDECODE_ADD("gfxdecode", timelimt)
- MCFG_PALETTE_LENGTH(64+32)
-
+ MCFG_PALETTE_ADD("palette", 64+32)
+ MCFG_PALETTE_INIT_OWNER(timelimt_state, timelimt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/timeplt.c b/src/mame/drivers/timeplt.c
index 7df4e4967d9..861f3049016 100644
--- a/src/mame/drivers/timeplt.c
+++ b/src/mame/drivers/timeplt.c
@@ -477,7 +477,8 @@ static MACHINE_CONFIG_START( timeplt, timeplt_state )
MCFG_SCREEN_UPDATE_DRIVER(timeplt_state, screen_update_timeplt)
MCFG_GFXDECODE_ADD("gfxdecode", timeplt)
- MCFG_PALETTE_LENGTH(32*4+64*4)
+ MCFG_PALETTE_ADD("palette", 32*4+64*4)
+ MCFG_PALETTE_INIT_OWNER(timeplt_state, timeplt)
/* sound hardware */
MCFG_FRAGMENT_ADD(timeplt_sound)
diff --git a/src/mame/drivers/timetrv.c b/src/mame/drivers/timetrv.c
index 63ecef49133..e44f87f6f58 100644
--- a/src/mame/drivers/timetrv.c
+++ b/src/mame/drivers/timetrv.c
@@ -166,7 +166,7 @@ static MACHINE_CONFIG_START( timetrv, timetrv_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1)
MCFG_SCREEN_UPDATE_DRIVER(timetrv_state, screen_update_timetrv)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c
index c228e0ae9ae..9989422b001 100644
--- a/src/mame/drivers/tmaster.c
+++ b/src/mame/drivers/tmaster.c
@@ -375,7 +375,7 @@ UINT32 tmaster_state::screen_update_tmaster(screen_device &screen, bitmap_ind16
#endif
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
if (layers_ctrl & 1) copybitmap_trans(bitmap, m_bitmap[0][(m_regs[0x02/2]>>8)&1], 0,0,0,0, cliprect, 0xff);
if (layers_ctrl & 2) copybitmap_trans(bitmap, m_bitmap[1][(m_regs[0x02/2]>>9)&1], 0,0,0,0, cliprect, 0xff);
@@ -556,7 +556,7 @@ static ADDRESS_MAP_START( tmaster_map, AS_PROGRAM, 16, tmaster_state )
AM_RANGE( 0x580000, 0x580001 ) AM_WRITENOP // often
- AM_RANGE( 0x600000, 0x601fff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w ) AM_SHARE("paletteram")
+ AM_RANGE( 0x600000, 0x601fff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE( 0x800000, 0x800001 ) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
@@ -636,7 +636,7 @@ WRITE16_MEMBER(tmaster_state::galgames_palette_data_w)
{
int palette_base;
for (palette_base = 0; palette_base < 0x1000; palette_base += 0x100)
- palette_set_color(machine(), m_palette_offset + palette_base, rgb_t(m_palette_data[0], m_palette_data[1], m_palette_data[2]));
+ m_palette->set_pen_color(m_palette_offset + palette_base, rgb_t(m_palette_data[0], m_palette_data[1], m_palette_data[2]));
m_palette_index = 0;
m_palette_offset++;
}
@@ -930,7 +930,8 @@ static MACHINE_CONFIG_START( tm, tmaster_state )
MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(tmaster_state,tmaster)
@@ -989,7 +990,8 @@ static MACHINE_CONFIG_START( galgames, tmaster_state )
MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster)
- MCFG_PALETTE_LENGTH(0x1000) // only 0x100 used
+ MCFG_PALETTE_ADD("palette", 0x1000) // only 0x100 used
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(tmaster_state,galgames)
diff --git a/src/mame/drivers/tmmjprd.c b/src/mame/drivers/tmmjprd.c
index 1440071813c..d911f61c6a4 100644
--- a/src/mame/drivers/tmmjprd.c
+++ b/src/mame/drivers/tmmjprd.c
@@ -178,7 +178,7 @@ void tmmjprd_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect
tileno >>=1;
// 255 for 8bpp
- gfx->transpen(bitmap,cliprect,tileno,colr,!xflip,yflip,(xpos-xoffs)-8,(ypos)-8,255);
+ gfx->transpen(m_palette,bitmap,cliprect,tileno,colr,!xflip,yflip,(xpos-xoffs)-8,(ypos)-8,255);
}
}
@@ -306,7 +306,7 @@ UINT32 tmmjprd_state::screen_update_tmmjprd_left(screen_device &screen, bitmap_i
{
UINT8* gfxroms = memregion("gfx2")->base();
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
ttmjprd_draw_tilemap(bitmap, cliprect, m_tilemap_ram[3], m_tilemap_regs[3], gfxroms );
draw_sprites(bitmap,cliprect, 1);
@@ -340,7 +340,7 @@ UINT32 tmmjprd_state::screen_update_tmmjprd_right(screen_device &screen, bitmap_
{
UINT8* gfxroms = memregion("gfx2")->base();
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
ttmjprd_draw_tilemap(bitmap, cliprect, m_tilemap_ram[1], m_tilemap_regs[1], gfxroms );
draw_sprites(bitmap,cliprect, 0);
@@ -633,7 +633,7 @@ WRITE32_MEMBER(tmmjprd_state::tmmjprd_paletteram_dword_w)
r = ((m_generic_paletteram_32[offset] & 0x0000ff00) >>8);
g = ((m_generic_paletteram_32[offset] & 0x00ff0000) >>16);
- palette_set_color(machine(),offset,rgb_t(r,g,b));
+ m_palette->set_pen_color(offset,rgb_t(r,g,b));
}
@@ -653,7 +653,7 @@ WRITE32_MEMBER(tmmjprd_state::tmmjprd_brt_1_w)
{
m_old_brt1 = brt;
for (i = bank; i < 0x800+bank; i++)
- palette_set_pen_contrast(machine(), i, brt);
+ m_palette->set_pen_contrast(i, brt);
}
}
@@ -671,7 +671,7 @@ WRITE32_MEMBER(tmmjprd_state::tmmjprd_brt_2_w)
{
m_old_brt2 = brt;
for (i = bank; i < 0x800+bank; i++)
- palette_set_pen_contrast(machine(), i, brt);
+ m_palette->set_pen_contrast(i, brt);
}
}
@@ -766,7 +766,7 @@ static MACHINE_CONFIG_START( tmmjprd, tmmjprd_state )
// MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update)
// MCFG_SCREEN_SIZE(64*16, 64*16)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c
index 7f5db71a0bd..720e550f203 100644
--- a/src/mame/drivers/tmnt.c
+++ b/src/mame/drivers/tmnt.c
@@ -540,7 +540,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( punkshot_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM /* main RAM */
- AM_RANGE(0x090000, 0x090fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x090000, 0x090fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0a0000, 0x0a0001) AM_READ_PORT("DSW1/DSW2")
AM_RANGE(0x0a0002, 0x0a0003) AM_READ_PORT("COINS/DSW3")
AM_RANGE(0x0a0004, 0x0a0005) AM_READ_PORT("P3/P4")
@@ -559,7 +559,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( lgtnfght_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x080000, 0x080fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x090000, 0x093fff) AM_RAM /*main RAM */
AM_RANGE(0x0a0000, 0x0a0001) AM_READ_PORT("COINS")
AM_RANGE(0x0a0002, 0x0a0003) AM_READ_PORT("P1")
@@ -589,7 +589,7 @@ static ADDRESS_MAP_START( blswhstl_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x180000, 0x183fff) AM_DEVREADWRITE("k052109", k052109_device, word_r, word_w)
AM_RANGE(0x204000, 0x207fff) AM_RAM /* main RAM */
AM_RANGE(0x300000, 0x303fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram")
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x50003f) AM_DEVREADWRITE("k054000", k054000_device, lsb_r, lsb_w)
AM_RANGE(0x680000, 0x68001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w)
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("P1")
@@ -631,7 +631,7 @@ static ADDRESS_MAP_START( glfgreat_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram")
- AM_RANGE(0x108000, 0x108fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x108000, 0x108fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x10c000, 0x10cfff) AM_DEVREADWRITE("k053936", k053936_device, linectrl_r, linectrl_w) /* 053936? */
AM_RANGE(0x110000, 0x11001f) AM_WRITE(k053244_word_noA1_w) /* duplicate! */
AM_RANGE(0x114000, 0x11401f) AM_DEVREADWRITE("k053245", k05324x_device, k053244_lsb_r, k053244_lsb_w) /* duplicate! */
@@ -655,7 +655,7 @@ static ADDRESS_MAP_START( prmrsocr_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram")
- AM_RANGE(0x108000, 0x108fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x108000, 0x108fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x10c000, 0x10cfff) AM_DEVREADWRITE("k053936", k053936_device, linectrl_r, linectrl_w)
AM_RANGE(0x110000, 0x11001f) AM_WRITE(k053244_word_noA1_w) /* duplicate! */
AM_RANGE(0x114000, 0x11401f) AM_DEVREADWRITE("k053245", k05324x_device, k053244_lsb_r, k053244_lsb_w) /* duplicate! */
@@ -914,7 +914,7 @@ logerror("copy command %04x sprite %08x data %08x: %04x%04x %04x%04x modifiers
static ADDRESS_MAP_START( tmnt2_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_SHARE("tmnt2_rom")
AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE("sunset_104000") /* main RAM */
- AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x140fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x180000, 0x183fff) AM_RAM_WRITE(k053245_scattered_word_w) AM_SHARE("spriteram") // k053245_scattered_word_r
AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("P1")
AM_RANGE(0x1c0002, 0x1c0003) AM_READ_PORT("P2")
@@ -940,7 +940,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ssriders_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x104000, 0x107fff) AM_RAM /* main RAM */
- AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x140fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram")
AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("P1")
AM_RANGE(0x1c0002, 0x1c0003) AM_READ_PORT("P2")
@@ -966,7 +966,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sunsetbl_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x104000, 0x107fff) AM_RAM /* main RAM */
- AM_RANGE(0x14c000, 0x14cfff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x14c000, 0x14cfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x14e700, 0x14e71f) AM_DEVWRITE("k053251", k053251_device, lsb_w)
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram")
AM_RANGE(0x184000, 0x18ffff) AM_RAM
@@ -992,7 +992,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( thndrx2_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
- AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x300000, 0x30001f) AM_DEVWRITE("k053251", k053251_device, lsb_w)
AM_RANGE(0x400000, 0x400003) AM_READ8(punkshot_sound_r, 0x00ff) /* K053260 */
AM_RANGE(0x400000, 0x400001) AM_DEVWRITE8("k053260", k053260_device, k053260_w, 0x00ff)
@@ -2133,7 +2133,7 @@ static MACHINE_CONFIG_START( cuebrick, tmnt_state )
MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -2142,7 +2142,11 @@ static MACHINE_CONFIG_START( cuebrick, tmnt_state )
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_mia)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
+
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_VIDEO_START_OVERRIDE(tmnt_state,cuebrick)
@@ -2150,8 +2154,10 @@ static MACHINE_CONFIG_START( cuebrick, tmnt_state )
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", cuebrick_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", cuebrick_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2177,8 +2183,6 @@ static MACHINE_CONFIG_START( mia, tmnt_state )
MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@@ -2186,15 +2190,20 @@ static MACHINE_CONFIG_START( mia, tmnt_state )
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_mia)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_VIDEO_START_OVERRIDE(tmnt_state,mia)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", mia_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", mia_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2231,8 +2240,6 @@ static MACHINE_CONFIG_START( tmnt, tmnt_state )
MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,tmnt)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@@ -2242,15 +2249,20 @@ static MACHINE_CONFIG_START( tmnt, tmnt_state )
MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt)
// We see something strange in the left 8 pixels and the right 8 pixels, but it is same as real PCB.
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_VIDEO_START_OVERRIDE(tmnt_state,tmnt)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", tmnt_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", tmnt_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2287,7 +2299,7 @@ static MACHINE_CONFIG_START( punkshot, tmnt_state )
MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -2296,13 +2308,18 @@ static MACHINE_CONFIG_START( punkshot, tmnt_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_punkshot)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", tmnt_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", punkshot_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
MCFG_K053251_ADD("k053251")
/* sound hardware */
@@ -2331,7 +2348,7 @@ static MACHINE_CONFIG_START( lgtnfght, tmnt_state )
MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -2340,15 +2357,20 @@ static MACHINE_CONFIG_START( lgtnfght, tmnt_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_lgtnfght)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_VIDEO_START_OVERRIDE(tmnt_state,lgtnfght)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", tmnt_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K053245_ADD("k053245", lgtnfght_k05324x_intf)
MCFG_K053245_GFXDECODE("gfxdecode")
+ MCFG_K053245_PALETTE("palette")
MCFG_K053251_ADD("k053251")
/* sound hardware */
@@ -2381,7 +2403,7 @@ static MACHINE_CONFIG_START( blswhstl, tmnt_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -2391,15 +2413,20 @@ static MACHINE_CONFIG_START( blswhstl, tmnt_state )
MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_lgtnfght)
MCFG_SCREEN_VBLANK_DRIVER(tmnt_state, screen_eof_blswhstl)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_VIDEO_START_OVERRIDE(tmnt_state, blswhstl )
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", blswhstl_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K053245_ADD("k053245", blswhstl_k05324x_intf)
MCFG_K053245_GFXDECODE("gfxdecode")
+ MCFG_K053245_PALETTE("palette")
MCFG_K053251_ADD("k053251")
MCFG_K054000_ADD("k054000")
@@ -2448,7 +2475,7 @@ static MACHINE_CONFIG_START( glfgreat, tmnt_state )
MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -2458,14 +2485,20 @@ static MACHINE_CONFIG_START( glfgreat, tmnt_state )
MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_glfgreat)
MCFG_GFXDECODE_ADD("gfxdecode", glfgreat)
- MCFG_PALETTE_LENGTH(2048)
+
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_VIDEO_START_OVERRIDE(tmnt_state,glfgreat)
MCFG_K052109_ADD("k052109", glfgreat_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K053245_ADD("k053245", glfgreat_k05324x_intf)
MCFG_K053245_GFXDECODE("gfxdecode")
+ MCFG_K053245_PALETTE("palette")
MCFG_K053936_ADD("k053936", glfgreat_k053936_interface)
MCFG_K053251_ADD("k053251")
@@ -2508,7 +2541,7 @@ static MACHINE_CONFIG_START( prmrsocr, tmnt_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -2518,14 +2551,20 @@ static MACHINE_CONFIG_START( prmrsocr, tmnt_state )
MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_glfgreat)
MCFG_GFXDECODE_ADD("gfxdecode", glfgreat)
- MCFG_PALETTE_LENGTH(2048)
+
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_VIDEO_START_OVERRIDE(tmnt_state,prmrsocr)
MCFG_K052109_ADD("k052109", glfgreat_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K053245_ADD("k053245", prmrsocr_k05324x_intf)
MCFG_K053245_GFXDECODE("gfxdecode")
+ MCFG_K053245_PALETTE("palette")
MCFG_K053936_ADD("k053936", prmrsocr_k053936_interface)
MCFG_K053251_ADD("k053251")
@@ -2560,7 +2599,7 @@ static MACHINE_CONFIG_START( tmnt2, tmnt_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -2569,15 +2608,20 @@ static MACHINE_CONFIG_START( tmnt2, tmnt_state )
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_VIDEO_START_OVERRIDE(tmnt_state,lgtnfght)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", tmnt_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K053245_ADD("k053245", lgtnfght_k05324x_intf)
MCFG_K053245_GFXDECODE("gfxdecode")
+ MCFG_K053245_PALETTE("palette")
MCFG_K053251_ADD("k053251")
/* sound hardware */
@@ -2610,7 +2654,7 @@ static MACHINE_CONFIG_START( ssriders, tmnt_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -2619,15 +2663,20 @@ static MACHINE_CONFIG_START( ssriders, tmnt_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_VIDEO_START_OVERRIDE(tmnt_state,lgtnfght)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", tmnt_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K053245_ADD("k053245", lgtnfght_k05324x_intf)
MCFG_K053245_GFXDECODE("gfxdecode")
+ MCFG_K053245_PALETTE("palette")
MCFG_K053251_ADD("k053251")
/* sound hardware */
@@ -2656,7 +2705,7 @@ static MACHINE_CONFIG_START( sunsetbl, tmnt_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -2665,13 +2714,18 @@ static MACHINE_CONFIG_START( sunsetbl, tmnt_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", sunsetbl_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K053245_ADD("k053245", lgtnfght_k05324x_intf)
MCFG_K053245_GFXDECODE("gfxdecode")
+ MCFG_K053245_PALETTE("palette")
MCFG_K053251_ADD("k053251")
/* sound hardware */
@@ -2699,8 +2753,6 @@ static MACHINE_CONFIG_START( thndrx2, tmnt_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@@ -2708,13 +2760,18 @@ static MACHINE_CONFIG_START( thndrx2, tmnt_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_thndrx2)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", tmnt_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K051960_ADD("k051960", thndrx2_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
MCFG_K053251_ADD("k053251")
MCFG_K054000_ADD("k054000")
diff --git a/src/mame/drivers/tmspoker.c b/src/mame/drivers/tmspoker.c
index 26e7c719d74..e57f50136ef 100644
--- a/src/mame/drivers/tmspoker.c
+++ b/src/mame/drivers/tmspoker.c
@@ -233,7 +233,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(tmspoker);
UINT32 screen_update_tmspoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(tmspoker_interrupt);
required_device<cpu_device> m_maincpu;
@@ -276,7 +276,7 @@ UINT32 tmspoker_state::screen_update_tmspoker(screen_device &screen, bitmap_ind1
return 0;
}
-void tmspoker_state::palette_init()
+PALETTE_INIT_MEMBER(tmspoker_state, tmspoker)
{
}
@@ -598,7 +598,8 @@ static MACHINE_CONFIG_START( tmspoker, tmspoker_state )
MCFG_GFXDECODE_ADD("gfxdecode", tmspoker)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(tmspoker_state, tmspoker)
MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/4, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c
index 6558b5d044a..ab0c7324c4e 100644
--- a/src/mame/drivers/tnzs.c
+++ b/src/mame/drivers/tnzs.c
@@ -757,7 +757,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tnzs_state )
/* arknoid2, extrmatn, plumppop and drtoppel have PROMs instead of RAM */
/* drtoppel writes here anyway! (maybe leftover from tests during development) */
/* so the handler is patched out in init_drtopple() */
- AM_RANGE(0xf800, 0xfbff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf800, 0xfbff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu0_type2, AS_PROGRAM, 8, tnzs_state )
@@ -820,7 +820,7 @@ static ADDRESS_MAP_START( tnzsb_cpu1_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0xd000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xf000, 0xf003) AM_READONLY
- AM_RANGE(0xf000, 0xf3ff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf000, 0xf3ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( kabukiz_cpu1_map, AS_PROGRAM, 8, tnzs_state )
@@ -835,7 +835,7 @@ static ADDRESS_MAP_START( kabukiz_cpu1_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN2")
AM_RANGE(0xd000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0xf800, 0xfbff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf800, 0xfbff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( tnzsb_cpu2_map, AS_PROGRAM, 8, tnzs_state )
@@ -878,7 +878,7 @@ WRITE8_MEMBER(tnzs_state::jpopnics_palette_w)
b = (paldata >> 8) & 0x000f;
// the other bits seem to be used, and the colours are wrong..
- palette_set_color_rgb(machine(), offset, r << 4, g << 4, b << 4);
+ m_palette->set_pen_color(offset, r << 4, g << 4, b << 4);
}
@@ -1617,6 +1617,7 @@ static MACHINE_CONFIG_START( arknoid2, tnzs_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1628,9 +1629,10 @@ static MACHINE_CONFIG_START( arknoid2, tnzs_state )
MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE_ADD("gfxdecode", tnzs)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
- MCFG_PALETTE_INIT_OVERRIDE(tnzs_state,arknoid2)
+ MCFG_PALETTE_INIT_OWNER(tnzs_state,arknoid2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1659,6 +1661,7 @@ static MACHINE_CONFIG_START( drtoppel, tnzs_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1670,9 +1673,9 @@ static MACHINE_CONFIG_START( drtoppel, tnzs_state )
MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE_ADD("gfxdecode", tnzs)
- MCFG_PALETTE_LENGTH(512)
-
- MCFG_PALETTE_INIT_OVERRIDE(tnzs_state,arknoid2)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ MCFG_PALETTE_INIT_OWNER(tnzs_state,arknoid2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1704,6 +1707,7 @@ static MACHINE_CONFIG_START( tnzs, tnzs_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1715,8 +1719,8 @@ static MACHINE_CONFIG_START( tnzs, tnzs_state )
MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE_ADD("gfxdecode", tnzs)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1745,6 +1749,7 @@ static MACHINE_CONFIG_START( insectx, tnzs_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1756,7 +1761,8 @@ static MACHINE_CONFIG_START( insectx, tnzs_state )
MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE_ADD("gfxdecode", insectx)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1785,6 +1791,7 @@ static MACHINE_CONFIG_START( kageki, tnzs_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1796,7 +1803,8 @@ static MACHINE_CONFIG_START( kageki, tnzs_state )
MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE_ADD("gfxdecode", tnzs)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1835,6 +1843,7 @@ static MACHINE_CONFIG_START( tnzsb, tnzs_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1846,7 +1855,8 @@ static MACHINE_CONFIG_START( tnzsb, tnzs_state )
MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE_ADD("gfxdecode", tnzs)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1896,6 +1906,7 @@ static MACHINE_CONFIG_START( jpopnics, tnzs_state )
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_SETA001_SPRITE_PALETTE("palette")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1907,7 +1918,8 @@ static MACHINE_CONFIG_START( jpopnics, tnzs_state )
MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE_ADD("gfxdecode", tnzs)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/toaplan1.c b/src/mame/drivers/toaplan1.c
index 048564beeab..07d573ee924 100644
--- a/src/mame/drivers/toaplan1.c
+++ b/src/mame/drivers/toaplan1.c
@@ -1828,7 +1828,8 @@ static MACHINE_CONFIG_START( rallybik, toaplan1_rallybik_state )
MCFG_TOAPLAN_SCU_GFXDECODE("gfxdecode")
MCFG_GFXDECODE_ADD("gfxdecode", rallybik)
- MCFG_PALETTE_LENGTH((64*16)+(64*16))
+ MCFG_PALETTE_ADD("palette", (64*16)+(64*16))
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(toaplan1_rallybik_state,rallybik)
@@ -1865,7 +1866,8 @@ static MACHINE_CONFIG_START( truxton, toaplan1_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan1)
- MCFG_PALETTE_LENGTH((64*16)+(64*16))
+ MCFG_PALETTE_ADD("palette", (64*16)+(64*16))
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
@@ -1902,7 +1904,8 @@ static MACHINE_CONFIG_START( hellfire, toaplan1_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan1)
- MCFG_PALETTE_LENGTH((64*16)+(64*16))
+ MCFG_PALETTE_ADD("palette", (64*16)+(64*16))
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
@@ -1939,7 +1942,8 @@ static MACHINE_CONFIG_START( zerowing, toaplan1_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan1)
- MCFG_PALETTE_LENGTH((64*16)+(64*16))
+ MCFG_PALETTE_ADD("palette", (64*16)+(64*16))
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
@@ -1980,7 +1984,8 @@ static MACHINE_CONFIG_START( demonwld, toaplan1_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan1)
- MCFG_PALETTE_LENGTH((64*16)+(64*16))
+ MCFG_PALETTE_ADD("palette", (64*16)+(64*16))
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
@@ -2015,7 +2020,8 @@ static MACHINE_CONFIG_START( samesame, toaplan1_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_samesame)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan1)
- MCFG_PALETTE_LENGTH((64*16)+(64*16))
+ MCFG_PALETTE_ADD("palette", (64*16)+(64*16))
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
@@ -2052,7 +2058,8 @@ static MACHINE_CONFIG_START( outzone, toaplan1_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan1)
- MCFG_PALETTE_LENGTH((64*16)+(64*16))
+ MCFG_PALETTE_ADD("palette", (64*16)+(64*16))
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
@@ -2087,7 +2094,8 @@ static MACHINE_CONFIG_START( vimana, toaplan1_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan1)
- MCFG_PALETTE_LENGTH((64*16)+(64*16))
+ MCFG_PALETTE_ADD("palette", (64*16)+(64*16))
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1)
diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c
index 007b4dcd1dd..28bc6e7e079 100644
--- a/src/mame/drivers/toaplan2.c
+++ b/src/mame/drivers/toaplan2.c
@@ -989,7 +989,7 @@ static ADDRESS_MAP_START( tekipaki_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x020000, 0x03ffff) AM_ROM // extra for Whoopee
AM_RANGE(0x080000, 0x082fff) AM_RAM
- AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("DSWA")
AM_RANGE(0x180010, 0x180011) AM_READ_PORT("DSWB")
@@ -1006,7 +1006,7 @@ static ADDRESS_MAP_START( ghox_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x040001) AM_READ(ghox_p2_h_analog_r)
AM_RANGE(0x080000, 0x083fff) AM_RAM
- AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x100000, 0x100001) AM_READ(ghox_p1_h_analog_r)
AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
AM_RANGE(0x180000, 0x180001) AM_READWRITE(ghox_mcu_r, ghox_mcu_w) // really part of shared RAM
@@ -1030,7 +1030,7 @@ static ADDRESS_MAP_START( dogyuun_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE("gp9001vdp1", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) // test bit 8
ADDRESS_MAP_END
@@ -1045,7 +1045,7 @@ static ADDRESS_MAP_START( kbash_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x208018, 0x208019) AM_READ_PORT("SYS")
AM_RANGE(0x20801c, 0x20801d) AM_WRITE(toaplan2_coin_word_w)
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) // test bit 8
ADDRESS_MAP_END
@@ -1067,7 +1067,7 @@ static ADDRESS_MAP_START( kbash2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x200028, 0x200029) AM_WRITE(oki1_bankswitch_w)
AM_RANGE(0x20002c, 0x20002d) AM_READ(video_count_r)
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
@@ -1075,7 +1075,7 @@ static ADDRESS_MAP_START( truxton2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x20000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x300000, 0x300fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x300000, 0x300fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x400000, 0x401fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
AM_RANGE(0x402000, 0x402fff) AM_RAM AM_SHARE("txvram_offs")
AM_RANGE(0x403000, 0x4031ff) AM_RAM_WRITE(toaplan2_txscrollram16_w) AM_SHARE("txscrollram16")
@@ -1097,7 +1097,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pipibibs_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x082fff) AM_RAM
- AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
AM_RANGE(0x190000, 0x190fff) AM_READWRITE(shared_ram_r, shared_ram_w)
AM_RANGE(0x19c01c, 0x19c01d) AM_WRITE(toaplan2_coin_word_w)
@@ -1115,7 +1115,7 @@ static ADDRESS_MAP_START( pipibibi_bootleg_68k_mem, AS_PROGRAM, 16, toaplan2_sta
AM_RANGE(0x080000, 0x082fff) AM_RAM
AM_RANGE(0x083000, 0x0837ff) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, pipibibi_bootleg_spriteram16_r, pipibibi_bootleg_spriteram16_w) // SpriteRAM
AM_RANGE(0x083800, 0x087fff) AM_RAM // SpriteRAM (unused)
- AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x120000, 0x120fff) AM_RAM // Copy of SpriteRAM ?
// AM_RANGE(0x13f000, 0x13f001) AM_WRITENOP // ???
AM_RANGE(0x180000, 0x182fff) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, pipibibi_bootleg_videoram16_r, pipibibi_bootleg_videoram16_w) // TileRAM
@@ -1142,7 +1142,7 @@ static ADDRESS_MAP_START( fixeight_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_coin_word_w)
AM_RANGE(0x280000, 0x28ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
AM_RANGE(0x502000, 0x5021ff) AM_RAM AM_SHARE("txvram_offs")
AM_RANGE(0x503000, 0x5031ff) AM_RAM_WRITE(toaplan2_txscrollram16_w) AM_SHARE("txscrollram16")
@@ -1164,7 +1164,7 @@ static ADDRESS_MAP_START( fixeightbl_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x200018, 0x200019) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x20001c, 0x20001d) AM_READ_PORT("DSWA")
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)
AM_RANGE(0x800000, 0x87ffff) AM_ROM AM_REGION("maincpu", 0x80000)
@@ -1181,7 +1181,7 @@ static ADDRESS_MAP_START( vfive_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)
ADDRESS_MAP_END
@@ -1195,7 +1195,7 @@ static ADDRESS_MAP_START( batsugun_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE("gp9001vdp1", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)
ADDRESS_MAP_END
@@ -1206,7 +1206,7 @@ static ADDRESS_MAP_START( pwrkick_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8("rtc", upd4992_device, read, write, 0x00ff )
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)
@@ -1227,7 +1227,7 @@ static ADDRESS_MAP_START( othldrby_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8("rtc", upd4992_device, read, write, 0x00ff )
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)
@@ -1246,7 +1246,7 @@ static ADDRESS_MAP_START( snowbro2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x500003) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x00ff)
AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("JMPR")
@@ -1275,7 +1275,7 @@ static ADDRESS_MAP_START( mahoudai_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR")
AM_RANGE(0x21c03c, 0x21c03d) AM_READ(video_count_r)
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x401000, 0x4017ff) AM_RAM // Unused palette RAM
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
AM_RANGE(0x502000, 0x502fff) AM_RAM AM_SHARE("txvram_offs")
@@ -1298,7 +1298,7 @@ static ADDRESS_MAP_START( shippumd_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR")
AM_RANGE(0x21c03c, 0x21c03d) AM_READ(video_count_r)
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x401000, 0x4017ff) AM_RAM // Unused palette RAM
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
AM_RANGE(0x502000, 0x502fff) AM_RAM AM_SHARE("txvram_offs")
@@ -1320,7 +1320,7 @@ static ADDRESS_MAP_START( bgaregga_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR")
AM_RANGE(0x21c03c, 0x21c03d) AM_READ(video_count_r)
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
AM_RANGE(0x502000, 0x502fff) AM_RAM AM_SHARE("txvram_offs")
AM_RANGE(0x503000, 0x5031ff) AM_RAM_WRITE(toaplan2_txscrollram16_w) AM_SHARE("txscrollram16")
@@ -1333,7 +1333,7 @@ static ADDRESS_MAP_START( batrider_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
// actually 200000 - 20ffff is probably all main RAM, and the text and palette RAM are written via DMA
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
- AM_RANGE(0x202000, 0x202fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x202000, 0x202fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x203000, 0x2031ff) AM_RAM AM_SHARE("txvram_offs")
AM_RANGE(0x203200, 0x2033ff) AM_RAM_WRITE(toaplan2_txscrollram16_w) AM_SHARE("txscrollram16")
AM_RANGE(0x203400, 0x207fff) AM_RAM AM_SHARE("mainram16")
@@ -1363,7 +1363,7 @@ static ADDRESS_MAP_START( bbakraid_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
// actually 200000 - 20ffff is probably all main RAM, and the text and palette RAM are written via DMA
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
- AM_RANGE(0x202000, 0x202fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x202000, 0x202fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x203000, 0x2031ff) AM_RAM AM_SHARE("txvram_offs")
AM_RANGE(0x203200, 0x2033ff) AM_RAM_WRITE(toaplan2_txscrollram16_w) AM_SHARE("txscrollram16")
AM_RANGE(0x203400, 0x207fff) AM_RAM AM_SHARE("mainram16")
@@ -3135,10 +3135,12 @@ static MACHINE_CONFIG_START( tekipaki, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan2)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
@@ -3178,10 +3180,12 @@ static MACHINE_CONFIG_START( ghox, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan2)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
@@ -3265,13 +3269,16 @@ static MACHINE_CONFIG_START( dogyuun, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", t2dualvdp)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_DEVICE_ADD_VDP1
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
@@ -3313,10 +3320,12 @@ static MACHINE_CONFIG_START( kbash, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan2)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
@@ -3352,10 +3361,12 @@ static MACHINE_CONFIG_START( kbash2, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan2)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
@@ -3388,10 +3399,12 @@ static MACHINE_CONFIG_START( truxton2, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", truxton2)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,truxton2)
@@ -3445,10 +3458,12 @@ static MACHINE_CONFIG_START( pipibibs, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan2)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
@@ -3488,10 +3503,12 @@ static MACHINE_CONFIG_START( pipibibsbl, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan2)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
@@ -3566,10 +3583,12 @@ static MACHINE_CONFIG_START( fixeight, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", truxton2)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,truxton2)
@@ -3605,10 +3624,12 @@ static MACHINE_CONFIG_START( fixeightbl, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", fixeightbl)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,fixeightbl)
@@ -3644,10 +3665,12 @@ static MACHINE_CONFIG_START( vfive, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan2)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
@@ -3684,13 +3707,16 @@ static MACHINE_CONFIG_START( batsugun, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", t2dualvdp)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_DEVICE_ADD_VDP1
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
@@ -3723,10 +3749,12 @@ static MACHINE_CONFIG_START( pwrkick, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan2)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
@@ -3755,10 +3783,12 @@ static MACHINE_CONFIG_START( othldrby, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan2)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
@@ -3790,10 +3820,12 @@ static MACHINE_CONFIG_START( snowbro2, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", toaplan2)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
@@ -3835,10 +3867,12 @@ static MACHINE_CONFIG_START( mahoudai, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", raizing)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgaregga)
@@ -3880,10 +3914,12 @@ static MACHINE_CONFIG_START( shippumd, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", raizing)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgaregga)
@@ -3936,10 +3972,12 @@ static MACHINE_CONFIG_START( bgaregga, toaplan2_state )
MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE_ADD("gfxdecode", raizing)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgaregga)
@@ -3990,10 +4028,12 @@ static MACHINE_CONFIG_START( batrider, toaplan2_state )
MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
MCFG_GFXDECODE_ADD("gfxdecode", batrider)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,batrider)
@@ -4043,10 +4083,11 @@ static MACHINE_CONFIG_START( bbakraid, toaplan2_state )
MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
MCFG_GFXDECODE_ADD("gfxdecode", batrider)
- MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
-
+ MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD_VDP0
MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
+ MCFG_GP9001_VDP_PALETTE("palette")
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,batrider)
diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c
index 296851d5751..7ec94349bdc 100644
--- a/src/mame/drivers/toki.c
+++ b/src/mame/drivers/toki.c
@@ -90,7 +90,7 @@ static ADDRESS_MAP_START( toki_map, AS_PROGRAM, 16, toki_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x06d7ff) AM_RAM
AM_RANGE(0x06d800, 0x06dfff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x06e000, 0x06e7ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x06e000, 0x06e7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x06e800, 0x06efff) AM_RAM_WRITE(toki_background1_videoram16_w) AM_SHARE("bg1_vram16")
AM_RANGE(0x06f000, 0x06f7ff) AM_RAM_WRITE(toki_background2_videoram16_w) AM_SHARE("bg2_vram16")
AM_RANGE(0x06f800, 0x06ffff) AM_RAM_WRITE(toki_foreground_videoram16_w) AM_SHARE("videoram")
@@ -105,7 +105,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tokib_map, AS_PROGRAM, 16, toki_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x06dfff) AM_RAM
- AM_RANGE(0x06e000, 0x06e7ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x06e000, 0x06e7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x06e800, 0x06efff) AM_RAM_WRITE(toki_background1_videoram16_w) AM_SHARE("bg1_vram16")
AM_RANGE(0x06f000, 0x06f7ff) AM_RAM_WRITE(toki_background2_videoram16_w) AM_SHARE("bg2_vram16")
AM_RANGE(0x06f800, 0x06ffff) AM_RAM_WRITE(toki_foreground_videoram16_w) AM_SHARE("videoram")
@@ -429,8 +429,8 @@ static MACHINE_CONFIG_START( toki, toki_state ) /* KOYO 20.000MHz near the cpu *
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", toki)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
SEIBU_SOUND_SYSTEM_YM3812_RAIDEN_INTERFACE(XTAL_14_31818MHz/4,XTAL_12MHz/12) /* verifed on pcb */
@@ -458,8 +458,8 @@ static MACHINE_CONFIG_START( tokib, toki_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", tokib)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tokyocop.c b/src/mame/drivers/tokyocop.c
index d9811834263..59e50fcd139 100644
--- a/src/mame/drivers/tokyocop.c
+++ b/src/mame/drivers/tokyocop.c
@@ -74,7 +74,7 @@ static MACHINE_CONFIG_START( tokyocop, tokyocop_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tonton.c b/src/mame/drivers/tonton.c
index e27eb7c917c..e77741ce3a7 100644
--- a/src/mame/drivers/tonton.c
+++ b/src/mame/drivers/tonton.c
@@ -283,7 +283,7 @@ static MACHINE_CONFIG_START( tonton, tonton_state )
MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
MCFG_SCREEN_UPDATE_DEVICE("v9938", v9938_device, screen_update)
- MCFG_PALETTE_LENGTH(512)
+ MCFG_PALETTE_ADD("palette", 512)
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW )
diff --git a/src/mame/drivers/toobin.c b/src/mame/drivers/toobin.c
index 08295c596a3..fe75be190ce 100644
--- a/src/mame/drivers/toobin.c
+++ b/src/mame/drivers/toobin.c
@@ -218,7 +218,7 @@ static MACHINE_CONFIG_START( toobin, toobin_state )
MCFG_SCREEN_UPDATE_DRIVER(toobin_state, screen_update_toobin)
MCFG_GFXDECODE_ADD("gfxdecode", toobin)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_VIDEO_START_OVERRIDE(toobin_state,toobin)
diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c
index 4c061af9279..5fbcfa705e8 100644
--- a/src/mame/drivers/topspeed.c
+++ b/src/mame/drivers/topspeed.c
@@ -367,7 +367,7 @@ WRITE_LINE_MEMBER(topspeed_state::z80ctc_to0)
static ADDRESS_MAP_START( cpua_map, AS_PROGRAM, 16, topspeed_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("sharedram")
- AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x500000, 0x503fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x600002, 0x600003) AM_WRITE(cpua_ctrl_w)
AM_RANGE(0x7e0000, 0x7e0001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff)
AM_RANGE(0x7e0002, 0x7e0003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
@@ -623,8 +623,10 @@ static MACHINE_CONFIG_START( topspeed, topspeed_state )
MCFG_Z80CTC_ADD("ctc", XTAL_16MHz / 4, ctc_intf)
MCFG_PC080SN_ADD("pc080sn_1", pc080sn_intf)
MCFG_PC080SN_GFXDECODE("gfxdecode")
+ MCFG_PC080SN_PALETTE("palette")
MCFG_PC080SN_ADD("pc080sn_2", pc080sn_intf)
MCFG_PC080SN_GFXDECODE("gfxdecode")
+ MCFG_PC080SN_PALETTE("palette")
MCFG_TC0140SYT_ADD("tc0140syt", tc0140syt_intf)
MCFG_TC0220IOC_ADD("tc0220ioc", io_intf)
@@ -637,7 +639,8 @@ static MACHINE_CONFIG_START( topspeed, topspeed_state )
MCFG_SCREEN_UPDATE_DRIVER(topspeed_state, screen_update_topspeed)
MCFG_GFXDECODE_ADD("gfxdecode", topspeed)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
// sound hardware
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/tourtabl.c b/src/mame/drivers/tourtabl.c
index bbac3299acd..c6d89bdd804 100644
--- a/src/mame/drivers/tourtabl.c
+++ b/src/mame/drivers/tourtabl.c
@@ -187,7 +187,7 @@ static MACHINE_CONFIG_START( tourtabl, tourtabl_state )
MCFG_SCREEN_RAW_PARAMS( MASTER_CLOCK, 228, 34, 34 + 160, 262, 46, 46 + 200 )
MCFG_SCREEN_UPDATE_DEVICE("tia_video", tia_video_device, screen_update)
- MCFG_PALETTE_LENGTH(TIA_PALETTE_LENGTH)
+ MCFG_PALETTE_ADD("palette", TIA_PALETTE_LENGTH)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tourvis.c b/src/mame/drivers/tourvis.c
index aa1c75680a7..553bc4014a6 100644
--- a/src/mame/drivers/tourvis.c
+++ b/src/mame/drivers/tourvis.c
@@ -382,9 +382,9 @@ static MACHINE_CONFIG_START( tourvision, tourvision_state )
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242)
MCFG_SCREEN_UPDATE_STATIC( pce )
- /* MCFG_GFXDECODE_ADD("gfxdecode", pce_gfxdecodeinfo ) */
- MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT( vce )
+ /* MCFG_GFXDECODE_ADD("gfxdecode", pce_gfxdecodeinfo ) */
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_LEGACY( vce )
MCFG_VIDEO_START( pce )
diff --git a/src/mame/drivers/toypop.c b/src/mame/drivers/toypop.c
index 2b26de3aa40..e25cd1e3ba1 100644
--- a/src/mame/drivers/toypop.c
+++ b/src/mame/drivers/toypop.c
@@ -567,8 +567,8 @@ static MACHINE_CONFIG_START( liblrabl, toypop_state )
MCFG_SCREEN_UPDATE_DRIVER(toypop_state, screen_update_toypop)
MCFG_GFXDECODE_ADD("gfxdecode", toypop)
- MCFG_PALETTE_LENGTH(128*4+64*4+16*2)
-
+ MCFG_PALETTE_ADD("palette", 128*4+64*4+16*2)
+ MCFG_PALETTE_INIT_OWNER(toypop_state, toypop)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tp84.c b/src/mame/drivers/tp84.c
index 127bfbf9d25..cb6d573470a 100644
--- a/src/mame/drivers/tp84.c
+++ b/src/mame/drivers/tp84.c
@@ -310,8 +310,8 @@ static MACHINE_CONFIG_START( tp84, tp84_state )
MCFG_SCREEN_UPDATE_DRIVER(tp84_state, screen_update_tp84)
MCFG_GFXDECODE_ADD("gfxdecode", tp84)
- MCFG_PALETTE_LENGTH(4096)
-
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_INIT_OWNER(tp84_state, tp84)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c
index 4c31e9c6a84..1b113d2fcfa 100644
--- a/src/mame/drivers/trackfld.c
+++ b/src/mame/drivers/trackfld.c
@@ -910,9 +910,9 @@ static MACHINE_CONFIG_START( trackfld, trackfld_state )
MCFG_SCREEN_UPDATE_DRIVER(trackfld_state, screen_update_trackfld)
MCFG_GFXDECODE_ADD("gfxdecode", trackfld)
- MCFG_PALETTE_LENGTH(16*16+16*16)
+ MCFG_PALETTE_ADD("palette", 16*16+16*16)
- MCFG_PALETTE_INIT_OVERRIDE(trackfld_state,trackfld)
+ MCFG_PALETTE_INIT_OWNER(trackfld_state,trackfld)
MCFG_VIDEO_START_OVERRIDE(trackfld_state,trackfld)
/* sound hardware */
@@ -962,9 +962,9 @@ static MACHINE_CONFIG_START( yieartf, trackfld_state )
MCFG_SCREEN_UPDATE_DRIVER(trackfld_state, screen_update_trackfld)
MCFG_GFXDECODE_ADD("gfxdecode", trackfld)
- MCFG_PALETTE_LENGTH(16*16+16*16)
+ MCFG_PALETTE_ADD("palette", 16*16+16*16)
- MCFG_PALETTE_INIT_OVERRIDE(trackfld_state,trackfld)
+ MCFG_PALETTE_INIT_OWNER(trackfld_state,trackfld)
MCFG_VIDEO_START_OVERRIDE(trackfld_state,trackfld)
/* sound hardware */
diff --git a/src/mame/drivers/travrusa.c b/src/mame/drivers/travrusa.c
index 1c98be75ae1..758043de9c6 100644
--- a/src/mame/drivers/travrusa.c
+++ b/src/mame/drivers/travrusa.c
@@ -318,8 +318,8 @@ static MACHINE_CONFIG_START( travrusa, travrusa_state )
MCFG_GFXDECODE_ADD("gfxdecode", travrusa)
- MCFG_PALETTE_LENGTH(16*8+16*8)
-
+ MCFG_PALETTE_ADD("palette", 16*8+16*8)
+ MCFG_PALETTE_INIT_OWNER(travrusa_state, travrusa)
/* sound hardware */
MCFG_FRAGMENT_ADD(m52_sound_c_audio)
@@ -329,7 +329,8 @@ static MACHINE_CONFIG_DERIVED( shtrider, travrusa )
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", shtrider)
- MCFG_PALETTE_INIT_OVERRIDE(travrusa_state,shtrider)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(travrusa_state,shtrider)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/triforce.c b/src/mame/drivers/triforce.c
index f9f927966e3..c3dd21d8c01 100644
--- a/src/mame/drivers/triforce.c
+++ b/src/mame/drivers/triforce.c
@@ -535,7 +535,7 @@ static MACHINE_CONFIG_START( triforce_base, triforce_state )
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
MCFG_SCREEN_UPDATE_DRIVER(triforce_state, screen_update_triforce)
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD("palette", 65536)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c
index 3b103d1dbd5..bf4fbd87367 100644
--- a/src/mame/drivers/triplhnt.c
+++ b/src/mame/drivers/triplhnt.c
@@ -289,16 +289,16 @@ static GFXDECODE_START( triplhnt )
GFXDECODE_END
-void triplhnt_state::palette_init()
+PALETTE_INIT_MEMBER(triplhnt_state, triplhnt)
{
- palette_set_color(machine(), 0, rgb_t(0xAF, 0xAF, 0xAF)); /* sprites */
- palette_set_color(machine(), 1, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), 2, rgb_t(0xFF, 0xFF, 0xFF));
- palette_set_color(machine(), 3, rgb_t(0x50, 0x50, 0x50));
- palette_set_color(machine(), 4, rgb_t(0x00, 0x00, 0x00)); /* tiles */
- palette_set_color(machine(), 5, rgb_t(0x3F, 0x3F, 0x3F));
- palette_set_color(machine(), 6, rgb_t(0x00, 0x00, 0x00));
- palette_set_color(machine(), 7, rgb_t(0x3F, 0x3F, 0x3F));
+ palette.set_pen_color(0, rgb_t(0xAF, 0xAF, 0xAF)); /* sprites */
+ palette.set_pen_color(1, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(2, rgb_t(0xFF, 0xFF, 0xFF));
+ palette.set_pen_color(3, rgb_t(0x50, 0x50, 0x50));
+ palette.set_pen_color(4, rgb_t(0x00, 0x00, 0x00)); /* tiles */
+ palette.set_pen_color(5, rgb_t(0x3F, 0x3F, 0x3F));
+ palette.set_pen_color(6, rgb_t(0x00, 0x00, 0x00));
+ palette.set_pen_color(7, rgb_t(0x3F, 0x3F, 0x3F));
}
@@ -319,7 +319,8 @@ static MACHINE_CONFIG_START( triplhnt, triplhnt_state )
MCFG_SCREEN_UPDATE_DRIVER(triplhnt_state, screen_update_triplhnt)
MCFG_GFXDECODE_ADD("gfxdecode", triplhnt)
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(triplhnt_state, triplhnt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/truco.c b/src/mame/drivers/truco.c
index c5cdb33ba77..cc6677a2e2a 100644
--- a/src/mame/drivers/truco.c
+++ b/src/mame/drivers/truco.c
@@ -454,7 +454,8 @@ static MACHINE_CONFIG_START( truco, truco_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1)
MCFG_SCREEN_UPDATE_DRIVER(truco_state, screen_update_truco)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_INIT_OWNER(truco_state, truco)
MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf) /* Identified as UM6845 */
diff --git a/src/mame/drivers/trucocl.c b/src/mame/drivers/trucocl.c
index 9631a29ac40..d62255264fc 100644
--- a/src/mame/drivers/trucocl.c
+++ b/src/mame/drivers/trucocl.c
@@ -150,8 +150,8 @@ static MACHINE_CONFIG_START( trucocl, trucocl_state )
MCFG_SCREEN_UPDATE_DRIVER(trucocl_state, screen_update_trucocl)
MCFG_GFXDECODE_ADD("gfxdecode", trucocl)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(trucocl_state, trucocl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/trvmadns.c b/src/mame/drivers/trvmadns.c
index 47002e1d6b0..a067a1f81b7 100644
--- a/src/mame/drivers/trvmadns.c
+++ b/src/mame/drivers/trvmadns.c
@@ -207,7 +207,7 @@ WRITE8_MEMBER(trvmadns_state::trvmadns_palette_w)
r = (((datax & 0x0038)>>3) | ((datax & 0x0400)>>7)) ^ 0xf;
g = (((datax & 0x01c0)>>6) | ((datax & 0x0800)>>8)) ^ 0xf;
- palette_set_color_rgb(machine(), offset, pal4bit(r), pal4bit(g), pal4bit(b));
+ m_palette->set_pen_color(offset, pal4bit(r), pal4bit(g), pal4bit(b));
}
@@ -340,7 +340,7 @@ UINT32 trvmadns_state::screen_update_trvmadns(screen_device &screen, bitmap_ind1
int flipy = attr & 2;
if(!(attr & 0x20))
- gfx->opaque(bitmap,cliprect,tile,color,flipx,flipy,(x*8),(y*8));
+ gfx->opaque(m_palette,bitmap,cliprect,tile,color,flipx,flipy,(x*8),(y*8));
count++;
}
}
@@ -358,7 +358,7 @@ UINT32 trvmadns_state::screen_update_trvmadns(screen_device &screen, bitmap_ind1
int flipy = attr & 2;
if(attr & 0x20)
- gfx->transpen(bitmap,cliprect,tile,color,flipx,flipy,(x*8),(y*8),1);
+ gfx->transpen(m_palette,bitmap,cliprect,tile,color,flipx,flipy,(x*8),(y*8),1);
count++;
}
}
@@ -387,7 +387,7 @@ static MACHINE_CONFIG_START( trvmadns, trvmadns_state )
MCFG_SCREEN_UPDATE_DRIVER(trvmadns_state, screen_update_trvmadns)
MCFG_GFXDECODE_ADD("gfxdecode", trvmadns)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
/* sound hardware */
diff --git a/src/mame/drivers/tryout.c b/src/mame/drivers/tryout.c
index 762a2f17166..4490ad41ea1 100644
--- a/src/mame/drivers/tryout.c
+++ b/src/mame/drivers/tryout.c
@@ -203,8 +203,8 @@ static MACHINE_CONFIG_START( tryout, tryout_state )
MCFG_SCREEN_UPDATE_DRIVER(tryout_state, screen_update_tryout)
MCFG_GFXDECODE_ADD("gfxdecode", tryout)
- MCFG_PALETTE_LENGTH(0x20)
-
+ MCFG_PALETTE_ADD("palette", 0x20)
+ MCFG_PALETTE_INIT_OWNER(tryout_state, tryout)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tsamurai.c b/src/mame/drivers/tsamurai.c
index d813df7acf7..af389e57a22 100644
--- a/src/mame/drivers/tsamurai.c
+++ b/src/mame/drivers/tsamurai.c
@@ -697,9 +697,7 @@ static MACHINE_CONFIG_START( tsamurai, tsamurai_state )
MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_tsamurai)
MCFG_GFXDECODE_ADD("gfxdecode", tsamurai)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_VIDEO_START_OVERRIDE(tsamurai_state,tsamurai)
/* sound hardware */
@@ -737,9 +735,7 @@ static MACHINE_CONFIG_START( vsgongf, tsamurai_state )
MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_vsgongf)
MCFG_GFXDECODE_ADD("gfxdecode", tsamurai)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_VIDEO_START_OVERRIDE(tsamurai_state,vsgongf)
/* sound hardware */
@@ -781,9 +777,7 @@ static MACHINE_CONFIG_START( m660, tsamurai_state )
MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_tsamurai)
MCFG_GFXDECODE_ADD("gfxdecode", tsamurai)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
MCFG_VIDEO_START_OVERRIDE(tsamurai_state,tsamurai)
/* sound hardware */
diff --git a/src/mame/drivers/ttchamp.c b/src/mame/drivers/ttchamp.c
index 2d7fc58a83b..4603cc55a39 100644
--- a/src/mame/drivers/ttchamp.c
+++ b/src/mame/drivers/ttchamp.c
@@ -106,7 +106,7 @@ UINT32 ttchamp_state::screen_update_ttchamp(screen_device &screen, bitmap_ind16
// int i;
static const int xxx=320,yyy=204;
- bitmap.fill(get_black_pen(machine()));
+ bitmap.fill(m_palette->black_pen());
// for (i=0;i<256;i++)
// {
@@ -116,7 +116,7 @@ UINT32 ttchamp_state::screen_update_ttchamp(screen_device &screen, bitmap_ind16
// b = (dat>>10)&0x1f;
// g = (dat>>5)&0x1f;
// r = (dat>>0)&0x1f;
-// palette_set_color_rgb(machine(),i,pal5bit(r),pal5bit(g),pal5bit(b));
+// m_palette->set_pen_color(i,pal5bit(r),pal5bit(g),pal5bit(b));
// }
count=0;
@@ -154,7 +154,7 @@ WRITE16_MEMBER(ttchamp_state::pcup_prgbank_w)
WRITE16_MEMBER(ttchamp_state::paldat_w)
{
- palette_set_color_rgb(machine(),m_paloff & 0x7fff,pal5bit(data>>0),pal5bit(data>>5),pal5bit(data>>10));
+ m_palette->set_pen_color(m_paloff & 0x7fff,pal5bit(data>>0),pal5bit(data>>5),pal5bit(data>>10));
}
READ16_MEMBER(ttchamp_state::peno_rand)
@@ -291,7 +291,7 @@ static MACHINE_CONFIG_START( ttchamp, ttchamp_state )
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(ttchamp_state, screen_update_ttchamp)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c
index aeaf9a3d874..52ccfd7f4d0 100644
--- a/src/mame/drivers/tubep.c
+++ b/src/mame/drivers/tubep.c
@@ -928,9 +928,9 @@ static MACHINE_CONFIG_START( tubep, tubep_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(tubep_state, screen_update_tubep)
- MCFG_PALETTE_LENGTH(32 + 256*64)
+ MCFG_PALETTE_ADD("palette", 32 + 256*64)
- MCFG_PALETTE_INIT_OVERRIDE(tubep_state,tubep)
+ MCFG_PALETTE_INIT_OWNER(tubep_state,tubep)
MCFG_VIDEO_START_OVERRIDE(tubep_state,tubep)
MCFG_VIDEO_RESET_OVERRIDE(tubep_state,tubep)
@@ -988,9 +988,9 @@ static MACHINE_CONFIG_START( rjammer, tubep_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(tubep_state, screen_update_rjammer)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
- MCFG_PALETTE_INIT_OVERRIDE(tubep_state,rjammer)
+ MCFG_PALETTE_INIT_OWNER(tubep_state,rjammer)
MCFG_VIDEO_START_OVERRIDE(tubep_state,tubep)
MCFG_VIDEO_RESET_OVERRIDE(tubep_state,tubep)
diff --git a/src/mame/drivers/tugboat.c b/src/mame/drivers/tugboat.c
index edd9b3ee6d9..d1030566d4d 100644
--- a/src/mame/drivers/tugboat.c
+++ b/src/mame/drivers/tugboat.c
@@ -59,7 +59,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void machine_reset();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(tugboat);
UINT32 screen_update_tugboat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_tilemap(bitmap_ind16 &bitmap,const rectangle &cliprect,
int addr,int gfx0,int gfx1,int transparency);
@@ -86,12 +86,12 @@ void tugboat_state::video_start()
/* there isn't the usual resistor array anywhere near the color prom,
just four 1k resistors. */
-void tugboat_state::palette_init()
+PALETTE_INIT_MEMBER(tugboat_state, tugboat)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
- for (i = 0;i < machine().total_colors();i++)
+ for (i = 0;i < palette.entries();i++)
{
int r,g,b,brt;
@@ -101,7 +101,7 @@ void tugboat_state::palette_init()
g = brt * ((color_prom[i] >> 1) & 0x01);
b = brt * ((color_prom[i] >> 2) & 0x01);
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
}
}
@@ -152,7 +152,7 @@ void tugboat_state::draw_tilemap(bitmap_ind16 &bitmap,const rectangle &cliprect,
transpen = 1;
}
- m_gfxdecode->gfx(rgn)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(rgn)->transpen(m_palette,bitmap,cliprect,
code,
color,
0,0,
@@ -361,7 +361,8 @@ static MACHINE_CONFIG_START( tugboat, tugboat_state )
MCFG_SCREEN_UPDATE_DRIVER(tugboat_state, screen_update_tugboat)
MCFG_GFXDECODE_ADD("gfxdecode", tugboat)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(tugboat_state, tugboat)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tumbleb.c b/src/mame/drivers/tumbleb.c
index 13f72776bb5..92b5e579fcf 100644
--- a/src/mame/drivers/tumbleb.c
+++ b/src/mame/drivers/tumbleb.c
@@ -632,7 +632,7 @@ static ADDRESS_MAP_START( tumblepopb_main_map, AS_PROGRAM, 16, tumbleb_state )
#endif
AM_RANGE(0x100000, 0x100001) AM_READWRITE(tumblepb_prot_r, tumblepb_oki_w)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_SHARE("mainram")
- AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram") /* Bootleg sprite buffer */
AM_RANGE(0x160800, 0x160807) AM_WRITEONLY /* writes past the end of spriteram */
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
@@ -654,7 +654,7 @@ static ADDRESS_MAP_START( fncywld_main_map, AS_PROGRAM, 16, tumbleb_state )
#endif
AM_RANGE(0x100000, 0x100003) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x00ff)
AM_RANGE(0x100004, 0x100005) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x140fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram") /* sprites */
AM_RANGE(0x160800, 0x16080f) AM_WRITEONLY /* goes slightly past the end of spriteram? */
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
@@ -682,7 +682,7 @@ static ADDRESS_MAP_START( htchctch_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x100000, 0x100001) AM_WRITE(semicom_soundcmd_w)
AM_RANGE(0x100002, 0x100003) AM_WRITE(bcstory_tilebank_w)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_SHARE("mainram")
- AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x160000, 0x160fff) AM_RAM AM_SHARE("spriteram") /* Bootleg sprite buffer */
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
@@ -708,7 +708,7 @@ static ADDRESS_MAP_START( suprtrio_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0xa00000, 0xa0000f) AM_RAM AM_SHARE("control")
AM_RANGE(0xa20000, 0xa20fff) AM_RAM_WRITE(tumblepb_pf1_data_w) AM_SHARE("pf1_data")
AM_RANGE(0xa22000, 0xa22fff) AM_RAM_WRITE(tumblepb_pf2_data_w) AM_SHARE("pf2_data")
- AM_RANGE(0xcf0000, 0xcf05ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xcf0000, 0xcf05ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("PLAYERS") AM_WRITE(suprtrio_tilebank_w)
AM_RANGE(0xe40000, 0xe40001) AM_READ_PORT("SYSTEM")
AM_RANGE(0xe80002, 0xe80003) AM_READ_PORT("DSW")
@@ -719,7 +719,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pangpang_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_SHARE("mainram")
- AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram") /* Bootleg sprite buffer */
AM_RANGE(0x160800, 0x160807) AM_WRITEONLY // writes past the end of spriteram
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
@@ -775,7 +775,7 @@ static ADDRESS_MAP_START( jumpkids_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_WRITE(jumpkids_sound_w)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_SHARE("mainram")
- AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram") /* Bootleg sprite buffer */
AM_RANGE(0x160800, 0x160807) AM_WRITEONLY /* writes past the end of spriteram */
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
@@ -2062,9 +2062,11 @@ static MACHINE_CONFIG_START( tumblepb, tumbleb_state )
decospr_device::set_gfx_region(*device, 3);
decospr_device::set_is_bootleg(*device, true);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", tumbleb)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb)
@@ -2098,9 +2100,11 @@ static MACHINE_CONFIG_START( tumbleb2, tumbleb_state )
decospr_device::set_gfx_region(*device, 3);
decospr_device::set_is_bootleg(*device, true);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", tumbleb)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb)
@@ -2137,9 +2141,11 @@ static MACHINE_CONFIG_START( jumpkids, tumbleb_state )
decospr_device::set_gfx_region(*device, 3);
decospr_device::set_is_bootleg(*device, true);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", tumbleb)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb)
@@ -2173,9 +2179,11 @@ static MACHINE_CONFIG_START( fncywld, tumbleb_state )
decospr_device::set_is_bootleg(*device, true);
decospr_device::set_transpen(*device, 15);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", fncywld)
- MCFG_PALETTE_LENGTH(0x800)
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_VIDEO_START_OVERRIDE(tumbleb_state,fncywld)
@@ -2230,9 +2238,11 @@ static MACHINE_CONFIG_START( htchctch, tumbleb_state )
decospr_device::set_gfx_region(*device, 3);
decospr_device::set_is_bootleg(*device, true);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", tumbleb)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb)
@@ -2333,9 +2343,11 @@ static MACHINE_CONFIG_START( suprtrio, tumbleb_state )
decospr_device::set_gfx_region(*device, 3);
decospr_device::set_is_bootleg(*device, true);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", suprtrio)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(tumbleb_state,suprtrio)
@@ -2369,9 +2381,11 @@ static MACHINE_CONFIG_START( pangpang, tumbleb_state )
decospr_device::set_gfx_region(*device, 3);
decospr_device::set_is_bootleg(*device, true);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", tumbleb)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(tumbleb_state,pangpang)
@@ -3553,7 +3567,7 @@ DRIVER_INIT_MEMBER(tumbleb_state,chokchok)
DRIVER_INIT_CALL(htchctch);
/* different palette format, closer to tumblep -- is this controlled by a register? the palette was right with the hatch catch trojan */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x140000, 0x140fff, write16_delegate(FUNC(tumbleb_state::paletteram_xxxxBBBBGGGGRRRR_word_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x140000, 0x140fff, write16_delegate(FUNC(palette_device::write), m_palette.target()));
/* slightly different banking */
m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(FUNC(tumbleb_state::chokchok_tilebank_w),this));
diff --git a/src/mame/drivers/tumblep.c b/src/mame/drivers/tumblep.c
index 14a6ae9b6c5..5f89db3f409 100644
--- a/src/mame/drivers/tumblep.c
+++ b/src/mame/drivers/tumblep.c
@@ -112,7 +112,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tumblep_state )
#endif
AM_RANGE(0x100000, 0x100001) AM_WRITE(tumblep_sound_w)
AM_RANGE(0x120000, 0x123fff) AM_RAM
- AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepop_controls_r)
AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM AM_SHARE("spriteram")
@@ -305,14 +305,17 @@ static MACHINE_CONFIG_START( tumblep, tumblep_state )
MCFG_SCREEN_UPDATE_DRIVER(tumblep_state, screen_update_tumblep)
MCFG_GFXDECODE_ADD("gfxdecode", tumblep)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_DECO16IC_ADD("tilegen1", tumblep_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 2);
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
+ MCFG_DECO_SPRITE_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/tunhunt.c b/src/mame/drivers/tunhunt.c
index 13536241e9a..3873915250f 100644
--- a/src/mame/drivers/tunhunt.c
+++ b/src/mame/drivers/tunhunt.c
@@ -308,8 +308,8 @@ static MACHINE_CONFIG_START( tunhunt, tunhunt_state )
MCFG_SCREEN_UPDATE_DRIVER(tunhunt_state, screen_update_tunhunt)
MCFG_GFXDECODE_ADD("gfxdecode", tunhunt)
- MCFG_PALETTE_LENGTH(0x1a)
-
+ MCFG_PALETTE_ADD("palette", 0x1a)
+ MCFG_PALETTE_INIT_OWNER(tunhunt_state, tunhunt)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c
index 93137b4dc2e..269268739d3 100644
--- a/src/mame/drivers/turbo.c
+++ b/src/mame/drivers/turbo.c
@@ -941,13 +941,13 @@ static MACHINE_CONFIG_START( turbo, turbo_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_GFXDECODE_ADD("gfxdecode", turbo)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(turbo_state,turbo)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_turbo)
- MCFG_PALETTE_INIT_OVERRIDE(turbo_state,turbo)
MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo)
/* sound hardware */
@@ -970,13 +970,13 @@ static MACHINE_CONFIG_START( subroc3d, turbo_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_GFXDECODE_ADD("gfxdecode", turbo)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(turbo_state,subroc3d)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_subroc3d)
- MCFG_PALETTE_INIT_OVERRIDE(turbo_state,subroc3d)
MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo)
/* sound hardware */
@@ -1006,13 +1006,13 @@ static MACHINE_CONFIG_START( buckrog, turbo_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_GFXDECODE_ADD("gfxdecode", turbo)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_OWNER(turbo_state,buckrog)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_buckrog)
- MCFG_PALETTE_INIT_OVERRIDE(turbo_state,buckrog)
MCFG_VIDEO_START_OVERRIDE(turbo_state,buckrog)
/* sound hardware */
diff --git a/src/mame/drivers/turrett.c b/src/mame/drivers/turrett.c
index 8caf3646dd3..987c630fa47 100644
--- a/src/mame/drivers/turrett.c
+++ b/src/mame/drivers/turrett.c
@@ -365,8 +365,9 @@ static MACHINE_CONFIG_START( turrett, turrett_state )
// to ensure in-sync streaming sound
MCFG_SCREEN_RAW_PARAMS(4000000, 512, 0, 336, 259, 0, 244)
MCFG_SCREEN_UPDATE_DRIVER(turrett_state, screen_update)
- MCFG_PALETTE_LENGTH(32768)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB)
+ //MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
+
+ MCFG_PALETTE_ADD("palette", 0x2000)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c
index 628fc9ec8a0..07804274ec8 100644
--- a/src/mame/drivers/twin16.c
+++ b/src/mame/drivers/twin16.c
@@ -671,7 +671,6 @@ static MACHINE_CONFIG_START( twin16, twin16_state )
MCFG_MACHINE_RESET_OVERRIDE(twin16_state,twin16)
// video hardware
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
@@ -680,7 +679,9 @@ static MACHINE_CONFIG_START( twin16, twin16_state )
MCFG_SCREEN_VBLANK_DRIVER(twin16_state, screen_eof_twin16)
MCFG_GFXDECODE_ADD("gfxdecode", twin16)
- MCFG_PALETTE_LENGTH(0x400)
+
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_VIDEO_START_OVERRIDE(twin16_state,twin16)
@@ -722,7 +723,6 @@ static MACHINE_CONFIG_START( fround, twin16_state )
MCFG_MACHINE_RESET_OVERRIDE(twin16_state,twin16)
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
@@ -731,7 +731,9 @@ static MACHINE_CONFIG_START( fround, twin16_state )
MCFG_SCREEN_VBLANK_DRIVER(twin16_state, screen_eof_twin16)
MCFG_GFXDECODE_ADD("gfxdecode", twin16)
- MCFG_PALETTE_LENGTH(0x400)
+
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_VIDEO_START_OVERRIDE(twin16_state,twin16)
diff --git a/src/mame/drivers/twincobr.c b/src/mame/drivers/twincobr.c
index d6fa5a4b78a..34fc21a18cd 100644
--- a/src/mame/drivers/twincobr.c
+++ b/src/mame/drivers/twincobr.c
@@ -393,7 +393,7 @@ static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 16, twincobr_state )
AM_RANGE(0x000000, 0x02ffff) AM_ROM
AM_RANGE(0x030000, 0x033fff) AM_RAM /* 68K and DSP shared RAM */
AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("spriteram16")
- AM_RANGE(0x050000, 0x050dff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x050000, 0x050dff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x060000, 0x060001) AM_DEVWRITE8("crtc", mc6845_device, address_w, 0x00ff)
AM_RANGE(0x060002, 0x060003) AM_DEVWRITE8("crtc", mc6845_device, register_w, 0x00ff)
AM_RANGE(0x070000, 0x070003) AM_WRITE(twincobr_txscroll_w) /* text layer scroll */
@@ -704,7 +704,8 @@ static MACHINE_CONFIG_START( twincobr, twincobr_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", twincobr)
- MCFG_PALETTE_LENGTH(1792)
+ MCFG_PALETTE_ADD("palette", 1792)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(twincobr_state,toaplan0)
diff --git a/src/mame/drivers/twins.c b/src/mame/drivers/twins.c
index 5545a2f6bec..96e356b8feb 100644
--- a/src/mame/drivers/twins.c
+++ b/src/mame/drivers/twins.c
@@ -128,7 +128,7 @@ UINT32 twins_state::screen_update_twins(screen_device &screen, bitmap_ind16 &bit
int i;
static const int xxx=320,yyy=204;
- bitmap.fill(get_black_pen(machine()));
+ bitmap.fill(m_palette->black_pen());
for (i=0;i<0x100;i++)
{
@@ -144,7 +144,7 @@ UINT32 twins_state::screen_update_twins(screen_device &screen, bitmap_ind16 &bit
b = (dat>>10) & 0x1f;
b = BITSWAP8(b,7,6,5,0,1,2,3,4);
- palette_set_color_rgb(machine(),i, pal5bit(r),pal5bit(g),pal5bit(b));
+ m_palette->set_pen_color(i, pal5bit(r),pal5bit(g),pal5bit(b));
}
count=0;
@@ -207,7 +207,7 @@ static MACHINE_CONFIG_START( twins, twins_state )
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_twins)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
MCFG_VIDEO_START_OVERRIDE(twins_state,twins)
@@ -234,7 +234,7 @@ UINT32 twins_state::screen_update_twinsa(screen_device &screen, bitmap_ind16 &bi
int i;
static const int xxx=320,yyy=204;
- bitmap.fill(get_black_pen(machine()));
+ bitmap.fill(m_palette->black_pen());
for (i=0;i<0x1000-3;i+=3)
{
@@ -243,7 +243,7 @@ UINT32 twins_state::screen_update_twinsa(screen_device &screen, bitmap_ind16 &bi
g = m_paletteram[i+1];
b = m_paletteram[i+2];
- palette_set_color_rgb(machine(),i/3, pal6bit(r), pal6bit(g), pal6bit(b));
+ m_palette->set_pen_color(i/3, pal6bit(r), pal6bit(g), pal6bit(b));
}
count=0;
@@ -296,7 +296,7 @@ static MACHINE_CONFIG_START( twinsa, twins_state )
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_twinsa)
- MCFG_PALETTE_LENGTH(0x1000)
+ MCFG_PALETTE_ADD("palette", 0x1000)
MCFG_VIDEO_START_OVERRIDE(twins_state,twinsa)
diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c
index 612eef81715..af4dadb0b76 100644
--- a/src/mame/drivers/tx1.c
+++ b/src/mame/drivers/tx1.c
@@ -708,8 +708,8 @@ static MACHINE_CONFIG_START( tx1, tx1_state )
MCFG_I8255A_ADD("ppi8255", tx1_ppi8255_intf)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(tx1_state,tx1)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(tx1_state,tx1)
MCFG_DEFAULT_LAYOUT(layout_triphsxs)
@@ -776,8 +776,8 @@ static MACHINE_CONFIG_START( buggyboy, tx1_state )
MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_right)
MCFG_SCREEN_VBLANK_DRIVER(tx1_state, screen_eof_buggyboy)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(tx1_state,buggyboy)
MCFG_VIDEO_START_OVERRIDE(tx1_state,buggyboy)
MCFG_SPEAKER_STANDARD_STEREO("frontleft", "frontright")
@@ -818,8 +818,8 @@ static MACHINE_CONFIG_START( buggybjr, tx1_state )
MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggybjr)
MCFG_SCREEN_VBLANK_DRIVER(tx1_state, screen_eof_buggyboy)
- MCFG_PALETTE_LENGTH(256)
- MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(tx1_state,buggyboy)
MCFG_VIDEO_START_OVERRIDE(tx1_state,buggybjr)
MCFG_SPEAKER_STANDARD_STEREO("frontleft", "frontright")
diff --git a/src/mame/drivers/uapce.c b/src/mame/drivers/uapce.c
index 6fa53a12798..9900d483bda 100644
--- a/src/mame/drivers/uapce.c
+++ b/src/mame/drivers/uapce.c
@@ -324,9 +324,9 @@ static MACHINE_CONFIG_START( uapce, uapce_state )
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242)
MCFG_SCREEN_UPDATE_STATIC( pce )
- /* MCFG_GFXDECODE_ADD("gfxdecode", pce_gfxdecodeinfo ) */
- MCFG_PALETTE_LENGTH(1024)
- MCFG_PALETTE_INIT( vce )
+ /* MCFG_GFXDECODE_ADD("gfxdecode", pce_gfxdecodeinfo ) */
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_INIT_LEGACY( vce )
MCFG_VIDEO_START( pce )
diff --git a/src/mame/drivers/ultraman.c b/src/mame/drivers/ultraman.c
index 33ccac3a30b..07fa81ff4d1 100644
--- a/src/mame/drivers/ultraman.c
+++ b/src/mame/drivers/ultraman.c
@@ -32,7 +32,7 @@ WRITE16_MEMBER(ultraman_state::sound_irq_trigger_w)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, ultraman_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM
- AM_RANGE(0x180000, 0x183fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")/* Palette */
+ AM_RANGE(0x180000, 0x183fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* Palette */
AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x1c0002, 0x1c0003) AM_READ_PORT("P1")
AM_RANGE(0x1c0004, 0x1c0005) AM_READ_PORT("P2")
@@ -217,8 +217,6 @@ static MACHINE_CONFIG_START( ultraman, ultraman_state )
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@@ -226,21 +224,27 @@ static MACHINE_CONFIG_START( ultraman, ultraman_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(ultraman_state, screen_update_ultraman)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K051960_ADD("k051960", ultraman_k051960_intf)
MCFG_K051960_GFXDECODE("gfxdecode")
+ MCFG_K051960_PALETTE("palette")
MCFG_K051316_ADD("k051316_1", ultraman_k051316_intf_0)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
MCFG_K051316_ADD("k051316_2", ultraman_k051316_intf_1)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
MCFG_K051316_ADD("k051316_3", ultraman_k051316_intf_2)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c
index 9c3589cf4d4..c88ac988791 100644
--- a/src/mame/drivers/ultratnk.c
+++ b/src/mame/drivers/ultratnk.c
@@ -314,8 +314,8 @@ static MACHINE_CONFIG_START( ultratnk, ultratnk_state )
MCFG_SCREEN_VBLANK_DRIVER(ultratnk_state, screen_eof_ultratnk)
MCFG_GFXDECODE_ADD("gfxdecode", ultratnk)
- MCFG_PALETTE_LENGTH(10)
-
+ MCFG_PALETTE_ADD("palette", 10)
+ MCFG_PALETTE_INIT_OWNER(ultratnk_state, ultratnk)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ultrsprt.c b/src/mame/drivers/ultrsprt.c
index 77622508550..000fb46bcbd 100644
--- a/src/mame/drivers/ultrsprt.c
+++ b/src/mame/drivers/ultrsprt.c
@@ -81,8 +81,8 @@ WRITE32_MEMBER(ultrsprt_state::palette_w)
COMBINE_DATA(&m_generic_paletteram_32[offset]);
data = m_generic_paletteram_32[offset];
- palette_set_color(machine(), (offset*2)+0, rgb_t(pal5bit(data >> 26), pal5bit(data >> 21), pal5bit(data >> 16)));
- palette_set_color(machine(), (offset*2)+1, rgb_t(pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)));
+ m_palette->set_pen_color((offset*2)+0, rgb_t(pal5bit(data >> 26), pal5bit(data >> 21), pal5bit(data >> 16)));
+ m_palette->set_pen_color((offset*2)+1, rgb_t(pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)));
}
@@ -239,7 +239,7 @@ static MACHINE_CONFIG_START( ultrsprt, ultrsprt_state )
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399)
MCFG_SCREEN_UPDATE_DRIVER(ultrsprt_state, screen_update_ultrsprt)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
/* sound hardware */
MCFG_K056800_ADD("k056800", XTAL_18_432MHz)
diff --git a/src/mame/drivers/umipoker.c b/src/mame/drivers/umipoker.c
index e45cb8bf2f5..1d8d1b81024 100644
--- a/src/mame/drivers/umipoker.c
+++ b/src/mame/drivers/umipoker.c
@@ -145,7 +145,7 @@ UINT32 umipoker_state::screen_update_umipoker(screen_device &screen, bitmap_ind1
m_tilemap_2->set_scrolly(0, m_umipoker_scrolly[2]);
m_tilemap_3->set_scrolly(0, m_umipoker_scrolly[3]);
- bitmap.fill(get_black_pen(machine()), cliprect);
+ bitmap.fill(m_palette->black_pen(), cliprect);
m_tilemap_0->draw(screen, bitmap, cliprect, 0,0);
m_tilemap_1->draw(screen, bitmap, cliprect, 0,0);
@@ -312,7 +312,7 @@ static ADDRESS_MAP_START( umipoker_map, AS_PROGRAM, 16, umipoker_state )
ADDRESS_MAP_UNMAP_LOW
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x400000, 0x403fff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x600000, 0x6007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(umipoker_vram_0_w) AM_SHARE("vra0")
AM_RANGE(0x802000, 0x803fff) AM_RAM_WRITE(umipoker_vram_1_w) AM_SHARE("vra1")
AM_RANGE(0x804000, 0x805fff) AM_RAM_WRITE(umipoker_vram_2_w) AM_SHARE("vra2")
@@ -679,7 +679,8 @@ static MACHINE_CONFIG_START( umipoker, umipoker_state )
MCFG_GFXDECODE_ADD("gfxdecode", umipoker)
- MCFG_PALETTE_LENGTH(0x400)
+ MCFG_PALETTE_ADD("palette", 0x400)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c
index cd0a5fa91c2..b228c3e0d74 100644
--- a/src/mame/drivers/undrfire.c
+++ b/src/mame/drivers/undrfire.c
@@ -216,7 +216,7 @@ WRITE32_MEMBER(undrfire_state::color_ram_w)
g = (a & 0xff00) >> 8;
b = (a & 0xff);
- palette_set_color(machine(),offset,rgb_t(r,g,b));
+ m_palette->set_pen_color(offset,rgb_t(r,g,b));
}
}
@@ -733,7 +733,7 @@ static MACHINE_CONFIG_START( undrfire, undrfire_state )
MCFG_SCREEN_UPDATE_DRIVER(undrfire_state, screen_update_undrfire)
MCFG_GFXDECODE_ADD("gfxdecode", undrfire)
- MCFG_PALETTE_LENGTH(16384)
+ MCFG_PALETTE_ADD("palette", 16384)
MCFG_TC0100SCN_ADD("tc0100scn", undrfire_tc0100scn_intf)
@@ -770,7 +770,7 @@ static MACHINE_CONFIG_START( cbombers, undrfire_state )
MCFG_SCREEN_UPDATE_DRIVER(undrfire_state, screen_update_cbombers)
MCFG_GFXDECODE_ADD("gfxdecode", cbombers)
- MCFG_PALETTE_LENGTH(16384)
+ MCFG_PALETTE_ADD("palette", 16384)
MCFG_TC0100SCN_ADD("tc0100scn", undrfire_tc0100scn_intf)
diff --git a/src/mame/drivers/unico.c b/src/mame/drivers/unico.c
index c62ee5d6fd1..1b51c2051d4 100644
--- a/src/mame/drivers/unico.c
+++ b/src/mame/drivers/unico.c
@@ -583,7 +583,7 @@ static MACHINE_CONFIG_START( burglarx, unico_state )
MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico)
MCFG_GFXDECODE_ADD("gfxdecode", unico)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_VIDEO_START_OVERRIDE(unico_state,unico)
@@ -628,7 +628,7 @@ static MACHINE_CONFIG_START( zeropnt, unico_state )
MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico)
MCFG_GFXDECODE_ADD("gfxdecode", unico)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_VIDEO_START_OVERRIDE(unico_state,unico)
@@ -670,7 +670,7 @@ static MACHINE_CONFIG_START( zeropnt2, unico_state )
MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico)
MCFG_GFXDECODE_ADD("gfxdecode", unico)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_VIDEO_START_OVERRIDE(unico_state,unico)
diff --git a/src/mame/drivers/unkhorse.c b/src/mame/drivers/unkhorse.c
index 37bb6dd5753..d901f86a4f3 100644
--- a/src/mame/drivers/unkhorse.c
+++ b/src/mame/drivers/unkhorse.c
@@ -41,7 +41,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();
+ DECLARE_PALETTE_INIT(horse);
UINT32 screen_update_horse(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(horse_interrupt);
required_device<cpu_device> m_maincpu;
@@ -55,11 +55,11 @@ public:
***************************************************************************/
-void horse_state::palette_init()
+PALETTE_INIT_MEMBER(horse_state, horse)
{
// 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_pen_color(i, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
}
UINT32 horse_state::screen_update_horse(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -220,7 +220,8 @@ static MACHINE_CONFIG_START( horse, horse_state )
MCFG_SCREEN_UPDATE_DRIVER(horse_state, screen_update_horse)
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(horse_state, horse)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/upscope.c b/src/mame/drivers/upscope.c
index 075ee623542..5fdb9292e81 100644
--- a/src/mame/drivers/upscope.c
+++ b/src/mame/drivers/upscope.c
@@ -327,8 +327,8 @@ static MACHINE_CONFIG_START( upscope, upscope_state )
MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1)
MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga)
- MCFG_PALETTE_LENGTH(4096)
- MCFG_PALETTE_INIT_OVERRIDE(upscope_state,amiga)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_INIT_OWNER(upscope_state,amiga)
MCFG_VIDEO_START_OVERRIDE(upscope_state,amiga)
diff --git a/src/mame/drivers/usgames.c b/src/mame/drivers/usgames.c
index f5872f7abf5..cde8a96ea83 100644
--- a/src/mame/drivers/usgames.c
+++ b/src/mame/drivers/usgames.c
@@ -246,8 +246,8 @@ static MACHINE_CONFIG_START( usg32, usgames_state )
MCFG_SCREEN_UPDATE_DRIVER(usgames_state, screen_update_usgames)
MCFG_GFXDECODE_ADD("gfxdecode", usgames)
- MCFG_PALETTE_LENGTH(2*256)
-
+ MCFG_PALETTE_ADD("palette", 2*256)
+ MCFG_PALETTE_INIT_OWNER(usgames_state, usgames)
MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL_18MHz / 16, mc6845_intf)
diff --git a/src/mame/drivers/vamphalf.c b/src/mame/drivers/vamphalf.c
index 970bcd978de..19f6bb93f65 100644
--- a/src/mame/drivers/vamphalf.c
+++ b/src/mame/drivers/vamphalf.c
@@ -252,10 +252,10 @@ WRITE32_MEMBER(vamphalf_state::paletteram32_w)
COMBINE_DATA(&m_generic_paletteram_32[offset]);
paldata = m_generic_paletteram_32[offset] & 0xffff;
- palette_set_color_rgb(machine(), offset*2 + 1, pal5bit(paldata >> 10), pal5bit(paldata >> 5), pal5bit(paldata >> 0));
+ m_palette->set_pen_color(offset*2 + 1, pal5bit(paldata >> 10), pal5bit(paldata >> 5), pal5bit(paldata >> 0));
paldata = (m_generic_paletteram_32[offset] >> 16) & 0xffff;
- palette_set_color_rgb(machine(), offset*2 + 0, pal5bit(paldata >> 10), pal5bit(paldata >> 5), pal5bit(paldata >> 0));
+ m_palette->set_pen_color(offset*2 + 0, pal5bit(paldata >> 10), pal5bit(paldata >> 5), pal5bit(paldata >> 0));
}
READ32_MEMBER(vamphalf_state::wyvernwg_prot_r)
@@ -412,7 +412,7 @@ WRITE8_MEMBER( vamphalf_state::qs1000_p3_w )
static ADDRESS_MAP_START( common_map, AS_PROGRAM, 16, vamphalf_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("wram")
AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_SHARE("tiles")
- AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("user1",0)
ADDRESS_MAP_END
@@ -666,7 +666,7 @@ static void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap)
y = 256 - y;
}
- gfx->transpen(bitmap,clip,code,color,fx,fy,x,y,0);
+ gfx->transpen(state->m_palette,bitmap,clip,code,color,fx,fy,x,y,0);
}
}
}
@@ -727,7 +727,7 @@ static void draw_sprites_aoh(screen_device &screen, bitmap_ind16 &bitmap)
y = 256 - y;
}
- gfx->transpen(bitmap,clip,code,color,fx,fy,x,y,0);
+ gfx->transpen(state->m_palette,bitmap,clip,code,color,fx,fy,x,y,0);
}
}
}
@@ -997,7 +997,8 @@ static MACHINE_CONFIG_START( common, vamphalf_state )
MCFG_SCREEN_VISIBLE_AREA(31, 350, 16, 251)
MCFG_SCREEN_UPDATE_DRIVER(vamphalf_state, screen_update_common)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_GFXDECODE_ADD("gfxdecode", vamphalf)
MACHINE_CONFIG_END
@@ -1128,7 +1129,8 @@ static MACHINE_CONFIG_START( aoh, vamphalf_state )
MCFG_SCREEN_VISIBLE_AREA(64, 511-64, 16, 255-16)
MCFG_SCREEN_UPDATE_DRIVER(vamphalf_state, screen_update_aoh)
- MCFG_PALETTE_LENGTH(0x8000)
+ MCFG_PALETTE_ADD("palette", 0x8000)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_GFXDECODE_ADD("gfxdecode", vamphalf)
/* sound hardware */
diff --git a/src/mame/drivers/vaportra.c b/src/mame/drivers/vaportra.c
index 6f19b786aa9..238e49e983c 100644
--- a/src/mame/drivers/vaportra.c
+++ b/src/mame/drivers/vaportra.c
@@ -256,18 +256,21 @@ static MACHINE_CONFIG_START( vaportra, vaportra_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(vaportra_state, screen_update_vaportra)
MCFG_GFXDECODE_ADD("gfxdecode", vaportra)
- MCFG_PALETTE_LENGTH(1280)
+ MCFG_PALETTE_ADD("palette", 1280)
MCFG_DECO16IC_ADD("tilegen1", vaportra_deco16ic_tilegen1_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DECO16IC_ADD("tilegen2", vaportra_deco16ic_tilegen2_intf)
MCFG_DECO16IC_GFXDECODE("gfxdecode")
+ MCFG_DECO16IC_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
deco_mxc06_device::set_gfx_region(*device, 4);
MCFG_DECO_MXC06_GFXDECODE("gfxdecode")
+ MCFG_DECO_MXC06_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/vastar.c b/src/mame/drivers/vastar.c
index be3eff79e09..a6150e82c4d 100644
--- a/src/mame/drivers/vastar.c
+++ b/src/mame/drivers/vastar.c
@@ -444,9 +444,7 @@ static MACHINE_CONFIG_START( vastar, vastar_state )
MCFG_SCREEN_UPDATE_DRIVER(vastar_state, screen_update_vastar)
MCFG_GFXDECODE_ADD("gfxdecode", vastar)
- MCFG_PALETTE_LENGTH(256)
-
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c
index 7b700a682ba..2ebaa3ea7ac 100644
--- a/src/mame/drivers/vball.c
+++ b/src/mame/drivers/vball.c
@@ -410,7 +410,7 @@ static MACHINE_CONFIG_START( vball, vball_state )
MCFG_SCREEN_UPDATE_DRIVER(vball_state, screen_update_vb)
MCFG_GFXDECODE_ADD("gfxdecode", vb)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
diff --git a/src/mame/drivers/vega.c b/src/mame/drivers/vega.c
index f16957ae4f4..817230ff65d 100644
--- a/src/mame/drivers/vega.c
+++ b/src/mame/drivers/vega.c
@@ -157,7 +157,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(vega);
UINT32 screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -481,13 +481,13 @@ INPUT_PORTS_END
-void vega_state::palette_init()
+PALETTE_INIT_MEMBER(vega_state, vega)
{
int i;
for(i=0;i<8;++i)
{
- palette_set_color( machine(),2*i, rgb_t(0x00, 0x00, 0x00) );
- palette_set_color( machine(),2*i+1, rgb_t( (i&1)?0xff:0x00, (i&2)?0xff:0x00, (i&4)?0xff:0x00) );
+ palette.set_pen_color( 2*i, rgb_t(0x00, 0x00, 0x00) );
+ palette.set_pen_color( 2*i+1, rgb_t( (i&1)?0xff:0x00, (i&2)?0xff:0x00, (i&4)?0xff:0x00) );
}
}
@@ -531,7 +531,7 @@ static void draw_tilemap(vega_state *state, screen_device& screen, bitmap_ind16&
{
//for(int x=0;x<4;++x)
{
- state->m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, num, 0, 1,flip?1:0, x*4+x0-offset_x, (flip?(3-y):y)*8+y0-offset_y, 0);
+ state->m_gfxdecode->gfx(1)->transpen(state->m_palette,bitmap,cliprect, num, 0, 1,flip?1:0, x*4+x0-offset_x, (flip?(3-y):y)*8+y0-offset_y, 0);
++num;
}
}
@@ -580,7 +580,7 @@ UINT32 vega_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitma
// if(color==0) color=0xf;
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, character, color, 0, 0, x*7, y*10,0);
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, character, color, 0, 0, x*7, y*10,0);
++idx;
}
@@ -601,7 +601,7 @@ UINT32 vega_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitma
{
//for(int x=0;x<4;++x)
{
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, num, 0, 1, flip?1:0, x*4+x0, (flip?(3-y):y)*8+y0, 0);
+ m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, num, 0, 1, flip?1:0, x*4+x0, (flip?(3-y):y)*8+y0, 0);
++num;
}
}
@@ -641,7 +641,7 @@ UINT32 vega_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitma
for(int y=0;y<4;++y)
{
- m_gfxdecode->gfx(3)->transpen(bitmap,cliprect, strip_num, 0, !xor_line, 0, x*4+x0, y*8+y0, 0);
+ m_gfxdecode->gfx(3)->transpen(m_palette,bitmap,cliprect, strip_num, 0, !xor_line, 0, x*4+x0, y*8+y0, 0);
++strip_num;
}
}
@@ -851,7 +851,8 @@ static MACHINE_CONFIG_START( vega, vega_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 280, 0*8, 239)
MCFG_SCREEN_UPDATE_DRIVER(vega_state, screen_update_vega)
- MCFG_PALETTE_LENGTH(0x100)
+ MCFG_PALETTE_ADD("palette", 0x100)
+ MCFG_PALETTE_INIT_OWNER(vega_state, vega)
MCFG_GFXDECODE_ADD("gfxdecode", test_decode)
diff --git a/src/mame/drivers/vegaeo.c b/src/mame/drivers/vegaeo.c
index dbd8f54824f..32dce9a789c 100644
--- a/src/mame/drivers/vegaeo.c
+++ b/src/mame/drivers/vegaeo.c
@@ -113,7 +113,7 @@ WRITE32_MEMBER(vegaeo_state::vega_palette_w)
COMBINE_DATA(&m_generic_paletteram_32[offset]);
paldata = m_generic_paletteram_32[offset] & 0x7fff;
- palette_set_color_rgb(machine(), offset, pal5bit(paldata >> 10), pal5bit(paldata >> 5), pal5bit(paldata >> 0));
+ m_palette->set_pen_color(offset, pal5bit(paldata >> 10), pal5bit(paldata >> 5), pal5bit(paldata >> 0));
}
WRITE32_MEMBER(vegaeo_state::vega_misc_w)
@@ -261,7 +261,7 @@ static MACHINE_CONFIG_START( vega, vegaeo_state )
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(vegaeo_state, screen_update_vega)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
MCFG_VIDEO_START_OVERRIDE(vegaeo_state,vega)
diff --git a/src/mame/drivers/vendetta.c b/src/mame/drivers/vendetta.c
index 510b181491a..bd68fc18da0 100644
--- a/src/mame/drivers/vendetta.c
+++ b/src/mame/drivers/vendetta.c
@@ -154,7 +154,7 @@ void vendetta_state::vendetta_video_banking( int select )
if (select & 1)
{
space.install_read_bank(m_video_banking_base + 0x2000, m_video_banking_base + 0x2fff, "bank4" );
- space.install_write_handler(m_video_banking_base + 0x2000, m_video_banking_base + 0x2fff, write8_delegate(FUNC(vendetta_state::paletteram_xBBBBBGGGGGRRRRR_byte_be_w), this) );
+ space.install_write_handler(m_video_banking_base + 0x2000, m_video_banking_base + 0x2fff, write8_delegate(FUNC(palette_device::write), m_palette.target()) );
space.install_readwrite_handler(m_video_banking_base + 0x0000, m_video_banking_base + 0x0fff, read8_delegate(FUNC(k053247_device::k053247_r), (k053247_device*)m_k053246), write8_delegate(FUNC(k053247_device::k053247_w), (k053247_device*)m_k053246) );
membank("bank4")->set_base(m_generic_paletteram_8);
}
@@ -490,8 +490,6 @@ static MACHINE_CONFIG_START( vendetta, vendetta_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.17) /* measured on PCB */
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@@ -499,13 +497,17 @@ static MACHINE_CONFIG_START( vendetta, vendetta_state )
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(vendetta_state, screen_update_vendetta)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", vendetta_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K053246_ADD("k053246", vendetta_k053246_intf)
MCFG_K053246_GFXDECODE("gfxdecode")
+ MCFG_K053246_PALETTE("palette")
MCFG_K053251_ADD("k053251")
MCFG_K054000_ADD("k054000")
@@ -536,9 +538,11 @@ static MACHINE_CONFIG_DERIVED( esckids, vendetta )
MCFG_DEVICE_REMOVE("k052109")
MCFG_K052109_ADD("k052109", esckids_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_DEVICE_REMOVE("k053246")
MCFG_K053246_ADD("k053246", esckids_k053246_intf)
MCFG_K053246_GFXDECODE("gfxdecode")
+ MCFG_K053246_PALETTE("palette")
MCFG_K053252_ADD("k053252", 6000000, esckids_k053252_intf)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/victory.c b/src/mame/drivers/victory.c
index ab847f9292b..953d8d5114c 100644
--- a/src/mame/drivers/victory.c
+++ b/src/mame/drivers/victory.c
@@ -228,7 +228,7 @@ static MACHINE_CONFIG_START( victory, victory_state )
MCFG_SCREEN_RAW_PARAMS(VICTORY_PIXEL_CLOCK, VICTORY_HTOTAL, VICTORY_HBEND, VICTORY_HBSTART, VICTORY_VTOTAL, VICTORY_VBEND, VICTORY_VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(victory_state, screen_update_victory)
- MCFG_PALETTE_LENGTH(64)
+ MCFG_PALETTE_ADD("palette", 64)
/* audio hardware */
diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c
index 448a2ce34db..5c71f97b788 100644
--- a/src/mame/drivers/videopin.c
+++ b/src/mame/drivers/videopin.c
@@ -343,9 +343,8 @@ static MACHINE_CONFIG_START( videopin, videopin_state )
MCFG_SCREEN_UPDATE_DRIVER(videopin_state, screen_update_videopin)
MCFG_GFXDECODE_ADD("gfxdecode", videopin)
- MCFG_PALETTE_LENGTH(2)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c
index 40ed3403b65..18ab48e062f 100644
--- a/src/mame/drivers/videopkr.c
+++ b/src/mame/drivers/videopkr.c
@@ -363,7 +363,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void machine_start();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(videopkr);
DECLARE_VIDEO_START(vidadcba);
DECLARE_PALETTE_INIT(babypkr);
DECLARE_PALETTE_INIT(fortune1);
@@ -418,12 +418,12 @@ static void count_7dig(unsigned long data, UINT8 index)
}
}
-void videopkr_state::palette_init()
+PALETTE_INIT_MEMBER(videopkr_state, videopkr)
{
const UINT8 *color_prom = memregion("proms")->base();
int j;
- for (j = 0; j < machine().total_colors(); j++)
+ for (j = 0; j < palette.entries(); j++)
{
int r, g, b, tr, tg, tb, i;
@@ -441,7 +441,7 @@ void videopkr_state::palette_init()
tb = 0xf0 - (0xf0 * ((color_prom[j] >> 2) & 0x01));
b = tb - (i * (tb / 5));
- palette_set_color(machine(), j, rgb_t(r, g, b));
+ palette.set_pen_color(j, rgb_t(r, g, b));
}
}
@@ -450,7 +450,7 @@ PALETTE_INIT_MEMBER(videopkr_state,babypkr)
const UINT8 *color_prom = memregion("proms")->base();
int j;
- for (j = 0; j < machine().total_colors(); j++)
+ for (j = 0; j < palette.entries(); j++)
{
int r, g, b, tr, tg, tb, i, top;
@@ -472,7 +472,7 @@ PALETTE_INIT_MEMBER(videopkr_state,babypkr)
tb = 0xdf * ((color_prom[j] >> 2) & 0x01);
b = top - ((tb * top) / 0x100);
- palette_set_color(machine(), j, rgb_t(r, g, b));
+ palette.set_pen_color(j, rgb_t(r, g, b));
}
}
@@ -481,7 +481,7 @@ PALETTE_INIT_MEMBER(videopkr_state,fortune1)
const UINT8 *color_prom = memregion("proms")->base();
int j;
- for (j = 0; j < machine().total_colors(); j++)
+ for (j = 0; j < palette.entries(); j++)
{
int r, g, b, tr, tg, tb, i, c;
@@ -505,7 +505,7 @@ PALETTE_INIT_MEMBER(videopkr_state,fortune1)
if ((c % 4) == 1 || (c % 4) == 2)
c = ((int)(c / 4) * 4) + (3 - (c % 4));
- palette_set_color(machine(), c, rgb_t(r, g, b));
+ palette.set_pen_color(c, rgb_t(r, g, b));
}
}
@@ -1264,7 +1264,8 @@ static MACHINE_CONFIG_START( videopkr, videopkr_state )
MCFG_SCREEN_UPDATE_DRIVER(videopkr_state, screen_update_videopkr)
MCFG_GFXDECODE_ADD("gfxdecode", videopkr)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(videopkr_state, videopkr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1315,7 +1316,8 @@ 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_OVERRIDE(videopkr_state,babypkr)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(videopkr_state,babypkr)
MCFG_GFXDECODE_MODIFY("gfxdecode", videodad)
MCFG_VIDEO_START_OVERRIDE(videopkr_state,vidadcba)
@@ -1330,7 +1332,8 @@ static MACHINE_CONFIG_DERIVED( fortune1, videopkr )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_CLOCK(CPU_CLOCK_ALT)
- MCFG_PALETTE_INIT_OVERRIDE(videopkr_state,fortune1)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(videopkr_state,fortune1)
MACHINE_CONFIG_END
/*************************
diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c
index c590edeab66..7f833460d85 100644
--- a/src/mame/drivers/vigilant.c
+++ b/src/mame/drivers/vigilant.c
@@ -490,7 +490,7 @@ static MACHINE_CONFIG_START( vigilant, vigilant_state )
MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant)
MCFG_GFXDECODE_ADD("gfxdecode", vigilant)
- MCFG_PALETTE_LENGTH(512+32) /* 512 real palette, 32 virtual palette */
+ MCFG_PALETTE_ADD("palette", 512+32) /* 512 real palette, 32 virtual palette */
/* sound hardware */
@@ -530,7 +530,7 @@ static MACHINE_CONFIG_START( buccanrs, vigilant_state )
MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant)
MCFG_GFXDECODE_ADD("gfxdecode", buccanrs)
- MCFG_PALETTE_LENGTH(512+32) /* 512 real palette, 32 virtual palette */
+ MCFG_PALETTE_ADD("palette", 512+32) /* 512 real palette, 32 virtual palette */
/* sound hardware */
@@ -587,7 +587,7 @@ static MACHINE_CONFIG_START( kikcubic, vigilant_state )
MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_kikcubic)
MCFG_GFXDECODE_ADD("gfxdecode", kikcubic)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
/* sound hardware */
diff --git a/src/mame/drivers/vindictr.c b/src/mame/drivers/vindictr.c
index defef0cc49c..a6eb0d3dbb6 100644
--- a/src/mame/drivers/vindictr.c
+++ b/src/mame/drivers/vindictr.c
@@ -191,7 +191,7 @@ static MACHINE_CONFIG_START( vindictr, vindictr_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", vindictr)
- MCFG_PALETTE_LENGTH(2048*8)
+ MCFG_PALETTE_ADD("palette", 2048*8)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, vindictr_state, get_playfield_tile_info, 8,8, SCAN_COLS, 64,64)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, vindictr_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0)
diff --git a/src/mame/drivers/viper.c b/src/mame/drivers/viper.c
index 2980f2c0bc1..b571cdbb2d2 100644
--- a/src/mame/drivers/viper.c
+++ b/src/mame/drivers/viper.c
@@ -2063,11 +2063,10 @@ static MACHINE_CONFIG_START( viper, viper_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(1024, 768)
MCFG_SCREEN_VISIBLE_AREA(0, 1023, 0, 383)
-
- MCFG_PALETTE_LENGTH(65536)
-
MCFG_SCREEN_UPDATE_DRIVER(viper_state, screen_update_viper)
+ MCFG_PALETTE_ADD("palette", 65536)
+
MCFG_TIMER_ADD_NONE("ds2430_timer2")
/* sound hardware */
diff --git a/src/mame/drivers/vlc.c b/src/mame/drivers/vlc.c
index 8ab405851e1..cb2aa7ff8e2 100644
--- a/src/mame/drivers/vlc.c
+++ b/src/mame/drivers/vlc.c
@@ -179,7 +179,7 @@ public:
tilemap_t *m_bg_tilemap;
virtual void video_start();
UINT32 screen_update_nevada(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(nevada);
DECLARE_WRITE_LINE_MEMBER(duart18_irq_handler);
DECLARE_WRITE_LINE_MEMBER(duart39_irq_handler);
@@ -311,7 +311,7 @@ UINT32 nevada_state::screen_update_nevada(screen_device &screen, bitmap_ind16 &b
}
/***************************************************************************/
-void nevada_state::palette_init()
+PALETTE_INIT_MEMBER(nevada_state, nevada)
{
// Palette init
}
@@ -632,7 +632,8 @@ static MACHINE_CONFIG_START( nevada, nevada_state )
MCFG_SCREEN_UPDATE_DRIVER(nevada_state, screen_update_nevada)
MCFG_GFXDECODE_ADD("gfxdecode", nevada)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(nevada_state, nevada)
MCFG_MC6845_ADD("crtc", MC6845, "screen", MC6845_CLOCK, mc6845_intf)
diff --git a/src/mame/drivers/volfied.c b/src/mame/drivers/volfied.c
index 1d78d909c4a..f0306c4556f 100644
--- a/src/mame/drivers/volfied.c
+++ b/src/mame/drivers/volfied.c
@@ -66,7 +66,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, volfied_state )
AM_RANGE(0x100000, 0x103fff) AM_RAM /* main */
AM_RANGE(0x200000, 0x203fff) AM_DEVREADWRITE("pc090oj", pc090oj_device, word_r, word_w)
AM_RANGE(0x400000, 0x47ffff) AM_READWRITE(volfied_video_ram_r, volfied_video_ram_w)
- AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x500000, 0x503fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x600000, 0x600001) AM_WRITE(volfied_video_mask_w)
AM_RANGE(0x700000, 0x700001) AM_WRITE(volfied_sprite_ctrl_w)
AM_RANGE(0xd00000, 0xd00001) AM_READWRITE(volfied_video_ctrl_r, volfied_video_ctrl_w)
@@ -267,11 +267,12 @@ static MACHINE_CONFIG_START( volfied, volfied_state )
MCFG_SCREEN_UPDATE_DRIVER(volfied_state, screen_update_volfied)
MCFG_GFXDECODE_ADD("gfxdecode", volfied)
- MCFG_PALETTE_LENGTH(8192)
-
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_PC090OJ_ADD("pc090oj", volfied_pc090oj_intf)
MCFG_PC090OJ_GFXDECODE("gfxdecode")
+ MCFG_PC090OJ_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/vp101.c b/src/mame/drivers/vp101.c
index 18b87144790..fc5e735cd20 100644
--- a/src/mame/drivers/vp101.c
+++ b/src/mame/drivers/vp101.c
@@ -92,7 +92,7 @@ static MACHINE_CONFIG_START( vp101, vp10x_state )
MCFG_SCREEN_UPDATE_DRIVER(vp10x_state, screen_update)
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_PALETTE_LENGTH(32768)
+ MCFG_PALETTE_ADD("palette", 32768)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/vpoker.c b/src/mame/drivers/vpoker.c
index 30b16428740..136eb4ac6cf 100644
--- a/src/mame/drivers/vpoker.c
+++ b/src/mame/drivers/vpoker.c
@@ -128,7 +128,7 @@ public:
DECLARE_WRITE8_MEMBER(blitter_w);
DECLARE_WRITE_LINE_MEMBER(ptm_irq);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(vpoker);
UINT32 screen_update_vpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -154,7 +154,7 @@ UINT32 vpoker_state::screen_update_vpoker(screen_device &screen, bitmap_ind16 &b
{
int tile = videoram[count];
//int colour = tile>>12;
- gfx->opaque(bitmap,cliprect,tile,0,0,0,x*16,y*16);
+ gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*16,y*16);
count++;
}
@@ -630,7 +630,7 @@ static GFXDECODE_START( vpoker )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 )
GFXDECODE_END
-void vpoker_state::palette_init()
+PALETTE_INIT_MEMBER(vpoker_state, vpoker)
{
int i;
@@ -640,7 +640,7 @@ void vpoker_state::palette_init()
color = rgb_t(pal1bit((i & 4) >> 2),pal1bit(i & 1),pal1bit((i & 2) >> 1));
- palette_set_color(machine(), i, color);
+ palette.set_pen_color(i, color);
}
}
@@ -674,8 +674,8 @@ static MACHINE_CONFIG_START( vpoker, vpoker_state )
MCFG_SCREEN_UPDATE_DRIVER(vpoker_state, screen_update_vpoker)
MCFG_GFXDECODE_ADD("gfxdecode", vpoker)
- MCFG_PALETTE_LENGTH(8)
-
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(vpoker_state, vpoker)
/* 6840 PTM */
MCFG_PTM6840_ADD("6840ptm", ptm_intf)
diff --git a/src/mame/drivers/vroulet.c b/src/mame/drivers/vroulet.c
index 59ace9a3d0e..b333a055d92 100644
--- a/src/mame/drivers/vroulet.c
+++ b/src/mame/drivers/vroulet.c
@@ -88,7 +88,7 @@ WRITE8_MEMBER(vroulet_state::vroulet_paletteram_w)
{
a=m_generic_paletteram_8[((i*8+j)*2)&0xff ];
b=m_generic_paletteram_8[((i*8+j)*2+1)&0xff ];
- palette_set_color_rgb(machine(),i*16+j,pal4bit(b),pal4bit(b>>4),pal4bit(a));
+ m_palette->set_pen_color(i*16+j,pal4bit(b),pal4bit(b>>4),pal4bit(a));
}
}
}
@@ -123,7 +123,7 @@ void vroulet_state::video_start()
UINT32 vroulet_state::screen_update_vroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, 0x320, 1, 0, 0,
+ m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, 0x320, 1, 0, 0,
m_ball[1], m_ball[0] - 12, 0);
return 0;
}
@@ -309,7 +309,7 @@ static MACHINE_CONFIG_START( vroulet, vroulet_state )
MCFG_SCREEN_UPDATE_DRIVER(vroulet_state, screen_update_vroulet)
MCFG_GFXDECODE_ADD("gfxdecode", vroulet)
- MCFG_PALETTE_LENGTH(128*4)
+ MCFG_PALETTE_ADD("palette", 128*4)
// sound hardware
diff --git a/src/mame/drivers/vsnes.c b/src/mame/drivers/vsnes.c
index 02f22ea1390..8a52b4a7880 100644
--- a/src/mame/drivers/vsnes.c
+++ b/src/mame/drivers/vsnes.c
@@ -1722,9 +1722,9 @@ static MACHINE_CONFIG_START( vsnes, vsnes_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(vsnes_state, screen_update_vsnes)
- MCFG_PALETTE_LENGTH(8*4*16)
+ MCFG_PALETTE_ADD("palette", 8*4*16)
- MCFG_PALETTE_INIT_OVERRIDE(vsnes_state,vsnes)
+ MCFG_PALETTE_INIT_OWNER(vsnes_state,vsnes)
MCFG_VIDEO_START_OVERRIDE(vsnes_state,vsnes)
MCFG_PPU2C04_ADD("ppu1", vsnes_ppu_interface_1)
@@ -1787,7 +1787,9 @@ static MACHINE_CONFIG_START( vsdual, vsnes_state )
MCFG_MACHINE_START_OVERRIDE(vsnes_state,vsdual)
/* video hardware */
- MCFG_PALETTE_LENGTH(2*8*4*16)
+ MCFG_PALETTE_ADD("palette", 2*8*4*16)
+ MCFG_PALETTE_INIT_OWNER(vsnes_state,vsdual)
+
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
MCFG_SCREEN_ADD("screen1", RASTER)
@@ -1802,7 +1804,6 @@ static MACHINE_CONFIG_START( vsdual, vsnes_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(vsnes_state, screen_update_vsnes_bottom)
- MCFG_PALETTE_INIT_OVERRIDE(vsnes_state,vsdual)
MCFG_VIDEO_START_OVERRIDE(vsnes_state,vsdual)
MCFG_PPU2C04_ADD("ppu1", vsnes_ppu_interface_1)
@@ -1853,9 +1854,9 @@ static MACHINE_CONFIG_START( vsnes_bootleg, vsnes_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(vsnes_state, screen_update_vsnes)
- MCFG_PALETTE_LENGTH(8*4*16)
+ MCFG_PALETTE_ADD("palette", 8*4*16)
- MCFG_PALETTE_INIT_OVERRIDE(vsnes_state,vsnes)
+ MCFG_PALETTE_INIT_OWNER(vsnes_state,vsnes)
MCFG_VIDEO_START_OVERRIDE(vsnes_state,vsnes)
MCFG_PPU2C04_ADD("ppu1", vsnes_ppu_interface_1)
diff --git a/src/mame/drivers/vulgus.c b/src/mame/drivers/vulgus.c
index d198a0c4d05..276b8a52e31 100644
--- a/src/mame/drivers/vulgus.c
+++ b/src/mame/drivers/vulgus.c
@@ -228,8 +228,9 @@ static MACHINE_CONFIG_START( vulgus, vulgus_state )
MCFG_SCREEN_UPDATE_DRIVER(vulgus_state, screen_update_vulgus)
MCFG_GFXDECODE_ADD("gfxdecode", vulgus)
- MCFG_PALETTE_LENGTH(64*4+16*16+4*32*8)
+ MCFG_PALETTE_ADD("palette", 64*4+16*16+4*32*8)
+ MCFG_PALETTE_INIT_OWNER(vulgus_state, vulgus)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/wallc.c b/src/mame/drivers/wallc.c
index 493d9464ca5..cf7764a2d4b 100644
--- a/src/mame/drivers/wallc.c
+++ b/src/mame/drivers/wallc.c
@@ -71,7 +71,7 @@ public:
DECLARE_DRIVER_INIT(sidam);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(wallc);
UINT32 screen_update_wallc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -103,7 +103,7 @@ public:
***************************************************************************/
-void wallc_state::palette_init()
+PALETTE_INIT_MEMBER(wallc_state, wallc)
{
const UINT8 *color_prom = memregion("proms")->base();
int i;
@@ -117,7 +117,7 @@ void wallc_state::palette_init()
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 < palette.entries();i++)
{
int bit0,bit1,bit7,r,g,b;
@@ -137,7 +137,7 @@ void wallc_state::palette_init()
bit7 = (color_prom[i] >> 7) & 0x01;
b = combine_3_weights(weights_b, bit7, bit1, bit0);
- palette_set_color(machine(),i,rgb_t(r,g,b));
+ palette.set_pen_color(i,rgb_t(r,g,b));
}
}
@@ -318,8 +318,8 @@ static MACHINE_CONFIG_START( wallc, wallc_state )
MCFG_SCREEN_UPDATE_DRIVER(wallc_state, screen_update_wallc)
MCFG_GFXDECODE_ADD("gfxdecode", wallc)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(wallc_state, wallc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/wardner.c b/src/mame/drivers/wardner.c
index 0048690cf44..408bba1c3f0 100644
--- a/src/mame/drivers/wardner.c
+++ b/src/mame/drivers/wardner.c
@@ -189,7 +189,7 @@ static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 8, wardner_state )
AM_RANGE(0x8000, 0xffff) AM_READ(wardner_bank_r) /* Overlapped RAM/Banked ROM */
AM_RANGE(0x8000, 0x8fff) AM_WRITE(wardner_sprite_w) AM_SHARE("spriteram8")
AM_RANGE(0x9000, 0x9fff) AM_ROM
- AM_RANGE(0xa000, 0xafff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_le_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa000, 0xafff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xb000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("rambase_c000") /* Shared RAM with Sound Z80 */
AM_RANGE(0xc800, 0xffff) AM_ROM
@@ -417,7 +417,8 @@ static MACHINE_CONFIG_START( wardner, wardner_state )
MCFG_SCREEN_VBLANK_DEVICE("spriteram8", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE_ADD("gfxdecode", wardner)
- MCFG_PALETTE_LENGTH(1792)
+ MCFG_PALETTE_ADD("palette", 1792)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_VIDEO_START_OVERRIDE(wardner_state,toaplan0)
diff --git a/src/mame/drivers/warpsped.c b/src/mame/drivers/warpsped.c
index 9ef90fb296e..7a0c788de7a 100644
--- a/src/mame/drivers/warpsped.c
+++ b/src/mame/drivers/warpsped.c
@@ -107,7 +107,7 @@ public:
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();
+ DECLARE_PALETTE_INIT(warpspeed);
UINT32 screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -291,16 +291,16 @@ static GFXDECODE_START( warpspeed )
GFXDECODE_ENTRY( "gfx2", 0, warpspeed_charlayout, 0, 1 )
GFXDECODE_END
-void warpspeed_state::palette_init()
+PALETTE_INIT_MEMBER(warpspeed_state, warpspeed)
{
// tilemaps
- palette_set_color(machine(),0,rgb_t::black); /* black */
- palette_set_color(machine(),1,rgb_t::white); /* white */
+ palette.set_pen_color(0,rgb_t::black); /* black */
+ palette.set_pen_color(1,rgb_t::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_pen_color(2 + i, 0xff*BIT(i,0), 0xff*BIT(i,1), 0xff*BIT(i,2));
}
}
@@ -322,7 +322,8 @@ static MACHINE_CONFIG_START( warpspeed, warpspeed_state )
MCFG_SCREEN_UPDATE_DRIVER(warpspeed_state, screen_update_warpspeed)
MCFG_GFXDECODE_ADD("gfxdecode", warpspeed)
- MCFG_PALETTE_LENGTH(2+8)
+ MCFG_PALETTE_ADD("palette", 2+8)
+ MCFG_PALETTE_INIT_OWNER(warpspeed_state, warpspeed)
MACHINE_CONFIG_END
ROM_START( warpsped )
diff --git a/src/mame/drivers/warpwarp.c b/src/mame/drivers/warpwarp.c
index b53209f6cab..6aaff3307ad 100644
--- a/src/mame/drivers/warpwarp.c
+++ b/src/mame/drivers/warpwarp.c
@@ -734,9 +734,9 @@ static MACHINE_CONFIG_START( geebee, warpwarp_state )
MCFG_SCREEN_UPDATE_DRIVER(warpwarp_state, screen_update_geebee)
MCFG_GFXDECODE_ADD("gfxdecode", 1k)
- MCFG_PALETTE_LENGTH(4*2)
+ MCFG_PALETTE_ADD("palette", 4*2)
- MCFG_PALETTE_INIT_OVERRIDE(warpwarp_state,geebee)
+ MCFG_PALETTE_INIT_OWNER(warpwarp_state,geebee)
MCFG_VIDEO_START_OVERRIDE(warpwarp_state,geebee)
/* sound hardware */
@@ -750,9 +750,10 @@ static MACHINE_CONFIG_DERIVED( navarone, geebee )
/* basic machine hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", 2k)
- MCFG_PALETTE_LENGTH(2*2)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 2*2)
- MCFG_PALETTE_INIT_OVERRIDE(warpwarp_state,navarone)
+ MCFG_PALETTE_INIT_OWNER(warpwarp_state,navarone)
MCFG_VIDEO_START_OVERRIDE(warpwarp_state,navarone)
MACHINE_CONFIG_END
@@ -769,9 +770,9 @@ static MACHINE_CONFIG_START( bombbee, warpwarp_state )
MCFG_SCREEN_UPDATE_DRIVER(warpwarp_state, screen_update_geebee)
MCFG_GFXDECODE_ADD("gfxdecode", color)
- MCFG_PALETTE_LENGTH(2*256+1)
-
- MCFG_PALETTE_INIT_OVERRIDE(warpwarp_state,warpwarp)
+
+ MCFG_PALETTE_ADD("palette", 2*256+1)
+ MCFG_PALETTE_INIT_OWNER(warpwarp_state,warpwarp)
MCFG_VIDEO_START_OVERRIDE(warpwarp_state,warpwarp)
/* sound hardware */
diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c
index 40e8607980f..1a8317abe02 100644
--- a/src/mame/drivers/warriorb.c
+++ b/src/mame/drivers/warriorb.c
@@ -520,7 +520,7 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", warriorb)
- MCFG_PALETTE_LENGTH(4096*2)
+ MCFG_PALETTE_ADD("palette", 4096*2)
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
MCFG_SCREEN_ADD("lscreen", RASTER)
@@ -543,7 +543,9 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state )
MCFG_TC0100SCN_ADD("tc0100scn_2", darius2d_tc0100scn_intf_r)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr_1", darius2d_tc0110pcr_intf_l)
+ MCFG_TC0110PCR_PALETTE("palette")
MCFG_TC0110PCR_ADD("tc0110pcr_2", darius2d_tc0110pcr_intf_r)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -585,7 +587,7 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", warriorb)
- MCFG_PALETTE_LENGTH(4096*2)
+ MCFG_PALETTE_ADD("palette", 4096*2)
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
MCFG_SCREEN_ADD("lscreen", RASTER)
@@ -608,7 +610,9 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state )
MCFG_TC0100SCN_ADD("tc0100scn_2", warriorb_tc0100scn_intf_r)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
MCFG_TC0110PCR_ADD("tc0110pcr_1", darius2d_tc0110pcr_intf_l)
+ MCFG_TC0110PCR_PALETTE("palette")
MCFG_TC0110PCR_ADD("tc0110pcr_2", darius2d_tc0110pcr_intf_r)
+ MCFG_TC0110PCR_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/wc90.c b/src/mame/drivers/wc90.c
index 095cf1fb315..944354cb50f 100644
--- a/src/mame/drivers/wc90.c
+++ b/src/mame/drivers/wc90.c
@@ -144,7 +144,7 @@ static ADDRESS_MAP_START( wc90_map_2, AS_PROGRAM, 8, wc90_state )
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xd800, 0xdfff) AM_RAM
- AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2")
AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xfc00, 0xfc00) AM_WRITE(wc90_bankswitch1_w)
@@ -326,7 +326,8 @@ static MACHINE_CONFIG_START( wc90, wc90_state )
MCFG_SCREEN_UPDATE_DRIVER(wc90_state, screen_update_wc90)
MCFG_GFXDECODE_ADD("gfxdecode", wc90)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
/* sound hardware */
diff --git a/src/mame/drivers/wc90b.c b/src/mame/drivers/wc90b.c
index 533097ec70a..fc222884be6 100644
--- a/src/mame/drivers/wc90b.c
+++ b/src/mame/drivers/wc90b.c
@@ -164,7 +164,7 @@ static ADDRESS_MAP_START( wc90b_map2, AS_PROGRAM, 8, wc90b_state )
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xd800, 0xdfff) AM_RAM
- AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xe800, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2")
AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1")
@@ -378,8 +378,8 @@ static MACHINE_CONFIG_START( wc90b, wc90b_state )
MCFG_SCREEN_UPDATE_DRIVER(wc90b_state, screen_update_wc90b)
MCFG_GFXDECODE_ADD("gfxdecode", wc90b)
- MCFG_PALETTE_LENGTH(1024)
-
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c
index fba161d4fea..bd094b02c76 100644
--- a/src/mame/drivers/wecleman.c
+++ b/src/mame/drivers/wecleman.c
@@ -1066,7 +1066,7 @@ static MACHINE_CONFIG_START( wecleman, wecleman_state )
MCFG_GFXDECODE_ADD("gfxdecode", wecleman)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_VIDEO_START_OVERRIDE(wecleman_state,wecleman)
@@ -1117,7 +1117,7 @@ MACHINE_RESET_MEMBER(wecleman_state,hotchase)
for(i=0;i<0x2000/2;i++)
{
m_generic_paletteram_16[i] = 0xffff;
- palette_set_color_rgb(machine(),i,0xff,0xff,0xff);
+ m_palette->set_pen_color(i,0xff,0xff,0xff);
}
}
@@ -1149,15 +1149,17 @@ static MACHINE_CONFIG_START( hotchase, wecleman_state )
MCFG_SCREEN_UPDATE_DRIVER(wecleman_state, screen_update_hotchase)
MCFG_GFXDECODE_ADD("gfxdecode", hotchase)
- MCFG_PALETTE_LENGTH(2048*2)
+ MCFG_PALETTE_ADD("palette", 2048*2)
MCFG_VIDEO_START_OVERRIDE(wecleman_state,hotchase)
MCFG_K051316_ADD("k051316_1", hotchase_k051316_intf_0)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
MCFG_K051316_ADD("k051316_2", hotchase_k051316_intf_1)
MCFG_K051316_GFXDECODE("gfxdecode")
+ MCFG_K051316_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c
index 9f42b9bb327..7b56b94caba 100644
--- a/src/mame/drivers/welltris.c
+++ b/src/mame/drivers/welltris.c
@@ -356,7 +356,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, welltris_state )
AM_RANGE(0xff8000, 0xffbfff) AM_RAM /* work */
AM_RANGE(0xffc000, 0xffc3ff) AM_RAM AM_SHARE("spriteram") /* Sprite */
AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(welltris_charvideoram_w) AM_SHARE("charvideoram") /* Char */
- AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") /* Palette */
+ AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("P1") /* Bottom Controls */
AM_RANGE(0xfff000, 0xfff001) AM_WRITE(welltris_palette_bank_w)
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("P2") /* Top Controls */
@@ -714,12 +714,14 @@ static MACHINE_CONFIG_START( welltris, welltris_state )
MCFG_SCREEN_UPDATE_DRIVER(welltris_state, screen_update_welltris)
MCFG_GFXDECODE_ADD("gfxdecode", welltris)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
MCFG_VSYSTEM_SPR2_SET_GFXREGION(1)
MCFG_VSYSTEM_SPR2_SET_PRITYPE(-1)
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
+ MCFG_VSYSTEM_SPR2_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c
index 5c2f15201f5..89eb23f3d16 100644
--- a/src/mame/drivers/wgp.c
+++ b/src/mame/drivers/wgp.c
@@ -644,7 +644,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wgp_state )
AM_RANGE(0x502000, 0x517fff) AM_READWRITE(wgp_pivram_word_r, wgp_pivram_word_w) AM_SHARE("pivram") /* piv tilemaps */
AM_RANGE(0x520000, 0x52001f) AM_READWRITE(wgp_piv_ctrl_word_r, wgp_piv_ctrl_word_w) AM_SHARE("piv_ctrlram")
AM_RANGE(0x600000, 0x600003) AM_WRITE(rotate_port_w) /* rotation control ? */
- AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 16 /* LAN areas not mapped... */, wgp_state )
@@ -990,8 +990,8 @@ static MACHINE_CONFIG_START( wgp, wgp_state )
MCFG_SCREEN_UPDATE_DRIVER(wgp_state, screen_update_wgp)
MCFG_GFXDECODE_ADD("gfxdecode", wgp)
- MCFG_PALETTE_LENGTH(4096)
-
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_TC0100SCN_ADD("tc0100scn", wgp_tc0100scn_intf)
MCFG_TC0100SCN_GFXDECODE("gfxdecode")
diff --git a/src/mame/drivers/wheelfir.c b/src/mame/drivers/wheelfir.c
index 4d502129003..906b5357b02 100644
--- a/src/mame/drivers/wheelfir.c
+++ b/src/mame/drivers/wheelfir.c
@@ -239,7 +239,7 @@ public:
INT32 *m_zoom_table;
UINT16 *m_blitter_data;
- UINT8 *m_palette;
+ UINT8 *m_palette_ptr;
INT32 m_palpos;
INT32 m_current_scanline;
@@ -616,16 +616,16 @@ WRITE16_MEMBER(wheelfir_state::pal_reset_pos_w)
WRITE16_MEMBER(wheelfir_state::pal_data_w)
{
int color=m_palpos/3;
- m_palette[m_palpos] = data & 0xff;
+ m_palette_ptr[m_palpos] = data & 0xff;
++m_palpos;
m_palpos %=NUM_COLORS*3;
{
- int r = m_palette[color*3];
- int g = m_palette[color*3+1];
- int b = m_palette[color*3+2];
- palette_set_color(machine(), color, rgb_t(r,g,b));
+ int r = m_palette_ptr[color*3];
+ int g = m_palette_ptr[color*3+1];
+ int b = m_palette_ptr[color*3+2];
+ m_palette->set_pen_color(color, rgb_t(r,g,b));
}
}
@@ -767,7 +767,7 @@ void wheelfir_state::machine_start()
m_blitter_data = auto_alloc_array(machine(), UINT16, 16);
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);
+ m_palette_ptr = auto_alloc_array(machine(), UINT8, NUM_COLORS*3);
for(int i=0;i<(ZOOM_TABLE_SIZE);++i)
@@ -816,7 +816,7 @@ static MACHINE_CONFIG_START( wheelfir, wheelfir_state )
MCFG_SCREEN_UPDATE_DRIVER(wheelfir_state, screen_update_wheelfir)
MCFG_SCREEN_VBLANK_DRIVER(wheelfir_state, screen_eof_wheelfir)
- MCFG_PALETTE_LENGTH(NUM_COLORS)
+ MCFG_PALETTE_ADD("palette", NUM_COLORS)
MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
diff --git a/src/mame/drivers/wildpkr.c b/src/mame/drivers/wildpkr.c
index 458f98b27e8..433583f1f0f 100644
--- a/src/mame/drivers/wildpkr.c
+++ b/src/mame/drivers/wildpkr.c
@@ -176,7 +176,7 @@ public:
DECLARE_DRIVER_INIT(wildpkr);
virtual void machine_start();
virtual void video_start();
- virtual void palette_init();
+ DECLARE_PALETTE_INIT(wildpkr);
UINT32 screen_update_wildpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
};
@@ -195,7 +195,7 @@ UINT32 wildpkr_state::screen_update_wildpkr(screen_device &screen, bitmap_ind16
return 0;
}
-void wildpkr_state::palette_init()
+PALETTE_INIT_MEMBER(wildpkr_state, wildpkr)
{
}
@@ -289,10 +289,10 @@ static MACHINE_CONFIG_START( wildpkr, wildpkr_state )
MCFG_SCREEN_UPDATE_DRIVER(wildpkr_state, screen_update_wildpkr)
// MCFG_HD63484_ADD("hd63484", wildpkr_hd63484_intf)
- MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
-
- MCFG_PALETTE_LENGTH(256)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette")
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(wildpkr_state, wildpkr)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/williams.c b/src/mame/drivers/williams.c
index fa9c24aa7a2..24ef0b51b45 100644
--- a/src/mame/drivers/williams.c
+++ b/src/mame/drivers/williams.c
@@ -1673,7 +1673,7 @@ static MACHINE_CONFIG_START( williams2, williams_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE | VIDEO_ALWAYS_UPDATE)
- MCFG_PALETTE_LENGTH(1024)
+ MCFG_PALETTE_ADD("palette", 1024)
MCFG_GFXDECODE_ADD("gfxdecode", williams2)
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/wink.c b/src/mame/drivers/wink.c
index a5fe0084bb4..746f9a05816 100644
--- a/src/mame/drivers/wink.c
+++ b/src/mame/drivers/wink.c
@@ -155,7 +155,7 @@ WRITE8_MEMBER(wink_state::prot_w)
static ADDRESS_MAP_START( wink_io, AS_IO, 8, wink_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x1f) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_le_w) AM_SHARE("paletteram") //0x10-0x1f is likely to be something else
+ AM_RANGE(0x00, 0x1f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") //0x10-0x1f is likely to be something else
// AM_RANGE(0x20, 0x20) AM_WRITENOP //??? seems unused..
AM_RANGE(0x21, 0x21) AM_WRITE(player_mux_w) //??? no mux on the pcb.
AM_RANGE(0x22, 0x22) AM_WRITE(tile_banking_w)
@@ -369,7 +369,8 @@ static MACHINE_CONFIG_START( wink, wink_state )
MCFG_SCREEN_UPDATE_DRIVER(wink_state, screen_update_wink)
MCFG_GFXDECODE_ADD("gfxdecode", wink)
- MCFG_PALETTE_LENGTH(16)
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
/* sound hardware */
diff --git a/src/mame/drivers/wiping.c b/src/mame/drivers/wiping.c
index bb54f746aa5..cff662ad107 100644
--- a/src/mame/drivers/wiping.c
+++ b/src/mame/drivers/wiping.c
@@ -294,8 +294,8 @@ static MACHINE_CONFIG_START( wiping, wiping_state )
MCFG_SCREEN_UPDATE_DRIVER(wiping_state, screen_update_wiping)
MCFG_GFXDECODE_ADD("gfxdecode", wiping)
- MCFG_PALETTE_LENGTH(64*4+64*4)
-
+ MCFG_PALETTE_ADD("palette", 64*4+64*4)
+ MCFG_PALETTE_INIT_OWNER(wiping_state, wiping)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/witch.c b/src/mame/drivers/witch.c
index 17ef2db7bf3..c900cc1d1f7 100644
--- a/src/mame/drivers/witch.c
+++ b/src/mame/drivers/witch.c
@@ -518,8 +518,8 @@ static ADDRESS_MAP_START( map_main, AS_PROGRAM, 8, witch_state )
AM_RANGE(0xc800, 0xcbff) AM_READWRITE(gfx1_vram_r, gfx1_vram_w) AM_SHARE("gfx1_vram")
AM_RANGE(0xcc00, 0xcfff) AM_READWRITE(gfx1_cram_r, gfx1_cram_w) AM_SHARE("gfx1_cram")
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_SHARE("sprite_ram")
- AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0xe800, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0xf000, 0xf0ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xf100, 0xf17f) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xf180, 0xffff) AM_RAM AM_SHARE("share2")
@@ -784,22 +784,22 @@ void witch_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
color = flags & 0x0f;
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,
tileno, color,
flipx, flipy,
sx+8*flipx,sy+8*flipy,0);
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,
tileno+1, color,
flipx, flipy,
sx+8-8*flipx,sy+8*flipy,0);
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,
tileno+2, color,
flipx, flipy,
sx+8*flipx,sy+8-8*flipy,0);
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,
tileno+3, color,
flipx, flipy,
sx+8-8*flipx,sy+8-8*flipy,0);
@@ -855,8 +855,8 @@ static MACHINE_CONFIG_START( witch, witch_state )
MCFG_SCREEN_UPDATE_DRIVER(witch_state, screen_update_witch)
MCFG_GFXDECODE_ADD("gfxdecode", witch)
- MCFG_PALETTE_LENGTH(0x800)
-
+ MCFG_PALETTE_ADD("palette", 0x800)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c
index 77bfe6f109f..fb72dff4202 100644
--- a/src/mame/drivers/wiz.c
+++ b/src/mame/drivers/wiz.c
@@ -730,7 +730,8 @@ static MACHINE_CONFIG_START( wiz, wiz_state )
MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_wiz)
MCFG_GFXDECODE_ADD("gfxdecode", wiz)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(wiz_state, wiz)
/* sound hardware */
diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c
index 35c1edee69d..a609c332b16 100644
--- a/src/mame/drivers/wolfpack.c
+++ b/src/mame/drivers/wolfpack.c
@@ -314,7 +314,8 @@ static MACHINE_CONFIG_START( wolfpack, wolfpack_state )
MCFG_SCREEN_VBLANK_DRIVER(wolfpack_state, screen_eof_wolfpack)
MCFG_GFXDECODE_ADD("gfxdecode", wolfpack)
- MCFG_PALETTE_LENGTH(12)
+ MCFG_PALETTE_ADD("palette", 12)
+ MCFG_PALETTE_INIT_OWNER(wolfpack_state, 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 803f196add9..6c20f5b6287 100644
--- a/src/mame/drivers/wrally.c
+++ b/src/mame/drivers/wrally.c
@@ -106,7 +106,7 @@ static ADDRESS_MAP_START( wrally_map, AS_PROGRAM, 16, wrally_state )
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(wrally_vram_w) AM_SHARE("videoram") /* encrypted Video RAM */
AM_RANGE(0x108000, 0x108007) AM_RAM AM_SHARE("vregs") /* Video Registers */
AM_RANGE(0x10800c, 0x10800d) AM_WRITENOP /* CLR INT Video */
- AM_RANGE(0x200000, 0x203fff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_word_w) AM_SHARE("paletteram") /* Palette */
+ AM_RANGE(0x200000, 0x203fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("P1_P2")
@@ -258,7 +258,8 @@ static MACHINE_CONFIG_START( wrally, wrally_state )
MCFG_SCREEN_UPDATE_DRIVER(wrally_state, screen_update_wrally)
MCFG_GFXDECODE_ADD("gfxdecode", wrally)
- MCFG_PALETTE_LENGTH(1024*8)
+ MCFG_PALETTE_ADD("palette", 1024*8)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
/* sound hardware */
diff --git a/src/mame/drivers/wwfsstar.c b/src/mame/drivers/wwfsstar.c
index 8f6092f9185..044cdf4912b 100644
--- a/src/mame/drivers/wwfsstar.c
+++ b/src/mame/drivers/wwfsstar.c
@@ -173,7 +173,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wwfsstar_state )
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(wwfsstar_fg0_videoram_w) AM_SHARE("fg0_videoram") /* FG0 Ram */
AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(wwfsstar_bg0_videoram_w) AM_SHARE("bg0_videoram") /* BG0 Ram */
AM_RANGE(0x100000, 0x1003ff) AM_RAM AM_SHARE("spriteram") /* SPR Ram */
- AM_RANGE(0x140000, 0x140fff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x140000, 0x140fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x180000, 0x180003) AM_WRITE(wwfsstar_irqack_w)
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("DSW1")
AM_RANGE(0x180002, 0x180003) AM_READ_PORT("DSW2")
@@ -427,8 +427,8 @@ static MACHINE_CONFIG_START( wwfsstar, wwfsstar_state )
MCFG_SCREEN_UPDATE_DRIVER(wwfsstar_state, screen_update_wwfsstar)
MCFG_GFXDECODE_ADD("gfxdecode", wwfsstar)
- MCFG_PALETTE_LENGTH(384)
-
+ MCFG_PALETTE_ADD("palette", 384)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c
index 81fb27a3fe5..17c934521ec 100644
--- a/src/mame/drivers/xain.c
+++ b/src/mame/drivers/xain.c
@@ -405,8 +405,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, xain_state )
AM_RANGE(0x3a0d, 0x3a0d) AM_WRITE(xain_flipscreen_w)
AM_RANGE(0x3a0e, 0x3a0e) AM_WRITE(xain_68705_w)
AM_RANGE(0x3a0f, 0x3a0f) AM_WRITE(xainCPUA_bankswitch_w)
- AM_RANGE(0x3c00, 0x3dff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
- AM_RANGE(0x3e00, 0x3fff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
+ AM_RANGE(0x3c00, 0x3dff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x3e00, 0x3fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette_ext")
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -595,8 +595,8 @@ static MACHINE_CONFIG_START( xsleena, xain_state )
MCFG_SCREEN_UPDATE_DRIVER(xain_state, screen_update_xain)
MCFG_GFXDECODE_ADD("gfxdecode", xain)
- MCFG_PALETTE_LENGTH(512)
-
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c
index a48737e2c4f..68f084b5417 100644
--- a/src/mame/drivers/xexex.c
+++ b/src/mame/drivers/xexex.c
@@ -395,7 +395,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xexex_state )
AM_RANGE(0x182000, 0x183fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w)
AM_RANGE(0x190000, 0x191fff) AM_DEVREAD("k056832", k056832_device, rom_word_r) // Passthrough to tile roms
AM_RANGE(0x1a0000, 0x1a1fff) AM_DEVREAD("k053250", k053250_device, rom_r)
- AM_RANGE(0x1b0000, 0x1b1fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1b0000, 0x1b1fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
#if XE_DEBUG
AM_RANGE(0x0c0000, 0x0c003f) AM_DEVREAD("k056832", k056832_device, word_r)
@@ -556,7 +556,7 @@ static MACHINE_CONFIG_START( xexex, xexex_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_BEFORE_VBLANK)
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(XTAL_32MHz/4/512/288)
@@ -566,13 +566,18 @@ static MACHINE_CONFIG_START( xexex, xexex_state )
MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 0, 0+256-1)
MCFG_SCREEN_UPDATE_DRIVER(xexex_state, screen_update_xexex)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(XRGB)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_ENABLE_HILIGHTS()
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K056832_ADD("k056832", xexex_k056832_intf)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K053246_ADD("k053246", xexex_k053246_intf)
MCFG_K053246_GFXDECODE("gfxdecode")
+ MCFG_K053246_PALETTE("palette")
MCFG_K053250_ADD("k053250", "screen", -5, -16)
MCFG_K053251_ADD("k053251")
MCFG_K053252_ADD("k053252", XTAL_32MHz/4, xexex_k053252_intf)
diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c
index 06bebdc71e8..583750da87f 100644
--- a/src/mame/drivers/xmen.c
+++ b/src/mame/drivers/xmen.c
@@ -98,7 +98,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xmen_state )
AM_RANGE(0x080000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE("k053246", k053247_device, k053247_word_r, k053247_word_w)
AM_RANGE(0x101000, 0x101fff) AM_RAM
- AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x108000, 0x108001) AM_WRITE(eeprom_w)
AM_RANGE(0x108020, 0x108027) AM_DEVWRITE("k053246", k053247_device, k053246_word_w)
AM_RANGE(0x10804c, 0x10804d) AM_WRITE(sound_cmd_w)
@@ -133,7 +133,7 @@ static ADDRESS_MAP_START( 6p_main_map, AS_PROGRAM, 16, xmen_state )
AM_RANGE(0x101000, 0x101fff) AM_RAM
AM_RANGE(0x102000, 0x102fff) AM_RAM AM_SHARE("spriteramright") /* sprites (screen 2) */
AM_RANGE(0x103000, 0x103fff) AM_RAM /* 6p - a buffer? */
- AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x108000, 0x108001) AM_WRITE(eeprom_w)
AM_RANGE(0x108020, 0x108027) AM_DEVWRITE("k053246", k053247_device, k053246_word_w) /* sprites */
AM_RANGE(0x10804c, 0x10804d) AM_WRITE(sound_cmd_w)
@@ -352,21 +352,23 @@ static MACHINE_CONFIG_START( xmen, xmen_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) /* correct, same issue of TMNT2 */
MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", xmen_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K053246_ADD("k053246", xmen_k053246_intf)
MCFG_K053246_GFXDECODE("gfxdecode")
+ MCFG_K053246_PALETTE("palette")
MCFG_K053251_ADD("k053251")
/* sound hardware */
@@ -404,8 +406,9 @@ static MACHINE_CONFIG_START( xmen6p, xmen_state )
MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
/* video hardware */
- MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_ENABLE_SHADOWS()
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
MCFG_SCREEN_ADD("screen", RASTER)
@@ -428,9 +431,11 @@ static MACHINE_CONFIG_START( xmen6p, xmen_state )
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_K052109_ADD("k052109", xmen_k052109_intf)
MCFG_K052109_GFXDECODE("gfxdecode")
+ MCFG_K052109_PALETTE("palette")
MCFG_K053246_ADD("k053246", xmen6p_k053246_intf)
MCFG_K053246_SET_SCREEN("screen")
MCFG_K053246_GFXDECODE("gfxdecode")
+ MCFG_K053246_PALETTE("palette")
MCFG_K053251_ADD("k053251")
/* sound hardware */
diff --git a/src/mame/drivers/xorworld.c b/src/mame/drivers/xorworld.c
index e6c007875d6..666370f9f8c 100644
--- a/src/mame/drivers/xorworld.c
+++ b/src/mame/drivers/xorworld.c
@@ -185,7 +185,8 @@ static MACHINE_CONFIG_START( xorworld, xorworld_state )
MCFG_SCREEN_UPDATE_DRIVER(xorworld_state, screen_update_xorworld)
MCFG_GFXDECODE_ADD("gfxdecode", xorworld)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(xorworld_state, xorworld)
// sound hardware
diff --git a/src/mame/drivers/xxmissio.c b/src/mame/drivers/xxmissio.c
index cf57ecad766..2d0a537a1cb 100644
--- a/src/mame/drivers/xxmissio.c
+++ b/src/mame/drivers/xxmissio.c
@@ -296,7 +296,8 @@ static MACHINE_CONFIG_START( xxmissio, xxmissio_state )
MCFG_SCREEN_UPDATE_DRIVER(xxmissio_state, screen_update_xxmissio)
MCFG_GFXDECODE_ADD("gfxdecode", xxmissio)
- MCFG_PALETTE_LENGTH(768)
+ MCFG_PALETTE_ADD("palette", 768)
+ MCFG_PALETTE_FORMAT(BBGGRRII)
/* sound hardware */
diff --git a/src/mame/drivers/xybots.c b/src/mame/drivers/xybots.c
index 339f2139715..26b3d5a9315 100644
--- a/src/mame/drivers/xybots.c
+++ b/src/mame/drivers/xybots.c
@@ -77,7 +77,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xybots_state )
AM_RANGE(0xff9000, 0xffadff) AM_MIRROR(0x7f8000) AM_RAM
AM_RANGE(0xffae00, 0xffafff) AM_MIRROR(0x7f8000) AM_RAM AM_SHARE("mob")
AM_RANGE(0xffb000, 0xffbfff) AM_MIRROR(0x7f8000) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield")
- AM_RANGE(0xffc000, 0xffc7ff) AM_MIRROR(0x7f8800) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0xffc000, 0xffc7ff) AM_MIRROR(0x7f8800) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xffd000, 0xffdfff) AM_MIRROR(0x7f8000) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0xffe000, 0xffe0ff) AM_MIRROR(0x7f8000) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff)
AM_RANGE(0xffe100, 0xffe1ff) AM_MIRROR(0x7f8000) AM_READ_PORT("FFE100")
@@ -191,7 +191,9 @@ static MACHINE_CONFIG_START( xybots, xybots_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_GFXDECODE_ADD("gfxdecode", xybots)
- MCFG_PALETTE_LENGTH(1024)
+
+ MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT(IIIIRRRRGGGGBBBB)
MCFG_TILEMAP_ADD_STANDARD("playfield", 2, xybots_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 64,32)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, xybots_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0)
diff --git a/src/mame/drivers/xyonix.c b/src/mame/drivers/xyonix.c
index 8e767a3b2a5..e5208b32da4 100644
--- a/src/mame/drivers/xyonix.c
+++ b/src/mame/drivers/xyonix.c
@@ -229,8 +229,8 @@ static MACHINE_CONFIG_START( xyonix, xyonix_state )
MCFG_SCREEN_UPDATE_DRIVER(xyonix_state, screen_update_xyonix)
MCFG_GFXDECODE_ADD("gfxdecode", xyonix)
- MCFG_PALETTE_LENGTH(256)
-
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(xyonix_state, xyonix)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/yiear.c b/src/mame/drivers/yiear.c
index 0448d2917eb..46f64f3c368 100644
--- a/src/mame/drivers/yiear.c
+++ b/src/mame/drivers/yiear.c
@@ -284,8 +284,8 @@ static MACHINE_CONFIG_START( yiear, yiear_state )
MCFG_SCREEN_UPDATE_DRIVER(yiear_state, screen_update_yiear)
MCFG_GFXDECODE_ADD("gfxdecode", yiear)
- MCFG_PALETTE_LENGTH(32)
-
+ MCFG_PALETTE_ADD("palette", 32)
+ MCFG_PALETTE_INIT_OWNER(yiear_state, yiear)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/yunsun16.c b/src/mame/drivers/yunsun16.c
index c2024784b51..e72497f0dc7 100644
--- a/src/mame/drivers/yunsun16.c
+++ b/src/mame/drivers/yunsun16.c
@@ -129,7 +129,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, yunsun16_state )
AM_RANGE(0x800180, 0x800181) AM_WRITE(yunsun16_sound_bank_w) // Sound
AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
AM_RANGE(0x8001fe, 0x8001ff) AM_WRITENOP // ? 0 (during int)
- AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette
+ AM_RANGE(0x900000, 0x903fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
AM_RANGE(0x908000, 0x90bfff) AM_RAM_WRITE(yunsun16_vram_1_w) AM_SHARE("vram_1") // Layer 1
AM_RANGE(0x90c000, 0x90ffff) AM_RAM_WRITE(yunsun16_vram_0_w) AM_SHARE("vram_0") // Layer 0
AM_RANGE(0x910000, 0x910fff) AM_RAM AM_SHARE("spriteram") // Sprites
@@ -593,7 +593,8 @@ static MACHINE_CONFIG_START( magicbub, yunsun16_state )
MCFG_SCREEN_UPDATE_DRIVER(yunsun16_state, screen_update_yunsun16)
MCFG_GFXDECODE_ADD("gfxdecode", yunsun16)
- MCFG_PALETTE_LENGTH(8192)
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
@@ -629,8 +630,8 @@ static MACHINE_CONFIG_START( shocking, yunsun16_state )
MCFG_SCREEN_UPDATE_DRIVER(yunsun16_state, screen_update_yunsun16)
MCFG_GFXDECODE_ADD("gfxdecode", yunsun16)
- MCFG_PALETTE_LENGTH(8192)
-
+ MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/yunsung8.c b/src/mame/drivers/yunsung8.c
index 24827210156..a494da7c9f0 100644
--- a/src/mame/drivers/yunsung8.c
+++ b/src/mame/drivers/yunsung8.c
@@ -508,7 +508,7 @@ static MACHINE_CONFIG_START( yunsung8, yunsung8_state )
MCFG_SCREEN_UPDATE_DRIVER(yunsung8_state, screen_update_yunsung8)
MCFG_GFXDECODE_ADD("gfxdecode", yunsung8)
- MCFG_PALETTE_LENGTH(2048)
+ MCFG_PALETTE_ADD("palette", 2048)
/* sound hardware */
diff --git a/src/mame/drivers/zac2650.c b/src/mame/drivers/zac2650.c
index a81670acb99..6d983adf7e0 100644
--- a/src/mame/drivers/zac2650.c
+++ b/src/mame/drivers/zac2650.c
@@ -185,12 +185,12 @@ static INPUT_PORTS_START( dodgem )
INPUT_PORTS_END
-void zac2650_state::palette_init()
+PALETTE_INIT_MEMBER(zac2650_state, zac2650)
{
- palette_set_color(machine(),0,rgb_t::black);
- palette_set_color(machine(),1,rgb_t::white);
- palette_set_color(machine(),2,rgb_t::black);
- palette_set_color(machine(),3,rgb_t::black);
+ palette.set_pen_color(0,rgb_t::black);
+ palette.set_pen_color(1,rgb_t::white);
+ palette.set_pen_color(2,rgb_t::black);
+ palette.set_pen_color(3,rgb_t::black);
}
/************************************************************************************************
@@ -251,7 +251,8 @@ static MACHINE_CONFIG_START( tinvader, zac2650_state )
MCFG_SCREEN_UPDATE_DRIVER(zac2650_state, screen_update_tinvader)
MCFG_GFXDECODE_ADD("gfxdecode", tinvader)
- MCFG_PALETTE_LENGTH(4)
+ MCFG_PALETTE_ADD("palette", 4)
+ MCFG_PALETTE_INIT_OWNER(zac2650_state, zac2650)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c
index eb994c1ec46..5f3807c37af 100644
--- a/src/mame/drivers/zaccaria.c
+++ b/src/mame/drivers/zaccaria.c
@@ -575,8 +575,8 @@ static MACHINE_CONFIG_START( zaccaria, zaccaria_state )
MCFG_SCREEN_UPDATE_DRIVER(zaccaria_state, screen_update_zaccaria)
MCFG_GFXDECODE_ADD("gfxdecode", zaccaria)
- MCFG_PALETTE_LENGTH(32*8+32*8)
-
+ MCFG_PALETTE_ADD("palette", 32*8+32*8)
+ MCFG_PALETTE_INIT_OWNER(zaccaria_state, zaccaria)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/zaxxon.c b/src/mame/drivers/zaxxon.c
index cfb16cc5a11..75ff144a014 100644
--- a/src/mame/drivers/zaxxon.c
+++ b/src/mame/drivers/zaxxon.c
@@ -946,7 +946,8 @@ static MACHINE_CONFIG_START( root, zaxxon_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", zaxxon)
- MCFG_PALETTE_LENGTH(256)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(zaxxon_state, zaxxon)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
@@ -1006,7 +1007,10 @@ static MACHINE_CONFIG_DERIVED( congo, root )
MCFG_CPU_PERIODIC_INT_DRIVER(zaxxon_state, irq0_line_hold, (double)SOUND_CLOCK/16/16/16/4)
/* video hardware */
- MCFG_PALETTE_LENGTH(512)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_INIT_OWNER(zaxxon_state, zaxxon)
+
MCFG_VIDEO_START_OVERRIDE(zaxxon_state,congo)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_congo)
diff --git a/src/mame/drivers/zerozone.c b/src/mame/drivers/zerozone.c
index e1a9fdc3cc9..76dba098e1d 100644
--- a/src/mame/drivers/zerozone.c
+++ b/src/mame/drivers/zerozone.c
@@ -52,7 +52,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, zerozone_state )
AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSWB")
AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("DSWA")
AM_RANGE(0x084000, 0x084001) AM_WRITE(sound_w)
- AM_RANGE(0x088000, 0x0881ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x088000, 0x0881ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x098000, 0x098001) AM_RAM /* Watchdog? */
AM_RANGE(0x09ce00, 0x09ffff) AM_RAM_WRITE(tilemap_w) AM_SHARE("videoram")
AM_RANGE(0x0b4000, 0x0b4001) AM_WRITE(tilebank_w)
@@ -185,7 +185,9 @@ static MACHINE_CONFIG_START( zerozone, zerozone_state )
MCFG_SCREEN_VISIBLE_AREA(1*8, 47*8-1, 2*8, 30*8-1)
MCFG_GFXDECODE_ADD("gfxdecode", zerozone)
- MCFG_PALETTE_LENGTH(256)
+
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/zodiack.c b/src/mame/drivers/zodiack.c
index 7a54b8cd91f..eb745e38fde 100644
--- a/src/mame/drivers/zodiack.c
+++ b/src/mame/drivers/zodiack.c
@@ -575,9 +575,9 @@ static MACHINE_CONFIG_START( zodiack, zodiack_state )
MCFG_SCREEN_UPDATE_DRIVER(zodiack_state, screen_update)
MCFG_GFXDECODE_ADD("gfxdecode", zodiack)
- MCFG_PALETTE_LENGTH(4*8+2*8+2*1)
+ MCFG_PALETTE_ADD("palette", 4*8+2*8+2*1)
- MCFG_PALETTE_INIT_OVERRIDE(zodiack_state,zodiack)
+ MCFG_PALETTE_INIT_OWNER(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 cd8bf9d0cda..b861c8c18e2 100644
--- a/src/mame/drivers/zr107.c
+++ b/src/mame/drivers/zr107.c
@@ -246,7 +246,7 @@ VIDEO_START_MEMBER(zr107_state,jetwave)
UINT32 zr107_state::screen_update_jetwave(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(machine().pens[0], cliprect);
+ bitmap.fill(m_palette->pen(0), cliprect);
m_k001604->draw_back_layer(bitmap, cliprect);
@@ -268,8 +268,8 @@ WRITE32_MEMBER(zr107_state::paletteram32_w)
{
COMBINE_DATA(&m_generic_paletteram_32[offset]);
data = m_generic_paletteram_32[offset];
- palette_set_color_rgb(machine(), (offset * 2) + 0, pal5bit(data >> 26), pal5bit(data >> 21), pal5bit(data >> 16));
- palette_set_color_rgb(machine(), (offset * 2) + 1, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
+ m_palette->set_pen_color((offset * 2) + 0, pal5bit(data >> 26), pal5bit(data >> 21), pal5bit(data >> 16));
+ m_palette->set_pen_color((offset * 2) + 1, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
}
#define NUM_LAYERS 2
@@ -296,7 +296,7 @@ VIDEO_START_MEMBER(zr107_state,zr107)
UINT32 zr107_state::screen_update_zr107(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- bitmap.fill(machine().pens[0], cliprect);
+ bitmap.fill(m_palette->pen(0), cliprect);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0);
K001005_draw(bitmap, cliprect);
@@ -459,7 +459,7 @@ WRITE32_MEMBER(zr107_state::jetwave_palette_w)
{
COMBINE_DATA(&m_generic_paletteram_32[offset]);
data = m_generic_paletteram_32[offset];
- palette_set_color_rgb(machine(), offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
+ m_palette->set_pen_color(offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
}
static ADDRESS_MAP_START( jetwave_map, AS_PROGRAM, 32, zr107_state )
@@ -769,7 +769,7 @@ static MACHINE_CONFIG_START( zr107, zr107_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1)
MCFG_SCREEN_UPDATE_DRIVER(zr107_state, screen_update_zr107)
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD("palette", 65536)
MCFG_VIDEO_START_OVERRIDE(zr107_state,zr107)
@@ -777,6 +777,7 @@ static MACHINE_CONFIG_START( zr107, zr107_state )
MCFG_K056832_ADD("k056832", zr107_k056832_intf)
MCFG_K056832_GFXDECODE("gfxdecode")
+ MCFG_K056832_PALETTE("palette")
MCFG_K056800_ADD("k056800", XTAL_18_432MHz)
MCFG_K056800_INT_HANDLER(INPUTLINE("audiocpu", M68K_IRQ_1))
@@ -832,7 +833,7 @@ static MACHINE_CONFIG_START( jetwave, zr107_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1)
MCFG_SCREEN_UPDATE_DRIVER(zr107_state, screen_update_jetwave)
- MCFG_PALETTE_LENGTH(65536)
+ MCFG_PALETTE_ADD("palette", 65536)
MCFG_VIDEO_START_OVERRIDE(zr107_state,jetwave)
@@ -840,6 +841,7 @@ static MACHINE_CONFIG_START( jetwave, zr107_state )
MCFG_K001604_ADD("k001604", jetwave_k001604_intf)
MCFG_K001604_GFXDECODE("gfxdecode")
+ MCFG_K001604_PALETTE("palette")
MCFG_K056800_ADD("k056800", XTAL_18_432MHz)
MCFG_K056800_INT_HANDLER(INPUTLINE("audiocpu", M68K_IRQ_1))