summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers
diff options
context:
space:
mode:
author Firehawke <Firehawke@users.noreply.github.com>2017-12-13 21:01:10 -0700
committer Firehawke <Firehawke@users.noreply.github.com>2017-12-13 21:01:10 -0700
commit54155441e9ba9941e85d80c4834a66376a11e791 (patch)
treeaa44bdaf0035cbe188d64c447f225f10f7d76d8d /src/mame/drivers
parentf537428e5a40ba6dde8ca9bf0fe9ae6b1f189ac4 (diff)
Revert "Merge branch 'master' of https://github.com/mamedev/mame"
This reverts commit f537428e5a40ba6dde8ca9bf0fe9ae6b1f189ac4, reversing changes made to 0d70d798107d4e4e8fb9f230410aeb1e888d65c5.
Diffstat (limited to 'src/mame/drivers')
-rw-r--r--src/mame/drivers/24cdjuke.cpp2
-rw-r--r--src/mame/drivers/39in1.cpp4
-rw-r--r--src/mame/drivers/4enraya.cpp2
-rw-r--r--src/mame/drivers/8080bw.cpp4
-rw-r--r--src/mame/drivers/a6809.cpp2
-rw-r--r--src/mame/drivers/accomm.cpp60
-rw-r--r--src/mame/drivers/acesp.cpp14
-rw-r--r--src/mame/drivers/aerofgt.cpp2
-rw-r--r--src/mame/drivers/agat.cpp340
-rw-r--r--src/mame/drivers/aim65.cpp4
-rw-r--r--src/mame/drivers/aim65_40.cpp6
-rw-r--r--src/mame/drivers/airraid.cpp4
-rw-r--r--src/mame/drivers/ajax.cpp4
-rw-r--r--src/mame/drivers/alesis.cpp2
-rw-r--r--src/mame/drivers/alphatpx.cpp76
-rw-r--r--src/mame/drivers/altos5.cpp4
-rw-r--r--src/mame/drivers/amaticmg.cpp2
-rw-r--r--src/mame/drivers/ampoker2.cpp2
-rw-r--r--src/mame/drivers/apc.cpp4
-rw-r--r--src/mame/drivers/apollo.cpp9
-rw-r--r--src/mame/drivers/apple2e.cpp2
-rw-r--r--src/mame/drivers/applix.cpp6
-rw-r--r--src/mame/drivers/aquarium.cpp4
-rw-r--r--src/mame/drivers/aristmk4.cpp4
-rw-r--r--src/mame/drivers/aristmk5.cpp568
-rw-r--r--src/mame/drivers/arkanoid.cpp4
-rw-r--r--src/mame/drivers/arsystems.cpp2
-rw-r--r--src/mame/drivers/astrcorp.cpp30
-rw-r--r--src/mame/drivers/astrof.cpp2
-rw-r--r--src/mame/drivers/atarisy1.cpp2
-rw-r--r--src/mame/drivers/atarisy2.cpp2
-rw-r--r--src/mame/drivers/attache.cpp12
-rw-r--r--src/mame/drivers/atvtrack.cpp6
-rw-r--r--src/mame/drivers/backfire.cpp2
-rw-r--r--src/mame/drivers/bagman.cpp6
-rw-r--r--src/mame/drivers/balsente.cpp2
-rw-r--r--src/mame/drivers/baraduke.cpp2
-rw-r--r--src/mame/drivers/barni.cpp13
-rw-r--r--src/mame/drivers/beezer.cpp12
-rw-r--r--src/mame/drivers/berzerk.cpp2
-rw-r--r--src/mame/drivers/beta.cpp2
-rw-r--r--src/mame/drivers/bfcobra.cpp6
-rw-r--r--src/mame/drivers/bfm_sc4.cpp2
-rw-r--r--src/mame/drivers/big10.cpp2
-rw-r--r--src/mame/drivers/bigbord2.cpp2
-rw-r--r--src/mame/drivers/bking.cpp2
-rw-r--r--src/mame/drivers/blktiger.cpp2
-rw-r--r--src/mame/drivers/bloodbro.cpp2
-rw-r--r--src/mame/drivers/bmcpokr.cpp6
-rw-r--r--src/mame/drivers/bob85.cpp2
-rw-r--r--src/mame/drivers/boogwing.cpp4
-rw-r--r--src/mame/drivers/bublbobl.cpp4
-rw-r--r--src/mame/drivers/by35.cpp2
-rw-r--r--src/mame/drivers/byvid.cpp6
-rw-r--r--src/mame/drivers/c64dtv.cpp13
-rw-r--r--src/mame/drivers/c900.cpp65
-rw-r--r--src/mame/drivers/cabal.cpp4
-rw-r--r--src/mame/drivers/calcune.cpp334
-rw-r--r--src/mame/drivers/camplynx.cpp4
-rw-r--r--src/mame/drivers/capbowl.cpp10
-rw-r--r--src/mame/drivers/cave.cpp6
-rw-r--r--src/mame/drivers/cd2650.cpp2
-rw-r--r--src/mame/drivers/centiped.cpp2
-rw-r--r--src/mame/drivers/champbwl.cpp10
-rw-r--r--src/mame/drivers/chessmst.cpp2
-rw-r--r--src/mame/drivers/chesstrv.cpp2
-rw-r--r--src/mame/drivers/chinagat.cpp8
-rw-r--r--src/mame/drivers/chqflag.cpp15
-rw-r--r--src/mame/drivers/chsuper.cpp6
-rw-r--r--src/mame/drivers/cischeat.cpp2
-rw-r--r--src/mame/drivers/cninja.cpp16
-rw-r--r--src/mame/drivers/cntsteer.cpp2
-rw-r--r--src/mame/drivers/coco12.cpp4
-rw-r--r--src/mame/drivers/coinmstr.cpp4
-rw-r--r--src/mame/drivers/compc.cpp139
-rw-r--r--src/mame/drivers/contra.cpp2
-rw-r--r--src/mame/drivers/coolpool.cpp4
-rw-r--r--src/mame/drivers/cops.cpp18
-rw-r--r--src/mame/drivers/cortex.cpp195
-rw-r--r--src/mame/drivers/cps1.cpp4
-rw-r--r--src/mame/drivers/cps2.cpp6
-rw-r--r--src/mame/drivers/csplayh5.cpp29
-rw-r--r--src/mame/drivers/cswat.cpp2
-rw-r--r--src/mame/drivers/cubo.cpp14
-rw-r--r--src/mame/drivers/cvs.cpp4
-rw-r--r--src/mame/drivers/cybertnk.cpp2
-rw-r--r--src/mame/drivers/d400.cpp2
-rw-r--r--src/mame/drivers/d6809.cpp2
-rw-r--r--src/mame/drivers/dambustr.cpp8
-rw-r--r--src/mame/drivers/darkmist.cpp22
-rw-r--r--src/mame/drivers/datum.cpp4
-rw-r--r--src/mame/drivers/dblewing.cpp4
-rw-r--r--src/mame/drivers/dcheese.cpp4
-rw-r--r--src/mame/drivers/ddragon.cpp20
-rw-r--r--src/mame/drivers/ddribble.cpp6
-rw-r--r--src/mame/drivers/de_2.cpp107
-rw-r--r--src/mame/drivers/de_3.cpp10
-rw-r--r--src/mame/drivers/dec8.cpp16
-rw-r--r--src/mame/drivers/deco156.cpp2
-rw-r--r--src/mame/drivers/deco32.cpp6
-rw-r--r--src/mame/drivers/deco_mlc.cpp6
-rw-r--r--src/mame/drivers/decocass.cpp2
-rw-r--r--src/mame/drivers/didact.cpp2
-rw-r--r--src/mame/drivers/dietgo.cpp4
-rw-r--r--src/mame/drivers/digel804.cpp2
-rw-r--r--src/mame/drivers/divebomb.cpp2
-rw-r--r--src/mame/drivers/dkong.cpp6
-rw-r--r--src/mame/drivers/dreambal.cpp4
-rw-r--r--src/mame/drivers/dynax.cpp16
-rw-r--r--src/mame/drivers/eacc.cpp2
-rw-r--r--src/mame/drivers/ecoinf3.cpp2
-rw-r--r--src/mame/drivers/ecoinfr.cpp4
-rw-r--r--src/mame/drivers/elwro800.cpp2
-rw-r--r--src/mame/drivers/enigma2.cpp4
-rw-r--r--src/mame/drivers/enmirage.cpp4
-rw-r--r--src/mame/drivers/epos.cpp8
-rw-r--r--src/mame/drivers/esq1.cpp3
-rw-r--r--src/mame/drivers/et3400.cpp2
-rw-r--r--src/mame/drivers/ettrivia.cpp2
-rw-r--r--src/mame/drivers/eva.cpp2
-rw-r--r--src/mame/drivers/evmbug.cpp66
-rw-r--r--src/mame/drivers/excali64.cpp2
-rw-r--r--src/mame/drivers/exidy440.cpp2
-rw-r--r--src/mame/drivers/expro02.cpp4
-rw-r--r--src/mame/drivers/exprraid.cpp2
-rw-r--r--src/mame/drivers/fgoal.cpp4
-rw-r--r--src/mame/drivers/fidel6502.cpp31
-rw-r--r--src/mame/drivers/fidel68k.cpp101
-rw-r--r--src/mame/drivers/fidelz80.cpp8
-rw-r--r--src/mame/drivers/firefox.cpp2
-rw-r--r--src/mame/drivers/fm7.cpp33
-rw-r--r--src/mame/drivers/fmtowns.cpp2
-rw-r--r--src/mame/drivers/forte2.cpp4
-rw-r--r--src/mame/drivers/fp1100.cpp2
-rw-r--r--src/mame/drivers/fp200.cpp2
-rw-r--r--src/mame/drivers/funkyjet.cpp4
-rw-r--r--src/mame/drivers/funtech.cpp2
-rw-r--r--src/mame/drivers/funworld.cpp57
-rw-r--r--src/mame/drivers/gaelco.cpp2
-rw-r--r--src/mame/drivers/gaiden.cpp8
-rw-r--r--src/mame/drivers/galaga.cpp4
-rw-r--r--src/mame/drivers/galaxian.cpp101
-rw-r--r--src/mame/drivers/gameplan.cpp6
-rw-r--r--src/mame/drivers/gaplus.cpp8
-rw-r--r--src/mame/drivers/gba.cpp16
-rw-r--r--src/mame/drivers/gei.cpp4
-rw-r--r--src/mame/drivers/gimix.cpp2
-rw-r--r--src/mame/drivers/gladiatr.cpp10
-rw-r--r--src/mame/drivers/gng.cpp8
-rw-r--r--src/mame/drivers/goldnpkr.cpp2
-rw-r--r--src/mame/drivers/goldstar.cpp164
-rw-r--r--src/mame/drivers/gottlieb.cpp22
-rw-r--r--src/mame/drivers/goupil.cpp12
-rw-r--r--src/mame/drivers/gticlub.cpp4
-rw-r--r--src/mame/drivers/gts3.cpp6
-rw-r--r--src/mame/drivers/gts3a.cpp8
-rw-r--r--src/mame/drivers/gts80.cpp2
-rw-r--r--src/mame/drivers/gts80a.cpp2
-rw-r--r--src/mame/drivers/gts80b.cpp2
-rw-r--r--src/mame/drivers/h8.cpp2
-rw-r--r--src/mame/drivers/halleys.cpp6
-rw-r--r--src/mame/drivers/hankin.cpp2
-rw-r--r--src/mame/drivers/hh_amis2k.cpp2
-rw-r--r--src/mame/drivers/hh_cop400.cpp2
-rw-r--r--src/mame/drivers/hh_hmcs40.cpp226
-rw-r--r--src/mame/drivers/hh_melps4.cpp16
-rw-r--r--src/mame/drivers/hh_pic16.cpp2
-rw-r--r--src/mame/drivers/hh_sm510.cpp939
-rw-r--r--src/mame/drivers/hh_tms1k.cpp551
-rw-r--r--src/mame/drivers/hh_ucom4.cpp128
-rw-r--r--src/mame/drivers/hnayayoi.cpp2
-rw-r--r--src/mame/drivers/hp64k.cpp4
-rw-r--r--src/mame/drivers/hp9845.cpp45
-rw-r--r--src/mame/drivers/hprot1.cpp2
-rw-r--r--src/mame/drivers/hshavoc.cpp10
-rw-r--r--src/mame/drivers/icecold.cpp2
-rw-r--r--src/mame/drivers/idsa.cpp81
-rw-r--r--src/mame/drivers/igs011.cpp12
-rw-r--r--src/mame/drivers/igs017.cpp44
-rw-r--r--src/mame/drivers/igs_m027.cpp2
-rw-r--r--src/mame/drivers/igspoker.cpp2
-rw-r--r--src/mame/drivers/inder.cpp2
-rw-r--r--src/mame/drivers/instantm.cpp97
-rw-r--r--src/mame/drivers/irobot.cpp2
-rw-r--r--src/mame/drivers/ironhors.cpp21
-rw-r--r--src/mame/drivers/itech32.cpp17
-rw-r--r--src/mame/drivers/itech8.cpp22
-rw-r--r--src/mame/drivers/jack.cpp8
-rw-r--r--src/mame/drivers/jclub2.cpp2
-rw-r--r--src/mame/drivers/jongkyo.cpp2
-rw-r--r--src/mame/drivers/jp.cpp2
-rw-r--r--src/mame/drivers/jpmmps.cpp31
-rw-r--r--src/mame/drivers/k28.cpp2
-rw-r--r--src/mame/drivers/kaneko16.cpp8
-rw-r--r--src/mame/drivers/kas89.cpp4
-rw-r--r--src/mame/drivers/kingdrby.cpp2
-rw-r--r--src/mame/drivers/konmedal.cpp102
-rw-r--r--src/mame/drivers/kurukuru.cpp10
-rw-r--r--src/mame/drivers/lasso.cpp2
-rw-r--r--src/mame/drivers/lbeach.cpp2
-rw-r--r--src/mame/drivers/lc80.cpp2
-rw-r--r--src/mame/drivers/legionna.cpp2
-rw-r--r--src/mame/drivers/lemmings.cpp4
-rw-r--r--src/mame/drivers/lethalj.cpp26
-rw-r--r--src/mame/drivers/looping.cpp2
-rw-r--r--src/mame/drivers/ltcasino.cpp2
-rw-r--r--src/mame/drivers/ltd.cpp2
-rw-r--r--src/mame/drivers/lwriter.cpp2
-rw-r--r--src/mame/drivers/m90.cpp8
-rw-r--r--src/mame/drivers/madalien.cpp4
-rw-r--r--src/mame/drivers/mappy.cpp18
-rw-r--r--src/mame/drivers/mario.cpp96
-rw-r--r--src/mame/drivers/maygay1b.cpp2
-rw-r--r--src/mame/drivers/mcr3.cpp35
-rw-r--r--src/mame/drivers/meadows.cpp2
-rw-r--r--src/mame/drivers/megadrvb.cpp12
-rw-r--r--src/mame/drivers/megasys1.cpp98
-rw-r--r--src/mame/drivers/mephisto_montec.cpp4
-rw-r--r--src/mame/drivers/merit.cpp6
-rw-r--r--src/mame/drivers/mermaid.cpp59
-rw-r--r--src/mame/drivers/metlfrzr.cpp4
-rw-r--r--src/mame/drivers/metro.cpp6
-rw-r--r--src/mame/drivers/mgavegas.cpp4
-rw-r--r--src/mame/drivers/microtan.cpp6
-rw-r--r--src/mame/drivers/midas.cpp14
-rw-r--r--src/mame/drivers/mikie.cpp2
-rw-r--r--src/mame/drivers/milwaukee.cpp11
-rw-r--r--src/mame/drivers/minicom.cpp2
-rw-r--r--src/mame/drivers/mirax.cpp6
-rw-r--r--src/mame/drivers/missb2.cpp4
-rw-r--r--src/mame/drivers/missile.cpp4
-rw-r--r--src/mame/drivers/mjsenpu.cpp2
-rw-r--r--src/mame/drivers/mk1.cpp8
-rw-r--r--src/mame/drivers/mkit09.cpp6
-rw-r--r--src/mame/drivers/model3.cpp10
-rw-r--r--src/mame/drivers/monzagp.cpp6
-rw-r--r--src/mame/drivers/mpf1.cpp2
-rw-r--r--src/mame/drivers/mpu12wbk.cpp2
-rw-r--r--src/mame/drivers/multfish.cpp14
-rw-r--r--src/mame/drivers/multi16.cpp2
-rw-r--r--src/mame/drivers/multigam.cpp8
-rw-r--r--src/mame/drivers/murogmbl.cpp177
-rw-r--r--src/mame/drivers/mustache.cpp10
-rw-r--r--src/mame/drivers/mw8080bw.cpp2
-rw-r--r--src/mame/drivers/n64.cpp2
-rw-r--r--src/mame/drivers/namcona1.cpp2
-rw-r--r--src/mame/drivers/namcos1.cpp8
-rw-r--r--src/mame/drivers/namcos10.cpp2
-rw-r--r--src/mame/drivers/namcos11.cpp4
-rw-r--r--src/mame/drivers/namcos2.cpp14
-rw-r--r--src/mame/drivers/namcos21.cpp6
-rw-r--r--src/mame/drivers/namcos22.cpp12
-rw-r--r--src/mame/drivers/namcos23.cpp42
-rw-r--r--src/mame/drivers/namcos86.cpp4
-rw-r--r--src/mame/drivers/naomi.cpp87
-rw-r--r--src/mame/drivers/nbmj8688.cpp6
-rw-r--r--src/mame/drivers/nbmj8891.cpp16
-rw-r--r--src/mame/drivers/nbmj8900.cpp4
-rw-r--r--src/mame/drivers/neogeo.cpp20
-rw-r--r--src/mame/drivers/neopcb.cpp14
-rw-r--r--src/mame/drivers/newbrain.cpp2
-rw-r--r--src/mame/drivers/niyanpai.cpp4
-rw-r--r--src/mame/drivers/nmk16.cpp2
-rw-r--r--src/mame/drivers/notetaker.cpp20
-rw-r--r--src/mame/drivers/novag6502.cpp2
-rw-r--r--src/mame/drivers/nsg6809.cpp97
-rw-r--r--src/mame/drivers/nsm.cpp2
-rw-r--r--src/mame/drivers/nss.cpp2
-rw-r--r--src/mame/drivers/nycaptor.cpp4
-rw-r--r--src/mame/drivers/ojankohs.cpp4
-rw-r--r--src/mame/drivers/omegrace.cpp2
-rw-r--r--src/mame/drivers/overdriv.cpp2
-rw-r--r--src/mame/drivers/pacland.cpp2
-rw-r--r--src/mame/drivers/pacman.cpp26
-rw-r--r--src/mame/drivers/pandoras.cpp4
-rw-r--r--src/mame/drivers/panicr.cpp12
-rw-r--r--src/mame/drivers/pbaction.cpp2
-rw-r--r--src/mame/drivers/pc88va.cpp4
-rw-r--r--src/mame/drivers/pc9801.cpp12
-rw-r--r--src/mame/drivers/pegasus.cpp6
-rw-r--r--src/mame/drivers/pengadvb.cpp4
-rw-r--r--src/mame/drivers/pet.cpp22
-rw-r--r--src/mame/drivers/pgm2.cpp544
-rw-r--r--src/mame/drivers/piggypas.cpp2
-rw-r--r--src/mame/drivers/pingpong.cpp6
-rw-r--r--src/mame/drivers/pirates.cpp32
-rw-r--r--src/mame/drivers/play_2.cpp4
-rw-r--r--src/mame/drivers/playch10.cpp4
-rw-r--r--src/mame/drivers/playmark.cpp15
-rw-r--r--src/mame/drivers/pntnpuzl.cpp4
-rw-r--r--src/mame/drivers/poly.cpp2
-rw-r--r--src/mame/drivers/poly880.cpp2
-rw-r--r--src/mame/drivers/popeye.cpp4
-rw-r--r--src/mame/drivers/popobear.cpp2
-rw-r--r--src/mame/drivers/prodigy.cpp302
-rw-r--r--src/mame/drivers/puckpkmn.cpp2
-rw-r--r--src/mame/drivers/pve500.cpp2
-rw-r--r--src/mame/drivers/qix.cpp16
-rw-r--r--src/mame/drivers/r2dx_v33.cpp2
-rw-r--r--src/mame/drivers/r9751.cpp8
-rw-r--r--src/mame/drivers/raiden.cpp4
-rw-r--r--src/mame/drivers/rainbow.cpp8
-rw-r--r--src/mame/drivers/risc2500.cpp4
-rw-r--r--src/mame/drivers/rmhaihai.cpp6
-rw-r--r--src/mame/drivers/rohga.cpp8
-rw-r--r--src/mame/drivers/route16.cpp83
-rw-r--r--src/mame/drivers/royalmah.cpp6
-rw-r--r--src/mame/drivers/s11.cpp10
-rw-r--r--src/mame/drivers/s11a.cpp4
-rw-r--r--src/mame/drivers/s11b.cpp18
-rw-r--r--src/mame/drivers/sc1.cpp2
-rw-r--r--src/mame/drivers/sc2.cpp2
-rw-r--r--src/mame/drivers/scobra.cpp85
-rw-r--r--src/mame/drivers/scregg.cpp2
-rw-r--r--src/mame/drivers/sdk85.cpp2
-rw-r--r--src/mame/drivers/sdk86.cpp13
-rw-r--r--src/mame/drivers/seattle.cpp63
-rw-r--r--src/mame/drivers/segae.cpp38
-rw-r--r--src/mame/drivers/segag80r.cpp4
-rw-r--r--src/mame/drivers/segaorun.cpp10
-rw-r--r--src/mame/drivers/segas16a.cpp8
-rw-r--r--src/mame/drivers/segas16b.cpp62
-rw-r--r--src/mame/drivers/segaufo.cpp2
-rw-r--r--src/mame/drivers/seicross.cpp2
-rw-r--r--src/mame/drivers/selz80.cpp2
-rw-r--r--src/mame/drivers/seta.cpp2
-rw-r--r--src/mame/drivers/seta2.cpp316
-rw-r--r--src/mame/drivers/sfbonus.cpp16
-rw-r--r--src/mame/drivers/sfkick.cpp2
-rw-r--r--src/mame/drivers/sigmab52.cpp19
-rw-r--r--src/mame/drivers/sigmab98.cpp18
-rw-r--r--src/mame/drivers/simpl156.cpp2
-rw-r--r--src/mame/drivers/skimaxx.cpp2
-rw-r--r--src/mame/drivers/skyarmy.cpp4
-rw-r--r--src/mame/drivers/skykid.cpp4
-rw-r--r--src/mame/drivers/smsmcorp.cpp39
-rw-r--r--src/mame/drivers/snesb.cpp52
-rw-r--r--src/mame/drivers/snk6502.cpp37
-rw-r--r--src/mame/drivers/snookr10.cpp6
-rw-r--r--src/mame/drivers/snowbros.cpp10
-rw-r--r--src/mame/drivers/sonson.cpp4
-rw-r--r--src/mame/drivers/sothello.cpp25
-rw-r--r--src/mame/drivers/spdodgeb.cpp2
-rw-r--r--src/mame/drivers/speedbal.cpp4
-rw-r--r--src/mame/drivers/spiders.cpp2
-rw-r--r--src/mame/drivers/spy.cpp4
-rw-r--r--src/mame/drivers/squale.cpp2
-rw-r--r--src/mame/drivers/srumbler.cpp2
-rw-r--r--src/mame/drivers/sshangha.cpp8
-rw-r--r--src/mame/drivers/ssystem3.cpp2
-rw-r--r--src/mame/drivers/starwars.cpp4
-rw-r--r--src/mame/drivers/statriv2.cpp2
-rw-r--r--src/mame/drivers/stlforce.cpp36
-rw-r--r--src/mame/drivers/stv.cpp12
-rw-r--r--src/mame/drivers/subsino.cpp2
-rw-r--r--src/mame/drivers/subsino2.cpp12
-rw-r--r--src/mame/drivers/sun2.cpp16
-rw-r--r--src/mame/drivers/sun3.cpp42
-rw-r--r--src/mame/drivers/suna8.cpp34
-rw-r--r--src/mame/drivers/superqix.cpp8
-rw-r--r--src/mame/drivers/supertnk.cpp2
-rw-r--r--src/mame/drivers/supracan.cpp2
-rw-r--r--src/mame/drivers/surpratk.cpp2
-rw-r--r--src/mame/drivers/swtpc.cpp7
-rw-r--r--src/mame/drivers/swtpc09.cpp4
-rw-r--r--src/mame/drivers/system16.cpp2
-rw-r--r--src/mame/drivers/taito_l.cpp2
-rw-r--r--src/mame/drivers/taitojc.cpp70
-rw-r--r--src/mame/drivers/taitotz.cpp2
-rw-r--r--src/mame/drivers/tatsumi.cpp115
-rw-r--r--src/mame/drivers/tavernie.cpp2
-rw-r--r--src/mame/drivers/tcl.cpp2
-rw-r--r--src/mame/drivers/tec1.cpp2
-rw-r--r--src/mame/drivers/techno.cpp4
-rw-r--r--src/mame/drivers/tek440x.cpp6
-rw-r--r--src/mame/drivers/thomson.cpp4
-rw-r--r--src/mame/drivers/ti74.cpp2
-rw-r--r--src/mame/drivers/ticalc1x.cpp12
-rw-r--r--src/mame/drivers/tickee.cpp6
-rw-r--r--src/mame/drivers/tispeak.cpp9
-rw-r--r--src/mame/drivers/tispellb.cpp4
-rw-r--r--src/mame/drivers/tmnt.cpp6
-rw-r--r--src/mame/drivers/toaplan2.cpp32
-rw-r--r--src/mame/drivers/toki.cpp6
-rw-r--r--src/mame/drivers/tonton.cpp11
-rw-r--r--src/mame/drivers/tourvis.cpp128
-rw-r--r--src/mame/drivers/toypop.cpp4
-rw-r--r--src/mame/drivers/tp84.cpp4
-rw-r--r--src/mame/drivers/trackfld.cpp10
-rw-r--r--src/mame/drivers/travrusa.cpp6
-rw-r--r--src/mame/drivers/trvquest.cpp6
-rw-r--r--src/mame/drivers/tsispch.cpp8
-rw-r--r--src/mame/drivers/tutankhm.cpp2
-rw-r--r--src/mame/drivers/tv950.cpp10
-rw-r--r--src/mame/drivers/twinkle.cpp378
-rw-r--r--src/mame/drivers/twins.cpp6
-rw-r--r--src/mame/drivers/v6809.cpp7
-rw-r--r--src/mame/drivers/vaportra.cpp2
-rw-r--r--src/mame/drivers/vboy.cpp2
-rw-r--r--src/mame/drivers/vcs80.cpp2
-rw-r--r--src/mame/drivers/vectrex.cpp6
-rw-r--r--src/mame/drivers/vega.cpp6
-rw-r--r--src/mame/drivers/vegas.cpp49
-rw-r--r--src/mame/drivers/vic20.cpp51
-rw-r--r--src/mame/drivers/vt240.cpp8
-rw-r--r--src/mame/drivers/wacky_gator.cpp4
-rw-r--r--src/mame/drivers/wallc.cpp6
-rw-r--r--src/mame/drivers/wecleman.cpp4
-rw-r--r--src/mame/drivers/white_mod.cpp2
-rw-r--r--src/mame/drivers/whitestar.cpp2
-rw-r--r--src/mame/drivers/wico.cpp8
-rw-r--r--src/mame/drivers/williams.cpp41
-rw-r--r--src/mame/drivers/wink.cpp10
-rw-r--r--src/mame/drivers/witch.cpp2
-rw-r--r--src/mame/drivers/wiz.cpp2
-rw-r--r--src/mame/drivers/wpc_an.cpp6
-rw-r--r--src/mame/drivers/x1.cpp8
-rw-r--r--src/mame/drivers/x68k.cpp3
-rw-r--r--src/mame/drivers/xexex.cpp2
-rw-r--r--src/mame/drivers/xmen.cpp2
-rw-r--r--src/mame/drivers/xtheball.cpp100
-rw-r--r--src/mame/drivers/xyonix.cpp4
-rw-r--r--src/mame/drivers/yiear.cpp2
-rw-r--r--src/mame/drivers/yunsung8.cpp2
-rw-r--r--src/mame/drivers/yuvomz80.cpp117
-rw-r--r--src/mame/drivers/z100.cpp4
-rw-r--r--src/mame/drivers/zapcomputer.cpp2
-rw-r--r--src/mame/drivers/zn.cpp394
428 files changed, 3092 insertions, 7614 deletions
diff --git a/src/mame/drivers/24cdjuke.cpp b/src/mame/drivers/24cdjuke.cpp
index 2d06f447b89..4d1cd57249a 100644
--- a/src/mame/drivers/24cdjuke.cpp
+++ b/src/mame/drivers/24cdjuke.cpp
@@ -116,7 +116,7 @@ WRITE8_MEMBER(midcoin24cdjuke_state::digit_w)
{
uint16_t char_data = m_charset[((data & 0x60) << 1) | (data & 0x1f)];
- char_data = bitswap<16>(char_data, 13,11,9,15,14,10,12,8,7,6,5,4,3,2,1,0);
+ char_data = BITSWAP16(char_data, 13,11,9,15,14,10,12,8,7,6,5,4,3,2,1,0);
output().set_digit_value(offset, char_data ^ 0xffff);
}
diff --git a/src/mame/drivers/39in1.cpp b/src/mame/drivers/39in1.cpp
index 532b59d40bd..45e24a02733 100644
--- a/src/mame/drivers/39in1.cpp
+++ b/src/mame/drivers/39in1.cpp
@@ -1550,7 +1550,7 @@ void _39in1_state::machine_start()
for (i = 0; i < 0x80000; i += 2)
{
- ROM[i] = bitswap<8>(ROM[i],7,2,5,6,0,3,1,4) ^ bitswap<8>((i>>3)&0xf, 3,2,4,1,4,4,0,4) ^ 0x90;
+ ROM[i] = BITSWAP8(ROM[i],7,2,5,6,0,3,1,4) ^ BITSWAP8((i>>3)&0xf, 3,2,4,1,4,4,0,4) ^ 0x90;
}
pxa255_start();
@@ -1565,7 +1565,7 @@ MACHINE_START_MEMBER(_39in1_state,60in1)
{
if ((i%2)==0)
{
- ROM[i] = bitswap<8>(ROM[i],5,1,4,2,0,7,6,3)^bitswap<8>(i, 6,0,4,13,0,5,3,11);
+ ROM[i] = BITSWAP8(ROM[i],5,1,4,2,0,7,6,3)^BITSWAP8(i, 6,0,4,13,0,5,3,11);
}
}
diff --git a/src/mame/drivers/4enraya.cpp b/src/mame/drivers/4enraya.cpp
index 8d6d41a0143..b165007c8c5 100644
--- a/src/mame/drivers/4enraya.cpp
+++ b/src/mame/drivers/4enraya.cpp
@@ -636,7 +636,7 @@ DRIVER_INIT_MEMBER(_4enraya_state, unkpacg)
// descramble rom
uint8_t *rom = memregion("maincpu")->base();
for (int i = 0x8000; i < 0xa000; i++)
- rom[i] = bitswap<8>(rom[i], 7,6,5,4,3,2,0,1);
+ rom[i] = BITSWAP8(rom[i], 7,6,5,4,3,2,0,1);
}
diff --git a/src/mame/drivers/8080bw.cpp b/src/mame/drivers/8080bw.cpp
index 294be4b972d..8e2255093d8 100644
--- a/src/mame/drivers/8080bw.cpp
+++ b/src/mame/drivers/8080bw.cpp
@@ -3284,7 +3284,7 @@ DRIVER_INIT_MEMBER(_8080bw_state,attackfc)
// swap a8/a9
for (int i = 0; i < len; i++)
- buffer[bitswap<16>(i, 15,14,13,12,11,10,8,9, 7,6,5,4,3,2,1,0)] = rom[i];
+ buffer[BITSWAP16(i, 15,14,13,12,11,10,8,9, 7,6,5,4,3,2,1,0)] = rom[i];
memcpy(rom, &buffer[0], len);
}
@@ -3419,7 +3419,7 @@ DRIVER_INIT_MEMBER(_8080bw_state,invmulti)
// decrypt rom
for (int i = 0; i < len; i++)
- dest[i] = bitswap<8>(src[(i & 0x100ff) | (bitswap<8>(i >> 8 & 0xff, 7,3,4,5,0,6,1,2) << 8)],0,6,5,7,4,3,1,2);
+ dest[i] = BITSWAP8(src[(i & 0x100ff) | (BITSWAP8(i >> 8 & 0xff, 7,3,4,5,0,6,1,2) << 8)],0,6,5,7,4,3,1,2);
membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base(), 0x4000);
membank("bank1")->set_entry(0);
diff --git a/src/mame/drivers/a6809.cpp b/src/mame/drivers/a6809.cpp
index 3e67a43aad6..84cbcef2303 100644
--- a/src/mame/drivers/a6809.cpp
+++ b/src/mame/drivers/a6809.cpp
@@ -222,7 +222,7 @@ void a6809_state::kbd_put(u8 data)
static MACHINE_CONFIG_START( a6809 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_4MHz)
+ MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz)
MCFG_CPU_PROGRAM_MAP(a6809_mem)
MCFG_CPU_IO_MAP(a6809_io)
MCFG_MACHINE_RESET_OVERRIDE(a6809_state, a6809)
diff --git a/src/mame/drivers/accomm.cpp b/src/mame/drivers/accomm.cpp
index 263feb6cba7..4012236b50e 100644
--- a/src/mame/drivers/accomm.cpp
+++ b/src/mame/drivers/accomm.cpp
@@ -39,6 +39,35 @@
#define INT_SET 0x100
#define INT_CLEAR 0x200
+/* ULA context */
+
+struct ULA
+{
+ uint8_t interrupt_status;
+ uint8_t interrupt_control;
+ uint8_t rompage;
+ uint16_t screen_start;
+ uint16_t screen_base;
+ int screen_size;
+ uint16_t screen_addr;
+ uint8_t *vram;
+ int current_pal[16];
+ int communication_mode;
+ int screen_mode;
+ int shiftlock_mode;
+ int capslock_mode;
+// int scanline;
+ /* tape reading related */
+ uint32_t tape_value;
+ int tape_steps;
+ int bit_count;
+ int high_tone_set;
+ int start_bit;
+ int stop_bit;
+ int tape_running;
+ uint8_t tape_byte;
+};
+
class accomm_state : public driver_device
{
public:
@@ -96,37 +125,6 @@ protected:
private:
bool m_ch00rom_enabled;
-
- /* ULA context */
-
- struct ULA
- {
- uint8_t interrupt_status;
- uint8_t interrupt_control;
- uint8_t rompage;
- uint16_t screen_start;
- uint16_t screen_base;
- int screen_size;
- uint16_t screen_addr;
- uint8_t *vram;
- int current_pal[16];
- int communication_mode;
- int screen_mode;
- int shiftlock_mode;
- int capslock_mode;
- // int scanline;
- /* tape reading related */
- uint32_t tape_value;
- int tape_steps;
- int bit_count;
- int high_tone_set;
- int start_bit;
- int stop_bit;
- int tape_running;
- uint8_t tape_byte;
- };
-
-
ULA m_ula;
int m_map4[256];
int m_map16[256];
diff --git a/src/mame/drivers/acesp.cpp b/src/mame/drivers/acesp.cpp
index b69928b45e3..c74324aea51 100644
--- a/src/mame/drivers/acesp.cpp
+++ b/src/mame/drivers/acesp.cpp
@@ -3856,13 +3856,13 @@ static void descramble_crystal( uint8_t* region, int start, int end, uint8_t ext
switch (i & 0x58)
{
case 0x00: // same as 0x08
- case 0x08: x = bitswap<8>( x^0xca , 3,2,1,0,7,4,6,5 ); break;
- case 0x10: x = bitswap<8>( x^0x30 , 3,0,4,6,1,5,7,2 ); break;
- case 0x18: x = bitswap<8>( x^0x89 , 4,1,2,5,7,0,6,3 ); break;
- case 0x40: x = bitswap<8>( x^0x14 , 6,1,4,3,2,5,0,7 ); break;
- case 0x48: x = bitswap<8>( x^0x40 , 1,0,3,2,5,4,7,6 ); break;
- case 0x50: x = bitswap<8>( x^0xcb , 3,2,1,0,7,6,5,4 ); break;
- case 0x58: x = bitswap<8>( x^0xc0 , 2,3,6,0,5,1,7,4 ); break;
+ case 0x08: x = BITSWAP8( x^0xca , 3,2,1,0,7,4,6,5 ); break;
+ case 0x10: x = BITSWAP8( x^0x30 , 3,0,4,6,1,5,7,2 ); break;
+ case 0x18: x = BITSWAP8( x^0x89 , 4,1,2,5,7,0,6,3 ); break;
+ case 0x40: x = BITSWAP8( x^0x14 , 6,1,4,3,2,5,0,7 ); break;
+ case 0x48: x = BITSWAP8( x^0x40 , 1,0,3,2,5,4,7,6 ); break;
+ case 0x50: x = BITSWAP8( x^0xcb , 3,2,1,0,7,6,5,4 ); break;
+ case 0x58: x = BITSWAP8( x^0xc0 , 2,3,6,0,5,1,7,4 ); break;
}
region[i] = x ^ extra_xor;
}
diff --git a/src/mame/drivers/aerofgt.cpp b/src/mame/drivers/aerofgt.cpp
index 47cd3a501e3..d6f4e54072a 100644
--- a/src/mame/drivers/aerofgt.cpp
+++ b/src/mame/drivers/aerofgt.cpp
@@ -3027,7 +3027,7 @@ DRIVER_INIT_MEMBER(aerofgt_state, kickball)
uint8_t *src = memregion( "gfx2" )->base();
for (int i = 0;i < 0x80000;i++)
{
- src[i] = bitswap<8>(src[i], 7, 5, 6, 4, 3, 2, 1, 0);
+ src[i] = BITSWAP8(src[i], 7, 5, 6, 4, 3, 2, 1, 0);
}
}
diff --git a/src/mame/drivers/agat.cpp b/src/mame/drivers/agat.cpp
index 9299a474805..62f111e7255 100644
--- a/src/mame/drivers/agat.cpp
+++ b/src/mame/drivers/agat.cpp
@@ -2,51 +2,18 @@
// copyright-holders:R. Belmont, Sergey Svishchev
/***************************************************************************
- agat.cpp
-
- Driver for Agat series of Soviet Apple II non-clones
-
- These are similar to Apple II (same bus architecture, keyboard
- and floppy interface), but native video controllers are different.
-
- agat7 supports Apple (40col, HGR and DHR) video modes with add-on
- card; agat9 has built-in support for 40col and HGR. Palette in
- Apple modes is different and pixel stretching is not done.
-
- To do (common):
- - native keyboard (at least two variants)
- - video: text modes use 7x8 character cell and 224x256 raster
- - video: vertical raster splits (used at least by Rapira)
- - what is the state of devices at init and reset?
- - what do floating bus reads do?
- - ignore debugger reads -- use side_effect_disabled()
- - softlists
-
- To do (agat7):
- - hw variant: 16 colors
- - hw variant: 256-char chargen
- - hw variant: 64K and 128K onboard memory
- - "500hz" interrupt breakage
- - what does write to C009 do? (basedos7.nib)
-
- To do (agat9):
- - memory banking: what does write to C18x..C1Fx do?
- - memory expansion boards
- - apple2 video compat mode incl. language card emulation
- - 840K floppy controller: low level emulation, AIM format support
- - mouse via parallel port
- - hw revisions and agat9a model (via http://agatcomp.ru/Images/case.shtml)
-
- Slot devices -- 1st party:
- - agat7: apple2 video card (decimal 3.089.121) -- http://agatcomp.ru/Images/new_j121.shtml
- - agat7: serial-parallel card (decimal 3.089.10)6
- - agat9: printer card (decimal 3.089.17)4
-
- Slot devices -- 3rd party:
- - Nippel Clock (uses mc146818)
- - Nippel mouse -- http://agatcomp.ru/Images/new_mouse.shtml
- - Sprite Card-93 (uses fd1793)
- - others
+ agat.c
+ Skeleton driver for Agat series of Soviet Apple II non-clones
+
+ These are similar to Apple II (same bus architecture, keyboard and
+ floppy interface), but video controller is completely different.
+
+ To do:
+ - native keyboards (at least two variants)
+ - 840K floppy controller (MFM encoding, but track layout is unique)
+ - agat7: 64K and 128K onboard memory configurations
+ - agat9
+ - 3rd party slot devices
************************************************************************/
@@ -60,7 +27,6 @@
#include "bus/a2bus/a2diskii.h"
#include "bus/a2bus/agat7langcard.h"
#include "bus/a2bus/agat7ram.h"
-#include "bus/a2bus/agat840k_hle.h"
#include "screen.h"
#include "softlist.h"
@@ -112,12 +78,14 @@ public:
required_device<address_map_bank_device> m_upperbank;
TIMER_DEVICE_CALLBACK_MEMBER(ay3600_repeat);
- TIMER_DEVICE_CALLBACK_MEMBER(timer_irq);
- INTERRUPT_GEN_MEMBER(agat_vblank);
+ TIMER_DEVICE_CALLBACK_MEMBER(agat_timer);
+ TIMER_DEVICE_CALLBACK_MEMBER(agat_vblank);
virtual void machine_start() override;
virtual void machine_reset() override;
+ DECLARE_READ8_MEMBER(c000_r);
+ DECLARE_WRITE8_MEMBER(c000_w);
DECLARE_READ8_MEMBER(c080_r);
DECLARE_WRITE8_MEMBER(c080_w);
DECLARE_READ8_MEMBER(c100_r);
@@ -138,20 +106,6 @@ public:
DECLARE_WRITE8_MEMBER(agat7_membank_w);
DECLARE_READ8_MEMBER(agat7_ram_r);
DECLARE_WRITE8_MEMBER(agat7_ram_w);
- DECLARE_READ8_MEMBER(keyb_data_r);
- DECLARE_READ8_MEMBER(keyb_strobe_r);
- DECLARE_WRITE8_MEMBER(keyb_strobe_w);
- DECLARE_READ8_MEMBER(cassette_toggle_r);
- DECLARE_WRITE8_MEMBER(cassette_toggle_w);
- DECLARE_READ8_MEMBER(speaker_toggle_r);
- DECLARE_WRITE8_MEMBER(speaker_toggle_w);
- DECLARE_READ8_MEMBER(interrupts_on_r);
- DECLARE_WRITE8_MEMBER(interrupts_on_w);
- DECLARE_READ8_MEMBER(interrupts_off_r);
- DECLARE_WRITE8_MEMBER(interrupts_off_w);
- DECLARE_READ8_MEMBER(flags_r);
- DECLARE_READ8_MEMBER(controller_strobe_r);
- DECLARE_WRITE8_MEMBER(controller_strobe_w);
private:
int m_speaker_state;
@@ -337,123 +291,120 @@ void agat7_state::machine_reset()
/***************************************************************************
I/O
***************************************************************************/
-
-READ8_MEMBER(agat7_state::keyb_data_r)
+// most softswitches don't care about read vs write, so handle them here
+void agat7_state::do_io(address_space &space, int offset)
{
- return m_strobe ? (m_transchar | m_strobe) : 0;
-}
-
-READ8_MEMBER(agat7_state::keyb_strobe_r)
-{
- // reads any key down, clears strobe
- uint8_t rv = m_transchar | (m_anykeydown ? 0x80 : 0x00);
- if (!machine().side_effect_disabled())
- m_strobe = 0;
- return rv;
-}
+ if (machine().side_effect_disabled())
+ {
+ return;
+ }
-WRITE8_MEMBER(agat7_state::keyb_strobe_w)
-{
- // clear keyboard latch
- m_strobe = 0;
-}
+ switch (offset & 0xf0)
+ {
+ case 0x20:
+ m_cassette_state ^= 1;
+ m_cassette->output(m_cassette_state ? 1.0f : -1.0f);
+ break;
-READ8_MEMBER(agat7_state::cassette_toggle_r)
-{
- if (!machine().side_effect_disabled())
- cassette_toggle_w(space, offset, 0);
- return read_floatingbus();
-}
+ case 0x30:
+ m_speaker_state ^= 1;
+ m_speaker->level_w(m_speaker_state);
+ break;
-WRITE8_MEMBER(agat7_state::cassette_toggle_w)
-{
- m_cassette_state ^= 1;
- m_cassette->output(m_cassette_state ? 1.0f : -1.0f);
-}
+ // XXX agat7: 0x4N -- enable timer interrupts, 0x5N -- disable (or vice versa depending on hw rev)
+ case 0x40:
+ m_agat7_interrupts = true;
+ break;
-READ8_MEMBER(agat7_state::speaker_toggle_r)
-{
- if (!machine().side_effect_disabled())
- speaker_toggle_w(space, offset, 0);
- return read_floatingbus();
-}
+ case 0x50:
+ m_agat7_interrupts = false;
-WRITE8_MEMBER(agat7_state::speaker_toggle_w)
-{
- m_speaker_state ^= 1;
- m_speaker->level_w(m_speaker_state);
+ case 0x70:
+ m_joystick_x1_time = machine().time().as_double() + m_x_calibration * m_joy1x->read();
+ m_joystick_y1_time = machine().time().as_double() + m_y_calibration * m_joy1y->read();
+ m_joystick_x2_time = machine().time().as_double() + m_x_calibration * m_joy2x->read();
+ m_joystick_y2_time = machine().time().as_double() + m_y_calibration * m_joy2y->read();
+ break;
+ }
}
-READ8_MEMBER(agat7_state::interrupts_on_r)
+READ8_MEMBER(agat7_state::c000_r)
{
- if (!machine().side_effect_disabled())
- interrupts_on_w(space, offset, 0);
- return read_floatingbus();
-}
+ if (offset)
+ logerror("%s: c000_r %04X == %02X\n", machine().describe_context(), offset+0xc000, 0);
+ else if (m_strobe)
+ logerror("%s: c000_r %04X == %02X\n", machine().describe_context(), offset+0xc000, m_transchar | m_strobe);
-WRITE8_MEMBER(agat7_state::interrupts_on_w)
-{
- m_agat7_interrupts = true;
-}
+ switch (offset)
+ {
+ // keyboard latch. NB: agat7 returns 0 if latch is clear, agat9 returns char code.
+ case 0x00: case 0x01: case 0x02: case 0x03: case 0x04: case 0x05: case 0x06: case 0x07:
+ case 0x08: case 0x09: case 0x0a: case 0x0b: case 0x0c: case 0x0d: case 0x0e: case 0x0f:
+ return m_strobe ? (m_transchar | m_strobe) : 0;
-READ8_MEMBER(agat7_state::interrupts_off_r)
-{
- if (!machine().side_effect_disabled())
- interrupts_off_w(space, offset, 0);
- return read_floatingbus();
-}
+ case 0x10: // reads any key down, clears strobe
+ {
+ uint8_t rv = m_transchar | (m_anykeydown ? 0x80 : 0x00);
+ m_strobe = 0;
+ return rv;
+ }
-WRITE8_MEMBER(agat7_state::interrupts_off_w)
-{
- m_agat7_interrupts = false;
-}
+ case 0x60: // cassette in
+ case 0x68:
+ return m_cassette->input() > 0.0 ? 0x80 : 0;
-READ8_MEMBER(agat7_state::flags_r)
-{
- switch (offset)
- {
- case 0: // cassette in
- return m_cassette->input() > 0.0 ? 0x80 : 0;
+ case 0x61: // button 0
+ case 0x69:
+ return (m_joybuttons->read() & 0x10) ? 0x80 : 0;
- case 1: // button 0
- return (m_joybuttons->read() & 0x10) ? 0x80 : 0;
+ case 0x62: // button 1
+ case 0x6a:
+ return (m_joybuttons->read() & 0x20) ? 0x80 : 0;
- case 2: // button 1
- return (m_joybuttons->read() & 0x20) ? 0x80 : 0;
+ case 0x63: // button 2
+ case 0x6b:
+ return ((m_joybuttons->read() & 0x40) || (m_kbspecial->read() & 0x06)) ? 0 : 0x80;
- case 3: // button 2
- return ((m_joybuttons->read() & 0x40) || !(m_kbspecial->read() & 0x06)) ? 0x80 : 0;
+ case 0x64: // joy 1 X axis
+ case 0x6c:
+ return (space.machine().time().as_double() < m_joystick_x1_time) ? 0x80 : 0;
- case 4: // joy 1 X axis
- return (space.machine().time().as_double() < m_joystick_x1_time) ? 0x80 : 0;
+ case 0x65: // joy 1 Y axis
+ case 0x6d:
+ return (space.machine().time().as_double() < m_joystick_y1_time) ? 0x80 : 0;
- case 5: // joy 1 Y axis
- return (space.machine().time().as_double() < m_joystick_y1_time) ? 0x80 : 0;
+ case 0x66: // joy 2 X axis
+ case 0x6e:
+ return (space.machine().time().as_double() < m_joystick_x2_time) ? 0x80 : 0;
- case 6: // joy 2 X axis
- return (space.machine().time().as_double() < m_joystick_x2_time) ? 0x80 : 0;
+ case 0x67: // joy 2 Y axis
+ case 0x6f:
+ return (space.machine().time().as_double() < m_joystick_y2_time) ? 0x80 : 0;
- case 7: // joy 2 Y axis
- return (space.machine().time().as_double() < m_joystick_y2_time) ? 0x80 : 0;
+ default:
+ do_io(space, offset);
+ break;
}
- // this is never reached
- return 0;
-}
-
-READ8_MEMBER(agat7_state::controller_strobe_r)
-{
- if (!machine().side_effect_disabled())
- controller_strobe_w(space, offset, 0);
return read_floatingbus();
}
-WRITE8_MEMBER(agat7_state::controller_strobe_w)
+WRITE8_MEMBER(agat7_state::c000_w)
{
- m_joystick_x1_time = machine().time().as_double() + m_x_calibration * m_joy1x->read();
- m_joystick_y1_time = machine().time().as_double() + m_y_calibration * m_joy1y->read();
- m_joystick_x2_time = machine().time().as_double() + m_x_calibration * m_joy2x->read();
- m_joystick_y2_time = machine().time().as_double() + m_y_calibration * m_joy2y->read();
+ logerror("%s: c000_w %04X <- %02X\n", machine().describe_context(), offset + 0xc000, data);
+
+ switch (offset)
+ {
+ // clear keyboard latch
+ case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17:
+ case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x1e: case 0x1f:
+ m_strobe = 0;
+ break;
+
+ default:
+ do_io(space, offset);
+ break;
+ }
}
READ8_MEMBER(agat7_state::c080_r)
@@ -528,7 +479,7 @@ WRITE8_MEMBER(agat7_state::c100_w)
m_cnxx_slot = slotnum;
}
- m_slotdevice[slotnum]->write_cnxx(space, offset & 0xff, data);
+ m_slotdevice[slotnum]->write_cnxx(space, offset&0xff, data);
}
}
@@ -682,14 +633,7 @@ WRITE8_MEMBER(agat7_state::agat7_ram_w)
static ADDRESS_MAP_START( agat7_map, AS_PROGRAM, 8, agat7_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xbfff) AM_READWRITE(agat7_ram_r, agat7_ram_w)
- AM_RANGE(0xc000, 0xc000) AM_MIRROR(0xf) AM_READ(keyb_data_r) AM_WRITENOP
- AM_RANGE(0xc010, 0xc010) AM_MIRROR(0xf) AM_READWRITE(keyb_strobe_r, keyb_strobe_w)
- AM_RANGE(0xc020, 0xc020) AM_MIRROR(0xf) AM_READWRITE(cassette_toggle_r, cassette_toggle_w)
- AM_RANGE(0xc030, 0xc030) AM_MIRROR(0xf) AM_READWRITE(speaker_toggle_r, speaker_toggle_w)
- AM_RANGE(0xc040, 0xc040) AM_MIRROR(0xf) AM_READWRITE(interrupts_on_r, interrupts_on_w)
- AM_RANGE(0xc050, 0xc050) AM_MIRROR(0xf) AM_READWRITE(interrupts_off_r, interrupts_off_w)
- AM_RANGE(0xc060, 0xc067) AM_MIRROR(0x8) AM_READ(flags_r) AM_WRITENOP
- AM_RANGE(0xc070, 0xc070) AM_MIRROR(0xf) AM_READWRITE(controller_strobe_r, controller_strobe_w)
+ AM_RANGE(0xc000, 0xc07f) AM_READWRITE(c000_r, c000_w)
AM_RANGE(0xc080, 0xc0ef) AM_READWRITE(c080_r, c080_w)
AM_RANGE(0xc0f0, 0xc0ff) AM_READWRITE(agat7_membank_r, agat7_membank_w)
AM_RANGE(0xc100, 0xc6ff) AM_READWRITE(c100_r, c100_w)
@@ -781,20 +725,20 @@ static const uint8_t a2_key_remap[0x40][4] =
{ 0x1a,0x1a,0x1a,0x1a }, /* Down */
{ 0x10,0x10,0x10,0x10 }, /* KP1 */
{ 0x0d,0x0d,0x0d,0x0d }, /* Enter 31 */
- { 0x11,0x11,0x11,0x11 }, /* KP2 */
- { 0x12,0x12,0x12,0x12 }, /* KP3 */
- { 0x13,0x13,0x13,0x13 }, /* KP4 */
- { 0x14,0x14,0x14,0x14 }, /* KP5 */
- { 0x1c,0x1c,0x1c,0x1c }, /* KP6 */
- { 0x1d,0x1d,0x1d,0x1d }, /* KP7 */
- { 0x1e,0x1e,0x1e,0x1e }, /* KP8 */
- { 0x1f,0x1f,0x1f,0x1f }, /* KP9 */
- { 0x01,0x01,0x01,0x01 }, /* KP0 */
- { 0x02,0x02,0x02,0x02 }, /* KP. */
- { 0x03,0x03,0x03,0x03 }, /* KP= */
- { 0x04,0x04,0x04,0x04 }, /* PF1 */
- { 0x05,0x05,0x05,0x05 }, /* PF2 */
- { 0x06,0x06,0x06,0x06 }, /* PF3 */
+ { 0x11,0x11,0x11,0x11 },
+ { 0x12,0x12,0x12,0x12 },
+ { 0x13,0x13,0x13,0x13 },
+ { 0x14,0x14,0x14,0x14 },
+ { 0x1c,0x1c,0x1c,0x1c },
+ { 0x1d,0x1d,0x1d,0x1d },
+ { 0x1e,0x1e,0x1e,0x1e },
+ { 0x1f,0x1f,0x1f,0x1f },
+ { 0x01,0x01,0x01,0x01 },
+ { 0x02,0x02,0x02,0x02 },
+ { 0x03,0x03,0x03,0x03 },
+ { 0x04,0x04,0x04,0x04 },
+ { 0x05,0x05,0x05,0x05 },
+ { 0x06,0x06,0x06,0x06 },
};
WRITE_LINE_MEMBER(agat7_state::ay3600_data_ready_w)
@@ -833,28 +777,19 @@ TIMER_DEVICE_CALLBACK_MEMBER(agat7_state::ay3600_repeat)
}
}
-INTERRUPT_GEN_MEMBER(agat7_state::agat_vblank)
+TIMER_DEVICE_CALLBACK_MEMBER(agat7_state::agat_timer)
{
if (m_agat7_interrupts)
{
- m_maincpu->set_input_line(M6502_NMI_LINE, PULSE_LINE);
+ m_maincpu->set_input_line(M6502_IRQ_LINE, ASSERT_LINE);
}
}
-TIMER_DEVICE_CALLBACK_MEMBER(agat7_state::timer_irq)
+TIMER_DEVICE_CALLBACK_MEMBER(agat7_state::agat_vblank)
{
if (m_agat7_interrupts)
{
- switch (param & 0x3f)
- {
- case 0:
- m_maincpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE);
- break;
-
- case 0x20:
- m_maincpu->set_input_line(M6502_IRQ_LINE, ASSERT_LINE);
- break;
- }
+ m_maincpu->set_input_line(M6502_NMI_LINE, ASSERT_LINE);
}
}
@@ -898,8 +833,8 @@ static INPUT_PORTS_START( agat7_joystick )
PORT_CODE_DEC(JOYCODE_Y_UP_SWITCH) PORT_CODE_INC(JOYCODE_Y_DOWN_SWITCH)
PORT_START("joystick_buttons")
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(1) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_BUTTON1) PORT_CHAR(UCHAR_MAMEKEY(0_PAD))
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(1) PORT_CODE(KEYCODE_ENTER_PAD)PORT_CODE(JOYCODE_BUTTON2) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD))
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(1) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_BUTTON1)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(1) PORT_CODE(KEYCODE_ENTER_PAD)PORT_CODE(JOYCODE_BUTTON2)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(2) PORT_CODE(JOYCODE_BUTTON1)
INPUT_PORTS_END
@@ -944,7 +879,7 @@ static INPUT_PORTS_START( agat7_common )
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U') PORT_CHAR('u')
PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_CHAR('i')
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('o')
- PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR('p')
+ PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR('@')
PORT_START("X2")
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHAR('d')
@@ -955,8 +890,8 @@ static INPUT_PORTS_START( agat7_common )
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR('k')
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('l')
PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+')
- PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
- PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
+ PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT)
+ PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT)
PORT_START("X3")
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_CHAR('z')
@@ -977,8 +912,8 @@ static INPUT_PORTS_START( agat7_common )
PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27)
PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_CHAR('a')
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
- PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
- PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
+ PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP)
+ PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN)
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num 1") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD))
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
@@ -997,8 +932,8 @@ static INPUT_PORTS_START( agat7_common )
PORT_START("X6")
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num =") PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD))
PORT_BIT(0x002, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF1") PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR(UCHAR_MAMEKEY(SLASH_PAD))
- PORT_BIT(0x004, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF2") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK))
- PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF3") PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD))
+ PORT_BIT(0x004, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF2") PORT_CODE(KEYCODE_ASTERISK)
+ PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF3") PORT_CODE(KEYCODE_MINUS_PAD)
PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_UNUSED)
@@ -1037,7 +972,7 @@ static INPUT_PORTS_START( agat7_common )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Control") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RESET") PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12))
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RESET") PORT_CODE(KEYCODE_F12)
INPUT_PORTS_END
static INPUT_PORTS_START(agat7)
@@ -1056,7 +991,7 @@ static SLOT_INTERFACE_START(agat7_cards)
SLOT_INTERFACE("a7lang", A2BUS_AGAT7LANGCARD) // Agat-7 RAM Language Card -- decimal 3.089.119
SLOT_INTERFACE("a7ram", A2BUS_AGAT7RAM) // Agat-7 32K RAM Card -- decimal 3.089.119-01, KR565RU6D chips
SLOT_INTERFACE("a7fdc", A2BUS_AGAT7_FDC) // Disk II clone -- decimal 3.089.105
- SLOT_INTERFACE("a7fdc840", A2BUS_AGAT840K_HLE) // 840K floppy controller -- decimal 7.104.351 or 3.089.023?
+ // 840K floppy controller -- decimal 7.104.351
// Serial-parallel card -- decimal 3.089.106
// Printer card (agat9) -- decimal 3.089.174
@@ -1072,9 +1007,8 @@ SLOT_INTERFACE_END
static MACHINE_CONFIG_START( agat7 )
MCFG_CPU_ADD("maincpu", M6502, XTAL_14_3MHz / 14)
MCFG_CPU_PROGRAM_MAP(agat7_map)
- MCFG_CPU_VBLANK_INT_DRIVER(A7_VIDEO_TAG ":a7screen", agat7_state, agat_vblank)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", agat7_state, timer_irq, A7_VIDEO_TAG ":a7screen", 0, 1)
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("agat7irq", agat7_state, agat_timer, attotime::from_hz(500))
MCFG_DEVICE_ADD(A7_VIDEO_TAG, AGAT7VIDEO, 0)
@@ -1177,5 +1111,5 @@ ROM_START( agat9 )
ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
-COMP( 1983, agat7, apple2, 0, agat7, agat7, agat7_state, 0, "Agat", "Agat-7", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_CONTROLS)
+COMP( 1983, agat7, apple2, 0, agat7, agat7, agat7_state, 0, "Agat", "Agat-7", MACHINE_NOT_WORKING)
COMP( 1984, agat9, apple2, 0, agat7, agat7, agat7_state, 0, "Agat", "Agat-9", MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/aim65.cpp b/src/mame/drivers/aim65.cpp
index da7bfabb98b..17f9b005ddb 100644
--- a/src/mame/drivers/aim65.cpp
+++ b/src/mame/drivers/aim65.cpp
@@ -206,7 +206,7 @@ static MACHINE_CONFIG_START( aim65 )
MCFG_MOS6530n_IN_PB_CB(READ8(aim65_state, aim65_riot_b_r))
MCFG_MOS6530n_IRQ_CB(INPUTLINE("maincpu", M6502_IRQ_LINE))
- MCFG_DEVICE_ADD("via6522_0", VIA6522, AIM65_CLOCK)
+ MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_VIA6522_READPB_HANDLER(READ8(aim65_state, aim65_pb_r))
// in CA1 printer ready?
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(aim65_state, aim65_pb_w))
@@ -215,7 +215,7 @@ static MACHINE_CONFIG_START( aim65 )
// out CB2 turn printer on
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M6502_IRQ_LINE))
- MCFG_DEVICE_ADD("via6522_1", VIA6522, AIM65_CLOCK)
+ MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M6502_IRQ_LINE))
MCFG_DEVICE_ADD("pia6821", PIA6821, 0)
diff --git a/src/mame/drivers/aim65_40.cpp b/src/mame/drivers/aim65_40.cpp
index 3837a0016a2..e1121a2f014 100644
--- a/src/mame/drivers/aim65_40.cpp
+++ b/src/mame/drivers/aim65_40.cpp
@@ -122,9 +122,9 @@ static MACHINE_CONFIG_START( aim65_40 )
/* sound hardware */
/* devices */
- MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, 1000000)
- MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, 1000000)
- MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, 1000000)
+ MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, 0)
+ MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, 0)
+ MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, 0)
MCFG_DEVICE_ADD(M6551_TAG, MOS6551, 0)
MCFG_MOS6551_XTAL(XTAL_1_8432MHz)
MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))
diff --git a/src/mame/drivers/airraid.cpp b/src/mame/drivers/airraid.cpp
index 8a85510ad8e..018e149dcc4 100644
--- a/src/mame/drivers/airraid.cpp
+++ b/src/mame/drivers/airraid.cpp
@@ -601,14 +601,14 @@ DRIVER_INIT_MEMBER(airraid_state,cshootere)
m_decrypted_opcodes[A] ^= 0x02;
if (BIT(A,9) || !BIT(A,5) || BIT(A,3))
- m_decrypted_opcodes[A] = bitswap<8>(m_decrypted_opcodes[A],7,6,1,4,3,2,5,0);
+ m_decrypted_opcodes[A] = BITSWAP8(m_decrypted_opcodes[A],7,6,1,4,3,2,5,0);
/* decode the data */
if (BIT(A,5))
rom[A] ^= 0x40;
if (BIT(A,9) || !BIT(A,5))
- rom[A] = bitswap<8>(rom[A],7,6,1,4,3,2,5,0);
+ rom[A] = BITSWAP8(rom[A],7,6,1,4,3,2,5,0);
}
DRIVER_INIT_CALL(cshooter);
diff --git a/src/mame/drivers/ajax.cpp b/src/mame/drivers/ajax.cpp
index 7f5c449de89..bd4db94f2be 100644
--- a/src/mame/drivers/ajax.cpp
+++ b/src/mame/drivers/ajax.cpp
@@ -17,7 +17,7 @@
#include "includes/konamipt.h"
#include "cpu/z80/z80.h"
-#include "cpu/m6809/hd6309.h"
+#include "cpu/m6809/m6809.h"
#include "cpu/m6809/konami.h"
#include "sound/ym2151.h"
#include "speaker.h"
@@ -173,7 +173,7 @@ static MACHINE_CONFIG_START( ajax )
MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/2/4) /* 052001 12/4 MHz*/
MCFG_CPU_PROGRAM_MAP(ajax_main_map)
- MCFG_CPU_ADD("sub", HD6309E, 3000000) /* ? */
+ MCFG_CPU_ADD("sub", M6809, 3000000) /* ? */
MCFG_CPU_PROGRAM_MAP(ajax_sub_map)
MCFG_CPU_ADD("audiocpu", Z80, 3579545) /* 3.58 MHz */
diff --git a/src/mame/drivers/alesis.cpp b/src/mame/drivers/alesis.cpp
index c7e9fc91bf5..4a18d1fd05e 100644
--- a/src/mame/drivers/alesis.cpp
+++ b/src/mame/drivers/alesis.cpp
@@ -472,7 +472,7 @@ DRIVER_INIT_MEMBER(alesis_state,hr16)
uint8_t *orig = memregion("user1")->base();
for (i = 0; i < 0x8000; i++)
{
- ROM[bitswap<16>(i,15,14,13,12,11,10,9,8,0,1,2,3,4,5,6,7)] = orig[i];
+ ROM[BITSWAP16(i,15,14,13,12,11,10,9,8,0,1,2,3,4,5,6,7)] = orig[i];
}
}
diff --git a/src/mame/drivers/alphatpx.cpp b/src/mame/drivers/alphatpx.cpp
index 67e8751628b..fcb3d9de838 100644
--- a/src/mame/drivers/alphatpx.cpp
+++ b/src/mame/drivers/alphatpx.cpp
@@ -25,18 +25,15 @@ P1
Upper 32K
0x4000 - 0x400a reserved
0x4010 - 0xc000 32K RAM
-1x 160K, single sided, 40 tracks, 16 sectors/track, 256 bytes/sector floppy disk drive
P2, P2S
Upper 48K
0x4000 - 0x400a reserved
0x4010 - 0xfff 48K RAM
-P2: 2x 160K, single sided, 40 tracks, 16 sectors/track, 256 bytes/sector floppy disk drives
P2 U, paging via
An adapter with RAM at 0x0000 and 0x3fff and the banking logic (see above) is added to the the standard 48K memory card.
16K memory card
-P2S, P2U: 2x 320K, double sided, 40 tracks, 16 sectors/track, 256 bytes/sector floppy disk drives
P3, P4
0x0000 - 0x0fff ROM monitor (MOS)
@@ -45,16 +42,13 @@ P3, P4
0x1c00 - 0x2fff free
0x3000 - 0x3fff video memory
0x4000 - 0xffff RAM
-P3: 2x785K, double sided, 80 tracks, 5 sectors/track, 1024 bytes/sector floppy disk drives
-P4: 1x785K, double sided, 80 tracks, 5 sectors/track, 1024 bytes/sector floppy disk drive, 1x harddisk 360 tracks, 4 heads, 17 sectors/track, 512 bytes/sector
+
P2 U and P3 support regular CP/M use with a full 64K RAM complement.
Still, the video RAM is at 0x3000 and 0x3ffff even for these machines, and from what I've read they also use the routine present in the ROM monitor, the MOS.
That means, that in order to update the video RAM and probably other I/O the lower 16K (page 0) are constantly paged in and paged out.
-This is accomplished by writing 2FH to port 0x78 in order to switch in the ROM (and assorted, see below) area and by writing 63H to port 0x78 in order to swap the full 64K RAM back in.
-
-P30 and P40 were P3 and P4's with an additional 8088 card (some with an extra graphics extension) to support MS-DOS.
+This is accomplished by writing 2FH to port 0x78 in order to switch in the ROM (and assorted, see below) area and by writing 63H to port 0x78 in order to swap the full 64K RAM back in.
***************************************************************************/
#include "emu.h"
@@ -329,13 +323,10 @@ INPUT_PORTS_END
// FLOPPY
//**************************************************************************
-static SLOT_INTERFACE_START( alphatp3_floppies ) // two BASF 2471 drives
+static SLOT_INTERFACE_START( alphatp3_floppies )
SLOT_INTERFACE("525qd", FLOPPY_525_QD)
SLOT_INTERFACE_END
-static SLOT_INTERFACE_START( alphatp2_floppies ) // two BASF 6106 drives
- SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD)
-SLOT_INTERFACE_END
//**************************************************************************
// VIDEO
@@ -567,12 +558,6 @@ static MACHINE_CONFIG_START( alphatp3 )
MCFG_FLOPPY_DRIVE_ADD("fdc:1", alphatp3_floppies, "525qd", floppy_image_device::default_floppy_formats)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED (alphatp2, alphatp3)
- MCFG_DEVICE_REMOVE("fdc:0")
- MCFG_DEVICE_REMOVE("fdc:1")
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", alphatp2_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", alphatp2_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
-MACHINE_CONFIG_END
//**************************************************************************
// ROM DEFINITIONS
@@ -581,59 +566,40 @@ MACHINE_CONFIG_END
// Alphatronic P2
ROM_START( alphatp2 ) // P2 ROM space 0x1800
ROM_REGION(0x1800, "boot", 0)
- ROM_SYSTEM_BIOS(0, "caap94-96", "caap94-96")
- ROM_SYSTEM_BIOS(1, "caap04-06", "caap04-06")
- ROM_SYSTEM_BIOS(2, "p2_es", "p2_es")
- ROM_SYSTEM_BIOS(3, "p2_sks", "p2_sks")
- ROM_SYSTEM_BIOS(4, "p2_ta", "p2_ta")
-
- ROMX_LOAD("caap_96_00_5a.bin", 0x0000, 0x0800, CRC(cb137796) SHA1(876bd0762faffc7b74093922d8fbf1c72ec70060), ROM_BIOS(1) ) // earlier P2, three 16K RAM boards
- ROMX_LOAD("caap_05_02_12.bin", 0x0800, 0x0800, CRC(14f19693) SHA1(7ecb66818a3e352fede1857a18cd12bf742603a9), ROM_BIOS(1) )
- ROMX_LOAD("caap_94_01_50.bin", 0x1000, 0x0800, CRC(fda8d4a4) SHA1(fa91e6e8504e7f84cf69d86f72826ad5405fd82d), ROM_BIOS(1) )
-
- ROMX_LOAD("prom2p00.bin", 0x0000, 0x0800, CRC(c98d2982) SHA1(11e98ae441b7a9c8dfd22795f8208667959f1d1c), ROM_BIOS(2) ) // later P2, one 48K RAM board
- ROMX_LOAD("prom2p01.bin", 0x0800, 0x0800, CRC(14f19693) SHA1(7ecb66818a3e352fede1857a18cd12bf742603a9), ROM_BIOS(2) )
- ROMX_LOAD("prom2p02.bin", 0x1000, 0x0800, CRC(f304c3aa) SHA1(92213e77e4e6de12a4eaee25a9c1ec0ab54e93d4), ROM_BIOS(2) )
-
- ROMX_LOAD("caap_p2_es.bin", 0x0000, 0x1800, CRC(FBA85CD3) SHA1(E82482AF6D39F892B88868677572898945E02581), ROM_BIOS(3) ) // P2 Spain
-
- ROMX_LOAD("mos3-p2_sks.bin", 0x0000, 0x1800, CRC(C045AADB) SHA1(1478530894E1DA53CC96DDB765DD1E03FF3ADEF1), ROM_BIOS(4) ) // P2 sks
-
- ROMX_LOAD("prom2p00.bin", 0x0000, 0x0800, CRC(c98d2982) SHA1(11e98ae441b7a9c8dfd22795f8208667959f1d1c), ROM_BIOS(5) ) // P2 TA
- ROMX_LOAD("prom2p01.bin", 0x0800, 0x0800, CRC(14f19693) SHA1(7ecb66818a3e352fede1857a18cd12bf742603a9), ROM_BIOS(5) )
- ROMX_LOAD("prom2p02.bin", 0x1000, 0x0800, CRC(f304c3aa) SHA1(92213e77e4e6de12a4eaee25a9c1ec0ab54e93d4), ROM_BIOS(5) )
+ ROM_SYSTEM_BIOS(0, "p2_es", "p2_es")
+ ROMX_LOAD("caap_p2_es.bin", 0x0000, 0x1800, CRC(FBA85CD3) SHA1(E82482AF6D39F892B88868677572898945E02581), ROM_BIOS(1) ) // P2 SPANIEN
+ ROM_SYSTEM_BIOS(1, "p2_sks", "p2_sks")
+ ROMX_LOAD("mos3-p2_sks.bin", 0x0000, 0x1800, CRC(C045AADB) SHA1(1478530894E1DA53CC96DDB765DD1E03FF3ADEF1), ROM_BIOS(2) ) // P2 sks
+ ROM_SYSTEM_BIOS(2, "p2_ta", "p2_ta")
+ ROMX_LOAD("prom2p00.bin", 0x0000, 0x0800, CRC(c98d2982) SHA1(11e98ae441b7a9c8dfd22795f8208667959f1d1c), ROM_BIOS(3) ) // P2 TA
+ ROMX_LOAD("prom2p01.bin", 0x0800, 0x0800, CRC(14f19693) SHA1(7ecb66818a3e352fede1857a18cd12bf742603a9), ROM_BIOS(3) )
+ ROMX_LOAD("prom2p02.bin", 0x1000, 0x0800, CRC(f304c3aa) SHA1(92213e77e4e6de12a4eaee25a9c1ec0ab54e93d4), ROM_BIOS(3) )
ROM_REGION(0x400, "kbdmcu", 0)
- ROM_LOAD("p2_keyboard_ip8041a_8278.bin", 0x000, 0x400, CRC(5db00d85) SHA1(0dc8e274a5aece261ef60494901601c0d8b1eb51)) // same across all dumped P2 and P3 machines
+ ROM_LOAD("p3_keyboard_8278.bin", 0x000, 0x400, CRC(5DB00D85) SHA1(0DC8E274A5AECE261EF60494901601C0D8B1EB51)) // borrowed from rfka01 machine #2 until we have a proper dump from a P2
ROM_REGION(0x800, "gfx", 0)
- ROMX_LOAD("cajp_97_00_5a.bin", 0x000, 0x800, CRC(aa5eab85) SHA1(2718924f5520e7e9aad635786847e78e3096b285), ROM_BIOS(1))
- ROMX_LOAD("cajp_01_01_28.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d), ROM_BIOS(2))
- ROMX_LOAD("cajp_01_01_28.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d), ROM_BIOS(3))
- ROMX_LOAD("cajp_01_01_28.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d), ROM_BIOS(4))
- ROMX_LOAD("cajp_01_01_28.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d), ROM_BIOS(5))
+ ROM_LOAD("cajp08_01_15.bin", 0x000, 0x800, CRC(4ed11dac) SHA1(9db9b8e0edf471faaddbb5521d6223121146bab8)) // borrowed from rfka01 machine #1 until we have a proper dump from a P2
ROM_END
// Alphatronic P3
ROM_START( alphatp3 )
ROM_REGION(0x1800, "boot", 0) // P3 ROM space 0x1000
- ROM_SYSTEM_BIOS(0, "gx347", "gx347") // earlier P3, seperate 48K and 16K RAM boards
- ROM_SYSTEM_BIOS(1, "lb352", "lb352") // later P3, one 64K RAM board
-
- ROM_LOAD("caap36_02_19.bin", 0x0000, 0x1000, CRC(23df6666) SHA1(5ea04cd299dec9951425eb91ecceb4818c4c6378) ) // identical between earlier and later P3
- // BIOS names taken from CPU card labels
+ ROM_LOAD("caap36_02_19.bin", 0x0000, 0x1000, CRC(23df6666) SHA1(5ea04cd299dec9951425eb91ecceb4818c4c6378)) // identical between rfka01 #1 and #2
+
ROM_REGION(0x400, "kbdmcu", 0)
- ROM_LOAD("p3_keyboard_8278.bin", 0x000, 0x400, CRC(5db00d85) SHA1(0dc8e274a5aece261ef60494901601c0d8b1eb51) )
+// ROM_LOAD("p3_keyboard_mab8041a.bin", 0x000, 0x400, CRC(4fd60dc1) SHA1(165f0c5afdef37385d06cf5caeae8422536de7fc)) // rfka01 machine #1
+ ROM_LOAD("p3_keyboard_8278.bin", 0x000, 0x400, CRC(5DB00D85) SHA1(0DC8E274A5AECE261EF60494901601C0D8B1EB51)) // rfka01 machine #2
ROM_REGION(0x800, "gfx", 0)
- ROMX_LOAD("cajp08_00_15.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d), ROM_BIOS(1) )
- ROMX_LOAD("cajp08_01_15.bin", 0x000, 0x800, CRC(4ed11dac) SHA1(9db9b8e0edf471faaddbb5521d6223121146bab8), ROM_BIOS(2) )
+ // ROM_LOAD("cajp08_00_15.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d)) // rfka01 machine #2
+ ROM_LOAD("cajp08_01_15.bin", 0x000, 0x800, CRC(4ed11dac) SHA1(9db9b8e0edf471faaddbb5521d6223121146bab8)) // rfka01 machine #1
ROM_END
// Alphatronic P30
ROM_START( alphatp30 ) // P30 add-on card with 8088 needs to be emulated to boot DOS
ROM_REGION(0x1800, "boot", 0)
- ROM_LOAD("hasl17.07.84.bin", 0x0000, 0x1000, CRC(6A91701B) SHA1(8A4F925D0FABAB37852A54D04E06DEB2AEAA349C)) // netmercer Eprom P30 ...wait for INT6.5 or INT5.5 with RIM to write char in hsync or hsync GAP-time !!
+ ROM_LOAD("hasl17.07.84.bin", 0x0000, 0x1000, CRC(6A91701B) SHA1(8A4F925D0FABAB37852A54D04E06DEB2AEAA349C)) // netmercer EPRom P30 ...wait for INT6.5 or INT5.5 with RIM to write char in hsync or hsync GAP-time !!
ROM_REGION(0x400, "kbdmcu", 0)
ROM_LOAD("p3_keyboard_8278.bin", 0x000, 0x400, CRC(5DB00D85) SHA1(0DC8E274A5AECE261EF60494901601C0D8B1EB51)) // borrowed from rfka01 machine #2
@@ -650,6 +616,6 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 198?, alphatp2, alphatp3, 0, alphatp2, alphatp3, alphatpx_state, 0, "Triumph-Adler", "alphatronic P2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+COMP( 198?, alphatp2, alphatp3, 0, alphatp3, alphatp3, alphatpx_state, 0, "Triumph-Adler", "alphatronic P2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
COMP( 1982, alphatp3, 0, 0, alphatp3, alphatp3, alphatpx_state, 0, "Triumph-Adler", "alphatronic P3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
COMP( 198?, alphatp30, alphatp3, 0, alphatp3, alphatp3, alphatpx_state, 0, "Triumph-Adler", "alphatronic P30",MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/altos5.cpp b/src/mame/drivers/altos5.cpp
index 08fcdf9b45c..df6ccb18d75 100644
--- a/src/mame/drivers/altos5.cpp
+++ b/src/mame/drivers/altos5.cpp
@@ -126,9 +126,9 @@ void altos5_state::setup_banks(uint8_t source)
// WPRT | template | dma bank / cpu bank
if (source == 1) // use DMA banks only if BUSACK is asserted
- offs = ((bitswap<8>(m_port09, 0, 0, 0, 5, 1, 2, 7, 6) << 4) & 0x1f0) ^ 0x100;
+ offs = ((BITSWAP8(m_port09, 0, 0, 0, 5, 1, 2, 7, 6) << 4) & 0x1f0) ^ 0x100;
else
- offs = ((bitswap<8>(m_port09, 0, 0, 0, 5, 1, 2, 4, 3) << 4) & 0x1f0) ^ 0x100;
+ offs = ((BITSWAP8(m_port09, 0, 0, 0, 5, 1, 2, 4, 3) << 4) & 0x1f0) ^ 0x100;
temp = offs;
if ((source == 2) || (temp != m_curr_bank))
diff --git a/src/mame/drivers/amaticmg.cpp b/src/mame/drivers/amaticmg.cpp
index bbf0e691862..d2cf7a98511 100644
--- a/src/mame/drivers/amaticmg.cpp
+++ b/src/mame/drivers/amaticmg.cpp
@@ -1055,7 +1055,7 @@ void amaticmg_state::encf(uint8_t ciphertext, int address, uint8_t &plaintext, i
int aux = address & 0xfff;
aux = aux ^ (aux>>6);
aux = ((aux<<6) | (aux>>6)) & 0xfff;
- uint8_t aux2 = bitswap<8>(aux, 9,10,4,1,6,0,7,3);
+ uint8_t aux2 = BITSWAP8(aux, 9,10,4,1,6,0,7,3);
aux2 ^= aux2>>4;
aux2 = (aux2<<4) | (aux2>>4);
ciphertext ^= ciphertext<<4;
diff --git a/src/mame/drivers/ampoker2.cpp b/src/mame/drivers/ampoker2.cpp
index f698d41b99a..e5da31eb8ed 100644
--- a/src/mame/drivers/ampoker2.cpp
+++ b/src/mame/drivers/ampoker2.cpp
@@ -1392,7 +1392,7 @@ DRIVER_INIT_MEMBER(ampoker2_state, rabbitpk)
for (i = start; i < size; i++)
{
- rom[i] = bitswap<8>(rom[i], 1, 2, 5, 4, 3, 0, 7, 6) ^ dec_base[(i >> 2) & 0x1f];
+ rom[i] = BITSWAP8(rom[i], 1, 2, 5, 4, 3, 0, 7, 6) ^ dec_base[(i >> 2) & 0x1f];
}
}
diff --git a/src/mame/drivers/apc.cpp b/src/mame/drivers/apc.cpp
index a57bea333b5..98952ae0cdb 100644
--- a/src/mame/drivers/apc.cpp
+++ b/src/mame/drivers/apc.cpp
@@ -394,12 +394,12 @@ CH3_EXA == 0X3E ; CH-3 extended address (W)
READ8_MEMBER(apc_state::apc_dma_r)
{
- return m_dmac->read(space, bitswap<8>(offset,7,6,5,4,2,1,0,3), 0xff);
+ return m_dmac->read(space, BITSWAP8(offset,7,6,5,4,2,1,0,3), 0xff);
}
WRITE8_MEMBER(apc_state::apc_dma_w)
{
- m_dmac->write(space, bitswap<8>(offset,7,6,5,4,2,1,0,3), data, 0xff);
+ m_dmac->write(space, BITSWAP8(offset,7,6,5,4,2,1,0,3), data, 0xff);
}
WRITE8_MEMBER(apc_state::apc_irq_ack_w)
diff --git a/src/mame/drivers/apollo.cpp b/src/mame/drivers/apollo.cpp
index f175fff6fd1..ce9ec5b76ad 100644
--- a/src/mame/drivers/apollo.cpp
+++ b/src/mame/drivers/apollo.cpp
@@ -29,7 +29,7 @@
#include "includes/apollo.h"
-#include "cpu/m68000/m68000.h"
+#include "cpu/m68000/m68kcpu.h"
#include "sound/beep.h"
// we use set_verbose
@@ -212,7 +212,6 @@ uint8_t apollo_get_ram_config_byte(void) {
return ram_config_byte;
}
-#if 0
/***************************************************************************
apollo_instruction_hook
must be called by the CPU core before executing each instruction
@@ -265,8 +264,6 @@ READ32_MEMBER(apollo_state::apollo_instruction_hook)
return apollo_debug_instruction_hook(m_maincpu, offset);
}
-#endif
-
/***************************************************************************
apollo bus error
***************************************************************************/
@@ -498,7 +495,7 @@ READ32_MEMBER(apollo_state::apollo_unmapped_r)
} else if (address == 0x0000ac00 && VERBOSE < 2) {
// omit logging for Bus error test address in DN3000 boot prom
} else {
- SLOG1(("unmapped memory dword read from %08x with mask %08x (ir=%04x)", address , mem_mask, m68k->state_int(M68K_IR)));
+ SLOG1(("unmapped memory dword read from %08x with mask %08x (ir=%04x)", address , mem_mask, m68k->ir));
}
/* unmapped; access causes a bus error */
@@ -923,9 +920,7 @@ void apollo_state::machine_reset()
m_node_id->set_node_id_from_disk();
}
-#if 0
m_maincpu->set_instruction_hook(read32_delegate(FUNC(apollo_state::apollo_instruction_hook),this));
-#endif
}
WRITE_LINE_MEMBER(apollo_state::apollo_reset_instr_callback)
diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp
index cd97f6e4a0d..dcfde97b251 100644
--- a/src/mame/drivers/apple2e.cpp
+++ b/src/mame/drivers/apple2e.cpp
@@ -743,7 +743,7 @@ void apple2e_state::machine_start()
// let's do that in the modern MAME way
for (int i=0; i<0x040000; i++)
{
- m_cec_remap[i] = bitswap<8>(m_cec_ptr[i], 0, 1, 2, 3, 4, 5, 6, 7);
+ m_cec_remap[i] = BITSWAP8(m_cec_ptr[i], 0, 1, 2, 3, 4, 5, 6, 7);
}
// remap cec gfx1 rom
diff --git a/src/mame/drivers/applix.cpp b/src/mame/drivers/applix.cpp
index 0b27a843b49..9247a63fc29 100644
--- a/src/mame/drivers/applix.cpp
+++ b/src/mame/drivers/applix.cpp
@@ -835,7 +835,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(applix_state::cass_timer)
static MACHINE_CONFIG_START( applix )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M68000, XTAL_30MHz / 4) // MC68000-P10 @ 7.5 MHz
+ MCFG_CPU_ADD("maincpu", M68000, 7500000)
MCFG_CPU_PROGRAM_MAP(applix_mem)
MCFG_CPU_ADD("subcpu", Z80, XTAL_16MHz / 2) // Z80H
MCFG_CPU_PROGRAM_MAP(subcpu_mem)
@@ -866,13 +866,13 @@ static MACHINE_CONFIG_START( applix )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
/* Devices */
- MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL_30MHz / 16) // MC6545 @ 1.875 MHz
+ MCFG_MC6845_ADD("crtc", MC6845, "screen", 1875000) // 6545
MCFG_MC6845_SHOW_BORDER_AREA(false)
MCFG_MC6845_CHAR_WIDTH(8)
MCFG_MC6845_UPDATE_ROW_CB(applix_state, crtc_update_row)
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(applix_state, vsync_w))
- MCFG_DEVICE_ADD("via6522", VIA6522, XTAL_30MHz / 4 / 10) // VIA uses 68000 E clock
+ MCFG_DEVICE_ADD("via6522", VIA6522, 0)
MCFG_VIA6522_READPB_HANDLER(READ8(applix_state, applix_pb_r))
// in CB1 kbd clk
// in CA2 vsync
diff --git a/src/mame/drivers/aquarium.cpp b/src/mame/drivers/aquarium.cpp
index 91d8032cdb2..c4278c1346d 100644
--- a/src/mame/drivers/aquarium.cpp
+++ b/src/mame/drivers/aquarium.cpp
@@ -68,7 +68,7 @@ WRITE8_MEMBER(aquarium_state::aquarium_watchdog_w)
WRITE8_MEMBER(aquarium_state::aquarium_z80_bank_w)
{
// uses bits ---x --xx
- data = bitswap<8>(data, 7, 6, 5, 2, 3, 1, 4, 0);
+ data = BITSWAP8(data, 7, 6, 5, 2, 3, 1, 4, 0);
//printf("aquarium bank %04x %04x\n", data, mem_mask);
// aquarium bank 0003 00ff - correct (title) 011
@@ -82,7 +82,7 @@ WRITE8_MEMBER(aquarium_state::aquarium_z80_bank_w)
uint8_t aquarium_state::aquarium_snd_bitswap( uint8_t scrambled_data )
{
- return bitswap<8>(scrambled_data, 0, 1, 2, 3, 4, 5, 6, 7);
+ return BITSWAP8(scrambled_data, 0, 1, 2, 3, 4, 5, 6, 7);
}
READ8_MEMBER(aquarium_state::aquarium_oki_r)
diff --git a/src/mame/drivers/aristmk4.cpp b/src/mame/drivers/aristmk4.cpp
index cd3527f08da..1e12e519955 100644
--- a/src/mame/drivers/aristmk4.cpp
+++ b/src/mame/drivers/aristmk4.cpp
@@ -1747,7 +1747,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(aristmk4_state::aristmk4_pf)
static MACHINE_CONFIG_START( aristmk4 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MAIN_CLOCK/8) // M68B09E @ 1.5 MHz
+ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK/8) // 1.5mhz
MCFG_CPU_PROGRAM_MAP(aristmk4_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", aristmk4_state, irq0_line_hold)
@@ -1772,7 +1772,7 @@ static MACHINE_CONFIG_START( aristmk4 )
MCFG_I8255_IN_PORTB_CB(READ8(aristmk4_state, pb1_r))
MCFG_I8255_IN_PORTC_CB(READ8(aristmk4_state, pc1_r))
- MCFG_DEVICE_ADD("via6522_0", VIA6522, MAIN_CLOCK/8) // R65C22P2
+ MCFG_DEVICE_ADD("via6522_0", VIA6522, 0) /* 1 MHz.(only 1 or 2 MHz.are valid) */
MCFG_VIA6522_READPA_HANDLER(READ8(aristmk4_state, via_a_r))
MCFG_VIA6522_READPB_HANDLER(READ8(aristmk4_state, via_b_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(aristmk4_state, via_a_w))
diff --git a/src/mame/drivers/aristmk5.cpp b/src/mame/drivers/aristmk5.cpp
index f1bcc30570a..7fa04954cb0 100644
--- a/src/mame/drivers/aristmk5.cpp
+++ b/src/mame/drivers/aristmk5.cpp
@@ -10,11 +10,8 @@
There are threads that say when running in VGA mode an original AA
will play music etc. at half the expected speed, so it is likely
that the way the timers work differs in this mode (25Hz instead of 50?)
- - Sounds are being output as bleeps and bloops in the older games and New Zealand/touchscreen games.
- - Games occasionally give a coin diverter fault when inserting coins, mainly with US region games.
- - Early US games will lock up completely if a hand pay is performed, requiring a complete memory reset.
- To avoid this until the issue has been fixed, change the hopper and jackpot limits to a very large number
- such as 999999 so large wins will be paid via the hopper. Games where the music/sound works do not have this problem.
+ - Sounds are being output as bleeps and bloops in the older games and New Zealand/touchscreen games
+ - Games occasionally give a coin diverter fault when inserting coins, mainly with US region games
- Venezuelan games give a note acceptor error on boot even if the note acceptor is disabled in the options
- qnilebr (actually the 0301718V BIOS itself) won't accept coins on boot until the jackpot reset key is toggled (bug or not?)
- Later style games (e.g. with the newer music format) from NSW/ACT and Venezuela lock up (hang) after 50 spins
@@ -33,8 +30,8 @@
Casino game EPROMs are loaded in U8/U12 and beyond.
Casino games (except qnilebr), as well as games from Queensland and Victoria, require a comms protocol to be emulated,
- otherwise they will remain in a disabled state and cannot be played.
- Only New Zealand (0700474V) and Brazilian (0301718V) casino BIOSes have been dumped so far.
+ otherwise they will remain in a disabled state and will not coin up.
+ As of MAME 0.185, only New Zealand (0700474V) and Brazil (0301718V) BIOSes are dumped.
The Brazilian casino BIOS does not use comms, therefore qnilebr is playable. By swapping u7/u11 with the other
casino games (goldpyrb/jungjuic/penpir2), these games also become playable.
@@ -53,8 +50,7 @@
Other games replace the cards with animations, for example the double up game in Prize Fight bets on which
boxer will knock out the other, likewise in Sumo Spins one sumo wrestler will ring-out the other.
In both Prize Fight and Sumo Spins the two opponents are wearing either red or black just like the cards they replaced.
- The gamble feature is not available if a win coincides with a jackpot pay such as a Hyperlink feature.
- The gamble option is also not available in the Brazilian casino BIOS.
+ The gamble option is not available in the Brazilian casino BIOS.
On US machines which do not require set chips, dip switch DSW2-1 enables or disables the double up feature.
On US games which do require set chips, the gamble option is in the set chips, if the regional jurisdiction allows for it to be enabled.
@@ -62,13 +58,12 @@
Regional button layout differences:
US games have the payline buttons on the top row, the player selects the number of lines to be played first before choosing the bet multiplier to spin.
- Some US games can have the bet and play line buttons reversed in the set chip options, which creates the same similar button layout as non-US games.
Non-US games have the bet buttons on the top row, the player selects the bet multiplier first before selecting the amount of lines to play.
An exception to the non-US layout applies if the game only has one payline, for example wamazona. In this case, the bottom row is used for the bet multipliers.
Some non-US games default to 1 credit per line when there are zero credits in the machine so that a player does not accidentally bet higher than intended.
Some games can be set up to multiple bet and line configurations. Usually this applies to the US set chip games,
- however some non-US games also have this option, such as baddog, marmagic, trojhors and tritreat.
+ however some Australian games also have this option, such as baddog, marmagic, trojhors and tritreat.
Multiple button panels are supported as artwork files and can be toggled in MAME's Video Options menu.
Some early games such as swhr2a have an option to have either music or coin sounds to be played during a win.
@@ -90,20 +85,19 @@
Penguin Pucks(?) - Arctic/Antarctic theme, based on Cash Express. Official name is unknown, this name is found in the strings next to the Penguin Pays game title in pengpuck.
Maximillions - Game show style theme, stylized as Maximillion$. A similar game for the US market is Millioniser, stylized as Millioni$er.
Scorchin' Fortune - Sports car/racing theme, based on Cash Express.
- Born To Be Wild - Motorcycle theme, based on Cash Express, later recycled on MK6 hardware as Thunderheart (not to be confused with the game itself, Thunder Heart).
+ Born To Be Wild - Motorcycle theme, based on Cash Express, later recycled on MK6 hardware as Thunder Heart (not to be confused with the game itself).
Note: The Hyperlink jackpot feature trigger is won at random and is predetermined the instant the player has started a game.
Pressing the buttons to stop the Hyperlink reels is only a visual effect with no skill involved, likewise touching the icons to reveal the characters in Maximillions.
The jackpot level won (e.g. Grand, Major, Minor or Mini) is also predetermined at the start of the game.
- Most Hyperlink games have a set of four eight-digit, seven-segment LEDs installed in the topbox for displaying the progressive jackpots.
+ Most Hyperlink games have a set of four eight-digit, 7-segment LEDs installed in the topbox for displaying the progressive jackpots.
The Grand and Major jackpot displays are larger than the Minor and Mini jackpot displays.
There is a discrepancy with some game names between the ROMs and the artwork or even official documents:
For example, swhr2 is called Sweethearts II inside the ROM, however on the artwork it is called Sweet Hearts II.
Mountain Money displays "MOONSHINE MONEY" when a win with the wild Moonshine occurs. The game itself is not called Moonshine Money.
Chicken displays "Chicken Run Feature Completed" at the end of the feature. The game itself is not called Chicken Run.
- Thunder Heart is named Thunderheart on the artwork, as well as on the later Hyperlink jackpot games.
Some games also have completely different artwork (using the same theme and paytable) but use the same ROMs for another game. Examples are:
Heart Throb = Sweethearts II (Heart Throb confirmed as using 0200004V EPROMs)
@@ -117,9 +111,9 @@
How to set up the games from scratch:
- Standard NSW/ACT games and variants:
+ Standard NSW/ACT games:
- Step 1: Audit key in (F2), open the main door (M) and press Collect (A) and the fourth line button (G) together to clear the memory.
+ Step 1: Audit key in (F2), open main door (M), and press Collect (A) and the fourth line button (G) together to clear the memory.
Note: On 3-payline games, press Collect (A) and Bet 1 Credit (E) to clear the memory.
Optionally, the main door can be closed from this point on (press M again).
@@ -159,67 +153,17 @@
Step 3: Set everything up as above, open the Security Cage/Logic Door (L), and save the machine options (which now has its own spot on the menu instead of a dedicated button).
Close the Security Cage (L) and turn off the Audit key (F2) and the game should be ready to accept credits.
- New Zealand machines are usually identical to Australian games except that they normally use NZ $2.00 coins in place of AU $1.00 coins, and have smaller but more frequent payouts due to local laws. CCCE comms is not used on New Zealand machines.
+ New Zealand machines are usually identical to Australian games except that they normally use NZ $2.00 coins in place of AU $1.00 coins. CCCE comms is not used on New Zealand machines.
Brazil [e.g. qnilebr]:
This game is similar to the NSW/ACT games however it requires a four-digit setup code before it can be initialized.
- By default, this number is 4856. After the game has accepted this code, press Collect (A) and Play 7 Lines (G) at the same time to clear the memory.
+ By default, this number is 4856.
+After the game has accepted this code, press Collect (A) and Play 7 Lines (G) at the same time to clear the memory.
- USA platform, games without set chips:
-
- Step 1: Set up the DIP switches to the desired values.
-
- DIP Switch Bank 1 (DSW1) is comprised of coin/credit values.
-
- The first four switches control the coin (token) type:
- 0000 = $0.05 (5 cents/nickels)
- 1000 = $0.10 (10 cents/dimes)
- 0100 = $0.25 (25 cents/quarters)
- 1100 = $0.50 (50 cents/half dollars)
- 0010 = $1.00 (dollar coins)
- 1010 = $5.00
- 0110 = $10.00
- 1110 = $50.00
- xxx1 = $100.00 (any value with the fourth switch set is $100.00)
-
- The fifth through eighth switches control the machine's denomination:
- 0000 = $0.01 (e.g. a 1 cent machine)
- 1000 = $0.02
- 0100 = $0.05
- 1100 = $0.10
- 0010 = $0.25
- 1010 = $0.50
- 0110 = $1.00
- 1110 = $5.00
- 0001 = $10.00
- 1001 = $50.00
- x101 = $100.00
- xx11 = $100.00
-
- Note that not all combinations are valid e.g. they must be evenly divisible and a token cannot be less than the machine's denomination.
-
- DIP switch settings are normally only read once by the machine on start-up. To visibly change DIP settings you need to reset the machine (F3) or perform a memory clear from the main menu (see Step 2 below).
-
- Each machine has its own DIP switch options concerning DIP Switch Bank 2 (DSW2), however the gamble feature is universally the first switch.
- Per-game DIP switch information is available in the Operator Setup -> Dip Switch Settings menu.
- Once a machine has been set up, the DIP switches are ignored from then on, even if they have been changed.
-
- Step 2: Audit key in, enter Operator Setup -> Machine Options and set up the machine to the applicable standards.
- To save the settings, open the Logic Door (L), press the Bet 1 Credit button (S), close the Logic Door and exit the menu (or press F2 for a shortcut to the main menu).
-
- Step 3: The machine will now need a memory reset. From the main menu, open the Main Door (M) and press Cashout (A) and the fourth line button (T) together to clear the memory.
- After closing the Main Door (M) and keying out (F2), the menu should close and the game should be ready to coin up.
-
- Hint: If you need to change the DIP switches after a game has been set up, use a set chip to clear the memory (press Cashout+Service (A+S) once the set chip has loaded, and then go back to game mode).
- To switch between game mode and set chips, you need to reset the machine (F3) as it is technically swapping the ROMs on the board.
- Performing a memory reset will not erase the machine options, but it will cause a memory error which will allow you to set up anything else.
- Using the Clear All Memory option from the set chip menu (assuming 4.04.xx) will erase everything however.
-
-
- TODO (MK5 specific):
+ TODO (MK-5 specific):
- Fix remaining errors
- Layouts for various configurations
- Bill acceptor
@@ -391,7 +335,6 @@
// Non-US button layouts Bet buttons Lines Gamble Other
#include "aristmk5.lh" // 1, 2, 3, 5, 10 20 suits TW/SF
#include "baddog.lh" // Video Poker
-#include "bumblbug.lh" // 1, 2, 3, 5, 10 9 red/black TW/SF
#include "cashcatnz.lh" // 1, 2, 3, 4, 5 9 suits TW/SF, 7L or Autoplay
#include "cashcham.lh" // 1, 5, 10, 20, 25 20 suits
#include "cashchama.lh" // 1, 2, 3, 4, 5 20 suits
@@ -446,21 +389,17 @@
#include "wildbill.lh" // 1, 2, 3 3 suits
#include "wtiger.lh" // 1, 2, 3, 5, 10 20 suits Classic Buy Feature
#include "wizways.lh" // 1, 2, 5, 10, 20 243 suits
-#include "yukongl5.lh" // multiple configs 20 suits TW/SF
-
-// US button layouts Lines Bet buttons Max bets Other
-#include "aristmk5_us.lh" // 9 1, 2, 3, 5, 10
-#include "aristmk5_us_200.lh" // 20 1, 2, 3, 5, 10
-#include "bparty.lh" // 20 multiple 3, 5, 10, 20, 25, 50
-#include "cuckoou.lh" // 9 multiple 3, 5, 10, 20, 25, 50
-#include "cashchamu.lh" // 20 multiple 3, 5, 10, 20, 25, 50 Different layout on 3 credit setup
-#include "dolphntrce.lh" // 20 multiple 5, 10, 25, 50
-#include "dolphntrceb.lh" // 20 multiple 3, 5, 10, 20, 25, 50 Different bets to bparty, cashchamu and pengpuck
-#include "magimaska.lh" // 9 multiple 5, 10, 20
-#include "pengpuck.lh" // 20 multiple 3, 5, 10, 20, 25, 50 Slightly different layout to dolphntrceb
-#include "qnilecea.lh" // 9 multiple 3, 5, 10, 20, 25, 50 Same bet buttons as dolphntrceb but with 9 lines
-#include "swhr2u.lh" // 5 1, 2, 3, 4, 5
-#include "wnpost.lh" // 5 1, 2, 3, 5, 10
+#include "yukongld.lh" // multiple configs 20 suits TW/SF
+
+#include "aristmk5_us.lh" // 1, 2, 3, 5, 10 9 red/black (all US games only have red/black)
+#include "aristmk5_us_200.lh" // 1,2,3,5,10 20
+#include "bparty.lh" // 20 lines, multiple layouts
+#include "cuckoou.lh" // 9 lines, multiple layouts
+#include "dolphntrce.lh" // 20 lines, multiple layouts
+#include "magimaska.lh" // 9 lines, multiple layouts
+#include "pengpuck.lh" // 20 lines, multiple layouts
+#include "qnilecea.lh" // 9 lines, multiple layouts
+#include "wnpost.lh" // 1, 2, 3, 5, 10 5
#define MASTER_CLOCK XTAL_72MHz /* confirmed */
@@ -559,7 +498,7 @@ WRITE8_MEMBER(aristmk5_state::spi_mux_w)
break;
case 2: // Mechanical meters
- for(int i = 0; i < 4; i++)
+ for(int i=0; i<4; i++)
output().set_lamp_value(32 + i, BIT(m_spi_data[m_spi_mux], 1 + i)); // Tower Lamps
break;
@@ -568,7 +507,7 @@ WRITE8_MEMBER(aristmk5_state::spi_mux_w)
break;
case 5: // Door outputs
- for(int i = 0; i < 32; i++)
+ for(int i=0; i<32; i++)
output().set_lamp_value(i, BIT(m_spi_data[m_spi_mux], i));
break;
@@ -767,7 +706,7 @@ READ8_MEMBER(aristmk5_state::eeprom_r)
WRITE8_MEMBER(aristmk5_state::hopper_w)
{
- m_hopper->motor_w(BIT(data, 1));
+ m_hopper->write(space, 0, (data & 0x02) ? 0x80 : 0);
m_hopper_test = BIT(data, 2);
}
@@ -802,7 +741,7 @@ WRITE8_MEMBER(aristmk5_state::eeprom_w)
WRITE8_MEMBER(aristmk5_state::eeprom_usa_w)
{
eeprom_w(space, offset, data, mem_mask);
- m_hopper->motor_w(BIT(data, 2));
+ m_hopper->write(space, 0, (data & 0x04) ? 0x80 : 0);
}
READ8_MEMBER(aristmk5_state::ldor_r)
@@ -879,19 +818,19 @@ WRITE8_MEMBER(aristmk5_state::sram_banksel_w)
WRITE8_MEMBER(aristmk5_state::buttons_lamps_w)
{
- for(int i = 0; i < 8; i++)
+ for(int i=0; i<8; i++)
output().set_lamp_value((offset >> 2) * 8 + i, BIT(data, i));
}
WRITE8_MEMBER(aristmk5_state::other_lamps_w)
{
- for(int i = 0; i < 8; i++)
+ for(int i=0; i<8; i++)
output().set_lamp_value(16 + i, BIT(data, i));
}
WRITE8_MEMBER(aristmk5_state::bill_acceptor_lamps_w)
{
- for(int i = 0; i < 8; i++)
+ for(int i=0; i<8; i++)
output().set_lamp_value(24 + i, BIT(data, i));
}
@@ -1229,15 +1168,6 @@ static INPUT_PORTS_START(cashchamnz)
PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("Play 15 Lines / Autoplay")
INPUT_PORTS_END
-static INPUT_PORTS_START(cashcatnz)
- PORT_INCLUDE(aristmk5_9)
-
- PORT_MODIFY("P1")
- PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("Play 7 Lines / Autoplay")
- PORT_BIT(0x00001000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Bet 4 Credits / Club")
- PORT_BIT(0x00002000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) PORT_NAME("Bet 5 Credits / Spade")
-INPUT_PORTS_END
-
static INPUT_PORTS_START(incasunnz)
PORT_INCLUDE(cashchamnz)
@@ -1513,13 +1443,6 @@ static INPUT_PORTS_START(swhr2)
PORT_BIT(0x00002000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) PORT_NAME("Bet 10 Credits")
INPUT_PORTS_END
-static INPUT_PORTS_START(bumblbug)
- PORT_INCLUDE(swhr2)
-
- PORT_MODIFY("P1")
- PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_K) PORT_NAME("Take Win / Start Feature")
-INPUT_PORTS_END
-
static INPUT_PORTS_START(toutangonl)
PORT_INCLUDE(swhr2)
@@ -1792,20 +1715,6 @@ static INPUT_PORTS_START(dolphntrce)
PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Play 15 Lines / Start Feature")
INPUT_PORTS_END
-static INPUT_PORTS_START(swhr2u)
- PORT_INCLUDE(aristmk5_usa)
-
- PORT_MODIFY("P1")
- PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_NAME("Bet 5 Credits / Black")
- PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("Bet 4 Credits")
-
- PORT_MODIFY("P2")
- PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("Play 2 Lines")
- PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Play 3 Lines")
- PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Play 4 Lines")
- PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) PORT_NAME("Play 5 Lines")
-INPUT_PORTS_END
-
static INPUT_PORTS_START(wnpost)
PORT_INCLUDE(aristmk5_usa)
@@ -1834,7 +1743,7 @@ DRIVER_INIT_MEMBER(aristmk5_state,aristmk5)
int size = memregion("game_prg")->bytes();
int found = 0;
- for (int i = 0; i < (size / 4) - 4; i++)
+ for (int i = 0;i < (size / 4) - 4;i++)
{
if (((ROM[i + 0] & 0xfffff000) == 0xe59f1000) &&
(ROM[i + 1] == 0xe3a03000) &&
@@ -1875,7 +1784,7 @@ DRIVER_INIT_MEMBER(aristmk5_state,aristmk5)
// the checksum is a simple 32-bit sum with the dword containing the checksum skipped (and the dword after it for no obvious reason!)
uint32_t calculatedchecksum = 0;
- for (int i = actual / 4; i < actual2 / 4; i++)
+ for (int i = actual / 4; i < actual2 / 4;i++)
{
if ((i < (actual3 / 4)) ||
(i > (actual4 / 4)))
@@ -1904,7 +1813,7 @@ DRIVER_INIT_MEMBER(aristmk5_state,aristmk5)
// almost always just the end of the roms
int realend = 0;
- for (int i = size - 1; i >= actual2 / 4; i--)
+ for (int i = size - 1; i >= actual2 / 4;i--)
{
if ((ROM[i] != 0xffffffff) && (ROM[i] != 0x00000000))
{
@@ -1916,7 +1825,7 @@ DRIVER_INIT_MEMBER(aristmk5_state,aristmk5)
int realend2 = 0;
- for (int i = realend - 4; i >= actual2 / 4; i--)
+ for (int i = realend - 4; i >= actual2 / 4;i--)
{
if ((ROM[i] != 0xffffffff) && (ROM[i] != 0x00000000))
{
@@ -1980,9 +1889,9 @@ void aristmk5_state::machine_reset()
PRG = memregion(rom_region[op_mode & 7])->base();
- if(PRG != nullptr)
+ if(PRG!=nullptr)
- for(i = 0; i < 0x400000; i++)
+ for(i=0;i<0x400000;i++)
ROM[i] = PRG[i];
}
@@ -2197,7 +2106,6 @@ ROM_END
// BHG1508 / MV4124/1 / 5,10,25,50 Credit Multiplier / 20 Line Multiline
// ADONIS / Export / B - 31/07/01
-// Requires set chips 4.04.xx
ROM_START( adonisu )
ARISTOCRAT_MK5_BIOS
/*
@@ -2364,7 +2272,7 @@ ROM_START( bootsctnu )
0x000000-0x0941ab is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
Expected Checksum 0xdf68cecf
Calculated Checksum 0xdf68cecf (OK)
- 0x0941ac-0x328187 is the non-Checksummed range (unusual endpoint)
+ 0x0941ac-0x328187 is the non-Checksummed range (suspicious endpoint)
*/
ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
@@ -2410,34 +2318,6 @@ ROM_START( bootsctnua )
ROM_END
-// AHG1547 / MV4098/1 / 10 Credit Multiplier / 20 Line Multiline
-// BOOT SCOOTIN' / Export / B - 22/03/01
-// Requires set chip version: 4.04.xx
-ROM_START( bootsctnub )
- ARISTOCRAT_MK5_BIOS
- /*
- Checksum code found at 0x000d18
- 0x000000-0x0f47a7 is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
- Expected Checksum 0xae44f291
- Calculated Checksum 0xae44f291 (OK)
- 0x0f47a8-0x3a0b5b is the non-Checksummed range (unusual endpoint)
- */
- ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
- ROM_LOAD32_WORD( "ahg1547.u7", 0x000000, 0x80000, CRC(5ded48cb) SHA1(3335a9dc6758dd8b225258ab2cb01cf4e9c02dd2) )
- ROM_LOAD32_WORD( "ahg1547.u11", 0x000002, 0x80000, CRC(764dfdb8) SHA1(e68493dfac2d64c59d7576d4b124210089edda62) )
- ROM_LOAD32_WORD( "ahg1547.u8", 0x100000, 0x80000, CRC(7e26e7a9) SHA1(88dc5dbf6ada1b6f2218ef3b013bc91047401d21) )
- ROM_LOAD32_WORD( "ahg1547.u12", 0x100002, 0x80000, CRC(f2dfc38c) SHA1(7fd6c8e11feef375b0f1fac0cfebca74f5da2ed6) )
- ROM_LOAD32_WORD( "ahg1547.u9", 0x200000, 0x80000, CRC(13f410e4) SHA1(e5022dbb42d174b2e3eda8f1564c97ca8fa39deb) )
- ROM_LOAD32_WORD( "ahg1547.u13", 0x200002, 0x80000, CRC(a5382c96) SHA1(570479383d69dfc9e52ebd55b51989ca284d31e7) )
- ROM_LOAD32_WORD( "ahg1547.u10", 0x300000, 0x80000, CRC(a31d8a45) SHA1(5e62d0d3523fd381e940b4dbc6f84d83434bf83a) )
- ROM_LOAD32_WORD( "ahg1547.u14", 0x300002, 0x80000, CRC(de2888e2) SHA1(f614d68c0e09912e9126cb024f54ed32ee50b57e) )
-
- ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
- ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
- ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
-ROM_END
-
-
// BHG1248 / MV4119/1 / 3,5,10,20,25,50 Credit Multiplier / 9 Line Multiline
// Bachelorette Party / Export / B - 25/08/2000
// ROM says "9 Line Multiline" but this is a 20 line game, it cannot be set to 9 lines at all
@@ -2561,35 +2441,6 @@ ROM_START( bumblbugu )
ROM_END
-// 593 / 10 Credit Multiplier / 9 Line Multiline
-// Bumble Bugs / Export / D - 05/07/97
-// All devices are 27c4002 instead of 27c4096
-// Marked as CHG047999 and 87.006%
-// Variation (% and NO): 87.006% 99
-// No required set chip version
-// No required touch screen
-ROM_START( bumblbugua )
- ARISTOCRAT_MK5_BIOS
- /*
- Checksum code found at 0x000d08
- 0x000000-0x0b1f47 is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
- Expected Checksum 0xa23f49f6
- Calculated Checksum 0xa23f49f6 (OK)
- 0x0b1f48-0x183c1f is the non-Checksummed range still containing data but NOT covered by Checksum
- 0x0b1f48-0x1fffff is the non-Checksummed range if the additional vectors? at the end are included
- */
- ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
- ROM_LOAD32_WORD( "chg047999.u7", 0x000000, 0x80000, CRC(7e9be2d0) SHA1(84293a391e9797afc904bb3be05367361ae8d4c7) ) // 87.006%
- ROM_LOAD32_WORD( "chg047999.u11", 0x000002, 0x80000, CRC(efd350ac) SHA1(19975b4d2b55b65542a7ff38fa035fd516bd6e2e) ) // 87.006%
- ROM_LOAD32_WORD( "chg047999.u8", 0x100000, 0x80000, CRC(e0c01d01) SHA1(9153129fd348a97da7cccf002e5d03e4b4db9264) ) // base
- ROM_LOAD32_WORD( "chg047999.u12", 0x100002, 0x80000, CRC(7dbb634b) SHA1(f7a752240989032af142f4cd6e4260a12a5b4c0a) ) // base
-
- ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
- ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
- ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
-ROM_END
-
-
// 0200143V / 571/4 / 10 Credit Multiplier/9 Line Multiline
// Butterfly Delight / Local / A - 19/12/95
ROM_START( buttdeli )
@@ -2684,7 +2535,14 @@ ROM_END
ROM_START( cashcatnz )
ARISTOCRAT_MK5_BIOS
ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
- // checksum code not found (uses different startup sequence)
+ /*
+ Checksum code found at 0x000adc
+ 0x000000-0x04477f is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
+ Expected Checksum 0x19143954
+ Calculated Checksum 0x19143954 (OK)
+ 0x044780-0x1c713b is the non-Checksummed range still containing data but NOT covered by Checksum
+ 0x044780-0x1fffff is the non-Checksummed range if the additional vectors? at the end are included
+ */
ROM_LOAD32_WORD( "0300863v.u7", 0x000000, 0x80000, CRC(de0f0202) SHA1(994f6c47b1e2e0e133853dc69b189752104486e4) )
ROM_LOAD32_WORD( "0300863v.u11", 0x000002, 0x80000, CRC(e60e8bd1) SHA1(ffaa7be8968047b9ee54a117d273a14cbca41028) )
ROM_LOAD32_WORD( "0300863v.u8", 0x100000, 0x80000, CRC(37d41d35) SHA1(c959b787383d6f91d20e18f37a38a965407a9ff0) )
@@ -2764,7 +2622,6 @@ ROM_END
// 603(a) / 3,5,10,25,50 Credit Multiplier / 20 Line Multiline
// Cash Chameleon 100cm / Export / B - 06/12/96
// Marked as DHG4078.
-// Game requires set chip version: 4.00.xx
ROM_START( cashchamu )
ARISTOCRAT_MK5_BIOS
/*
@@ -3039,7 +2896,6 @@ ROM_END
// CUCKOO / Export C / 02/02/00
// ROM says '9-20 Line Multiline', but game only has 9 Lines
// All devices are 27c4002 instead of 27c4096
-// Requires set chips 4.01.xx
ROM_START( cuckoou )
ARISTOCRAT_MK5_BIOS_HAVE_EEPROMS
/*
@@ -3282,7 +3138,6 @@ ROM_END
// Dolphin Treasure / Export / D - 22/12/99
// Hyperlink game, but can also run standalone without progressive jackpot
// ROM says '9 & 20 Line Multiline' but game only has 20 lines with a 5, 10, 25 or 50 credit multiplier
-// Requires set chips 4.04.xx
ROM_START( dolphntrce )
ARISTOCRAT_MK5_BIOS
/*
@@ -3312,7 +3167,6 @@ ROM_END
// Dolphin Treasure / Export / D - 22/12/99
// Hyperlink game, but can also run standalone without progressive jackpot
// ROM says '9 & 20 Line Multiline' but game only has 9 lines with a 5, 10 or 20 credit multiplier
-// Requires set chips 4.04.xx
ROM_START( dolphntrcea )
ARISTOCRAT_MK5_BIOS
/*
@@ -3342,7 +3196,6 @@ ROM_END
// Dolphin Treasure / Export / D - 22/12/99
// Hyperlink game, but can also run standalone without progressive jackpot
// ROM says '9 & 20 Line Multiline' but game only has 20 lines
-// Requires set chips 4.04.xx
ROM_START( dolphntrceb )
ARISTOCRAT_MK5_BIOS
/*
@@ -3721,36 +3574,6 @@ ROM_START( genmagi )
ROM_END
-// AHG1623 / MV4112/2 / 5,10,25,50 Credit Multiplier / 20 Line Multiline
-// Green Lizard [Reel Game] / Export / A - 05/01/01
-// Requires set chip version: 4.04.xx
-// Variation (% and NO):
-// Doesn't requires touch screen
-ROM_START( glizardu )
- ARISTOCRAT_MK5_BIOS
- /*
- Checksum code found at 0x000d18
- 0x000000-0x0f19bf is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
- Expected Checksum 0x36907c47
- Calculated Checksum 0x36907c47 (OK)
- 0x0f19c0-0x3b1443 is the non-Checksummed range (unusual endpoint)
- */
- ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
- ROM_LOAD32_WORD( "ahg1623.u7", 0x000000, 0x80000, CRC(bee526f8) SHA1(32227a6655393a966af3ab698388146f0b752c67) ) // game
- ROM_LOAD32_WORD( "ahg1623.u11", 0x000002, 0x80000, CRC(177ffc12) SHA1(4cedadcf8ddfb95aff7aa0ece96411646677ff96) ) // game
- ROM_LOAD32_WORD( "ahg1623.u8", 0x100000, 0x80000, CRC(22657930) SHA1(8a6db02ce1c45a19d6e6f222788f607224b8af43) ) // base
- ROM_LOAD32_WORD( "ahg1623.u12", 0x100002, 0x80000, CRC(47153192) SHA1(3a384a98c3251a522928a82b391ae88986b6a078) ) // base
- ROM_LOAD32_WORD( "ahg1623.u9", 0x200000, 0x80000, CRC(b4e33204) SHA1(92c7871872ecfbddde9bf04b7e60802d8598cf36) ) // base
- ROM_LOAD32_WORD( "ahg1623.u13", 0x200002, 0x80000, CRC(5c658f42) SHA1(0f1b2d79c0c15562f14e59bb424a9c62df6bd959) ) // base
- ROM_LOAD32_WORD( "ahg1623.u10", 0x300000, 0x80000, CRC(613cb7d8) SHA1(bfd6606f809f5eb2c81802539b5ab7e2a63046a1) ) // base
- ROM_LOAD32_WORD( "ahg1623.u14", 0x300002, 0x80000, CRC(5ceb871c) SHA1(42b8a087fa39261818dd333ea3d8c1ef269671bf) ) // base
-
- ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
- ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
- ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
-ROM_END
-
-
// 0100767V / 625 / 10 Credit Multiplier/20 Line Multiline
// Gnome Around The World 200cm / NSW/ACT / C - 18/12/98
ROM_START( gnomeatw )
@@ -3889,12 +3712,7 @@ ROM_END
ROM_START( honeypot )
ARISTOCRAT_MK5_BIOS
/*
- Checksum code found at 0x000bb8
- 0x000000-0x06f02b is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
- Expected Checksum 0x38355dbb
- Calculated Checksum 0x38355dbb (OK)
- 0x06f02c-0x281a27 is the non-Checksummed range still containing data but NOT covered by Checksum
- 0x06f02c-0x2fffff is the non-Checksummed range if the additional vectors? at the end are included
+ Checksum code needs to be done
*/
ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
ROM_LOAD32_WORD( "03j00241.u7", 0x000000, 0x80000, CRC(9c0c3a68) SHA1(39e8be61ea8e47fcb8006868518d9de464dc63da) )
@@ -3910,34 +3728,6 @@ ROM_START( honeypot )
ROM_END
-// BHG1455 / MV4122/3 / 5, 10, 20 Credit Multiplier / 9 Line Multiline
-// HONKY TONK - CASH EXPRESS / Export / A - 07/08/01
-// Requires set chip version: 4.04.xx
-// Variation (% and NO)
-// No requires touch screen
-// The game shares reel graphics with Boot Scootin', but background is different and doesn't seems that is a clone.
-ROM_START( hnktonku )
- ARISTOCRAT_MK5_BIOS
- /*
- Checksum code found at 0x000d18
- Checksum is stored at 0x000020-0x000027
- Expected Checksum 0x576a26b7
- Calculated Checksum 0x576a26b7 (OK)
- */
- ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
- ROM_LOAD32_WORD( "bhg1455.u7", 0x000000, 0x80000, CRC(ef25e5a1) SHA1(00d7dcb852cc2ccb61c5af15108f8c374419527f) )
- ROM_LOAD32_WORD( "bhg1455.u11", 0x000002, 0x80000, CRC(737bd8c8) SHA1(0863ed66ca28ab47945d1c6012740bc559c79b0d) )
- ROM_LOAD32_WORD( "bhg1455.u8", 0x100000, 0x80000, CRC(822f408e) SHA1(c31d046a48f28de9d8b90676851c4ea5f30cc732) )
- ROM_LOAD32_WORD( "bhg1455.u12", 0x100002, 0x80000, CRC(520f051e) SHA1(c3d5058f753e72852e37dcd94c34a4caabdff161) )
- ROM_LOAD32_WORD( "bhg1455.u9", 0x200000, 0x80000, CRC(9c928891) SHA1(7fc4f38b9c06d4d5b27d246fffee3a1fd527d6ad) )
- ROM_LOAD32_WORD( "bhg1455.u13", 0x200002, 0x80000, CRC(18dd37fe) SHA1(432a4959886fad4f4a55de31b7cc42c51d7f2792) )
-
- ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
- ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
- ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
-ROM_END
-
-
// 0100872V / 631/3 B / 25 Credit Multiplier / 20 Line Multiline
// INCA SUN / NSW/ACT / B- 03/05/99
ROM_START( incasun )
@@ -4008,30 +3798,8 @@ ROM_START( incasunnz )
ROM_END
-// 01J01946 / 631/3 B / 25 Credit Multiplier / 20 Line Multiline
-// INCA SUN / VENEZUELA / B - 03/05/99
-ROM_START( incasunv )
- ARISTOCRAT_MK5_BIOS
- ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
- /*
- Checksum code at 0x000c10 ??
- */
- ROM_LOAD32_WORD( "01j01946.u7", 0x000000, 0x80000, CRC(c6bdbc96) SHA1(ee83b6b4aaa9538ca04f136a4523fd520a24a878) )
- ROM_LOAD32_WORD( "01j01946.u11", 0x000002, 0x80000, CRC(15be6a5d) SHA1(000218c13e1e3fccdc0565e496a1fd13cb32f6b1) )
- ROM_LOAD32_WORD( "01j01946.u8", 0x100000, 0x80000, CRC(e26bd9c7) SHA1(e5facaa85c4c72d070b1d5000b80a333122c4fbc) )
- ROM_LOAD32_WORD( "01j01946.u12", 0x100002, 0x80000, CRC(a9941a3b) SHA1(14868686aa0aa3d966ffbaef2593a11a57a43b05) )
- ROM_LOAD32_WORD( "01j01946.u9", 0x200000, 0x80000, CRC(90e5a52b) SHA1(b2c334126128f9569846655d78f1641a36aec739) )
- ROM_LOAD32_WORD( "01j01946.u13", 0x200002, 0x80000, CRC(0efdd830) SHA1(de0be1cd3f691299f48d7a184df6bb59fef22de2) )
-
- ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
- ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
- ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
-ROM_END
-
-
// CHG1458 / MV4130/3 / 20 Line Multiline / 5, 10, 25, 50 Credit Multiplier
// Inca Sun / Export / A - 05/09/00
-// Requires set chips 4.03.xx
ROM_START( incasunu )
ARISTOCRAT_MK5_BIOS_HAVE_EEPROMS
/*
@@ -4070,23 +3838,16 @@ ROM_END
// DHG1577 / MV4130/3 / 20 Line Multiline / 5, 10, 25, 50 Credit Multiplier
// Inca Sun / Export / A - 05/09/00
// Same strings as incasunu but different version
-// Requires set chips 4.04.xx
ROM_START( incasunua )
ARISTOCRAT_MK5_BIOS
- /*
- Checksum code found at 0x000d18
- 0x000000-0x0ec3a7 is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
- Expected Checksum 0x24e1ed00
- Calculated Checksum 0x24e1ed00 (OK)
- 0x0ec3a8-0x2ecf4b is the non-Checksummed range (unusual endpoint)
- */
+ // checksum code not found due to ROMs being corrupted, all files are missing bytes consisting of 0x0D
ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
- ROM_LOAD32_WORD( "dhg1577.u7", 0x000000, 0x80000, CRC(e31e3c81) SHA1(56b00aae1b9385686530e089cad05308e0c0751d) )
- ROM_LOAD32_WORD( "dhg1577.u11", 0x000002, 0x80000, CRC(68d58ad3) SHA1(c521da10b719250e3f115357c6e4ff51377d4335) )
- ROM_LOAD32_WORD( "dhg1577.u8", 0x100000, 0x80000, CRC(475db842) SHA1(3c49fbf45a256222e6a5a0343a7dc96386bb8897) )
- ROM_LOAD32_WORD( "dhg1577.u12", 0x100002, 0x80000, CRC(f1be432e) SHA1(ed4a064e4e8200126bda3f1c25ac5075014c9f94) )
- ROM_LOAD32_WORD( "dhg1577.u9", 0x200000, 0x80000, CRC(a8956bf5) SHA1(d444a3a64968a6275b38babf23089c7d186f30e6) )
- ROM_LOAD32_WORD( "dhg1577.u13", 0x200002, 0x80000, CRC(f7c30ef9) SHA1(44d7213e1220d6b89715408d009ef1484de2696f) )
+ ROM_LOAD32_WORD( "dhg1577.u7", 0x000000, 0x7f079, BAD_DUMP CRC(ebbd4d54) SHA1(7e5c0da2bc62338dd2148af7fa87745d622b85b9) )
+ ROM_LOAD32_WORD( "dhg1577.u11", 0x000002, 0x7ff6c, BAD_DUMP CRC(fb86c7b2) SHA1(62b1897907ceebcd0c2c0a4da002a783174321e7) )
+ ROM_LOAD32_WORD( "dhg1577.u8", 0x100000, 0x7fcb7, BAD_DUMP CRC(809c5277) SHA1(2efde9a7887d3ca5cb7fa5aebb0b6fcc9aeb880a) )
+ ROM_LOAD32_WORD( "dhg1577.u12", 0x100002, 0x7fc89, BAD_DUMP CRC(dbf26048) SHA1(2fcf1f7d5a0402798b4fe25afd178d8c1db89e3b) )
+ ROM_LOAD32_WORD( "dhg1577.u9", 0x200000, 0x7fd47, BAD_DUMP CRC(046e019e) SHA1(4c6e17562cb337c3d79efc095960c4d1f9d87f39) )
+ ROM_LOAD32_WORD( "dhg1577.u13", 0x200002, 0x7fd62, BAD_DUMP CRC(7299484f) SHA1(f6b75e5be6ef724504a543702692e455437d7046) )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
@@ -4263,15 +4024,10 @@ ROM_END
// CHG1573 / MV4137 / 5,10,25,50 Credit Multiplier / 20 Line Multiline
// Koala Mint / Export / A - 12/09/01
-// Requires set chips 4.04.xx
ROM_START( koalamnt )
ARISTOCRAT_MK5_BIOS
/*
- Checksum code found at 0x000d18
- 0x000000-0x0ec32b is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
- Expected Checksum 0x5e570341
- Calculated Checksum 0x5e570341 (OK)
- 0x0ec32c-0x34ebdf is the non-Checksummed range (unusual endpoint)
+ Checksum code needs redoing with repaired dump
*/
ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
ROM_LOAD32_WORD( "chg1573.u7", 0x000000, 0x80000, CRC(6e3ec3ae) SHA1(057650b8d89e93bcbaacf06e6487264fe19a1aa0) )
@@ -4313,35 +4069,6 @@ ROM_START( kookabuk )
ROM_END
-// BHG1204 / MV4114/1 / 3,5,10,20,25,50 Credit Multiplier / 20 Line Multiline
-// KEEP YOUR HAT ON / Export / B - 08/05/2000
-// Requires set chip version: 4.01.xx
-// Variation (% and NO)
-// Requires touch screen
-ROM_START( kyhatonu )
- ARISTOCRAT_MK5_BIOS
- /*
- Checksum code found at 0x000d18
- Checksum is stored at 0x000020-0x000027
- Expected Checksum 0x57cc5e5a
- Calculated Checksum 0x57cc5e5a (OK)
- */
- ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
- ROM_LOAD32_WORD( "bhg1204.u7", 0x000000, 0x80000, CRC(bc365ca9) SHA1(f5bb4fc0b2eaed1274b21bc4762b6914ce621d8a) )
- ROM_LOAD32_WORD( "bhg1204.u11", 0x000002, 0x80000, CRC(14376c1e) SHA1(616549215f35c4f5a8c4243f84290dd8b3fae5df) )
- ROM_LOAD32_WORD( "bhg1204.u8", 0x100000, 0x80000, CRC(29081b50) SHA1(0c3990b11c9e249829babc0631840e982a387709) )
- ROM_LOAD32_WORD( "bhg1204.u12", 0x100002, 0x80000, CRC(aba9029c) SHA1(2fe65670cf1ec7a5caab770ad9af6ad3af070e53) )
- ROM_LOAD32_WORD( "bhg1204.u9", 0x200000, 0x80000, CRC(45a025db) SHA1(ea1f64a6c0272bb84ebdb0975f2d8198b8b5550a) )
- ROM_LOAD32_WORD( "bhg1204.u13", 0x200002, 0x80000, CRC(fd4b24c4) SHA1(97db7899c61050c7580af67177c7fe2c8b6116aa) )
- ROM_LOAD32_WORD( "bhg1204.u10", 0x300000, 0x80000, CRC(164ac0dd) SHA1(f6168ab76455ad29df6a4a43eea65d8c644d295a) )
- ROM_LOAD32_WORD( "bhg1204.u14", 0x300002, 0x80000, CRC(490a9eb5) SHA1(30df13960614f82deac5426ff754885ffb429603) )
-
- ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
- ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
- ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
-ROM_END
-
-
// 0100473V / 599/3 / 25 Credit Multiplier / 20 Line Multiline
// Loco Loot / Local / C - 17/06/97
ROM_START( locoloot )
@@ -4403,22 +4130,14 @@ ROM_END
// AHG1513 / MV4134 / 5,10,25,50 Credit Multiplier / 20 Line Multiline
// Loco Loot / Export / A - 30/07/01
-// Requires set chips 4.04.xx
ROM_START( locolootu )
ARISTOCRAT_MK5_BIOS
-/*
- Checksum code found at 0x000d18
- 0x000000-0x0e94fb is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
- Expected Checksum 0xbd28f614
- Calculated Checksum 0xbd28f614 (OK)
- 0x0e94fc-0x170993 is the non-Checksummed range still containing data but NOT covered by Checksum
- 0x0e94fc-0x1fffff is the non-Checksummed range if the additional vectors? at the end are included
-*/
+ // checksum code not found due to ROMs being corrupted, all files are missing bytes consisting of 0x0D
ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
- ROM_LOAD32_WORD( "ahg1513.u7", 0x000000, 0x80000, CRC(16854250) SHA1(a3b6e112dcce38310ca13eb9e9851901ee213fcf) )
- ROM_LOAD32_WORD( "ahg1513.u11", 0x000002, 0x80000, CRC(0abe509a) SHA1(a5d0b870390e7f4b38d7685c09c079acb198dd42) )
- ROM_LOAD32_WORD( "ahg1513.u8", 0x100000, 0x80000, CRC(bd9d2ad7) SHA1(5e5eaf2521473246fb54175f88521b43b9b86f9f) )
- ROM_LOAD32_WORD( "ahg1513.u12", 0x100002, 0x80000, CRC(5bf7b4b1) SHA1(2282ec8d0ddd1aea715005fba2171468831513f4) )
+ ROM_LOAD32_WORD( "ahg1513.u7", 0x000000, 0x7f06f, BAD_DUMP CRC(c0e769a1) SHA1(df0dedf6dc9412efccd26ad16ab0d316863f9488) )
+ ROM_LOAD32_WORD( "ahg1513.u11", 0x000002, 0x7ff6c, BAD_DUMP CRC(f60c2e0b) SHA1(d3ba83eb458ab99d28a910688e63c9dd5ae6570b) )
+ ROM_LOAD32_WORD( "ahg1513.u8", 0x100000, 0x7fede, BAD_DUMP CRC(c24cfe7b) SHA1(7f1f02a4e77ad178c7e08362feb1ec4b064e539c) )
+ ROM_LOAD32_WORD( "ahg1513.u12", 0x100002, 0x7ff14, BAD_DUMP CRC(73e30f47) SHA1(eb12716f3c384901cd80b2f43760b522150c64b0) )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
@@ -4485,8 +4204,8 @@ ROM_START( mgarden )
ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
ROM_LOAD32_WORD( "ahg121199.u7", 0x000000, 0x80000, CRC(12b9aaf2) SHA1(1cc86a0c8daefc1e5b5a4ff710319a85f573f526) )
ROM_LOAD32_WORD( "ahg121199.u11", 0x000002, 0x80000, CRC(b6095f2c) SHA1(d36ceaa0e6545f594f6a50ddfa71d84ca7128f3b) )
- ROM_LOAD32_WORD( "ahg121199.u8", 0x100000, 0x80000, CRC(a315ca28) SHA1(0309789362a945d592ee2eda912e4fc2e6ea5be6) )
- ROM_LOAD32_WORD( "ahg121199.u12", 0x100002, 0x80000, CRC(4b252c2c) SHA1(8be41fb2b8f8d2829c18ea123a02f3e61c136206) )
+ ROM_LOAD32_WORD( "ahg121199.u8", 0x100000, 0x80000, CRC(a315ca28) SHA1(0309789362a945d592ee2eda912e4fc2e6ea5be6) ) // confirmed good
+ ROM_LOAD32_WORD( "ahg121199.u12", 0x100002, 0x80000, CRC(4b252c2c) SHA1(8be41fb2b8f8d2829c18ea123a02f3e61c136206) ) // confirmed good
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
@@ -4496,7 +4215,6 @@ ROM_END
// AHG1549 / MV4115_1 / 5, 10, 25, 50 Credit Multiplier / 20 Line Multiline
// Magic Mask / Export / A - 09/05/2000
-// Requires set chips 4.04.xx
// Touchscreen game
ROM_START( magimask )
ARISTOCRAT_MK5_BIOS
@@ -4522,7 +4240,6 @@ ROM_END
// AHG1548 / MV4115 / 5,10,20 Credit Multiplier / 9 Line Multiline
// Magic Mask / Export / A - 09/05/2000
-// Requires set chips 4.04.xx
// Touchscreen game
ROM_START( magimaska )
ARISTOCRAT_MK5_BIOS_HAVE_EEPROMS
@@ -4562,7 +4279,6 @@ ROM_END
// Magic Mask / Export / A - 09/05/2000
// Same strings as magimaska but different version
// All devices are 27c4002 instead of 27c4096
-// Requires set chips 4.03.xx
// Touchscreen game
ROM_START( magimaskb )
ARISTOCRAT_MK5_BIOS_HAVE_EEPROMS
@@ -4693,7 +4409,6 @@ ROM_END
// Margarita Magic / NSW/ACT / A - 07/07/2000
// EHG1558 / 9 playlines
// ROM has NSW/ACT strings but it is for US platform
-// Requires set chips 4.04.xx
ROM_START( marmagicu )
ARISTOCRAT_MK5_BIOS
/*
@@ -4725,7 +4440,6 @@ ROM_END
// The playlines are 1, 5, 10, 15 and 20
// For 20 credit per line the max bet is 400
// ROM has NSW/ACT strings but it is for US platform
-// Requires set chips 4.04.xx
ROM_START( marmagicua )
ARISTOCRAT_MK5_BIOS
/*
@@ -4752,6 +4466,36 @@ ROM_START( marmagicua )
ROM_END
+// US003 / Multi credit / Multi line
+// Margarita Magic / NSW/ACT / A - 07/07/2000
+// EHG1559 / This is a twenty-line game
+// The playlines are 1, 5, 10, 15 and 20
+// For 20 credit per line the max bet is 400
+// ROM has NSW/ACT strings but it is for US platform
+ROM_START( marmagicub )
+ ARISTOCRAT_MK5_BIOS
+ /*
+ This ROM set is exactly the same version as the parent, yet is bad in a completely different way!
+ Comparing the ROM data between this one and the above bad dump, it is highly possible that this set can be repaired as this ROM set came from a good dump until it was stripped of carriage return symbols (0x0D) by a web server
+ The "_a" suffix is to differentiate the ROMs from the above set and does not correspond to the label, the correct label is simply EHG1559.
+ checksum code not found due to ROMs being corrupted, all files except the last 2 are missing bytes consisting of 0x0D
+ */
+ ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
+ ROM_LOAD32_WORD( "ehg1559_a.u7", 0x000000, 0x7f03e, BAD_DUMP CRC(473afd5b) SHA1(823f8ad8cd5c3676feba8d740b50f25544a6c046) )
+ ROM_LOAD32_WORD( "ehg1559_a.u11", 0x000002, 0x7ff66, BAD_DUMP CRC(c66df0dc) SHA1(015e6aed905bfef2f152137aa8aaaeaae41bc90e) )
+ ROM_LOAD32_WORD( "ehg1559_a.u8", 0x100000, 0x7fcfe, BAD_DUMP CRC(5d2760d6) SHA1(655da82ae5dca1bb498399d2ee1efad7a3811cba) )
+ ROM_LOAD32_WORD( "ehg1559_a.u12", 0x100002, 0x7fce2, BAD_DUMP CRC(56f9dcab) SHA1(2951a7189e5aa6e7338eb11f929fd6eea2541f0d) )
+ ROM_LOAD32_WORD( "ehg1559_a.u9", 0x200000, 0x7ff4d, BAD_DUMP CRC(60323004) SHA1(8f188c7109538454a9ad5e14f21ab4ef76115153) )
+ ROM_LOAD32_WORD( "ehg1559_a.u13", 0x200002, 0x7ff61, BAD_DUMP CRC(34320e8d) SHA1(b266d9c53cf746f1a164e006f14079bced2887ed) )
+ ROM_LOAD32_WORD( "ehg1559.u10", 0x300000, 0x80000, CRC(3db4e373) SHA1(7150242253ae4a1c4f3211e3068f00e8b1ed51b1) )
+ ROM_LOAD32_WORD( "ehg1559.u14", 0x300002, 0x80000, CRC(bdfdc0e4) SHA1(0e56f08abc0cdd9dfa5d8e51bb6fe06fa356b3b3) )
+
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
+ ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
+ ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
+ROM_END
+
+
// 0400115V / 559/2 / 10 Credit Multiplier/9 Line Multiline
// Mine, Mine, Mine / Local / D - 16/01/96
ROM_START( minemine )
@@ -5182,7 +4926,6 @@ ROM_END
// Party Gras / Export / A - 10/11/2001
// All devices are 27c4002 instead of 27c4096
// ROM says '9/20 Line Multiline' but game only has 9 lines
-// Requires set chips 4.04.xx
// Touchscreen game
ROM_START( partygrs )
ARISTOCRAT_MK5_BIOS_HAVE_EEPROMS
@@ -5220,7 +4963,6 @@ ROM_END
// BHG1284 / MV4115/3 / 20 Line Multiline / 3,5,10,20,25,50 Credit Multiplier
// Party Gras / Export / B - 06/02/2001
-// Requires set chips 4.01.xx
// Touchscreen game
ROM_START( partygrsa )
ARISTOCRAT_MK5_BIOS
@@ -5440,60 +5182,9 @@ ROM_START( pengpayu )
ROM_LOAD( "rtc", 0x000000, 0x00001f, CRC(6909acb0) SHA1(6a4589599cd1c477e916474e7b029e9a4e92019b) )
ROM_END
-// OHG0417-03 / 586/7(b) / 10 Credit Multiplier / 9 Line Multiline
-// Penguin Pays / Export / B - 14/07/97
-// All devices are 27c4002 instead of 27c4096
-// marked as 92.130%
-ROM_START( pengpayua )
- ARISTOCRAT_MK5_BIOS_HAVE_EEPROMS
- /*
- Checksum code found at 0x000d08
- 0x000000-0x0a898f is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
- Expected Checksum 0x93affe65
- Calculated Checksum 0x93affe65 (OK)
- 0x0a8990-0x1674cf is the non-Checksummed range still containing data but NOT covered by Checksum
- 0x0a8990-0x1fffff is the non-Checksummed range if the additional vectors? at the end are included
- */
- ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
- ROM_LOAD32_WORD( "ohg041703.u7", 0x000000, 0x80000, CRC(48689db1) SHA1(6aa07a0e6dbf98a34cca31d5983ae9429f2254aa) )
- ROM_LOAD32_WORD( "ohg041703.u11", 0x000002, 0x80000, CRC(50e00a35) SHA1(e8f104621c8fc21d8ba33157729f394554c776e2) )
- ROM_LOAD32_WORD( "ohg041703.u8", 0x100000, 0x80000, CRC(a08acbb3) SHA1(8a7cc927a81521b069873a720d1a083f164dc2ef) )
- ROM_LOAD32_WORD( "ohg041703.u12", 0x100002, 0x80000, CRC(9eae7f7b) SHA1(23bd952de1d6d5d69e5565cc2bc241c2cd775453) )
-
- ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
- ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
- ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
-ROM_END
-
-// OHG0417-02 / 586/7(b) / 10 Credit Multiplier / 9 Line Multiline
-// Penguin Pays / Export / B - 14/07/97
-// All devices are 27c4002 instead of 27c4096
-// marked as 90.45%
-ROM_START( pengpayub )
- ARISTOCRAT_MK5_BIOS_HAVE_EEPROMS
- /*
- Checksum code found at 0x000d08
- 0x000000-0x0a898f is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
- Expected Checksum 0x96aefc60
- Calculated Checksum 0x96aefc60 (OK)
- 0x0a8990-0x1674cf is the non-Checksummed range still containing data but NOT covered by Checksum
- 0x0a8990-0x1fffff is the non-Checksummed range if the additional vectors? at the end are included
- */
- ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
- ROM_LOAD32_WORD( "ohg041702.u7", 0x000000, 0x80000, CRC(76b7641f) SHA1(8df2c46ec8e5ec5574f12878619593e7157df517) )
- ROM_LOAD32_WORD( "ohg041702.u11", 0x000002, 0x80000, CRC(6d731b81) SHA1(06ea80e1003ceba8a790a035c520aaca99db4d54) )
- ROM_LOAD32_WORD( "ohg041702.u8", 0x100000, 0x80000, CRC(a08acbb3) SHA1(8a7cc927a81521b069873a720d1a083f164dc2ef) )
- ROM_LOAD32_WORD( "ohg041702.u12", 0x100002, 0x80000, CRC(9eae7f7b) SHA1(23bd952de1d6d5d69e5565cc2bc241c2cd775453) )
-
- ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
- ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
- ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
-ROM_END
-
// EHG1257 / MV4122/1 / 3,5,10,20,25,50 Credit Multiplier / 20 Line Multiline
// PENGUIN PAYS / PENGUIN PUCKS / Export / C - 19/01/01
// Hyperlink version, but can also run standalone without progressive jackpot
-// Requires set chips 4.03.xx
ROM_START( pengpuck )
ARISTOCRAT_MK5_BIOS
/*
@@ -5847,7 +5538,6 @@ ROM_END
// AHG1609 / MV4091/1 / 5,10,25,50 Credit Multiplier / 20 Line Multiline
// QUEEN OF THE NILE / Export / A - 17/01/01
// Hyperlink version, but can also run standalone without progressive jackpot
-// Requires set chips 4.04.xx
ROM_START( qnilece )
ARISTOCRAT_MK5_BIOS
/*
@@ -5877,7 +5567,6 @@ ROM_END
// QUEEN OF THE NILE / Export / F - 17/01/01
// ROM says '10 Credit Multiplier / 20 Line Multiline' but it is a 9 line game with 3,5,10,20,25,50 credit multipliers
// Hyperlink version, but can also run standalone without progressive jackpot
-// Requires set chips 4.04.xx
ROM_START( qnilecea )
ARISTOCRAT_MK5_BIOS
/*
@@ -6334,15 +6023,12 @@ ROM_END
// AHG1575 / MV4137 / 5,10,20 Credit Multiplier / 20 Line Multiline
// Sweet Liberty Deluxe / Export / A - 11/02/01
-// Requires set chips 4.04.xx
ROM_START( sldeluxe )
ARISTOCRAT_MK5_BIOS
/*
Checksum code found at 0x000d18
- 0x000000-0x0ec207 is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
Expected Checksum 0xa86cc13c
Calculated Checksum 0xa86cc13c (OK)
- 0x0ec208-0x31d6b3 is the non-Checksummed range (unusual endpoint)
*/
ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
ROM_LOAD32_WORD( "ahg1575.u7", 0x000000, 0x80000, CRC(5962d463) SHA1(d78c3be7a2aa6d03888e928a5498a65b00ad4135) )
@@ -6389,11 +6075,7 @@ ROM_END
ROM_START( snowcat )
ARISTOCRAT_MK5_BIOS
/*
- Checksum code found at 0x000b80
- 0x000000-0x0553db is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
- Expected Checksum 0xf2744b11
- Calculated Checksum 0xf2744b11 (OK)
- 0x0553dc-0x0ea4a3 is the non-Checksummed range (unusual endpoint)
+ Checksum code needs to be done
*/
ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
ROM_LOAD32_WORD( "0100405v.u7", 0x000000, 0x80000, CRC(e52c01c2) SHA1(98acf33bbe0e4525a02b581eae7b7caf910f2b96) )
@@ -6861,29 +6543,20 @@ ROM_END
// BHG1584 / MV4130/1 / 20 Line Multiline / 5, 10, 25, 50 Credit Multiplier
// Unicorn Dreaming / Export / C - 10/17/01
-// Requires set chips 4.04.xx
ROM_START( unicorndu )
ARISTOCRAT_MK5_BIOS
- /*
- Checksum code found at 0x000d18
- 0x000000-0x0ec547 is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
- Expected Checksum 0x16dabc9e
- Calculated Checksum 0x16dabc9e (OK)
- 0x0ec548-0x1ee2cb is the non-Checksummed range still containing data but NOT covered by Checksum
- 0x0ec548-0x1fffff is the non-Checksummed range if the additional vectors? at the end are included
- */
+ // checksum code not found due to ROMs being corrupted, all files are missing bytes consisting of 0x0D
ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
- ROM_LOAD32_WORD( "bhg1584.u7", 0x000000, 0x80000, CRC(1490354e) SHA1(9327f01067e4a7f7ce5b6db9373b9ad59533babf) )
- ROM_LOAD32_WORD( "bhg1584.u11", 0x000002, 0x80000, CRC(d2b6745b) SHA1(04b5586e802ce0bd5891b23222bc1db8e7c67f8a) )
- ROM_LOAD32_WORD( "bhg1584.u8", 0x100000, 0x80000, CRC(e604d399) SHA1(9aab86aa6e8590921de9b7234713be72a7c4faa1) )
- ROM_LOAD32_WORD( "bhg1584.u12", 0x100002, 0x80000, CRC(c1e878b5) SHA1(4e4e9dee4d85fbb77dc6f7d39c2dc5b0bf438aef) )
+ ROM_LOAD32_WORD( "bhg1584.u7", 0x000000, 0x7f06e, BAD_DUMP CRC(4867364d) SHA1(f8f89bcd38b6fda5a5344c3aa5547f24da4a88e5) )
+ ROM_LOAD32_WORD( "bhg1584.u11", 0x000002, 0x7ff68, BAD_DUMP CRC(9798b89b) SHA1(bf95196c3aba938813e40fb819baa37a51380fd2) )
+ ROM_LOAD32_WORD( "bhg1584.u8", 0x100000, 0x7fa38, BAD_DUMP CRC(960f3e5f) SHA1(981d90277df2aeb76931fe87cf41e11fcdcc132b) )
+ ROM_LOAD32_WORD( "bhg1584.u12", 0x100002, 0x7f9ec, BAD_DUMP CRC(15f5d3b0) SHA1(68145549a8c1e58e805e8c4fe1a9fc60e7e3d39d) )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
ROM_END
-
// 02J02056 / JB009/2 / Multi credit / Multi line
// Venice / VENEZUILA / B - 11/07/02
// This game is downported from the MK6 version
@@ -7273,32 +6946,30 @@ ROM_END
#define MACHINE_FLAGS MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND|MACHINE_IMPERFECT_GRAPHICS
// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS
-GAMEL( 1995, aristmk5, 0, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "MKV Set/Clear Chips (USA)", MACHINE_FLAGS|MACHINE_IS_BIOS_ROOT, layout_aristmk5_us )
+GAME( 1995, aristmk5, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "MKV Set/Clear Chips (USA)", MACHINE_FLAGS|MACHINE_IS_BIOS_ROOT )
// Dates listed below are for the combination (reel layout), not release dates
GAMEL( 1998, adonis, aristmk5, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Adonis (0200751V, NSW/ACT)", MACHINE_FLAGS, layout_aristmk5 ) // 602/9, A - 25/05/98, Rev 10
GAMEL( 1998, adonisa, adonis, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Adonis (0100751V, NSW/ACT)", MACHINE_FLAGS, layout_aristmk5 ) // 602/9, A - 25/05/98, Rev 9
GAMEL( 1999, adonisce, adonis, aristmk5, adonisce, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Adonis - Cash Express (0201005V, NSW/ACT)", MACHINE_FLAGS, layout_aristmk5 ) // 602/9, C - 06/07/99, Rev 12
-GAMEL( 2001, adonisu, adonis, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Adonis (BHG1508, US)", MACHINE_FLAGS, layout_dolphntrce ) // MV4124/1, B - 31/07/01
-GAMEL( 2002, alchemst, aristmk5, aristmk5, goldenra, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Alchemist (01J02046, Venezuela)", MACHINE_FLAGS, layout_yukongl5 ) // JB013/1, A - 22/01/02, Rev 17
+GAMEL( 2001, adonisu, adonis, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Adonis (BHG1508, US)", MACHINE_FLAGS, layout_aristmk5_us ) // MV4124/1, B - 31/07/01
+GAMEL( 2002, alchemst, aristmk5, aristmk5, goldenra, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Alchemist (01J02046, Venezuela)", MACHINE_FLAGS, layout_yukongld ) // JB013/1, A - 22/01/02, Rev 17
GAMEL( 2000, bparty, aristmk5, aristmk5_usa_touch, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Bachelorette Party (BHG1248, US)", MACHINE_FLAGS, layout_bparty ) // MV4119/1, B - 25/08/2000
GAMEL( 1996, baddog, aristmk5, aristmk5, baddog, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Bad Dog Poker (0200428V, NSW/ACT)", MACHINE_FLAGS, layout_baddog ) // 386/56, A - 17/12/96
GAMEL( 1998, bootsctn, aristmk5, aristmk5, cashcham, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Boot Scootin' (0100812V, NSW/ACT)", MACHINE_FLAGS, layout_cashcham ) // 616/1, B - 11/12/98, Rev 20
GAMEL( 1999, bootsctnu, bootsctn, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Boot Scootin' (GHG1012-02, US)", MACHINE_FLAGS, layout_aristmk5_us ) // MV4098, A - 25/08/99
GAMEL( 1999, bootsctnua, bootsctn, aristmk5_usa, pengpuck, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Boot Scootin' (GHG1008-03, US)", MACHINE_FLAGS, layout_aristmk5_us_200 ) // MV4098/1, A - 27/07/99
-GAMEL( 2001, bootsctnub, bootsctn, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Boot Scootin' (AHG1547, US)", MACHINE_FLAGS, layout_aristmk5_us_200 ) // MV4098/1, B - 22/03/01
-GAMEL( 1996, bumblbug, aristmk5, aristmk5, bumblbug, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Bumble Bugs (0200510V, NSW/ACT)", MACHINE_FLAGS, layout_bumblbug ) // 593, D - 5/07/96, Rev 3
+GAMEL( 1996, bumblbug, aristmk5, aristmk5, swhr2, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Bumble Bugs (0200510V, NSW/ACT)", MACHINE_FLAGS, layout_swhr2 ) // 593, D - 5/07/96, Rev 3
GAMEL( 1996, bumblbugql, bumblbug, aristmk5, swhr2, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Bumble Bugs (0200456V, Queensland)", MACHINE_FLAGS, layout_swhr2 ) // 593, D - 5/07/96, Rev 1.0
GAMEL( 1997, bumblbugu, bumblbug, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Bumble Bugs (CHG0479-03, US)", MACHINE_FLAGS, layout_aristmk5_us ) // 593, D - 05/07/97
-GAMEL( 1997, bumblbugua, bumblbug, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Bumble Bugs (CHG0479-99, US)", MACHINE_FLAGS, layout_aristmk5_us ) // 593, D - 05/07/97
GAMEL( 1995, buttdeli, aristmk5, aristmk5, swhr2, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Butterfly Delight (0200143V, NSW/ACT)", MACHINE_FLAGS, layout_swhr2 ) // 571/4, A - 19/12/95, Rev 1.8.1.0
GAMEL( 1998, cashcat, aristmk5, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Cash Cat (0100676V, NSW/ACT)", MACHINE_FLAGS, layout_aristmk5 ) // 614/3, A - 03/04/98, Rev 7
GAMEL( 1997, cashcata, cashcat, aristmk5, aristmk5_9, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Cash Cat (0100557V, NSW/ACT)", MACHINE_FLAGS, layout_dolphntrb ) // 614/1, B - 01/12/97, Rev 7
-GAMEL( 1999, cashcatnz, cashcat, aristmk5, cashcatnz, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Cash Cat (0300863V, New Zealand)", MACHINE_FLAGS, layout_cashcatnz ) // MV4089, A - 4/1/99, Rev 26
+GAMEL( 1999, cashcatnz, cashcat, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Cash Cat (0300863V, New Zealand)", MACHINE_FLAGS, layout_cashcatnz ) // MV4089, A - 4/1/99, Rev 26
GAMEL( 1997, cashcham, aristmk5, aristmk5, cashcham, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Cash Chameleon (0100438V, NSW/ACT)", MACHINE_FLAGS, layout_cashcham ) // 603/1, C - 15/4/97, Rev 1.25.3.0
GAMEL( 1998, cashchama, cashcham, aristmk5, cashchama, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Cash Chameleon (0200437V, NSW/ACT)", MACHINE_FLAGS, layout_cashchama ) // 603(a), D - 18/02/98, Rev 3
GAMEL( 1998, cashchamnz, cashcham, aristmk5, cashchamnz, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Cash Chameleon (0300781V, New Zealand)", MACHINE_FLAGS, layout_cashchamnz ) // MV4067, A - 31/08/98, Rev 21
-GAMEL( 1996, cashchamu, cashcham, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Cash Chameleon (DHG4078-99, US)", MACHINE_FLAGS, layout_cashchamu ) // 603(a), B - 06/12/96
+GAMEL( 1996, cashchamu, cashcham, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Cash Chameleon (DHG4078-99, US)", MACHINE_FLAGS, layout_aristmk5_us ) // 603(a), B - 06/12/96
GAMEL( 1997, cashcra5, aristmk5, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Cash Crop (0300467V, NSW/ACT)", MACHINE_FLAGS, layout_aristmk5 ) // 607, C - 14/07/97, Rev 6
GAMEL( 1998, chariotc, aristmk5, aristmk5, chariotc, aristmk5_state, aristmk5, ROT0, "Aristocrat", "The Chariot Challenge (0100787V, NSW/ACT)", MACHINE_FLAGS, layout_aristmk5 ) // 630/1, A - 10/08/98, Rev 11
GAMEL( 1998, chariotcv, chariotc, aristmk5, chariotcv, aristmk5_state, aristmk5, ROT0, "Aristocrat", "The Chariot Challenge (04J00714, Venezuela)", MACHINE_FLAGS, layout_snowcat ) // 630, A - 10/08/98, Rev 12
@@ -7320,7 +6991,7 @@ GAMEL( 1996, dolphntrb, dolphntr, aristmk5, aristmk5_9, aristmk5_s
GAMEL( 1996, dolphntru, dolphntr, aristmk5_usa, dolphntru, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Dolphin Treasure (FHG4077-02, US)", MACHINE_FLAGS, layout_aristmk5_us ) // 602/1, B - 06/12/96
GAMEL( 1999, dolphntrce, dolphntr, aristmk5_usa, dolphntrce, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Dolphin Treasure - Cash Express (AHG1607, US)", MACHINE_FLAGS, layout_dolphntrce ) // MV4090, D - 22/12/99
GAMEL( 1999, dolphntrcea, dolphntr, aristmk5_usa, dolphntru, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Dolphin Treasure - Cash Express (AHG1606, US)", MACHINE_FLAGS, layout_magimaska ) // MV4090, D - 22/12/99
-GAMEL( 1999, dolphntrceb, dolphntr, aristmk5_usa, dolphntrce, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Dolphin Treasure - Cash Express (AHG1519, US)", MACHINE_FLAGS, layout_dolphntrceb ) // MV4090, D - 22/12/99
+GAMEL( 1999, dolphntrceb, dolphntr, aristmk5_usa, dolphntrce, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Dolphin Treasure - Cash Express (AHG1519, US)", MACHINE_FLAGS, layout_pengpuck ) // MV4090, D - 22/12/99
GAMEL( 1997, drgneye, aristmk5, aristmk5, snowcat, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Dragon's Eye (0100521V, NSW/ACT)", MACHINE_FLAGS, layout_snowcat ) // 610, A - 09/05/97, Rev 1.27
GAMEL( 1997, dreamwv, aristmk5, aristmk5_touch, dreamwv, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Dream Weaver (0200586V, NSW/ACT)", MACHINE_FLAGS, layout_dreamwv ) // 606/2, A - 20/06/97, Rev 16
GAMEL( 2000, dynajack, aristmk5, aristmk5, dynajack, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Dynamite Jack (01J00081, NSW/ACT)", MACHINE_FLAGS, layout_dynajack ) // JB004, A - 12/07/2000, Rev 17
@@ -7332,20 +7003,16 @@ GAMEL( 2000, fortellr, aristmk5, aristmk5, goldenra, aristmk5_s
GAMEL( 1998, gambler, aristmk5, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "The Gambler (EHG0916-02, US)", MACHINE_FLAGS, layout_aristmk5_us ) // MV4084/1, A - 30/10/98
GAMEL( 2001, geisha, aristmk5, aristmk5, geisha, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Geisha (0101408V, New Zealand)", MACHINE_FLAGS, layout_geisha ) // MV4127, A - 05/03/01, Rev 25
GAMEL( 1999, genmagi, aristmk5, aristmk5_touch, genmagi, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Genie Magic (0200894V, NSW/ACT)", MACHINE_FLAGS, layout_genmagi ) // 632/1, C - 15/02/99, Rev 20
-GAMEL( 2001, glizardu, aristmk5, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Green Lizard (AHG1623, US)", MACHINE_FLAGS, layout_aristmk5_us_200 ) // MV4112/2 - A - 05/01/01
GAMEL( 1998, gnomeatw, aristmk5, aristmk5, kgalah, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Gnome Around The World (0100767V, NSW/ACT)", MACHINE_FLAGS, layout_kgalah ) // 625, C - 18/12/98, Rev 16
GAMEL( 1997, goldpyr, aristmk5, aristmk5_usa, dolphntru, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Golden Pyramids (AHG1205-03, US)", MACHINE_FLAGS, layout_aristmk5_us ) // MV4091, B - 13/05/97
-GAMEL( 1997, goldpyra, goldpyr, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Golden Pyramids (AHG1206-99, US)", MACHINE_FLAGS, layout_aristmk5_us_200 ) // 602/2, B - 13/05/97
+GAMEL( 1997, goldpyra, goldpyr, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Golden Pyramids (AHG1206-99, US)", MACHINE_FLAGS, layout_aristmk5_us ) // 602/2, B - 13/05/97
GAMEL( 1998, goldpyrb, goldpyr, aristmk5, goldpyrb, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Golden Pyramids (0100878V, Victoria)", MACHINE_FLAGS, layout_goldpyrb ) // 602/5, C - 19/06/98
GAMEL( 2000, goldenra, aristmk5, aristmk5, goldenra, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Golden Ra (0101164V, NSW/ACT)", MACHINE_FLAGS, layout_goldenra ) // 661, A - 10/04/00, Rev 15
-GAMEL( 2000, honeypot, aristmk5, aristmk5, goldenra, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Honey Pot (03J00241, NSW/ACT)", MACHINE_FLAGS, layout_yukongl5 ) // JB008, A - 21/11/2000, Rev 17
-GAMEL( 2001, hnktonku, aristmk5, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Honkey Tonk - Cash Express (BHG1455, US)", MACHINE_FLAGS, layout_aristmk5_us ) // MV4122/3, A - 07/08/01
+GAMEL( 2000, honeypot, aristmk5, aristmk5, goldenra, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Honey Pot (03J00241, NSW/ACT)", MACHINE_FLAGS, layout_yukongld ) // JB008, A - 21/11/2000, Rev 17
GAMEL( 1999, incasun, aristmk5, aristmk5, incasun, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Inca Sun (0100872V, NSW/ACT)", MACHINE_FLAGS, layout_incasun ) // 631/3 B, B - 03/05/99, Rev 15
GAMEL( 1999, incasunsp, incasun, aristmk5, incasun, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Inca Sun (0100872V, NSW/ACT, Show Program)", MACHINE_FLAGS, layout_incasun ) // 631/3 B, B - 03/05/99, Rev 15
GAMEL( 2000, incasunnz, incasun, aristmk5, incasunnz, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Inca Sun (0101108V, New Zealand)", MACHINE_FLAGS, layout_incasunnz ) // MV4113, A - 6/3/00, Rev 25
-GAMEL( 1999, incasunv, incasun, aristmk5, incasun, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Inca Sun (01J01946, Venezuela)", MACHINE_FLAGS, layout_incasun ) // 631/3, B - 03/05/99
GAMEL( 2000, incasunu, incasun, aristmk5_usa, dolphntrce, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Inca Sun (CHG1458, US)", MACHINE_FLAGS, layout_dolphntrce ) // MV4130/3, A - 05/09/00
-GAMEL( 2000, incasunua, incasun, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Inca Sun (DHG1577, US)", MACHINE_FLAGS, layout_dolphntrce ) // MV4130, A - 05/09/00
GAMEL( 1998, indrema5, aristmk5, aristmk5, indrema5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Indian Dreaming (0100845V, NSW/ACT)", MACHINE_FLAGS, layout_indrema5 ) // 628/1, B - 15/12/98, Rev 7
GAMEL( 1996, jumpjoey, aristmk5, aristmk5, cashcham, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Jumpin' Joey (0100383V, NSW/ACT)", MACHINE_FLAGS, layout_cashcham ) // 586/6, C - 13/11/96
GAMEL( 1996, jungjuic, aristmk5, aristmk5, jungjuic, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Jungle Juice (0200240V, New Zealand)", MACHINE_FLAGS, layout_jungjuic ) // 566/3, F - 06/03/96
@@ -7354,11 +7021,9 @@ GAMEL( 1995, kgalaha, kgalah, aristmk5, kgalah, aristmk5_s
GAMEL( 1994, kgbirda5, aristmk5, aristmk5, kgbirda5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "K.G. Bird (0200024V, NSW/ACT)", MACHINE_FLAGS, layout_kgbirda5 ) // 540/3, D - 10/10/94
GAMEL( 2001, koalamnt, aristmk5, aristmk5_usa, dolphntrce, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Koala Mint (CHG1573, US)", MACHINE_FLAGS, layout_dolphntrce ) // MV4137, A - 12/09/01
GAMEL( 1998, kookabuk, aristmk5, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Kooka Bucks (0100677V, NSW/ACT)", MACHINE_FLAGS, layout_aristmk5 ) // 661, A - 03/04/98, Rev 5
-GAMEL( 2000, kyhatonu, aristmk5, aristmk5_usa_touch, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Keep Your Hat On (BHG1204, US)", MACHINE_FLAGS, layout_aristmk5_us ) // MV4114/1, B - 08/05/2000
GAMEL( 1997, locoloot, aristmk5, aristmk5, cashcham, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Loco Loot (0100473V, NSW/ACT)", MACHINE_FLAGS, layout_cashcham ) // 599/3, C - 17/06/97, Rev 1.26.13.0
GAMEL( 1997, locoloota, locoloot, aristmk5, locoloota, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Loco Loot (0100472V, NSW/ACT)", MACHINE_FLAGS, layout_locoloota ) // 599/2, C - 17/06/97, Rev 1.26.13.0
GAMEL( 1998, locolootnz, locoloot, aristmk5, cashchamnz, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Loco Loot (0600725V, New Zealand)", MACHINE_FLAGS, layout_cashchamnz ) // MV4064, A - 8/7/98, Rev 24
-GAMEL( 2001, locolootu, locoloot, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Loco Loot (AHG1513, US)", MACHINE_FLAGS, layout_aristmk5_us_200 ) // MV4134, A - 30/07/01
GAMEL( 1997, lonewolf, aristmk5, aristmk5, wildbill, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Lone Wolf (0100587V, NSW/ACT)", MACHINE_FLAGS, layout_wildbill ) // 621, A - 29/10/97, Rev 1.27.17.0
GAMEL( 1995, luckyclo, aristmk5, aristmk5, wcougar, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Lucky Clover (0300109V, NSW/ACT)", MACHINE_FLAGS, layout_wcougar ) // 570/6, A - 12/10/95
GAMEL( 2000, magimask, aristmk5, aristmk5_usa_touch, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Magic Mask (AHG1549, US)", MACHINE_FLAGS, layout_dolphntrce ) // MV4115_1, A - 09/05/00
@@ -7369,7 +7034,7 @@ GAMEL( 1997, magtcha5a, magtcha5, aristmk5_touch, dimtouch, aristmk5_s
GAMEL( 1997, mammothm, aristmk5, aristmk5, kgalah, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Mammoth Money (0100425V, NSW/ACT)", MACHINE_FLAGS, layout_kgalah ) // 595/5, D - 07/04/97, Rev 1.22.14.1
GAMEL( 2000, marmagic, aristmk5, aristmk5, goldenra, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Margarita Magic (01J00101, NSW/ACT)", MACHINE_FLAGS, layout_marmagic ) // JB005, A - 07/07/00, Rev 17
GAMEL( 2000, marmagicu, marmagic, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Margarita Magic (EHG1558, US)", MACHINE_FLAGS, layout_aristmk5_us ) // US003, 07/07/2000
-GAMEL( 2000, marmagicua, marmagic, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Margarita Magic (EHG1559, US)", MACHINE_FLAGS, layout_dolphntrce ) // US003, A - 07/07/00
+GAMEL( 2000, marmagicua, marmagic, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Margarita Magic (EHG1559, US, set 1)", MACHINE_FLAGS, layout_aristmk5_us_200 ) // US003, A - 07/07/00
GAMEL( 1997, mgarden, aristmk5, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Magic Garden (AHG1211-99, US)", MACHINE_FLAGS, layout_aristmk5_us ) // MV4033, B - 10/02/97 (alt title for enchanted forest?)
GAMEL( 1996, minemine, aristmk5, aristmk5, swhr2, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Mine, Mine, Mine (0400115V, NSW/ACT)", MACHINE_FLAGS, layout_swhr2 ) // 559/2, D - 16/01/96, Rev 1.18.3.0
GAMEL( 1996, minemineu, minemine, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Mine, Mine, Mine (VHG0416-99, US)", MACHINE_FLAGS, layout_aristmk5_us ) // 559/2, E - 14/02/96
@@ -7395,8 +7060,6 @@ GAMEL( 1996, pengpaya, pengpay, aristmk5, cashchama, aristmk5_s
GAMEL( 1997, pengpayb, pengpay, aristmk5, swhr2, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Penguin Pays (0200359V, NSW/ACT)", MACHINE_FLAGS, layout_swhr2 ) // 586/3(a), D - 03/06/97, Rev 4
GAMEL( 1995, pengpayc, pengpay, aristmk5, wcougar, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Penguin Pays (0200113V, NSW/ACT)", MACHINE_FLAGS, layout_wcougar ) // 586, A - 12/10/95
GAMEL( 1997, pengpayu, pengpay, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Penguin Pays (BHI0417-03, US)", MACHINE_FLAGS, layout_aristmk5_us ) // 586/7(b), B - 14/07/97
-GAMEL( 1997, pengpayua, pengpay, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Penguin Pays (OHG0417-03, US)", MACHINE_FLAGS, layout_aristmk5_us ) // 586/7(b), B - 14/07/97
-GAMEL( 1997, pengpayub, pengpay, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Penguin Pays (OHG0417-02, US)", MACHINE_FLAGS, layout_aristmk5_us ) // 586/7(b), B - 14/07/97
GAMEL( 2001, pengpuck, pengpay, aristmk5_usa, pengpuck, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Penguin Pays - Penguin Pucks (EHG1257, US)", MACHINE_FLAGS, layout_pengpuck ) // MV4122/1, C - 19/01/01
GAMEL( 1998, petshop, aristmk5, aristmk5, petshop, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Pet Shop (0100731V, NSW/ACT)", MACHINE_FLAGS, layout_petshop ) // 618/1, A - 17/04/98, Rev 13
GAMEL( 1995, phantpay, aristmk5, aristmk5, swhr2, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Phantom Pays (0500005V, NSW/ACT)", MACHINE_FLAGS, layout_swhr2 ) // 570/1, E - 12/09/95
@@ -7425,7 +7088,7 @@ GAMEL( 1997, retrsam, aristmk5, aristmk5, retrsam, aristmk5_s
GAMEL( 1997, retrsama, retrsam, aristmk5, retrsam, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Return of the Samurai (0200549V, NSW/ACT)", MACHINE_FLAGS, layout_sbuk3 ) // 608, A - 17/04/97, Rev 1.26.25.3
GAMEL( 1997, retrsamb, retrsam, aristmk5, retrsamb, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Return of the Samurai (0200506V, NSW/ACT)", MACHINE_FLAGS, layout_retrsamb ) // 608, A - 17/04/97, Rev 1.26.25.3
GAMEL( 1997, rushrst, aristmk5, aristmk5, rushrst, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Rushin Rooster (0100534V, NSW/ACT)", MACHINE_FLAGS, layout_cashchama ) // 596/3, C - 25/06/97, Rev 1.27.2.3
-GAMEL( 2001, sldeluxe, aristmk5, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Sweet Liberty Deluxe (AHG1575, US)", MACHINE_FLAGS, layout_dolphntrce ) // MV4137, A - 11/02/01
+GAMEL( 2001, sldeluxe, aristmk5, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Sweet Liberty Deluxe (AHG1575, US)", MACHINE_FLAGS, layout_aristmk5_us_200 ) // MV4137, A - 11/02/01
GAMEL( 1998, slvrwolf, aristmk5, aristmk5, wamazona, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Silver Wolf (0100673V, NSW/ACT)", MACHINE_FLAGS, layout_wamazona ) // 621/2, A - 23/03/98, Rev 3
GAMEL( 1996, snowcat, aristmk5, aristmk5, snowcat, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Snow Cat (0100405V, NSW/ACT)", MACHINE_FLAGS, layout_snowcat ) // 599, B - 23/12/96, Rev 1.25.1.0
GAMEL( 1997, sumospin, aristmk5, aristmk5, swhr2, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Sumo Spins (0200606V, NSW/ACT)", MACHINE_FLAGS, layout_swhr2 ) // 622, A - 08/12/97, Rev 4
@@ -7433,7 +7096,7 @@ GAMEL( 1998, sbuk3, aristmk5, aristmk5, sbuk3, aristmk5_s
GAMEL( 1998, sbuk3a, sbuk3, aristmk5, sbuk3, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Super Bucks III (0100711V, NSW/ACT)", MACHINE_FLAGS, layout_sbuk3 ) // 626, A - 22/04/98, Rev 7
GAMEL( 1995, swhr2, aristmk5, aristmk5, swhr2, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Sweethearts II (0200465V, NSW/ACT)", MACHINE_FLAGS, layout_swhr2 ) // 577/1, C - 07/09/95, Rev 3
GAMEL( 1995, swhr2a, swhr2, aristmk5, swhr2, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Sweethearts II (0200004V, NSW/ACT)", MACHINE_FLAGS, layout_swhr2 ) // 577/1, C - 07/09/95, Rev 1.1.3.0
-GAMEL( 1998, swhr2u, swhr2, aristmk5_usa, swhr2u, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Sweethearts II (PHG0742-02, US)", MACHINE_FLAGS, layout_swhr2u ) // MV4061, A - 29/06/98
+GAMEL( 1998, swhr2u, swhr2, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Sweethearts II (PHG0742-02, US)", MACHINE_FLAGS, layout_aristmk5_us ) // MV4061, A - 29/06/98
GAMEL( 1995, swhr2v, swhr2, aristmk5, swhr2, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Sweethearts II (01J01986, Venezuela)", MACHINE_FLAGS, layout_swhr2 ) // 577/1, C - 07/09/95, Rev 3
GAMEL( 1996, thor, aristmk5, aristmk5, cashcham, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Thor (0200319V, NSW/ACT)", MACHINE_FLAGS, layout_cashcham ) // 569/12, B - 14/08/96, Rev 1.23.7.0
GAMEL( 1996, thndh, aristmk5, aristmk5, snowcat, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Thunder Heart (0200333V, NSW/ACT)", MACHINE_FLAGS, layout_snowcat ) // 570/9, A - 14/08/96, Rev 1.23.6.0
@@ -7449,7 +7112,6 @@ GAMEL( 1997, trpdlghtu, trpdlght, aristmk5_usa, aristmk5_usa, aristmk5_s
GAMEL( 1998, unicornd, aristmk5, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Unicorn Dreaming (0100791V, NSW/ACT)", MACHINE_FLAGS, layout_aristmk5 ) // 631/1 A, A - 31/08/98, Rev 12
GAMEL( 1998, unicornda, unicornd, aristmk5, aristmk5_9, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Unicorn Dreaming (0100813V, NSW/ACT)", MACHINE_FLAGS, layout_dolphntrb ) // 631 A, A - 02/09/98, Rev 14
GAMEL( 2000, unicorndnz, unicornd, aristmk5, unicorndnz, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Unicorn Dreaming (0101228V, New Zealand)", MACHINE_FLAGS, layout_aristmk5 ) // MV4113/1, A - 05/04/2000, Rev 27
-GAMEL( 2001, unicorndu, unicornd, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Unicorn Dreaming (BHG1584, US)", MACHINE_FLAGS, layout_dolphntrce ) // MV4130/1, C - 10/17/01
GAMEL( 2002, venicea5, aristmk5, aristmk5, goldenra, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Venice (02J02056, Venezuela)", MACHINE_FLAGS, layout_venicea5 ) // JB009/2, B - 11/07/02, Rev 17
GAMEL( 1996, wamazon, aristmk5, aristmk5, wamazon, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Wild Amazon (0200507V, NSW/ACT)", MACHINE_FLAGS, layout_wamazon ) // 506/8, A - 10/10/96, Rev 3
GAMEL( 1996, wamazona, wamazon, aristmk5, wamazona, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Wild Amazon (0200285V, NSW/ACT)", MACHINE_FLAGS, layout_wamazona ) // 506/6, A - 7/5/96, Rev 1.22.8.0
@@ -7463,11 +7125,11 @@ GAMEL( 1996, wizways, aristmk5, aristmk5, wizways, aristmk5_s
GAMEL( 1997, wnpost, aristmk5, aristmk5_usa, wnpost, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Winning Post (RHG0418-04, US)", MACHINE_FLAGS, layout_wnpost ) // 541/2, G - 11/02/97
GAMEL( 1999, wthing, aristmk5, aristmk5, retrsam, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Wild Thing (0101158V, NSW/ACT)", MACHINE_FLAGS, layout_sbuk3 ) // 608/4, B - 14/12/99, Rev 8
GAMEL( 1999, wtiger, aristmk5, aristmk5, wtiger, aristmk5_state, aristmk5, ROT0, "Aristocrat", "White Tiger Classic (0200954V, NSW/ACT)", MACHINE_FLAGS, layout_wtiger ) // 638/1, B - 08/07/99, Rev 13
-GAMEL( 2000, yukongl5, aristmk5, aristmk5, goldenra, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Yukon Gold (03J00191, NSW/ACT)", MACHINE_FLAGS, layout_yukongl5 ) // JB005/1, A - 30/10/2000, Rev 17
+GAMEL( 2000, yukongl5, aristmk5, aristmk5, goldenra, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Yukon Gold (03J00191, NSW/ACT)", MACHINE_FLAGS, layout_yukongld ) // JB005/1, A - 30/10/2000, Rev 17
// the following parent sets are known bad dumps, and do not boot (confirmed)
GAMEL( 1996, blackpnt, aristmk5, aristmk5, wildbill, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Black Panther (0200818V, Victoria)", MACHINE_FLAGS, layout_wildbill ) // 594/1, A - 30/07/96
-GAMEL( 1996, canrose, aristmk5, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Canyon Rose (AHG1463, US)", MACHINE_FLAGS, layout_aristmk5_us_200 ) // 603(a), B - 06/12/96 (same as Cash Chameleon)
+GAMEL( 1996, canrose, aristmk5, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Canyon Rose (AHG1463, US)", MACHINE_FLAGS, layout_aristmk5_us ) // 603(a), B - 06/12/96 (same as Cash Chameleon)
GAMEL( 2000, diamdest, aristmk5, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Diamond Destiny (AHG1533, US)", MACHINE_FLAGS, layout_aristmk5_us_200 ) // MV4115_5, A - 09/05/2000 (same as Magic Mask)
GAMEL( 2001, fortfvr, aristmk5, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Fortune Fever (BHG1566, US)", MACHINE_FLAGS, layout_aristmk5_us ) // MV4122/2, A - 13/05/01
GAMEL( 1996, jumpbean, aristmk5, aristmk5, swhr2, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Jumping Beans (0100161V, NSW/ACT)", MACHINE_FLAGS, layout_swhr2 ) // 586/2, A - 25/01/96
@@ -7479,10 +7141,14 @@ GAMEL( 2000, bpartya, bparty, aristmk5_usa_touch, bootsctnua, aristmk5_s
GAMEL( 1997, cashcra5a, cashcra5, aristmk5, aristmk5_9, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Cash Crop (0300447V, NSW/ACT)", MACHINE_FLAGS, layout_dolphntrb ) // 607/2, C - 29/08/97, Rev 7
GAMEL( 2001, dynajacku, dynajack, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Dynamite Jack (CHG1562, US)", MACHINE_FLAGS, layout_aristmk5_us ) // US002, A - 11/07/01
GAMEL( 2000, eforsta5ce, eforsta5, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Enchanted Forest - Cash Express (CHG1536, US)", MACHINE_FLAGS, layout_aristmk5_us ) // MV4108/6, C - 17/01/00
+GAMEL( 2000, incasunua, incasun, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Inca Sun (DHG1577, US)", MACHINE_FLAGS, layout_aristmk5_us_200 ) // MV4130, A - 05/09/00
+GAMEL( 2001, locolootu, locoloot, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Loco Loot (AHG1513, US)", MACHINE_FLAGS, layout_aristmk5_us ) // MV4134, A - 30/07/01
+GAMEL( 2000, marmagicub, marmagic, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Margarita Magic (EHG1559, US, set 2)", MACHINE_FLAGS, layout_aristmk5_us_200 ) // US003, A - 07/07/00
GAMEL( 2001, mountmonce, mountmon, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Mountain Money - Cash Express (AHG1629, US)", MACHINE_FLAGS, layout_aristmk5_us ) // MV4108/5, A - 10/03/01
GAMEL( 2001, mountmonu, mountmon, aristmk5_usa, aristmk5_usa, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Mountain Money (BHG1465, US)", MACHINE_FLAGS, layout_aristmk5_us ) // MV4108/5, A - 10/03/01
GAMEL( 2001, partygrsb, partygrs, aristmk5_usa_touch, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Party Gras (AHG1568, US)", MACHINE_FLAGS, layout_aristmk5_us_200 ) // MV4115/6, A - 10/11/2001, 20 lines
GAMEL( 1995, pengpayd, pengpay, aristmk5, wcougar, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Penguin Pays (0300113V, NSW/ACT)", MACHINE_FLAGS, layout_wcougar ) // 586, A - 12/10/95, Rev 4
GAMEL( 1998, petshopa, petshop, aristmk5, snowcat, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Pet Shop (0100679V, NSW/ACT)", MACHINE_FLAGS, layout_snowcat ) // 618, A - 09/03/98, Rev 10
GAMEL( 1995, sbuk2a, sbuk2, aristmk5, sbuk2, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Super Bucks II (0300006V, NSW/ACT)", MACHINE_FLAGS, layout_sbuk2 ) // no data due to missing ROMs
+GAMEL( 2001, unicorndu, unicornd, aristmk5_usa, bootsctnua, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Unicorn Dreaming (BHG1584, US)", MACHINE_FLAGS, layout_aristmk5_us_200 ) // MV4130/1, C - 10/17/01
GAMEL( 2000, wthinga, wthing, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Wild Thing (0201176V, NSW/ACT)", MACHINE_FLAGS, layout_aristmk5 ) // 608/5, B - 25/02/00, Rev 11
diff --git a/src/mame/drivers/arkanoid.cpp b/src/mame/drivers/arkanoid.cpp
index eb6ed5af8af..c4c7ae8e251 100644
--- a/src/mame/drivers/arkanoid.cpp
+++ b/src/mame/drivers/arkanoid.cpp
@@ -2116,12 +2116,12 @@ DRIVER_INIT_MEMBER(arkanoid_state,block2)
int srctile;
// combine these into a single swap..
- srctile = bitswap<16>(tile,15,14,13,12,
+ srctile = BITSWAP16(tile,15,14,13,12,
11,10,9,8,
7,5,6,3,
1,2,4,0);
- srctile = bitswap<16>(srctile,15,14,13,12,
+ srctile = BITSWAP16(srctile,15,14,13,12,
11,9,10,5,
7,6,8,4,
3,2,1,0);
diff --git a/src/mame/drivers/arsystems.cpp b/src/mame/drivers/arsystems.cpp
index 9bc03bdf0e7..986b4aaadd5 100644
--- a/src/mame/drivers/arsystems.cpp
+++ b/src/mame/drivers/arsystems.cpp
@@ -896,7 +896,7 @@ void arcadia_amiga_state::generic_decode(const char *tag, int bit7, int bit6, in
/* only the low byte of ROMs are encrypted in these games */
for (i = 0; i < 0x20000/2; i++)
- rom[i] = bitswap<16>(rom[i], 15,14,13,12,11,10,9,8, bit7,bit6,bit5,bit4,bit3,bit2,bit1,bit0);
+ rom[i] = BITSWAP16(rom[i], 15,14,13,12,11,10,9,8, bit7,bit6,bit5,bit4,bit3,bit2,bit1,bit0);
#if 0
{
diff --git a/src/mame/drivers/astrcorp.cpp b/src/mame/drivers/astrcorp.cpp
index 680600f8997..addf0b57921 100644
--- a/src/mame/drivers/astrcorp.cpp
+++ b/src/mame/drivers/astrcorp.cpp
@@ -57,8 +57,6 @@ public:
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
- m_hopper(*this, "hopper"),
- m_ticket(*this, "ticket"),
m_spriteram(*this, "spriteram")
{ }
@@ -68,8 +66,6 @@ public:
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
- optional_device<ticket_dispenser_device> m_hopper;
- optional_device<ticket_dispenser_device> m_ticket;
// memory pointers
required_shared_ptr<uint16_t> m_spriteram;
@@ -267,23 +263,23 @@ WRITE16_MEMBER(astrocorp_state::skilldrp_outputs_w)
if (ACCESSING_BITS_0_7)
{
- machine().bookkeeping().coin_counter_w(0, BIT(data, 0)); // key in |
- machine().bookkeeping().coin_counter_w(0, BIT(data, 1)); // coin in |- manual shows 1 in- and 1 out- counter
- machine().bookkeeping().coin_counter_w(1, BIT(data, 2)); // key out |
- m_hopper->motor_w(BIT(data, 3)); // hopper motor?
- // BIT(data, 4) // hopper?
- output().set_led_value(0, BIT(data, 5)); // error lamp (coin/hopper jam: "call attendant")
- m_ticket->motor_w(BIT(data, 7)); // ticket motor?
+ machine().bookkeeping().coin_counter_w(0, (data & 0x0001)); // key in |
+ machine().bookkeeping().coin_counter_w(0, (data & 0x0002)); // coin in |- manual shows 1 in- and 1 out- counter
+ machine().bookkeeping().coin_counter_w(1, (data & 0x0004)); // key out |
+ machine().device<ticket_dispenser_device>("hopper")->write(space, 0, (data & 0x0008)<<4); // hopper motor?
+ // (data & 0x0010) // hopper?
+ output().set_led_value(0, (data & 0x0020)); // error lamp (coin/hopper jam: "call attendant")
+ machine().device<ticket_dispenser_device>("ticket")->write(space, 0, data & 0x0080); // ticket motor?
}
if (ACCESSING_BITS_8_15)
{
// lamps:
- output().set_led_value(1, BIT(data, 8)); // select
- output().set_led_value(2, BIT(data, 10)); // take
- output().set_led_value(3, BIT(data, 11)); // bet
- output().set_led_value(4, BIT(data, 12)); // start
- output().set_led_value(5, BIT(data, 14)); // win / test
- output().set_led_value(6, BIT(data, 15)); // ticket?
+ output().set_led_value(1, (data & 0x0100)); // select
+ output().set_led_value(2, (data & 0x0400)); // take
+ output().set_led_value(3, (data & 0x0800)); // bet
+ output().set_led_value(4, (data & 0x1000)); // start
+ output().set_led_value(5, (data & 0x4000)); // win / test
+ output().set_led_value(6, (data & 0x8000)); // ticket?
}
// popmessage("%04X",data);
diff --git a/src/mame/drivers/astrof.cpp b/src/mame/drivers/astrof.cpp
index 18d6789e4b9..5573fca56a8 100644
--- a/src/mame/drivers/astrof.cpp
+++ b/src/mame/drivers/astrof.cpp
@@ -453,7 +453,7 @@ READ8_MEMBER(astrof_state::afire_coin_prot_r)
READ8_MEMBER(astrof_state::tomahawk_protection_r)
{
/* flip the byte */
- return bitswap<8>(*m_tomahawk_protection, 0, 1, 2, 3, 4, 5, 6, 7);
+ return BITSWAP8(*m_tomahawk_protection, 0, 1, 2, 3, 4, 5, 6, 7);
}
diff --git a/src/mame/drivers/atarisy1.cpp b/src/mame/drivers/atarisy1.cpp
index f015ea086b5..da07124c3dd 100644
--- a/src/mame/drivers/atarisy1.cpp
+++ b/src/mame/drivers/atarisy1.cpp
@@ -795,7 +795,7 @@ static MACHINE_CONFIG_START( atarisy1 )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
/* via */
- MCFG_DEVICE_ADD("via6522_0", VIA6522, ATARI_CLOCK_14MHz/8)
+ MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(atarisy1_state, via_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(atarisy1_state, via_pb_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(atarisy1_state, via_pa_w))
diff --git a/src/mame/drivers/atarisy2.cpp b/src/mame/drivers/atarisy2.cpp
index c33db51c5e8..4739ae4e358 100644
--- a/src/mame/drivers/atarisy2.cpp
+++ b/src/mame/drivers/atarisy2.cpp
@@ -296,7 +296,7 @@ WRITE16_MEMBER(atarisy2_state::bankselect_w)
};*/
int banknumber = ((data >> 10) & 0x3f) ^ 0x03;
- banknumber = bitswap<16>(banknumber, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 1, 0, 3, 2);
+ banknumber = BITSWAP16(banknumber, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 1, 0, 3, 2);
if (offset)
m_rombank2->set_entry(banknumber);
diff --git a/src/mame/drivers/attache.cpp b/src/mame/drivers/attache.cpp
index f81ff6d120c..ca68ba5c3ec 100644
--- a/src/mame/drivers/attache.cpp
+++ b/src/mame/drivers/attache.cpp
@@ -800,14 +800,16 @@ WRITE_LINE_MEMBER( attache_state::fdc_dack_w )
WRITE8_MEMBER(attache816_state::x86_comms_w)
{
m_comms_val = data;
- m_ppi->pc6_w(1);
m_z80_rx_ready = false;
+ machine().scheduler().synchronize();
+ logerror("x86 writes %02x to comms\n",data);
}
READ8_MEMBER(attache816_state::x86_comms_r)
{
m_z80_tx_ready = false;
- m_ppi->pc4_w(1);
+ logerror("x86 reads %02x from comms\n",m_comms_val);
+ machine().scheduler().synchronize();
return m_comms_val;
}
@@ -848,14 +850,19 @@ READ8_MEMBER(attache816_state::z80_comms_r)
{
m_z80_rx_ready = true;
m_ppi->pc6_w(0);
+ logerror("z80 reads %02x from comms\n",m_comms_val);
+ machine().scheduler().synchronize();
return m_comms_val;
}
WRITE8_MEMBER(attache816_state::z80_comms_w)
{
m_comms_val = data;
+ logerror("z80 writes %02x to comms\n",data);
m_z80_tx_ready = true;
m_ppi->pc4_w(0);
+ machine().scheduler().synchronize();
+// m_ppi->write(space,0,data);
}
// Z80 comms status
@@ -1164,7 +1171,6 @@ static MACHINE_CONFIG_START( attache816 )
MCFG_CPU_ADD("extcpu",I8086,XTAL_24MHz / 3)
MCFG_CPU_PROGRAM_MAP(attache_x86_map)
MCFG_CPU_IO_MAP(attache_x86_io)
- MCFG_QUANTUM_PERFECT_CPU("extcpu")
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green())
MCFG_SCREEN_REFRESH_RATE(60)
diff --git a/src/mame/drivers/atvtrack.cpp b/src/mame/drivers/atvtrack.cpp
index 4592a980750..7a971b669f0 100644
--- a/src/mame/drivers/atvtrack.cpp
+++ b/src/mame/drivers/atvtrack.cpp
@@ -438,7 +438,7 @@ void get_altera10ke_eab(u8* dst, u8 *pof, int eab)
for (u32 bit = 0; bit < 4096; bit++)
{
- u32 tbit = bitswap<16>(bit, 15, 14, 13, 12,
+ u32 tbit = BITSWAP16(bit, 15, 14, 13, 12,
9, 8, 7, 6, 5, 4, 3,
11, 10,
2, 1, 0);
@@ -471,8 +471,8 @@ void atvtrack_state::machine_reset()
{
u16 lword = tdata[i * 2 + 512] | (tdata[i * 2 + 513] << 8);
u16 hword = tdata[i * 2] | (tdata[i * 2 + 1] << 8);
- lword = bitswap<16>(lword, 7, 9, 0, 10, 3, 11, 4, 12, 2, 15, 1, 13, 6, 8, 5, 14);
- hword = bitswap<16>(hword, 5, 10, 7, 9, 6, 13, 3, 15, 2, 11, 1, 8, 0, 12, 4, 14);
+ lword = BITSWAP16(lword, 7, 9, 0, 10, 3, 11, 4, 12, 2, 15, 1, 13, 6, 8, 5, 14);
+ hword = BITSWAP16(hword, 5, 10, 7, 9, 6, 13, 3, 15, 2, 11, 1, 8, 0, 12, 4, 14);
dst[i * 4 + 0] = lword & 0xff;
dst[i * 4 + 1] = lword >> 8;
dst[i * 4 + 2] = hword & 0xff;
diff --git a/src/mame/drivers/backfire.cpp b/src/mame/drivers/backfire.cpp
index 6a56f803821..4999e338d2f 100644
--- a/src/mame/drivers/backfire.cpp
+++ b/src/mame/drivers/backfire.cpp
@@ -687,7 +687,7 @@ void backfire_state::descramble_sound()
{
uint32_t addr;
- addr = bitswap<24> (x,23,22,21,0, 20,
+ addr = BITSWAP24 (x,23,22,21,0, 20,
19,18,17,16,
15,14,13,12,
11,10,9, 8,
diff --git a/src/mame/drivers/bagman.cpp b/src/mame/drivers/bagman.cpp
index 32023f389c1..de3d13f4cae 100644
--- a/src/mame/drivers/bagman.cpp
+++ b/src/mame/drivers/bagman.cpp
@@ -108,11 +108,7 @@ WRITE_LINE_MEMBER(bagman_state::tmsprom_csq0_w)
WRITE_LINE_MEMBER(bagman_state::tmsprom_csq1_w)
{
- // HACK: Schematics suggest that this LS259 does in fact respond to the master
- // reset signal, which would pull /OE active low on both 2732s at once. How
- // does that situation manage not to overload the circuitry?
- if (state || m_tmslatch->q4_r())
- m_tmsprom->rom_csq_w(machine().dummy_space(), 1, state);
+ m_tmsprom->rom_csq_w(machine().dummy_space(), 1, state);
}
WRITE_LINE_MEMBER(bagman_state::coin_counter_w)
diff --git a/src/mame/drivers/balsente.cpp b/src/mame/drivers/balsente.cpp
index 04dcafcb0f0..3ac9c893e11 100644
--- a/src/mame/drivers/balsente.cpp
+++ b/src/mame/drivers/balsente.cpp
@@ -1280,7 +1280,7 @@ INPUT_PORTS_END
static MACHINE_CONFIG_START( balsente )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_20MHz/16) /* xtal verified but not speed */
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_20MHz/16) /* xtal verified but not speed */
MCFG_CPU_PROGRAM_MAP(cpu1_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", balsente_state, balsente_update_analog_inputs)
diff --git a/src/mame/drivers/baraduke.cpp b/src/mame/drivers/baraduke.cpp
index 4c64a2efa9a..b09899c44b6 100644
--- a/src/mame/drivers/baraduke.cpp
+++ b/src/mame/drivers/baraduke.cpp
@@ -373,7 +373,7 @@ GFXDECODE_END
static MACHINE_CONFIG_START( baraduke )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_49_152MHz/32) // 68A09E
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_49_152MHz/32)
MCFG_CPU_PROGRAM_MAP(baraduke_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", baraduke_state, irq0_line_assert)
diff --git a/src/mame/drivers/barni.cpp b/src/mame/drivers/barni.cpp
index 96a328cb671..05dad500f51 100644
--- a/src/mame/drivers/barni.cpp
+++ b/src/mame/drivers/barni.cpp
@@ -7,10 +7,11 @@
/*
Hardware:
-CPU: 2 x 6809E, optional MC6802 which may replace second 6809E
+CPU: 2 x M6809, optional M6802 (what for?)
INT: IRQ on CPU 0, FIRQ on CPU 1
-IO: 2x PIA 6821
- 1x VIA 6522
+IO: DMA (Direct Memory Access/Address)
+ 2x PIA 6821
+ 1x VIS 6522
DISPLAY: 5x6 digit 7 or 16 segment display
SOUND: basically the same as Bally's Squalk & Talk -61 board but missing AY8912 synth chip
*/
@@ -57,13 +58,13 @@ INPUT_PORTS_END
static MACHINE_CONFIG_START( barni )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_4MHz / 4)
+ MCFG_CPU_ADD("maincpu", M6809, 2000000)
MCFG_CPU_PROGRAM_MAP(maincpu_map)
- MCFG_CPU_ADD("subcpu", MC6809E, XTAL_4MHz / 4)
+ MCFG_CPU_ADD("subcpu", M6809, 2000000)
MCFG_CPU_PROGRAM_MAP(subcpu_map)
- MCFG_CPU_ADD("audiocpu", M6802, 4000000) // uses own XTAL, but what is the value?
+ MCFG_CPU_ADD("audiocpu", M6802, 2000000)
MCFG_CPU_PROGRAM_MAP(audiocpu_map)
/* video hardware */
diff --git a/src/mame/drivers/beezer.cpp b/src/mame/drivers/beezer.cpp
index 7d24112dce6..324c40c82b4 100644
--- a/src/mame/drivers/beezer.cpp
+++ b/src/mame/drivers/beezer.cpp
@@ -451,7 +451,7 @@ void beezer_state::machine_reset()
bankswitch_w(machine().dummy_space(), 0, 0);
// start timer
- m_timer_count->adjust(attotime::zero, 0, attotime::from_hz((XTAL_4MHz / 4) / 16));
+ m_timer_count->adjust(attotime::zero, 0, attotime::from_hz((XTAL_12MHz / 12) / 16));
}
@@ -461,7 +461,7 @@ void beezer_state::machine_reset()
static MACHINE_CONFIG_START( beezer )
// basic machine hardware
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_12MHz / 3)
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_12MHz / 12)
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_DEVICE_ADD("sysbank", ADDRESS_MAP_BANK, 0)
@@ -473,7 +473,7 @@ static MACHINE_CONFIG_START( beezer )
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", beezer_state, scanline_cb, "screen", 0, 1)
- MCFG_DEVICE_ADD("via_u6", VIA6522, XTAL_12MHz / 12)
+ MCFG_DEVICE_ADD("via_u6", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(beezer_state, via_system_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(beezer_state, via_system_pb_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(beezer_state, via_system_pa_w))
@@ -497,13 +497,13 @@ static MACHINE_CONFIG_START( beezer )
MCFG_PALETTE_INIT_OWNER(beezer_state, beezer)
// sound hardware
- MCFG_CPU_ADD("audiocpu", MC6809, XTAL_4MHz)
+ MCFG_CPU_ADD("audiocpu", M6809, XTAL_12MHz / 12)
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_INPUT_MERGER_ANY_HIGH("audio_irqs")
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", M6809_IRQ_LINE))
- MCFG_DEVICE_ADD("via_u18", VIA6522, XTAL_4MHz / 4)
+ MCFG_DEVICE_ADD("via_u18", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(beezer_state, via_audio_pa_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(beezer_state, via_audio_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(beezer_state, via_audio_pb_w))
@@ -512,7 +512,7 @@ static MACHINE_CONFIG_START( beezer )
MCFG_VIA6522_CB2_HANDLER(WRITELINE(beezer_state, dmod_data_w))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("audio_irqs", input_merger_device, in_w<0>))
- MCFG_DEVICE_ADD("ptm", PTM6840, XTAL_4MHz / 4)
+ MCFG_DEVICE_ADD("ptm", PTM6840, XTAL_12MHz / 12)
MCFG_PTM6840_OUT0_CB(WRITELINE(beezer_state, ptm_out0_w))
MCFG_PTM6840_OUT1_CB(WRITELINE(beezer_state, ptm_out1_w))
MCFG_PTM6840_OUT2_CB(WRITELINE(beezer_state, ptm_out2_w))
diff --git a/src/mame/drivers/berzerk.cpp b/src/mame/drivers/berzerk.cpp
index d0d19c69151..c87689ad36b 100644
--- a/src/mame/drivers/berzerk.cpp
+++ b/src/mame/drivers/berzerk.cpp
@@ -392,7 +392,7 @@ WRITE8_MEMBER(berzerk_state::magicram_w)
uint8_t shift_flop_output = (((uint16_t)m_last_shift_data << 8) | data) >> (m_magicram_control & 0x07);
if (m_magicram_control & 0x08)
- shift_flop_output = bitswap<8>(shift_flop_output, 0, 1, 2, 3, 4, 5, 6, 7);
+ shift_flop_output = BITSWAP8(shift_flop_output, 0, 1, 2, 3, 4, 5, 6, 7);
/* collision detection - AND gate output goes to the K pin of the flip-flop,
while J is LO, therefore, it only resets, never sets */
diff --git a/src/mame/drivers/beta.cpp b/src/mame/drivers/beta.cpp
index 4d397507861..61c417a5269 100644
--- a/src/mame/drivers/beta.cpp
+++ b/src/mame/drivers/beta.cpp
@@ -217,7 +217,7 @@ WRITE8_MEMBER( beta_state::riot_pa_w )
// logerror("PA %02x\n", data);
/* display */
- m_segment = bitswap<8>(data, 7, 3, 4, 1, 0, 2, 5, 6) & 0x7f;
+ m_segment = BITSWAP8(data, 7, 3, 4, 1, 0, 2, 5, 6) & 0x7f;
m_led_refresh_timer->adjust(attotime::from_usec(70));
/* EPROM data */
diff --git a/src/mame/drivers/bfcobra.cpp b/src/mame/drivers/bfcobra.cpp
index a182d6567f6..7af75c64ae9 100644
--- a/src/mame/drivers/bfcobra.cpp
+++ b/src/mame/drivers/bfcobra.cpp
@@ -92,7 +92,7 @@
Defines
*/
#define Z80_XTAL 5910000 /* Unconfirmed */
-#define M6809_XTAL 4000000 /* Unconfirmed */
+#define M6809_XTAL 1000000
@@ -1633,7 +1633,7 @@ static MACHINE_CONFIG_START( bfcobra )
MCFG_CPU_IO_MAP(z80_io_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", bfcobra_state, vblank_gen)
- MCFG_CPU_ADD("audiocpu", MC6809, M6809_XTAL) // MC6809P
+ MCFG_CPU_ADD("audiocpu", M6809, M6809_XTAL)
MCFG_CPU_PROGRAM_MAP(m6809_prog_map)
MCFG_CPU_PERIODIC_INT_DRIVER(bfcobra_state, timer_irq, 1000)
@@ -1655,7 +1655,7 @@ static MACHINE_CONFIG_START( bfcobra )
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("aysnd", AY8910, M6809_XTAL / 4)
+ MCFG_SOUND_ADD("aysnd", AY8910, M6809_XTAL)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("upd", UPD7759, UPD7759_STANDARD_CLOCK)
diff --git a/src/mame/drivers/bfm_sc4.cpp b/src/mame/drivers/bfm_sc4.cpp
index 8147019b82a..89e174d597c 100644
--- a/src/mame/drivers/bfm_sc4.cpp
+++ b/src/mame/drivers/bfm_sc4.cpp
@@ -493,7 +493,7 @@ WRITE8_MEMBER(bfm_sc45_state::mux_output2_w)
}
else
{
- uint8_t bf7segdata = bitswap<8>(data,0,7,6,5,4,3,2,1);
+ uint8_t bf7segdata = BITSWAP8(data,0,7,6,5,4,3,2,1);
output().set_digit_value(offset, bf7segdata);
}
}
diff --git a/src/mame/drivers/big10.cpp b/src/mame/drivers/big10.cpp
index e52df91acfb..230ff204f7d 100644
--- a/src/mame/drivers/big10.cpp
+++ b/src/mame/drivers/big10.cpp
@@ -97,7 +97,7 @@ public:
WRITE8_MEMBER(big10_state::mux_w)
{
m_mux_data = ~data;
- m_hopper->motor_w(BIT(data, 6));
+ m_hopper->write(space, 0, (data & 0x40) << 1);
machine().output().set_lamp_value(1, BIT(~data, 7)); // maybe a coin counter?
}
diff --git a/src/mame/drivers/bigbord2.cpp b/src/mame/drivers/bigbord2.cpp
index 8486bdfda8d..6a474cbc740 100644
--- a/src/mame/drivers/bigbord2.cpp
+++ b/src/mame/drivers/bigbord2.cpp
@@ -482,7 +482,7 @@ u8 bigbord2_state::crt8002(u8 ac_ra, u8 ac_chr, u8 ac_attr, uint16_t ac_cnt, boo
}
break;
case 1: // external mode
- gfx = bitswap<8>(ac_chr, 0,1,2,3,4,5,6,7);
+ gfx = BITSWAP8(ac_chr, 0,1,2,3,4,5,6,7);
break;
case 2: // thin gfx
break;
diff --git a/src/mame/drivers/bking.cpp b/src/mame/drivers/bking.cpp
index b29f06c7e67..3b0bc074f84 100644
--- a/src/mame/drivers/bking.cpp
+++ b/src/mame/drivers/bking.cpp
@@ -42,7 +42,7 @@ WRITE8_MEMBER(bking_state::bking_sndnmi_enable_w)
WRITE8_MEMBER(bking_state::bking_soundlatch_w)
{
- m_soundlatch->write(space, offset, bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7));
+ m_soundlatch->write(space, offset, BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7));
}
WRITE8_MEMBER(bking_state::bking3_addr_l_w)
diff --git a/src/mame/drivers/blktiger.cpp b/src/mame/drivers/blktiger.cpp
index 5e358627f87..5911e0a29e3 100644
--- a/src/mame/drivers/blktiger.cpp
+++ b/src/mame/drivers/blktiger.cpp
@@ -608,7 +608,7 @@ DRIVER_INIT_MEMBER(blktiger_state,blktigerb3)
{
int addr;
- addr = bitswap<16>(i, 15,14,13,12,11,10,9,8, 3,4,5,6, 7,2,1,0);
+ addr = BITSWAP16(i, 15,14,13,12,11,10,9,8, 3,4,5,6, 7,2,1,0);
buffer[i] = src[addr];
}
diff --git a/src/mame/drivers/bloodbro.cpp b/src/mame/drivers/bloodbro.cpp
index 867c4acc3f6..b9660c759c7 100644
--- a/src/mame/drivers/bloodbro.cpp
+++ b/src/mame/drivers/bloodbro.cpp
@@ -860,7 +860,7 @@ DRIVER_INIT_MEMBER(bloodbro_state,weststry)
{
/* sprite roms ws25 and ws26 have 2 bits swapped
there is also an address swap but that is currently handled in the video implementation */
- sprites[i] = bitswap<8>(sprites[i],7,6,4,5,3,2,1,0);
+ sprites[i] = BITSWAP8(sprites[i],7,6,4,5,3,2,1,0);
}
m_weststry_opl_irq = false;
diff --git a/src/mame/drivers/bmcpokr.cpp b/src/mame/drivers/bmcpokr.cpp
index ea5d9a8e4a6..4a0a644c07c 100644
--- a/src/mame/drivers/bmcpokr.cpp
+++ b/src/mame/drivers/bmcpokr.cpp
@@ -329,9 +329,9 @@ WRITE16_MEMBER(bmcpokr_state::mux_w)
COMBINE_DATA(&m_mux);
if (ACCESSING_BITS_0_7)
{
- m_hopper->motor_w(BIT(data, 0)); // hopper motor
- machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); // coin-in / key-in
- machine().bookkeeping().coin_counter_w(2, BIT(data, 2)); // pay-out
+ m_hopper->write(space, 0, (data & 0x0001) ? 0x80 : 0x00); // hopper motor
+ machine().bookkeeping().coin_counter_w(1, data & 0x0002); // coin-in / key-in
+ machine().bookkeeping().coin_counter_w(2, data & 0x0004); // pay-out
// data & 0x0060 // DSW mux
// data & 0x0080 // ? always on
}
diff --git a/src/mame/drivers/bob85.cpp b/src/mame/drivers/bob85.cpp
index c3447df2c36..b2e3fb24504 100644
--- a/src/mame/drivers/bob85.cpp
+++ b/src/mame/drivers/bob85.cpp
@@ -137,7 +137,7 @@ READ8_MEMBER(bob85_state::bob85_keyboard_r)
WRITE8_MEMBER(bob85_state::bob85_7seg_w)
{
- output().set_digit_value(offset, bitswap<8>( data,3,2,1,0,7,6,5,4 ));
+ output().set_digit_value(offset, BITSWAP8( data,3,2,1,0,7,6,5,4 ));
}
static ADDRESS_MAP_START( bob85_mem, AS_PROGRAM, 8, bob85_state )
diff --git a/src/mame/drivers/boogwing.cpp b/src/mame/drivers/boogwing.cpp
index de64ad315c5..f176751b3aa 100644
--- a/src/mame/drivers/boogwing.cpp
+++ b/src/mame/drivers/boogwing.cpp
@@ -97,7 +97,7 @@
READ16_MEMBER( boogwing_state::boogwing_protection_region_0_104_r )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco104->read_data( deco146_addr, mem_mask, cs );
return data;
@@ -106,7 +106,7 @@ READ16_MEMBER( boogwing_state::boogwing_protection_region_0_104_r )
WRITE16_MEMBER( boogwing_state::boogwing_protection_region_0_104_w )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco104->write_data( space, deco146_addr, data, mem_mask, cs );
}
diff --git a/src/mame/drivers/bublbobl.cpp b/src/mame/drivers/bublbobl.cpp
index cf0fa1f06c9..516e058f9e2 100644
--- a/src/mame/drivers/bublbobl.cpp
+++ b/src/mame/drivers/bublbobl.cpp
@@ -2007,10 +2007,10 @@ DRIVER_INIT_MEMBER(bublbobl_state,dland)
int i;
uint8_t* src = memregion("gfx1")->base();
for (i = 0; i < 0x40000; i++)
- src[i] = bitswap<8>(src[i],7,6,5,4,0,1,2,3);
+ src[i] = BITSWAP8(src[i],7,6,5,4,0,1,2,3);
for (i = 0x40000; i < 0x80000; i++)
- src[i] = bitswap<8>(src[i],7,4,5,6,3,0,1,2);
+ src[i] = BITSWAP8(src[i],7,4,5,6,3,0,1,2);
DRIVER_INIT_CALL(common);
}
diff --git a/src/mame/drivers/by35.cpp b/src/mame/drivers/by35.cpp
index 61c582e9a6b..974b279cbee 100644
--- a/src/mame/drivers/by35.cpp
+++ b/src/mame/drivers/by35.cpp
@@ -885,7 +885,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( by35_state::timer_as2888 )
{
m_snd_sel = m_snd_prom[offs];
// logerror("SndSel read %02x from PROM addr %02x\n",m_snd_sel, offs );
- m_snd_sel = bitswap<8>(m_snd_sel,0,1,2,3,4,5,6,7);
+ m_snd_sel = BITSWAP8(m_snd_sel,0,1,2,3,4,5,6,7);
m_snd_tone_gen = m_snd_sel;
// logerror("SndSel=%02x, Tone=%02x, Div=%02x\n",m_snd_sel, m_snd_tone_gen, m_snd_div);
diff --git a/src/mame/drivers/byvid.cpp b/src/mame/drivers/byvid.cpp
index 31a38ca364d..6fda61bd054 100644
--- a/src/mame/drivers/byvid.cpp
+++ b/src/mame/drivers/byvid.cpp
@@ -120,7 +120,7 @@ private:
bool m_u11_timer;
virtual void machine_reset() override;
required_device<m6800_cpu_device> m_maincpu;
- required_device<mc6809_device> m_videocpu;
+ required_device<m6809e_device> m_videocpu;
required_device<m6803_cpu_device> m_audiocpu;
required_device<pia6821_device> m_pia_u7;
required_device<pia6821_device> m_pia_u10;
@@ -746,7 +746,7 @@ static MACHINE_CONFIG_START( babypac )
MCFG_CPU_ADD("maincpu", M6800, XTAL_3_579545MHz/4) // no xtal, just 2 chips
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_CPU_ADD("videocpu", MC6809, XTAL_3_579545MHz)
+ MCFG_CPU_ADD("videocpu", M6809E, XTAL_3_579545MHz)
MCFG_CPU_PROGRAM_MAP(video_map)
MCFG_CPU_ADD("audiocpu", M6803, XTAL_3_579545MHz)
@@ -807,7 +807,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( granny, babypac )
MCFG_DEVICE_REMOVE("videocpu")
- MCFG_CPU_ADD("videocpu", MC6809, XTAL_8MHz) // MC68B09P (XTAL value hard to read)
+ MCFG_CPU_ADD("videocpu", M6809E, XTAL_8MHz) //??
MCFG_CPU_PROGRAM_MAP(granny_map)
MCFG_DEVICE_REMOVE("screen")
diff --git a/src/mame/drivers/c64dtv.cpp b/src/mame/drivers/c64dtv.cpp
index 11d2da70338..c2d0cf6a62b 100644
--- a/src/mame/drivers/c64dtv.cpp
+++ b/src/mame/drivers/c64dtv.cpp
@@ -1,16 +1,5 @@
// license:BSD-3-Clause
// copyright-holders:Curt Coder
-/*************************************************************************************************************
-
-Commodore 64 Direct-to-TV
-It looks like a fat joystick.
-
-Chips: All unmarked. According to Wikipedia an ASIC contains an entire
- Commodore 64 (6510 CPU, VIC-II, SID, CIA, PLA) running at 32MHz. The
- 6510 CPU portion runs at 1MHz.
-Crystals: 32.720 (X1), unmarked (X2).
-
-*************************************************************************************************************/
#include "emu.h"
#include "screen.h"
@@ -77,4 +66,4 @@ ROM_END
// GAME DRIVERS
//**************************************************************************
-CONS( 2005, c64dtv, 0, 0, c64dtv, c64dtv, c64dtv_state, 0, "The Toy:Lobster Company", "Commodore 64 Direct-to-TV (Version 2 050711) (PAL)", MACHINE_IS_SKELETON )
+CONS( 2005, c64dtv, 0, 0, c64dtv, c64dtv, c64dtv_state, 0, "The Toy:Lobster Company", "Commodore 64 Direct-to-TV (Version 2 050711) (PAL)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/c900.cpp b/src/mame/drivers/c900.cpp
index 18b3dc19cf5..4ded9072ca8 100644
--- a/src/mame/drivers/c900.cpp
+++ b/src/mame/drivers/c900.cpp
@@ -2,44 +2,39 @@
// copyright-holders:Curt Coder
/******************************************************************************************
-Commodore C900
-UNIX prototype
+ Commodore C900
+ UNIX prototype
-http://www.zimmers.net/cbmpics/c900.html
-http://www.zimmers.net/cbmpics/cbm/900/c900-chips.txt
+ http://www.zimmers.net/cbmpics/c900.html
+ http://www.zimmers.net/cbmpics/cbm/900/c900-chips.txt
-Chips: Z8001 CPU, Z8010 MMU, Z8030 SCC, Z8036 CIO. Crystal: 12MHz
+ Chips: Z8001 CPU, Z8010 MMU, Z8030 SCC, Z8036 CIO. Crystal: 12MHz
-The Z8030 runs 2 serial ports. The Z8036 runs the IEEE interface and the speaker.
+ The Z8030 runs 2 serial ports. The Z8036 runs the IEEE interface and the speaker.
-The FDC is an intelligent device that communicates with the main board via the MMU.
-It has a 6508 CPU.
+ The FDC is an intelligent device that communicates with the main board via the MMU.
+ It has a 6508 CPU.
-Disk drive is a Matsushita JA-560-012
-
-Our implementation of z80scc is currently incomplete and therefore unusable.
-
-Increasing the amount of RAM stops the error message, however it still keeps running
-into the weeds (jumps to 00000).
+ Disk drive is a Matsushita JA-560-012
*******************************************************************************************/
#include "emu.h"
#include "cpu/z8000/z8000.h"
-//#include "machine/z80scc.h"
-//#include "bus/rs232/rs232.h"
#include "machine/terminal.h"
+#define TERMINAL_TAG "terminal"
class c900_state : public driver_device
{
public:
c900_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag)
- , m_maincpu(*this, "maincpu")
- , m_terminal(*this, "terminal")
- { }
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_terminal(*this, TERMINAL_TAG)
+ {
+ }
DECLARE_READ16_MEMBER(port1e_r);
DECLARE_READ16_MEMBER(key_r);
@@ -52,22 +47,21 @@ private:
required_device<generic_terminal_device> m_terminal;
};
-static ADDRESS_MAP_START(mem_map, AS_PROGRAM, 16, c900_state)
+static ADDRESS_MAP_START(c900_mem, AS_PROGRAM, 16, c900_state)
AM_RANGE(0x00000, 0x07fff) AM_ROM AM_REGION("roms", 0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START(data_map, AS_DATA, 16, c900_state)
+static ADDRESS_MAP_START(c900_data, AS_DATA, 16, c900_state)
AM_RANGE(0x00000, 0x07fff) AM_ROM AM_REGION("roms", 0)
AM_RANGE(0x08000, 0x6ffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(io_map, AS_IO, 16, c900_state)
- //AM_RANGE(0x0100, 0x011f) AM_DEVREADWRITE8("scc", scc8030_device, zbus_r, zbus_w, 0x00ff) // range for one channel
+static ADDRESS_MAP_START(c900_io, AS_IO, 16, c900_state)
AM_RANGE(0x0010, 0x0011) AM_READ(stat_r)
AM_RANGE(0x001A, 0x001B) AM_READ(key_r)
AM_RANGE(0x001E, 0x001F) AM_READ(port1e_r)
AM_RANGE(0x0100, 0x0101) AM_READ(stat_r)
- AM_RANGE(0x0110, 0x0111) AM_READ(key_r) AM_DEVWRITE8("terminal", generic_terminal_device, write, 0x00ff)
+ AM_RANGE(0x0110, 0x0111) AM_READ(key_r) AM_DEVWRITE8(TERMINAL_TAG, generic_terminal_device, write, 0x00ff)
ADDRESS_MAP_END
static INPUT_PORTS_START( c900 )
@@ -87,7 +81,7 @@ READ16_MEMBER( c900_state::key_r )
READ16_MEMBER( c900_state::stat_r )
{
- return (m_term_data) ? 5 : 4;
+ return (m_term_data) ? 6 : 4;
}
void c900_state::kbd_put(u8 data)
@@ -116,25 +110,14 @@ GFXDECODE_END
static MACHINE_CONFIG_START( c900 )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z8001, XTAL_12MHz / 2)
- MCFG_CPU_PROGRAM_MAP(mem_map)
- MCFG_CPU_DATA_MAP(data_map)
- MCFG_CPU_IO_MAP(io_map)
+ MCFG_CPU_PROGRAM_MAP(c900_mem)
+ MCFG_CPU_DATA_MAP(c900_data)
+ MCFG_CPU_IO_MAP(c900_io)
- MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0)
+ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(c900_state, kbd_put))
MCFG_GFXDECODE_ADD("gfxdecode", "palette", c900)
MCFG_PALETTE_ADD_MONOCHROME("palette")
-
- //MCFG_SCC8030_ADD("scc", 6'000'000, 326400, 0, 326400, 0)
- /* Port A */
- //MCFG_Z80SCC_OUT_TXDA_CB(DEVWRITELINE("rs232a", rs232_port_device, write_txd))
- //MCFG_Z80SCC_OUT_DTRA_CB(DEVWRITELINE("rs232a", rs232_port_device, write_dtr))
- //MCFG_Z80SCC_OUT_RTSA_CB(DEVWRITELINE("rs232a", rs232_port_device, write_rts))
- //MCFG_Z80SCC_OUT_INT_CB(WRITELINE(lwriter_state, scc_int))
-
- //MCFG_RS232_PORT_ADD ("rs232a", default_rs232_devices, "terminal")
- //MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("scc", scc8030_device, rxa_w))
- //MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("scc", scc8030_device, ctsa_w))
MACHINE_CONFIG_END
ROM_START( c900 )
diff --git a/src/mame/drivers/cabal.cpp b/src/mame/drivers/cabal.cpp
index a51f0376d79..c16319c0dcb 100644
--- a/src/mame/drivers/cabal.cpp
+++ b/src/mame/drivers/cabal.cpp
@@ -156,12 +156,12 @@ ADDRESS_MAP_END
READ8_MEMBER(cabal_state::cabalbl_snd2_r)
{
- return bitswap<8>(m_sound_command2, 7,2,4,5,3,6,1,0);
+ return BITSWAP8(m_sound_command2, 7,2,4,5,3,6,1,0);
}
READ8_MEMBER(cabal_state::cabalbl_snd1_r)
{
- return bitswap<8>(m_sound_command1, 7,2,4,5,3,6,1,0);
+ return BITSWAP8(m_sound_command1, 7,2,4,5,3,6,1,0);
}
WRITE8_MEMBER(cabal_state::cabalbl_coin_w)
diff --git a/src/mame/drivers/calcune.cpp b/src/mame/drivers/calcune.cpp
deleted file mode 100644
index 0d034777231..00000000000
--- a/src/mame/drivers/calcune.cpp
+++ /dev/null
@@ -1,334 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood
-/***************************************************************************
-
- Calcune (Japan, prototype)
-
- CPUs are HD68HC000CP8 and TMP84C00AU-6 QFP types. Other ICs include two
- Sega 315-5560-02 VDPs and a YMZ280B-F for sound.
-
- Oscillators: 53.693MHz (OSC1), 16.9444 (XL1), 14.318 (XL3).
-
- Printed on board: "VDP LICENSE FROM SEGA, MANUFACTURED BY ADO."
-
-***************************************************************************/
-
-#include "emu.h"
-
-#include "cpu/m68000/m68000.h"
-#include "cpu/z80/z80.h"
-#include "sound/sn76496.h"
-#include "sound/ymz280b.h"
-#include "video/315_5313.h"
-#include "machine/nvram.h"
-#include "speaker.h"
-
-#define MASTER_CLOCK_NTSC 53693175
-
-class calcune_state : public driver_device
-{
-public:
- calcune_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- vdp_state(0),
- m_maincpu(*this, "maincpu"),
- m_vdp(*this, "gen_vdp"),
- m_vdp2(*this, "gen_vdp2"),
- m_palette(*this, "palette")
- { }
-
- WRITE_LINE_MEMBER(vdp_sndirqline_callback_genesis_z80);
- WRITE_LINE_MEMBER(vdp_lv6irqline_callback_genesis_68k);
- WRITE_LINE_MEMBER(vdp_lv4irqline_callback_genesis_68k);
-
- DECLARE_MACHINE_START(calcune);
- DECLARE_MACHINE_RESET(calcune);
-
- IRQ_CALLBACK_MEMBER(genesis_int_callback);
-
- DECLARE_DRIVER_INIT(calcune);
-
- DECLARE_READ16_MEMBER(cal_700000_r);
- DECLARE_WRITE16_MEMBER(cal_770000_w);
- DECLARE_READ16_MEMBER(cal_vdp_r);
- DECLARE_WRITE16_MEMBER(cal_vdp_w);
-
- uint32_t screen_update_calcune(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
-private:
- int vdp_state;
-
- required_device<cpu_device> m_maincpu;
- required_device<sega315_5313_device> m_vdp;
- required_device<sega315_5313_device> m_vdp2;
- required_device<palette_device> m_palette;
-};
-
-
-static INPUT_PORTS_START( calcune )
- PORT_START("710000")
- PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
- PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
- PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
- PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SERVICE1 )
- PORT_SERVICE_NO_TOGGLE( 0x0200, IP_ACTIVE_HIGH )
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("720000")
- PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0xffc0, IP_ACTIVE_HIGH, IPT_UNUSED )
-INPUT_PORTS_END
-
-
-READ16_MEMBER(calcune_state::cal_700000_r)
-{
- vdp_state = 0;
- return 0;
-}
-
-WRITE16_MEMBER(calcune_state::cal_770000_w)
-{
- vdp_state = data;
-}
-
-READ16_MEMBER(calcune_state::cal_vdp_r)
-{
- if (!vdp_state)
- return m_vdp->vdp_r(space, offset, mem_mask);
- else
- return m_vdp2->vdp_r(space, offset, mem_mask);
-}
-
-WRITE16_MEMBER(calcune_state::cal_vdp_w)
-{
- if (!vdp_state)
- m_vdp->vdp_w(space, offset, data, mem_mask);
- else
- m_vdp2->vdp_w(space, offset, data, mem_mask);
-}
-
-static ADDRESS_MAP_START( calcune_map, AS_PROGRAM, 16, calcune_state )
- AM_RANGE(0x000000, 0x1fffff) AM_ROM
-
- AM_RANGE(0x700000, 0x700001) AM_READ(cal_700000_r)
-
- AM_RANGE(0x710000, 0x710001) AM_READ_PORT("710000")
- AM_RANGE(0x720000, 0x720001) AM_READ_PORT("720000")
-// AM_RANGE(0x730000, 0x730001) possible Z80 control?
- AM_RANGE(0x760000, 0x760003) AM_DEVREADWRITE8("ymz", ymz280b_device, read, write, 0xff00)
-
- AM_RANGE(0x770000, 0x770001) AM_WRITE(cal_770000_w)
-
- AM_RANGE(0xA14100, 0xA14101) AM_NOP // on startup, possible z80 control
-
- AM_RANGE(0xc00000, 0xc0001f) AM_READWRITE(cal_vdp_r, cal_vdp_w)
-
- AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("nvram") // battery on PCB
-ADDRESS_MAP_END
-
-
-uint32_t calcune_state::screen_update_calcune(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
-{
- const pen_t *paldata = m_palette->pens();
-
- for (int y = cliprect.min_y; y <= cliprect.max_y; y++)
- {
- uint32_t *dst = &bitmap.pix32(y);
- for (int x = cliprect.min_x; x <= cliprect.max_x; x++)
- {
- int pix;
-
- pix = m_vdp2->m_render_line_raw[x] & 0x3f;
-
- switch (pix & 0xc0)
- {
- case 0x00:
- dst[x] = paldata[pix + 0x0000 + 0xc0];
- break;
- case 0x40:
- case 0x80:
- dst[x] = paldata[pix + 0x0040 + 0xc0];
- break;
- case 0xc0:
- dst[x] = paldata[pix + 0x0080 + 0xc0];
- break;
-
- }
-
- if (m_vdp->m_render_line_raw[x] & 0x100)
- {
- pix = m_vdp->m_render_line_raw[x] & 0x3f;
- if (pix & 0xf)
- {
- switch (pix & 0xc0)
- {
- case 0x00:
- dst[x] = paldata[pix + 0x0000];
- break;
- case 0x40:
- case 0x80:
- dst[x] = paldata[pix + 0x0040];
- break;
- case 0xc0:
- dst[x] = paldata[pix + 0x0080];
- break;
- }
- }
- }
- }
- }
-
- return 0;
-}
-
-MACHINE_RESET_MEMBER(calcune_state,calcune)
-{
- m_vdp->device_reset_old();
- m_vdp2->device_reset_old();
-}
-
-
-IRQ_CALLBACK_MEMBER(calcune_state::genesis_int_callback)
-{
- if (irqline==4)
- {
- m_vdp->vdp_clear_irq4_pending();
- }
-
- if (irqline==6)
- {
- m_vdp->vdp_clear_irq6_pending();
- }
-
- return (0x60+irqline*4)/4; // vector address
-}
-
-WRITE_LINE_MEMBER(calcune_state::vdp_sndirqline_callback_genesis_z80)
-{
-}
-
-WRITE_LINE_MEMBER(calcune_state::vdp_lv6irqline_callback_genesis_68k)
-{
- // this looks odd but is the logic the Genesis code requires
- if (state == ASSERT_LINE)
- m_maincpu->set_input_line(6, HOLD_LINE);
- else
- m_maincpu->set_input_line(6, CLEAR_LINE);
-}
-
-WRITE_LINE_MEMBER(calcune_state::vdp_lv4irqline_callback_genesis_68k)
-{
- // this looks odd but is the logic the Genesis code requires
- if (state == ASSERT_LINE)
- m_maincpu->set_input_line(4, HOLD_LINE);
- else
- m_maincpu->set_input_line(4, CLEAR_LINE);
-}
-
-MACHINE_START_MEMBER(calcune_state,calcune)
-{
- m_vdp->stop_timers();
- m_vdp2->stop_timers();
-}
-
-static MACHINE_CONFIG_START( calcune )
- MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK_NTSC / 7) /* 7.67 MHz */
- MCFG_CPU_PROGRAM_MAP(calcune_map)
- MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(calcune_state,genesis_int_callback)
-
- MCFG_CPU_ADD("z80", Z80, MASTER_CLOCK_NTSC / 15) /* 3.58 MHz */
- MCFG_DEVICE_DISABLE() /* no code is ever uploaded for the Z80, so it's unused here even if it is present on the PCB */
-
- MCFG_MACHINE_START_OVERRIDE(calcune_state,calcune)
- MCFG_MACHINE_RESET_OVERRIDE(calcune_state,calcune)
-
- MCFG_SCREEN_ADD("megadriv", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // Vblank handled manually.
- MCFG_SCREEN_SIZE(64*8, 620)
- MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(calcune_state, screen_update_calcune)
-
- MCFG_DEVICE_ADD("gen_vdp", SEGA315_5313, 0)
- MCFG_SEGA315_5313_IS_PAL(false)
- MCFG_SEGA315_5313_SND_IRQ_CALLBACK(WRITELINE(calcune_state, vdp_sndirqline_callback_genesis_z80));
- MCFG_SEGA315_5313_LV6_IRQ_CALLBACK(WRITELINE(calcune_state, vdp_lv6irqline_callback_genesis_68k));
- MCFG_SEGA315_5313_LV4_IRQ_CALLBACK(WRITELINE(calcune_state, vdp_lv4irqline_callback_genesis_68k));
- MCFG_SEGA315_5313_ALT_TIMING(1);
- MCFG_SEGA315_5313_PAL_WRITE_BASE(0x0000);
- MCFG_SEGA315_5313_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gen_vdp2", SEGA315_5313, 0)
- MCFG_SEGA315_5313_IS_PAL(false)
-// are these not hooked up or should they OR with the other lines?
-// MCFG_SEGA315_5313_SND_IRQ_CALLBACK(WRITELINE(calcune_state, vdp_sndirqline_callback_genesis_z80));
-// MCFG_SEGA315_5313_LV6_IRQ_CALLBACK(WRITELINE(calcune_state, vdp_lv6irqline_callback_genesis_68k));
-// MCFG_SEGA315_5313_LV4_IRQ_CALLBACK(WRITELINE(calcune_state, vdp_lv4irqline_callback_genesis_68k));
- MCFG_SEGA315_5313_ALT_TIMING(1);
- MCFG_SEGA315_5313_PAL_WRITE_BASE(0x0c0);
- MCFG_SEGA315_5313_PALETTE("palette")
-
- MCFG_TIMER_DEVICE_ADD_SCANLINE("scantimer", "gen_vdp", sega315_5313_device, megadriv_scanline_timer_callback_alt_timing, "megadriv", 0, 1)
- MCFG_TIMER_DEVICE_ADD_SCANLINE("scantimer2", "gen_vdp2", sega315_5313_device, megadriv_scanline_timer_callback_alt_timing, "megadriv", 0, 1)
-
- MCFG_PALETTE_ADD("palette", 0xc0*2)
-
- MCFG_NVRAM_ADD_0FILL("nvram")
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
-
- MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-
- /* sound hardware - VDP */
- MCFG_SOUND_ADD("snsnd", SEGAPSG, MASTER_CLOCK_NTSC/15)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker",0.25)
-MACHINE_CONFIG_END
-
-DRIVER_INIT_MEMBER(calcune_state,calcune)
-{
- m_vdp->set_use_cram(1);
- m_vdp->set_vdp_pal(false);
- m_vdp->set_framerate(60);
- m_vdp->set_total_scanlines(262);
-
- m_vdp2->set_use_cram(1);
- m_vdp2->set_vdp_pal(false);
- m_vdp2->set_framerate(60);
- m_vdp2->set_total_scanlines(262);
-}
-
-ROM_START( calcune )
- ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 Code - ROM check fails, but probably due to prototype status, not bad ROM */
- ROM_LOAD16_BYTE( "1.IC101.27C4001", 0x000001, 0x080000, CRC(2d25544c) SHA1(ef778cbf2aa4fcec43ce2dce9bcefb964f458c0a) )
- ROM_LOAD16_BYTE( "2.IC102.27C4001", 0x000000, 0x080000, CRC(09330dc9) SHA1(fd888a7469a6290cd372a4b1eed577c2444f0c80) )
- ROM_LOAD16_BYTE( "3.IC103.27C4001", 0x100001, 0x080000, CRC(736a356d) SHA1(372fa5989a67746efc439d76df1733cf70df57e7) )
- ROM_LOAD16_BYTE( "4.IC104.27C4001", 0x100000, 0x080000, CRC(0bec031a) SHA1(69b255743f20408b2f14bddf0b85c85a13f29615) )
-
- ROM_REGION( 0x200000, "ymz", 0 )
- ROM_LOAD( "Sound1.1C.27C4001", 0x000000, 0x080000, CRC(5fb63e84) SHA1(6fad8e76162c81b2cfa4778effb81b78ed4fa299) )
- ROM_LOAD( "Sound2.2D.27C4001", 0x080000, 0x080000, CRC(8924c6cc) SHA1(c76e6cfcf92a2c2834de62d7136c69e6edda46cc) )
- ROM_LOAD( "Sound3.3A.27C4001", 0x100000, 0x080000, CRC(18cfa7f4) SHA1(201ea186eb3af9138db6699c9dcf527795f7c0db) )
- ROM_LOAD( "Sound4.4B.27C4001", 0x180000, 0x080000, CRC(61a8510b) SHA1(177e56c374aa5697545ede28140cb42b5a4b737b) )
-ROM_END
-
-
-
-GAME( 1996, calcune, 0, calcune, calcune, calcune_state, calcune, ROT0, "Yuvo", "Calcune (Japan, prototype)", 0 )
diff --git a/src/mame/drivers/camplynx.cpp b/src/mame/drivers/camplynx.cpp
index f0c76d77eab..0424213c486 100644
--- a/src/mame/drivers/camplynx.cpp
+++ b/src/mame/drivers/camplynx.cpp
@@ -319,9 +319,9 @@ d0 = read from bank 4 */
m_bankdata = data;
data ^= 0x8c; // make all lines active high
// do writes
- m_wbyte = bitswap<8>(data, 0, 0, 0, 0, 4, 5, 6, 7) & 0x0f; // rearrange to 1,2,3,4
+ m_wbyte = BITSWAP8(data, 0, 0, 0, 0, 4, 5, 6, 7) & 0x0f; // rearrange to 1,2,3,4
// do reads
- uint8_t rbyte = bitswap<8>(data, 0, 0, 0, 0, 0, 1, 2, 3) & 0x0f; // rearrange to 0,1,2,4
+ uint8_t rbyte = BITSWAP8(data, 0, 0, 0, 0, 0, 1, 2, 3) & 0x0f; // rearrange to 0,1,2,4
if (BIT(rbyte, 1))
rbyte &= 0x07; // remove 4 if 1 selected (AND gate in IC82)
//printf("%s:%X:%X:%X\n", machine().describe_context(), data, rbyte, m_wbyte);
diff --git a/src/mame/drivers/capbowl.cpp b/src/mame/drivers/capbowl.cpp
index 891d66e0fef..ed82dc96aff 100644
--- a/src/mame/drivers/capbowl.cpp
+++ b/src/mame/drivers/capbowl.cpp
@@ -316,14 +316,14 @@ void capbowl_state::machine_reset()
static MACHINE_CONFIG_START( capbowl )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MASTER_CLOCK / 4) // MC68B09EP
+ MCFG_CPU_ADD("maincpu", M6809E, MASTER_CLOCK)
MCFG_CPU_PROGRAM_MAP(capbowl_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", capbowl_state, interrupt)
MCFG_WATCHDOG_ADD("watchdog")
MCFG_WATCHDOG_TIME_INIT(PERIOD_OF_555_ASTABLE(100000.0, 100000.0, 0.1e-6) * 15.5) // ~0.3s
- MCFG_CPU_ADD("audiocpu", MC6809E, MASTER_CLOCK / 4) // MC68B09EP
+ MCFG_CPU_ADD("audiocpu", M6809E, MASTER_CLOCK)
MCFG_CPU_PROGRAM_MAP(sound_map)
// MCFG_WATCHDOG_TIME_INIT(PERIOD_OF_555_ASTABLE(100000.0, 100000.0, 0.1e-6) * 15.5) // TODO
@@ -348,10 +348,10 @@ static MACHINE_CONFIG_START( capbowl )
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
- MCFG_SOUND_ADD("ymsnd", YM2203, MASTER_CLOCK / 2)
+ MCFG_SOUND_ADD("ymsnd", YM2203, MASTER_CLOCK/2)
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", M6809_FIRQ_LINE))
- MCFG_AY8910_PORT_A_READ_CB(DEVREADLINE("ticket", ticket_dispenser_device, line_r)) MCFG_DEVCB_BIT(7)
- MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITELINE("ticket", ticket_dispenser_device, motor_w)) MCFG_DEVCB_BIT(7) /* Also a status LED. See memory map above */
+ MCFG_AY8910_PORT_A_READ_CB(DEVREAD8("ticket", ticket_dispenser_device, read))
+ MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("ticket", ticket_dispenser_device, write)) /* Also a status LED. See memory map above */
MCFG_SOUND_ROUTE(0, "speaker", 0.07)
MCFG_SOUND_ROUTE(1, "speaker", 0.07)
MCFG_SOUND_ROUTE(2, "speaker", 0.07)
diff --git a/src/mame/drivers/cave.cpp b/src/mame/drivers/cave.cpp
index babec0ab71b..7734583a4c2 100644
--- a/src/mame/drivers/cave.cpp
+++ b/src/mame/drivers/cave.cpp
@@ -5200,7 +5200,7 @@ DRIVER_INIT_MEMBER(cave_state,mazinger)
{
int i;
for (i = 0; i < len; i++)
- buffer[i ^ 0xdf88] = src[bitswap<24>(i,23,22,21,20,19,9,7,3,15,4,17,14,18,2,16,5,11,8,6,13,1,10,12,0)];
+ buffer[i ^ 0xdf88] = src[BITSWAP24(i,23,22,21,20,19,9,7,3,15,4,17,14,18,2,16,5,11,8,6,13,1,10,12,0)];
memcpy(src, &buffer[0], len);
}
@@ -5262,7 +5262,7 @@ DRIVER_INIT_MEMBER(cave_state,pwrinst2j)
{
for(i = 0; i < len/2; i++)
{
- j = bitswap<24>(i,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7, 2,4,6,1,5,3, 0);
+ j = BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7, 2,4,6,1,5,3, 0);
if(((j & 6) == 0) || ((j & 6) == 6))
j ^= 6;
buffer[j ^ 7] = (src[i] >> 4) | (src[i] << 4);
@@ -5315,7 +5315,7 @@ DRIVER_INIT_MEMBER(cave_state,sailormn)
{
int i;
for (i = 0; i < len; i++)
- buffer[i ^ 0x950c4] = src[bitswap<24>(i,23,22,21,20,15,10,12,6,11,1,13,3,16,17,2,5,14,7,18,8,4,19,9,0)];
+ buffer[i ^ 0x950c4] = src[BITSWAP24(i,23,22,21,20,15,10,12,6,11,1,13,3,16,17,2,5,14,7,18,8,4,19,9,0)];
memcpy(src, &buffer[0], len);
}
diff --git a/src/mame/drivers/cd2650.cpp b/src/mame/drivers/cd2650.cpp
index 86aaffb4fba..95ffe911d2c 100644
--- a/src/mame/drivers/cd2650.cpp
+++ b/src/mame/drivers/cd2650.cpp
@@ -167,7 +167,7 @@ uint32_t cd2650_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap
chr = m_p_videoram[mem] & 0x3f;
- gfx = m_p_chargen[(bitswap<8>(chr,7,6,2,1,0,3,4,5)<<3) | ra];
+ gfx = m_p_chargen[(BITSWAP8(chr,7,6,2,1,0,3,4,5)<<3) | ra];
}
/* Display a scanline of a character */
diff --git a/src/mame/drivers/centiped.cpp b/src/mame/drivers/centiped.cpp
index 65cde93824d..e02caf468e6 100644
--- a/src/mame/drivers/centiped.cpp
+++ b/src/mame/drivers/centiped.cpp
@@ -2233,7 +2233,7 @@ DRIVER_INIT_MEMBER(centiped_state,multiped)
// descramble rom and put in maincpu region
for (int i = 0; i < 0x10000; i++)
- dest[0x10000 + (i ^ (~i << 4 & 0x1000) ^ (~i >> 3 & 0x400))] = bitswap<8>(src[bitswap<16>(i,15,14,13,1,8,11,4,7,10,5,6,9,12,0,3,2)],0,2,1,3,4,5,6,7);
+ dest[0x10000 + (i ^ (~i << 4 & 0x1000) ^ (~i >> 3 & 0x400))] = BITSWAP8(src[BITSWAP16(i,15,14,13,1,8,11,4,7,10,5,6,9,12,0,3,2)],0,2,1,3,4,5,6,7);
// (this can be removed when prg bankswitch is implemented)
memmove(dest+0x0000, dest+0x10000, 0x8000);
diff --git a/src/mame/drivers/champbwl.cpp b/src/mame/drivers/champbwl.cpp
index 94c8e54429f..e0795918195 100644
--- a/src/mame/drivers/champbwl.cpp
+++ b/src/mame/drivers/champbwl.cpp
@@ -170,7 +170,6 @@ public:
m_seta001(*this, "spritegen"),
m_palette(*this, "palette"),
m_x1(*this, "x1snd"),
- m_hopper(*this, "hopper"),
m_fakex(*this, "FAKEX"),
m_fakey(*this, "FAKEY") { }
@@ -180,7 +179,6 @@ public:
required_device<seta001_device> m_seta001;
required_device<palette_device> m_palette;
required_device<x1_010_device> m_x1;
- optional_device<ticket_dispenser_device> m_hopper;
optional_ioport m_fakex;
optional_ioport m_fakey;
@@ -273,11 +271,11 @@ ADDRESS_MAP_END
WRITE8_MEMBER(champbwl_state::doraemon_outputs_w)
{
- machine().bookkeeping().coin_counter_w(0, BIT(data, 0)); // coin in counter
- machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); // gift out counter
+ machine().bookkeeping().coin_counter_w(0, data & 1); // coin in counter
+ machine().bookkeeping().coin_counter_w(1, data & 2); // gift out counter
- machine().bookkeeping().coin_lockout_w(0, BIT(~data, 3)); // coin lockout
- m_hopper->motor_w(BIT(~data, 2)); // gift out motor
+ machine().bookkeeping().coin_lockout_w(0, ~data & 8); // coin lockout
+ machine().device<ticket_dispenser_device>("hopper")->write(space, 0, (data & 0x04) ? 0x00 : 0x80); // gift out motor
membank("bank1")->set_entry((data & 0x30) >> 4);
diff --git a/src/mame/drivers/chessmst.cpp b/src/mame/drivers/chessmst.cpp
index 6dddf2ce6e6..84e21b1e24b 100644
--- a/src/mame/drivers/chessmst.cpp
+++ b/src/mame/drivers/chessmst.cpp
@@ -253,7 +253,7 @@ void chessmst_state::update_display()
for(int i=0; i<4; i++)
{
if (BIT(m_digit_matrix, i))
- output().set_indexed_value("digit", i, bitswap<16>(m_digit, 3,5,12,10,14,1,2,13,8,6,11,15,7,9,4,0) | (m_digit_dot << 16));
+ output().set_indexed_value("digit", i, BITSWAP16(m_digit, 3,5,12,10,14,1,2,13,8,6,11,15,7,9,4,0) | (m_digit_dot << 16));
}
}
diff --git a/src/mame/drivers/chesstrv.cpp b/src/mame/drivers/chesstrv.cpp
index 29bfdcab7e6..0e0434ace56 100644
--- a/src/mame/drivers/chesstrv.cpp
+++ b/src/mame/drivers/chesstrv.cpp
@@ -64,7 +64,7 @@ WRITE8_MEMBER( chesstrv_state::ram_w )
WRITE8_MEMBER( chesstrv_state::display_w )
{
- uint8_t seg_data = bitswap<8>(data,0,1,2,3,4,5,6,7);
+ uint8_t seg_data = BITSWAP8(data,0,1,2,3,4,5,6,7);
if(!(m_matrix & 0x01))
output().set_digit_value( 3, seg_data );
diff --git a/src/mame/drivers/chinagat.cpp b/src/mame/drivers/chinagat.cpp
index 03d5ee93858..08ea5ffac11 100644
--- a/src/mame/drivers/chinagat.cpp
+++ b/src/mame/drivers/chinagat.cpp
@@ -590,11 +590,11 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( saiyugoub1 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MAIN_CLOCK / 8) /* 68B09EP 1.5 MHz (12MHz oscillator) */
+ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK / 8) /* 68B09EP 1.5 MHz (12MHz oscillator) */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", chinagat_state, chinagat_scanline, "screen", 0, 1)
- MCFG_CPU_ADD("sub", MC6809E, MAIN_CLOCK / 8) /* 68B09EP 1.5 MHz (12MHz oscillator) */
+ MCFG_CPU_ADD("sub", M6809, MAIN_CLOCK / 8) /* 68B09EP 1.5 MHz (12MHz oscillator) */
MCFG_CPU_PROGRAM_MAP(sub_map)
MCFG_CPU_ADD("soundcpu", Z80, XTAL_3_579545MHz) /* 3.579545 MHz oscillator */
@@ -646,11 +646,11 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( saiyugoub2 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MAIN_CLOCK / 8) /* 1.5 MHz (12MHz oscillator) */
+ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK / 8) /* 1.5 MHz (12MHz oscillator) */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", chinagat_state, chinagat_scanline, "screen", 0, 1)
- MCFG_CPU_ADD("sub", MC6809E, MAIN_CLOCK / 8) /* 1.5 MHz (12MHz oscillator) */
+ MCFG_CPU_ADD("sub", M6809, MAIN_CLOCK / 8) /* 1.5 MHz (12MHz oscillator) */
MCFG_CPU_PROGRAM_MAP(sub_map)
MCFG_CPU_ADD("soundcpu", Z80, XTAL_3_579545MHz) /* 3.579545 MHz oscillator */
diff --git a/src/mame/drivers/chqflag.cpp b/src/mame/drivers/chqflag.cpp
index 5068b2311cb..23fa7862807 100644
--- a/src/mame/drivers/chqflag.cpp
+++ b/src/mame/drivers/chqflag.cpp
@@ -5,14 +5,9 @@
Chequered Flag / Checkered Flag (GX717) (c) Konami 1988
Notes:
- - 007232 volume & panning control is almost certainly wrong;
- - 051733 opponent cars have wrong RNG colors compared to references;
- - 051733 opponent car-to-car collisions direction are wrong, according
- to reference orange car should shift to the left instead (current emulation
- makes them to wall crash most of the time instead);
- - needs proper shadow/highlight factor values for sprites and tilemap;
- - compared to references, emulation is a bit slower (around 2/3 seconds
- behind on a full lap of stage 2);
+ - 007232 volume & panning control is almost certainly wrong.
+ - Needs HW tests or side-by-side tests to determine if the protection
+ is 100% ok now;
2008-07
Dip locations and recommended settings verified with manual
@@ -461,5 +456,5 @@ ROM_END
// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR, COMPANY, FULLNAME, FLAGS, LAYOUT
-GAMEL( 1988, chqflag, 0, chqflag, chqflag, chqflag_state, 0, ROT90, "Konami", "Chequered Flag", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_chqflag )
-GAMEL( 1988, chqflagj, chqflag, chqflag, chqflagj, chqflag_state, 0, ROT90, "Konami", "Chequered Flag (Japan)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_chqflag )
+GAMEL( 1988, chqflag, 0, chqflag, chqflag, chqflag_state, 0, ROT90, "Konami", "Chequered Flag", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_chqflag )
+GAMEL( 1988, chqflagj, chqflag, chqflag, chqflagj, chqflag_state, 0, ROT90, "Konami", "Chequered Flag (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_chqflag )
diff --git a/src/mame/drivers/chsuper.cpp b/src/mame/drivers/chsuper.cpp
index 6934ba074fd..801d490ff8e 100644
--- a/src/mame/drivers/chsuper.cpp
+++ b/src/mame/drivers/chsuper.cpp
@@ -528,9 +528,9 @@ DRIVER_INIT_MEMBER(chsuper_state,chmpnum)
j = i ^ (m_tilexor << 5);
- j = bitswap<24>(j,23,22,21,20,19,18,17,13, 15,14,16,12, 11,10,9,8, 7,6,5,4, 3,2,1,0);
- j = bitswap<24>(j,23,22,21,20,19,18,17,14, 15,16,13,12, 11,10,9,8, 7,6,5,4, 3,2,1,0);
- j = bitswap<24>(j,23,22,21,20,19,18,17,15, 16,14,13,12, 11,10,9,8, 7,6,5,4, 3,2,1,0);
+ j = BITSWAP24(j,23,22,21,20,19,18,17,13, 15,14,16,12, 11,10,9,8, 7,6,5,4, 3,2,1,0);
+ j = BITSWAP24(j,23,22,21,20,19,18,17,14, 15,16,13,12, 11,10,9,8, 7,6,5,4, 3,2,1,0);
+ j = BITSWAP24(j,23,22,21,20,19,18,17,15, 16,14,13,12, 11,10,9,8, 7,6,5,4, 3,2,1,0);
buffer[j] = rom[i];
}
diff --git a/src/mame/drivers/cischeat.cpp b/src/mame/drivers/cischeat.cpp
index 392a8c397e7..8fe886141c7 100644
--- a/src/mame/drivers/cischeat.cpp
+++ b/src/mame/drivers/cischeat.cpp
@@ -692,7 +692,7 @@ WRITE16_MEMBER(cischeat_state::captflag_leds_w)
output().set_led_value(1, data & 0x2000); // select
int power = (data & 0x1000);
- m_captflag_hopper->motor_w(power ? 1 : 0); // prize motor
+ m_captflag_hopper->write(space, 0, power ? 0x80 : 0x00); // prize motor
if (!power)
m_captflag_hopper->reset();
}
diff --git a/src/mame/drivers/cninja.cpp b/src/mame/drivers/cninja.cpp
index 2a5b9608726..64614342aff 100644
--- a/src/mame/drivers/cninja.cpp
+++ b/src/mame/drivers/cninja.cpp
@@ -85,7 +85,7 @@ WRITE16_MEMBER(cninja_state::cninja_pf34_control_w)
READ16_MEMBER( cninja_state::cninja_protection_region_0_104_r )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco104->read_data( deco146_addr, mem_mask, cs );
return data;
@@ -94,7 +94,7 @@ READ16_MEMBER( cninja_state::cninja_protection_region_0_104_r )
WRITE16_MEMBER( cninja_state::cninja_protection_region_0_104_w )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco104->write_data( space, deco146_addr, data, mem_mask, cs );
}
@@ -167,7 +167,7 @@ ADDRESS_MAP_END
READ16_MEMBER( cninja_state::sshangha_protection_region_8_146_r )
{
int real_address = 0x1a0000 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco146->read_data( deco146_addr, mem_mask, cs );
return data;
@@ -176,7 +176,7 @@ READ16_MEMBER( cninja_state::sshangha_protection_region_8_146_r )
WRITE16_MEMBER( cninja_state::sshangha_protection_region_8_146_w )
{
int real_address = 0x1a0000 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco146->write_data( space, deco146_addr, data, mem_mask, cs );
}
@@ -186,7 +186,7 @@ READ16_MEMBER( cninja_state::sshangha_protection_region_6_146_r )
// uint16_t realdat = deco16_60_prot_r(space,offset&0x3ff,mem_mask);
int real_address = 0x198000 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco146->read_data( deco146_addr, mem_mask, cs );
@@ -203,7 +203,7 @@ WRITE16_MEMBER( cninja_state::sshangha_protection_region_6_146_w )
int real_address = 0x198000 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco146->write_data( space, deco146_addr, data, mem_mask, cs );
}
@@ -273,7 +273,7 @@ ADDRESS_MAP_END
READ16_MEMBER( cninja_state::mutantf_protection_region_0_146_r )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco146->read_data( deco146_addr, mem_mask, cs );
return data;
@@ -282,7 +282,7 @@ READ16_MEMBER( cninja_state::mutantf_protection_region_0_146_r )
WRITE16_MEMBER( cninja_state::mutantf_protection_region_0_146_w )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco146->write_data( space, deco146_addr, data, mem_mask, cs );
}
diff --git a/src/mame/drivers/cntsteer.cpp b/src/mame/drivers/cntsteer.cpp
index 79a317231a5..20e63ae41df 100644
--- a/src/mame/drivers/cntsteer.cpp
+++ b/src/mame/drivers/cntsteer.cpp
@@ -488,7 +488,7 @@ WRITE8_MEMBER(cntsteer_state::cntsteer_background_w)
/* checks area 0x2000-0x2fff with this address config. */
READ8_MEMBER(cntsteer_state::cntsteer_background_mirror_r)
{
- return m_videoram2[bitswap<16>(offset,15,14,13,12,5,4,3,2,1,0,11,10,9,8,7,6)];
+ return m_videoram2[BITSWAP16(offset,15,14,13,12,5,4,3,2,1,0,11,10,9,8,7,6)];
}
/*************************************
diff --git a/src/mame/drivers/coco12.cpp b/src/mame/drivers/coco12.cpp
index 88141100f81..fe89a51b5fa 100644
--- a/src/mame/drivers/coco12.cpp
+++ b/src/mame/drivers/coco12.cpp
@@ -353,7 +353,7 @@ SLOT_INTERFACE_START( coco_cart )
SLOT_INTERFACE("fdc", COCO_FDC)
SLOT_INTERFACE("fdcv11", COCO_FDC_V11)
SLOT_INTERFACE("cc3hdb1", COCO3_HDB1)
- SLOT_INTERFACE("cp450_fdc", CP450_FDC)
+ SLOT_INTERFACE("cp400_fdc", CP400_FDC)
SLOT_INTERFACE("cd6809_fdc", CD6809_FDC)
SLOT_INTERFACE("rs232", COCO_RS232)
SLOT_INTERFACE("dcmodem", COCO_DCMODEM)
@@ -530,7 +530,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cp400, coco )
MCFG_COCO_CARTRIDGE_REMOVE(CARTRIDGE_TAG)
- MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, coco_cart, "cp450_fdc")
+ MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, coco_cart, "cp400_fdc")
MCFG_COCO_CARTRIDGE_CART_CB(WRITELINE(coco_state, cart_w))
MCFG_COCO_CARTRIDGE_NMI_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_NMI))
MCFG_COCO_CARTRIDGE_HALT_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_HALT))
diff --git a/src/mame/drivers/coinmstr.cpp b/src/mame/drivers/coinmstr.cpp
index 8f1d297392f..b95ad8d7058 100644
--- a/src/mame/drivers/coinmstr.cpp
+++ b/src/mame/drivers/coinmstr.cpp
@@ -1540,8 +1540,8 @@ DRIVER_INIT_MEMBER(coinmstr_state,coinmstr)
for(i = 0; i < length; i++)
{
- int adr = bitswap<24>(i, 23,22,21,20,19,18,17,16,15, 14,8,7,2,5,12,10,9,11,13,3,6,0,1,4);
- rom[i] = bitswap<8>(buf[adr],3,2,4,1,5,0,6,7);
+ int adr = BITSWAP24(i, 23,22,21,20,19,18,17,16,15, 14,8,7,2,5,12,10,9,11,13,3,6,0,1,4);
+ rom[i] = BITSWAP8(buf[adr],3,2,4,1,5,0,6,7);
}
}
diff --git a/src/mame/drivers/compc.cpp b/src/mame/drivers/compc.cpp
index 587d47fdfa0..e1223d10c45 100644
--- a/src/mame/drivers/compc.cpp
+++ b/src/mame/drivers/compc.cpp
@@ -27,19 +27,16 @@ public:
void machine_reset() override;
- DECLARE_WRITE8_MEMBER(pioiii_w);
- DECLARE_READ8_MEMBER(pioiii_r);
DECLARE_WRITE8_MEMBER(pio_w);
DECLARE_READ8_MEMBER(pio_r);
private:
- u8 m_portb, m_dips;
+ u8 m_portb;
};
void compc_state::machine_reset()
{
m_portb = 0;
- m_dips = 0;
}
WRITE8_MEMBER(compc_state::pio_w)
@@ -87,59 +84,6 @@ READ8_MEMBER(compc_state::pio_r)
return data;
}
-WRITE8_MEMBER(compc_state::pioiii_w)
-{
- switch (offset)
- {
- case 1:
- m_portb = data;
- m_mb->m_pit8253->write_gate2(BIT(data, 0));
- m_mb->pc_speaker_set_spkrdata(BIT(data, 1));
- m_keyboard->enable(BIT(data, 6));
- if(data & 0x80)
- m_mb->m_pic8259->ir1_w(0);
- break;
- case 2:
- m_dips = (data & ~0x30) | ioport("DSW0")->read();
- break;
- }
-}
-
-
-READ8_MEMBER(compc_state::pioiii_r)
-{
- int data = 0;
- switch (offset)
- {
- case 0:
- data = m_keyboard->read(space, 0);
- break;
- case 1:
- data = m_portb;
- break;
- case 2:
- if(!BIT(m_portb, 2))
- data = (m_dips >> 4) & 0x0f;
- else
- data = m_dips & 0x0f;
- if(m_mb->pit_out2())
- data |= 0x30;
- break;
- }
- return data;
-}
-
-static INPUT_PORTS_START(compciii)
- PORT_START("DSW0") /* IN1 */
- PORT_DIPNAME( 0x30, 0x30, "Graphics adapter")
- PORT_DIPSETTING( 0x00, "EGA/VGA" )
- PORT_DIPSETTING( 0x10, "Color 40x25" )
- PORT_DIPSETTING( 0x20, "Color 80x25" )
- PORT_DIPSETTING( 0x30, "Monochrome" )
-
- PORT_INCLUDE(pc_keyboard)
-INPUT_PORTS_END
-
static INPUT_PORTS_START(compc)
PORT_START("DSW0") /* IN1 */
PORT_DIPNAME( 0xc0, 0x40, "Number of floppy drives")
@@ -167,6 +111,33 @@ static INPUT_PORTS_START(compc)
PORT_INCLUDE(pc_keyboard)
INPUT_PORTS_END
+static INPUT_PORTS_START(compcalt)
+ PORT_START("DSW0") /* IN1 */
+ PORT_DIPNAME( 0x0c, 0x04, "Number of floppy drives")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x04, "2" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPSETTING( 0x0c, "4" )
+ PORT_DIPNAME( 0x03, 0x03, "Graphics adapter")
+ PORT_DIPSETTING( 0x00, "EGA/VGA" )
+ PORT_DIPSETTING( 0x01, "Color 40x25" )
+ PORT_DIPSETTING( 0x02, "Color 80x25" )
+ PORT_DIPSETTING( 0x03, "Monochrome" )
+ PORT_DIPNAME( 0xc0, 0xc0, "RAM banks")
+ PORT_DIPSETTING( 0x00, "1 - 16/ 64/256K" )
+ PORT_DIPSETTING( 0x40, "2 - 32/128/512K" )
+ PORT_DIPSETTING( 0x80, "3 - 48/192/576K" )
+ PORT_DIPSETTING( 0xc0, "4 - 64/256/640K" )
+ PORT_DIPNAME( 0x20, 0x00, "8087 installed")
+ PORT_DIPSETTING( 0x00, DEF_STR(No) )
+ PORT_DIPSETTING( 0x20, DEF_STR(Yes) )
+ PORT_DIPNAME( 0x10, 0x10, "Boot from floppy")
+ PORT_DIPSETTING( 0x10, DEF_STR(Yes) )
+ PORT_DIPSETTING( 0x00, DEF_STR(No) )
+
+ PORT_INCLUDE(pc_keyboard)
+INPUT_PORTS_END
+
static ADDRESS_MAP_START(compc_map, AS_PROGRAM, 8, compc_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0xf0000, 0xfffff) AM_ROM AM_REGION("bios", 0)
@@ -178,12 +149,6 @@ static ADDRESS_MAP_START(compc_io, AS_IO, 8, compc_state)
AM_RANGE(0x0000, 0x00ff) AM_DEVICE("mb", pc_noppi_mb_device, map)
ADDRESS_MAP_END
-static ADDRESS_MAP_START(compciii_io, AS_IO, 8, compc_state)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0060, 0x0063) AM_READWRITE(pioiii_r, pioiii_w)
- AM_RANGE(0x0000, 0x00ff) AM_DEVICE("mb", pc_noppi_mb_device, map)
-ADDRESS_MAP_END
-
static MACHINE_CONFIG_START(compc)
MCFG_CPU_ADD("maincpu", I8088, 4772720*2)
MCFG_CPU_PROGRAM_MAP(compc_map)
@@ -216,11 +181,6 @@ static MACHINE_CONFIG_START(compc)
MCFG_SOFTWARE_LIST_ADD("disk_list", "ibm5150")
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED(pc10iii, compc)
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_CPU_IO_MAP(compciii_io)
-MACHINE_CONFIG_END
-
ROM_START(compc10)
ROM_REGION(0x10000, "bios", 0)
ROM_DEFAULT_BIOS("v205")
@@ -235,36 +195,25 @@ ROM_START(pc10iii)
ROM_REGION(0x10000, "bios", 0)
ROM_DEFAULT_BIOS("v441")
ROM_SYSTEM_BIOS(0, "v435", "v4.35")
- ROM_SYSTEM_BIOS(1, "v435c", "v4.35c")
- ROM_SYSTEM_BIOS(2, "v436", "v4.36")
- ROM_SYSTEM_BIOS(3, "v436b", "v4.36b")
- ROM_SYSTEM_BIOS(4, "v436c", "v4.36c")
- ROM_SYSTEM_BIOS(5, "v438", "v4.38")
- ROM_SYSTEM_BIOS(6, "v439", "v4.39")
- ROM_SYSTEM_BIOS(7, "v440", "v4.40")
- ROM_SYSTEM_BIOS(8, "v441", "v4.41")
ROMX_LOAD("318085-01.u201", 0x8000, 0x8000, CRC(be752d1e) SHA1(5e5e63cd6d6269816cd691602e4c4d209fe3df67), ROM_BIOS(1))
- ROMX_LOAD("318085-01_pc-3_bios_4.35c.bin", 0x8000, 0x8000, CRC(adbc4ab7) SHA1(c157e5bc115906705849f185e4fe8e42ab28930c), ROM_BIOS(2))
- ROMX_LOAD("318085-02.u201", 0x8000, 0x8000, CRC(db0c9d04) SHA1(1314ce606840f4f78e58e5f78909e8971387f387), ROM_BIOS(3))
- ROMX_LOAD("318085-03.u201", 0x8000, 0x8000, CRC(559e6b76) SHA1(cdfd4781f3520db7f5111469ebb29c10b39ab587), ROM_BIOS(4))
- ROMX_LOAD("318085-04.u201", 0x8000, 0x8000, CRC(f81e67f0) SHA1(b46613cb5c6ac4beb769778bc35f81777ebe02e1), ROM_BIOS(5))
- ROMX_LOAD("318085-05.u201", 0x8000, 0x8000, CRC(ae9e6a31) SHA1(853ee251cf230818c407a8d13ef060a21c90a8c1), ROM_BIOS(6))
- ROMX_LOAD("318085-06.u201", 0x8000, 0x8000, CRC(1901993c) SHA1(f75060c1c442376bd42c61e74fa9eee053351791), ROM_BIOS(7))
- ROMX_LOAD("318085-07.u201", 0x8000, 0x8000, CRC(505d52b0) SHA1(f717c6ab791d51f35e1c38ffbc81a44075b5f2f8), ROM_BIOS(8))
- ROMX_LOAD("318085-08.u201", 0x8000, 0x8000, CRC(7e228dc8) SHA1(958dfdd637bd31c01b949fac729d6973a7e630bc), ROM_BIOS(9))
-
+ ROM_SYSTEM_BIOS(1, "v436", "v4.36")
+ ROMX_LOAD("318085-02.u201", 0x8000, 0x8000, CRC(db0c9d04) SHA1(1314ce606840f4f78e58e5f78909e8971387f387), ROM_BIOS(2))
+ ROM_SYSTEM_BIOS(2, "v436b", "v4.36b")
+ ROMX_LOAD("318085-03.u201", 0x8000, 0x8000, CRC(559e6b76) SHA1(cdfd4781f3520db7f5111469ebb29c10b39ab587), ROM_BIOS(3))
+ ROM_SYSTEM_BIOS(3, "v436c", "v4.36c")
+ ROMX_LOAD("318085-04.u201", 0x8000, 0x8000, CRC(f81e67f0) SHA1(b46613cb5c6ac4beb769778bc35f81777ebe02e1), ROM_BIOS(4))
+ ROM_SYSTEM_BIOS(4, "v438", "v4.38")
+ ROMX_LOAD("318085-05.u201", 0x8000, 0x8000, CRC(ae9e6a31) SHA1(853ee251cf230818c407a8d13ef060a21c90a8c1), ROM_BIOS(5))
+ ROM_SYSTEM_BIOS(5, "v439", "v4.39")
+ ROMX_LOAD("318085-06.u201", 0x8000, 0x8000, CRC(1901993c) SHA1(f75060c1c442376bd42c61e74fa9eee053351791), ROM_BIOS(6))
+ ROM_SYSTEM_BIOS(6, "v440", "v4.40")
+ ROMX_LOAD("318085-07.u201", 0x8000, 0x8000, CRC(505d52b0) SHA1(f717c6ab791d51f35e1c38ffbc81a44075b5f2f8), ROM_BIOS(7))
+ ROM_SYSTEM_BIOS(7, "v441", "v4.41")
+ ROMX_LOAD("318085-08.u201", 0x8000, 0x8000, CRC(7e228dc8) SHA1(958dfdd637bd31c01b949fac729d6973a7e630bc), ROM_BIOS(8))
ROM_REGION(0x8000, "gfx1", 0)
- ROMX_LOAD("318086-01_p10c_164a.bin", 0x0000, 0x4000, CRC(ee6c27f0) SHA1(e769cc3a49a1d708bd74eb4ac85bb6ea67220d38), ROM_BIOS(1)) // came with ROM 4.35c
- ROMX_LOAD("318086-01_p10c_164a.bin", 0x0000, 0x4000, CRC(ee6c27f0) SHA1(e769cc3a49a1d708bd74eb4ac85bb6ea67220d38), ROM_BIOS(2))
- ROMX_LOAD("318086-02.u607", 0x0000, 0x8000, CRC(b406651c) SHA1(856f58353391a74a06ebb8ec9f8333d7d69e5fd6), ROM_BIOS(3))
- ROMX_LOAD("318086-02.u607", 0x0000, 0x8000, CRC(b406651c) SHA1(856f58353391a74a06ebb8ec9f8333d7d69e5fd6), ROM_BIOS(4))
- ROMX_LOAD("318086-02.u607", 0x0000, 0x8000, CRC(b406651c) SHA1(856f58353391a74a06ebb8ec9f8333d7d69e5fd6), ROM_BIOS(5))
- ROMX_LOAD("318086-02.u607", 0x0000, 0x8000, CRC(b406651c) SHA1(856f58353391a74a06ebb8ec9f8333d7d69e5fd6), ROM_BIOS(6))
- ROMX_LOAD("318086-02.u607", 0x0000, 0x8000, CRC(b406651c) SHA1(856f58353391a74a06ebb8ec9f8333d7d69e5fd6), ROM_BIOS(7))
- ROMX_LOAD("318086-02.u607", 0x0000, 0x8000, CRC(b406651c) SHA1(856f58353391a74a06ebb8ec9f8333d7d69e5fd6), ROM_BIOS(8))
- ROMX_LOAD("318086-02.u607", 0x0000, 0x8000, CRC(b406651c) SHA1(856f58353391a74a06ebb8ec9f8333d7d69e5fd6), ROM_BIOS(9))
+ ROM_LOAD("318086-02.u607", 0x0000, 0x8000, CRC(b406651c) SHA1(856f58353391a74a06ebb8ec9f8333d7d69e5fd6))
ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
COMP( 1984, compc10, ibm5150, 0, compc, compc, compc_state, 0, "Commodore Business Machines", "Commodore PC 10", MACHINE_NOT_WORKING )
-COMP( 1987, pc10iii, ibm5150, 0, pc10iii, compciii, compc_state, 0, "Commodore Business Machines", "Commodore PC-10 III", MACHINE_NOT_WORKING )
+COMP( 1987, pc10iii, ibm5150, 0, compc, compcalt, compc_state, 0, "Commodore Business Machines", "Commodore PC-10 III", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/contra.cpp b/src/mame/drivers/contra.cpp
index 449bf162341..d9f9440ad7c 100644
--- a/src/mame/drivers/contra.cpp
+++ b/src/mame/drivers/contra.cpp
@@ -202,7 +202,7 @@ static MACHINE_CONFIG_START( contra )
MCFG_CPU_PROGRAM_MAP(contra_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", contra_state, contra_interrupt)
- MCFG_CPU_ADD("audiocpu", MC6809E, XTAL_24MHz/8) /* 3000000? */
+ MCFG_CPU_ADD("audiocpu", M6809, XTAL_24MHz/8) /* 3000000? */
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* enough for the sound CPU to read all commands */
diff --git a/src/mame/drivers/coolpool.cpp b/src/mame/drivers/coolpool.cpp
index ab09d052777..80cab473371 100644
--- a/src/mame/drivers/coolpool.cpp
+++ b/src/mame/drivers/coolpool.cpp
@@ -1145,13 +1145,13 @@ DRIVER_INIT_MEMBER(coolpool_state,9ballsht)
hi = rom[a] >> 8;
lo = rom[a] & 0xff;
- nhi = bitswap<8>(hi,5,2,0,7,6,4,3,1) ^ 0x29;
+ nhi = BITSWAP8(hi,5,2,0,7,6,4,3,1) ^ 0x29;
if (hi & 0x01) nhi ^= 0x03;
if (hi & 0x10) nhi ^= 0xc1;
if (hi & 0x20) nhi ^= 0x40;
if (hi & 0x40) nhi ^= 0x12;
- nlo = bitswap<8>(lo,5,3,4,6,7,1,2,0) ^ 0x80;
+ nlo = BITSWAP8(lo,5,3,4,6,7,1,2,0) ^ 0x80;
if ((lo & 0x02) && (lo & 0x04)) nlo ^= 0x01;
if (lo & 0x04) nlo ^= 0x0c;
if (lo & 0x08) nlo ^= 0x10;
diff --git a/src/mame/drivers/cops.cpp b/src/mame/drivers/cops.cpp
index 7a2af7b71e0..a8c44f360ea 100644
--- a/src/mame/drivers/cops.cpp
+++ b/src/mame/drivers/cops.cpp
@@ -200,7 +200,7 @@ uint32_t cops_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap,
WRITE8_MEMBER(cops_state::cdrom_data_w)
{
const char *regs[4] = { "CMD", "PARAM", "WRITE", "CTRL" };
- m_cdrom_data = bitswap<8>(data,0,1,2,3,4,5,6,7);
+ m_cdrom_data = BITSWAP8(data,0,1,2,3,4,5,6,7);
uint8_t reg = ((m_cdrom_ctrl & 4) >> 1) | ((m_cdrom_ctrl & 8) >> 3);
if (LOG_CDROM) logerror("%s:cdrom_data_w(reg = %s, data = %02x)\n", machine().describe_context(), regs[reg & 0x03], m_cdrom_data);
}
@@ -647,7 +647,7 @@ WRITE8_MEMBER(cops_state::io1_w)
{
sprintf(output_name, "digit%d", i);
display_data = m_lcd_data_l | (m_lcd_data_h << 8);
- display_data = bitswap<16>(display_data, 4, 5, 12, 1, 0, 11, 10, 6, 7, 2, 9, 3, 15, 8, 14, 13);
+ display_data = BITSWAP16(display_data, 4, 5, 12, 1, 0, 11, 10, 6, 7, 2, 9, 3, 15, 8, 14, 13);
output().set_value(output_name, display_data);
}
}
@@ -757,7 +757,7 @@ WRITE_LINE_MEMBER(cops_state::via1_irq)
WRITE8_MEMBER(cops_state::via1_b_w)
{
- m_sn_data = bitswap<8>(data,0,1,2,3,4,5,6,7);
+ m_sn_data = BITSWAP8(data,0,1,2,3,4,5,6,7);
if (m_sn_cb1)
{
m_sn->write(space,0,m_sn_data);
@@ -915,7 +915,7 @@ DRIVER_INIT_MEMBER(cops_state,cops)
static MACHINE_CONFIG_START( cops )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M6502, MAIN_CLOCK/2)
+ MCFG_CPU_ADD("maincpu",M6502,MAIN_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(cops_map)
/* video hardware */
@@ -923,15 +923,15 @@ static MACHINE_CONFIG_START( cops )
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
/* via */
- MCFG_DEVICE_ADD("via6522_1", VIA6522, MAIN_CLOCK/2)
+ MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(cops_state, via1_irq))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(cops_state, via1_b_w))
MCFG_VIA6522_CB1_HANDLER(WRITE8(cops_state, via1_cb1_w))
- MCFG_DEVICE_ADD("via6522_2", VIA6522, MAIN_CLOCK/2)
+ MCFG_DEVICE_ADD("via6522_2", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(cops_state, via2_irq))
- MCFG_DEVICE_ADD("via6522_3", VIA6522, MAIN_CLOCK/2)
+ MCFG_DEVICE_ADD("via6522_3", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(cops_state, cdrom_data_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(cops_state, cdrom_data_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(cops_state, cdrom_ctrl_w))
@@ -951,7 +951,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( revlatns )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M6502, MAIN_CLOCK/2)
+ MCFG_CPU_ADD("maincpu",M6502,MAIN_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(revlatns_map)
/* video hardware */
@@ -959,7 +959,7 @@ static MACHINE_CONFIG_START( revlatns )
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
/* via */
- MCFG_DEVICE_ADD("via6522_1", VIA6522, MAIN_CLOCK/2)
+ MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(cops_state, via1_irq))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(cops_state, via1_b_w))
MCFG_VIA6522_CB1_HANDLER(WRITE8(cops_state, via1_cb1_w))
diff --git a/src/mame/drivers/cortex.cpp b/src/mame/drivers/cortex.cpp
index 6281b1e88aa..c4e87619bd7 100644
--- a/src/mame/drivers/cortex.cpp
+++ b/src/mame/drivers/cortex.cpp
@@ -2,45 +2,23 @@
// copyright-holders:Robbbert
/***************************************************************************
-Powertran Cortex
+ Powertran Cortex
-2012-04-20 Skeleton driver.
+ 2012-04-20 Skeleton driver.
-ftp://ftp.whtech.com/Powertran Cortex/
-http://www.powertrancortex.com/index.html
+ ftp://ftp.whtech.com/Powertran Cortex/
+ http://www.powertrancortex.com/index.html
-Uses Texas Instruments parts and similar to other TI computers.
-It was designed by TI engineers, so it may perhaps be a clone
-of another TI or the Geneve.
+ Uses Texas Instruments parts and similar to other TI computers.
+ It was designed by TI engineers, so it may perhaps be a clone
+ of another TI or the Geneve.
-Chips:
-TMS9995 - CPU
-TMS9929 - Video
-TMS9911 - DMA to floppy (unemulated device)
-TMS9909 - Floppy Disk Controller (unemulated device)
-TMS9902 - UART (x2) (device not usable with rs232.h)
-AY-5-2376 - Keyboard controller
-
-All input to be in uppercase. Note that "lowercase" is just smaller uppercase,
-and is not acceptable as input.
-
-There's no option in BASIC to produce sound. It will beep if an invalid key
-(usually a control key) is pressed.
-
-To clear the screen press Ctrl L.
-
-ToDo:
-- Unemulated devices
-- Cassette
-- Keyboard to use AY device
-- Memory mapping unit (74LS610)
-- Various CRU I/O
-
-Note that the MAME implementation of CRU addresses is not the same as real
-hardware. For writing, MAME uses the correct address (R12/2 + offset), with
-the bit (0 or 1), being in 'data'. However, for reading, 8 CRU bits are
-packed into a single address-byte (CRU 0 = bit 0, etc). So the address is
-(R12/2 + offset) >> 3.
+ Chips:
+ TMS9995 - CPU
+ TMS9929 - Video
+ TMS9911 - DMA to floppy
+ TMS9909 - Floppy Disk Controller
+ AY-5-2376 - Keyboard controller
****************************************************************************/
@@ -49,10 +27,6 @@ packed into a single address-byte (CRU 0 = bit 0, etc). So the address is
#include "cpu/tms9900/tms9995.h"
#include "machine/74259.h"
#include "video/tms9928a.h"
-//#include "machine/tms9902.h"
-#include "machine/keyboard.h"
-#include "sound/beep.h"
-#include "speaker.h"
class cortex_state : public driver_device
{
@@ -60,168 +34,85 @@ public:
cortex_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
- , m_beep(*this, "beeper")
- , m_io_dsw(*this, "DSW")
+ , m_p_ram(*this, "ram")
{ }
- void kbd_put(u8 data);
- DECLARE_WRITE_LINE_MEMBER(keyboard_ack_w);
- DECLARE_WRITE_LINE_MEMBER(romsw_w);
- DECLARE_WRITE_LINE_MEMBER(vdp_int_w);
- DECLARE_READ8_MEMBER(pio_r);
- DECLARE_READ8_MEMBER(keyboard_r);
- DECLARE_DRIVER_INIT(init);
-
private:
- bool m_kbd_ack;
- bool m_vdp_int;
- uint8_t m_term_data;
virtual void machine_reset() override;
required_device<tms9995_device> m_maincpu;
- required_device<beep_device> m_beep;
- required_ioport m_io_dsw;
+ required_shared_ptr<uint8_t> m_p_ram;
};
static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 8, cortex_state )
- AM_RANGE(0x0000, 0x7fff) AM_READ_BANK("bankr0") AM_WRITE_BANK("bankw0")
- AM_RANGE(0x8000, 0xefff) AM_RAM
+ AM_RANGE(0x0000, 0xefff) AM_RAM AM_SHARE("ram")
AM_RANGE(0xf100, 0xf11f) AM_RAM // memory mapping unit
- AM_RANGE(0xf120, 0xf120) AM_DEVREADWRITE("crtc", tms9928a_device, vram_read, vram_write)
- AM_RANGE(0xf121, 0xf121) AM_DEVREADWRITE("crtc", tms9928a_device, register_read, register_write)
+ AM_RANGE(0xf120, 0xf120) AM_DEVREADWRITE("tms9928a", tms9928a_device, vram_read, vram_write)
+ AM_RANGE(0xf121, 0xf121) AM_DEVREADWRITE("tms9928a", tms9928a_device, register_read, register_write)
//AM_RANGE(0xf140, 0xf147) // fdc tms9909
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, AS_IO, 8, cortex_state )
ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x0007) AM_MIRROR(0x18) AM_DEVWRITE("control", ls259_device, write_d0)
- AM_RANGE(0x0000, 0x0000) AM_READ(pio_r)
- AM_RANGE(0x0001, 0x0001) AM_READ(keyboard_r)
- //AM_RANGE(0x0040, 0x005f) AM_DEVWRITE("uart1", tms9902_device, cruwrite) // RS232 (r12 = 80-bf)
- //AM_RANGE(0x0008, 0x000b) AM_DEVREAD("uart1", tms9902_device, cruread) // RS232
- //AM_RANGE(0x00c0, 0x00df) AM_DEVWRITE("uart2", tms9902_device, cruwrite) // Cassette (r12 = 180-1bf)
- //AM_RANGE(0x0018, 0x001b) AM_DEVREAD("uart2", tms9902_device, cruread) // Cassette
- //AM_RANGE(0x00e0, 0x00ff) AM_WRITE("dma", tms9911_device, write) // r12 = 1c0-1fe
- //AM_RANGE(0x001c, 0x001f) AM_READ("dma", tms9911_device, read) // if reading is needed
- //AM_RANGE(0x0400, 0x0407) AM_WRITE(cent_data_w) // r12 = 800-80e
- //AM_RANGE(0x0408, 0x0408) AM_WRITE(cent_strobe_w) // r12 = 810
- //AM_RANGE(0x0081, 0x0081) AM_READ(cent_stat_r) // CRU 409 (r12 = 812)
+ AM_RANGE(0x0000, 0x000f) AM_MIRROR(0x0030) AM_DEVWRITE("control", ls259_device, write_a0)
+ //AM_RANGE(0x0000, 0x000f) AM_MIRROR(0x0020) AM_READ(pio_r)
+ //AM_RANGE(0x0010, 0x001f) AM_MIRROR(0x0020) AM_READ(keyboard_r)
+ //AM_RANGE(0x0080, 0x00bf) AM_READWRITE(rs232_r,rs232_w)
+ //AM_RANGE(0x0180, 0x01bf) AM_READWRITE(cass_r,cass_w)
+ //AM_RANGE(0x0800, 0x080f) AM_WRITE(cent_data_w)
+ //AM_RANGE(0x0810, 0x0811) AM_WRITE(cent_strobe_w)
+ //AM_RANGE(0x0812, 0x0813) AM_READ(cent_stat_r)
+ //AM_RANGE(0x1ee0, 0x1eef) AM_READWRITE(cpu_int_r,cpu_int_w)
+ //AM_RANGE(0x1fda, 0x1fdb) AM_READWRITE(cpu_int1_r,cpu_int1_w)
ADDRESS_MAP_END
/* Input ports */
static INPUT_PORTS_START( cortex )
- PORT_START("DSW")
- PORT_DIPNAME( 0x04, 0x00, "DISK SIZE")
- PORT_DIPSETTING( 0x04, "20cm")
- PORT_DIPSETTING( 0x00, "13cm")
- PORT_DIPNAME( 0x08, 0x08, "DISK DENSITY")
- PORT_DIPSETTING( 0x08, "Double")
- PORT_DIPSETTING( 0x00, "Single")
INPUT_PORTS_END
-READ8_MEMBER( cortex_state::pio_r )
-{
- return (m_kbd_ack ? 0x20 : 0) | (m_vdp_int ? 0x40 : 0) | m_io_dsw->read() | 0x93;
-}
-
-READ8_MEMBER( cortex_state::keyboard_r )
-{
- return m_term_data;
-}
-
-WRITE_LINE_MEMBER( cortex_state::keyboard_ack_w )
-{
- if (!state)
- {
- m_maincpu->set_input_line(INT_9995_INT4, CLEAR_LINE);
- m_kbd_ack = 1;
- }
-}
-
-WRITE_LINE_MEMBER( cortex_state::romsw_w )
-{
- membank("bankr0")->set_entry(state ? 0 : 1);
-}
-
-WRITE_LINE_MEMBER( cortex_state::vdp_int_w )
-{
- m_vdp_int = state ? 0 : 1; // change polarity to match mame
-}
-
-void cortex_state::kbd_put(u8 data)
-{
- m_term_data = data;
- m_kbd_ack = 0;
- m_maincpu->set_input_line(INT_9995_INT4, ASSERT_LINE);
-}
void cortex_state::machine_reset()
{
- m_kbd_ack = 1;
- m_vdp_int = 0;
- m_beep->set_state(0);
- membank("bankr0")->set_entry(1); // point at rom
- membank("bankw0")->set_entry(0); // always write to ram
+ uint8_t* ROM = memregion("maincpu")->base();
+ memcpy(m_p_ram, ROM, 0x6000);
m_maincpu->ready_line(ASSERT_LINE);
}
-DRIVER_INIT_MEMBER( cortex_state, init )
-{
- uint8_t *main = memregion("maincpu")->base();
-
- membank("bankr0")->configure_entry(1, &main[0x10000]);
- membank("bankr0")->configure_entry(0, &main[0x00000]);
- membank("bankw0")->configure_entry(0, &main[0x00000]);
-}
-
static MACHINE_CONFIG_START( cortex )
/* basic machine hardware */
/* TMS9995 CPU @ 12.0 MHz */
// Standard variant, no overflow int
// No lines connected yet
- MCFG_TMS99xx_ADD("maincpu", TMS9995, XTAL_12MHz, mem_map, io_map)
+ MCFG_TMS99xx_ADD("maincpu", TMS9995, 12000000, mem_map, io_map)
MCFG_DEVICE_ADD("control", LS259, 0) // IC64
//MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(cortex_state, basic_led_w))
- MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(cortex_state, keyboard_ack_w))
+ //MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(cortex_state, keyboard_ack_w))
//MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(cortex_state, ebus_int_ack_w))
//MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(cortex_state, ebus_to_en_w))
//MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE(cortex_state, disk_size_w))
- MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(cortex_state, romsw_w))
- MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(DEVWRITELINE("beeper", beep_device, set_state))
+ //MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(cortex_state, eprom_on_off_w))
+ //MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(WRITELINE(cortex_state, bell_en_w))
/* video hardware */
- MCFG_DEVICE_ADD( "crtc", TMS9929A, XTAL_10_738635MHz / 2 )
- MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE("maincpu", INT_9995_INT1))
- MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(cortex_state, vdp_int_w))
+ MCFG_DEVICE_ADD( "tms9928a", TMS9929A, XTAL_10_738635MHz / 2 )
MCFG_TMS9928A_VRAM_SIZE(0x4000)
MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" )
- MCFG_SCREEN_UPDATE_DEVICE( "crtc", tms9928a_device, screen_update )
-
- MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
- MCFG_GENERIC_KEYBOARD_CB(PUT(cortex_state, kbd_put))
-
- //MCFG_DEVICE_ADD("uart1", TMS9902, XTAL_12MHz / 4)
- //MCFG_DEVICE_ADD("uart2", TMS9902, XTAL_12MHz / 4)
-
- /* Sound */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("beeper", BEEP, 950) // guess
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
+ MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
MACHINE_CONFIG_END
/* ROM definition */
ROM_START( cortex )
- ROM_REGION( 0x18000, "maincpu", ROMREGION_ERASEFF )
+ ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
ROM_SYSTEM_BIOS(0, "basic", "Cortex Bios")
- ROMX_LOAD( "cortex.ic47", 0x10000, 0x2000, CRC(bdb8c7bd) SHA1(340829dcb7a65f2e830fd5aff82a312e3ed7918f), ROM_BIOS(1))
- ROMX_LOAD( "cortex.ic46", 0x12000, 0x2000, CRC(4de459ea) SHA1(00a42fe556d4ffe1f85b2ce369f544b07fbd06d9), ROM_BIOS(1))
- ROMX_LOAD( "cortex.ic45", 0x14000, 0x2000, CRC(b0c9b6e8) SHA1(4e20c3f0b7546b803da4805cd3b8616f96c3d923), ROM_BIOS(1))
+ ROMX_LOAD( "cortex.ic47", 0x0000, 0x2000, CRC(bdb8c7bd) SHA1(340829dcb7a65f2e830fd5aff82a312e3ed7918f), ROM_BIOS(1))
+ ROMX_LOAD( "cortex.ic46", 0x2000, 0x2000, CRC(4de459ea) SHA1(00a42fe556d4ffe1f85b2ce369f544b07fbd06d9), ROM_BIOS(1))
+ ROMX_LOAD( "cortex.ic45", 0x4000, 0x2000, CRC(b0c9b6e8) SHA1(4e20c3f0b7546b803da4805cd3b8616f96c3d923), ROM_BIOS(1))
ROM_SYSTEM_BIOS(1, "forth", "FIG-Forth")
- ROMX_LOAD( "forth.ic47", 0x10000, 0x2000, CRC(999034be) SHA1(0dcc7404c38aa0ae913101eb0aa98da82104b5d4), ROM_BIOS(2))
- ROMX_LOAD( "forth.ic46", 0x12000, 0x2000, CRC(8eca54cc) SHA1(0f1680e941ef60bb9bde9a4b843b78f30dff3202), ROM_BIOS(2))
+ ROMX_LOAD( "forth.ic47", 0x0000, 0x2000, CRC(999034be) SHA1(0dcc7404c38aa0ae913101eb0aa98da82104b5d4), ROM_BIOS(2))
+ ROMX_LOAD( "forth.ic46", 0x2000, 0x2000, CRC(8eca54cc) SHA1(0f1680e941ef60bb9bde9a4b843b78f30dff3202), ROM_BIOS(2))
ROM_END
/* Driver */
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
-COMP( 1982, cortex, 0, 0, cortex, cortex, cortex_state, init, "Powertran Cybernetics", "Cortex", MACHINE_NOT_WORKING )
+COMP( 1982, cortex, 0, 0, cortex, cortex, cortex_state, 0, "Powertran Cybernetics", "Cortex", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/cps1.cpp b/src/mame/drivers/cps1.cpp
index e47eb632fec..e1034118975 100644
--- a/src/mame/drivers/cps1.cpp
+++ b/src/mame/drivers/cps1.cpp
@@ -5525,8 +5525,8 @@ ROM_START( 1941j )
ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) )
ROM_REGION( 0x0200, "bboardplds", 0 )
- ROM_LOAD( "yi22b.1a", 0x0000, 0x0117, CRC(b5cad2a0) SHA1(3b1232cf821617bc9819fa7b9b3f4e7fc66976f3) )
- ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ ROM_LOAD( "yi22b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal verification required
ROM_END
/* B-Board 89624B-3 */
diff --git a/src/mame/drivers/cps2.cpp b/src/mame/drivers/cps2.cpp
index 6207ce66922..8998908d2df 100644
--- a/src/mame/drivers/cps2.cpp
+++ b/src/mame/drivers/cps2.cpp
@@ -6232,9 +6232,9 @@ ROM_END
ROM_START( sfa )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_WORD_SWAP( "sfze.03d", 0x000000, 0x80000, CRC(ebf2054d) SHA1(6e7b9e4202b86ab237ea5634c98b71b82d812ef2) )
- ROM_LOAD16_WORD_SWAP( "sfz.04b", 0x080000, 0x80000, CRC(8b73b0e5) SHA1(5318761f615c21395366b5333e75eaaa73ef2073) ) // also found as sfze.04c, same hash
- ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) // also found as sfze.05b, same hash
- ROM_LOAD16_WORD_SWAP( "sfz.06", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb) ) // also found as sfze.06, same hash
+ ROM_LOAD16_WORD_SWAP( "sfz.04b", 0x080000, 0x80000, CRC(8b73b0e5) SHA1(5318761f615c21395366b5333e75eaaa73ef2073) )
+ ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) )
+ ROM_LOAD16_WORD_SWAP( "sfz.06", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb) )
ROM_REGION( 0x1000000, "gfx", 0 )
ROM_FILL( 0x000000, 0x800000, 0x00 )
diff --git a/src/mame/drivers/csplayh5.cpp b/src/mame/drivers/csplayh5.cpp
index 6c2c7f06b58..c36bf906b27 100644
--- a/src/mame/drivers/csplayh5.cpp
+++ b/src/mame/drivers/csplayh5.cpp
@@ -94,9 +94,8 @@ public:
DECLARE_DRIVER_INIT(renaimj);
DECLARE_DRIVER_INIT(sengomjk);
DECLARE_DRIVER_INIT(thenanpa);
- DECLARE_DRIVER_INIT(torarech);
DECLARE_DRIVER_INIT(tsuwaku);
-
+
virtual void machine_reset() override;
TIMER_DEVICE_CALLBACK_MEMBER(csplayh5_irq);
DECLARE_WRITE_LINE_MEMBER(csplayh5_vdp0_interrupt);
@@ -428,7 +427,6 @@ DRIVER_INIT_MEMBER(csplayh5_state,pokoachu) { general_init(0x7b1e/2, 0x6018); }
DRIVER_INIT_MEMBER(csplayh5_state,renaimj) { general_init(0x568c/2, 0x6018); }
DRIVER_INIT_MEMBER(csplayh5_state,sengomjk) { general_init(0x5226/2, 0x6018); }
DRIVER_INIT_MEMBER(csplayh5_state,thenanpa) { general_init(0x69ec/2, 0x6018); }
-DRIVER_INIT_MEMBER(csplayh5_state,torarech) { general_init(0x9384/2, 0x6018); }
DRIVER_INIT_MEMBER(csplayh5_state,tsuwaku) { general_init(0x856e/2, 0x6018); }
@@ -841,27 +839,6 @@ ROM_START( tsuwaku )
ROM_LOAD( "gal16v8h.020", 0x000000, 0x040000, CRC(ac5c9495) SHA1(1c54ecf6dedbf8c3a29207c1c91b52e2ff394d9d) )
ROM_END
-ROM_START( torarech )
- ROM_REGION( 0x40000, "maincpu", 0 ) // tmp68301 prg
- ROM_LOAD16_BYTE( "2.ic3", 0x000000, 0x020000, CRC(a7fda49b) SHA1(a7891e574b4d2ae3bcdc40f76b6e67e67d6e72bd) )
- ROM_LOAD16_BYTE( "1.ic2", 0x000001, 0x020000, CRC(887c1a0d) SHA1(a594e3ef6514ed48f097e742633c19e51c10b730) )
-
- DVD_BIOS
-
- ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80
- ROM_LOAD( "11.ic51", 0x000000, 0x020000, CRC(bd785d10) SHA1(ceb91c0f13eafabb8d48384857af6fc555d48951) )
-
- ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs
- ROM_LOAD16_BYTE( "3.ic40", 0x000000, 0x080000, CRC(cbbbab5c) SHA1(ab8ae64b1f2acfab55ba7cbb173f3036a46001e6) )
- ROM_LOAD16_BYTE( "4.ic41", 0x000001, 0x080000, CRC(18412fd8) SHA1(6907ce2739549519e1f3dcee2186f6add219a3c2) )
-
- DISK_REGION( "ide:0:hdd:image" )
- DISK_IMAGE_READONLY( "nb8018", 0, SHA1(cf8758bb2caaba6377b354694123ddec71a4f8e1) )
-
- ROM_REGION( 0x040000, "gal", ROMREGION_ERASE00 )
- ROM_LOAD( "palce16v8h.020", 0x000000, 0xbb2, BAD_DUMP CRC(c8e8605a) SHA1(02e43d9de73256e5c73d6f99834a23cef321d56b) )
-ROM_END
-
ROM_START( nichisel )
ROM_REGION( 0x40000, "maincpu", 0 ) // tmp68301 prg
ROM_LOAD16_BYTE( "2.ic3", 0x000000, 0x020000, CRC(fb84fc3e) SHA1(6b87c3516ceec59ec96012ea6a3d2fa9670a1cb3) )
@@ -939,9 +916,9 @@ GAME( 1998, nichidvd, 0, csplayh5, csplayh5, csplayh5_state, 0,
/* 15 */ GAME( 2000, fuudol, nichidvd, csplayh5, csplayh5, csplayh5_state, fuudol, ROT0, "Nichibutsu/eic", "Fuudol (Japan)", MACHINE_NOT_WORKING )
/* 16 */ GAME( 2000, nuretemi, nichidvd, csplayh5, csplayh5, csplayh5_state, nuretemi, ROT0, "Nichibutsu/Love Factory", "Nurete Mitaino... - Net Idol Hen (Japan)", MACHINE_NOT_WORKING )
/* 17 */ GAME( 2000, tsuwaku, nichidvd, csplayh5, csplayh5, csplayh5_state, tsuwaku, ROT0, "Nichibutsu/Love Factory/Just&Just", "Tsuugakuro no Yuuwaku (Japan)", MACHINE_NOT_WORKING )
-/* 18 */ GAME( 2000, torarech, nichidvd, csplayh5, csplayh5, csplayh5_state, torarech, ROT0, "Nichibutsu/Love Factory/M Friend", "Torarechattano - AV Kantoku Hen (Japan)", MACHINE_NOT_WORKING )
+// 18 : Torarechattano - AV Kantoku Hen : Nichibutsu/Love Factory/M Friend
/* sp */ GAME( 2000, nichisel, nichidvd, csplayh5, csplayh5, csplayh5_state, nichisel, ROT0, "Nichibutsu", "DVD Select (Japan)", MACHINE_NOT_WORKING )
// 2001
/* 19 */ GAME( 2001, konhaji, nichidvd, csplayh5, csplayh5, csplayh5_state, konhaji, ROT0, "Nichibutsu/Love Factory", "Konnano Hajimete! (Japan)", MACHINE_NOT_WORKING )
-/* 20 */ // Uwasa no Deaikei Site : Nichibutsu/Love Factory/eic
+// 20 : Uwasa no Deaikei Site : Nichibutsu/Love Factory/eic
diff --git a/src/mame/drivers/cswat.cpp b/src/mame/drivers/cswat.cpp
index 58d5874398c..de9db256c95 100644
--- a/src/mame/drivers/cswat.cpp
+++ b/src/mame/drivers/cswat.cpp
@@ -256,7 +256,7 @@ void cswat_state::machine_start()
static MACHINE_CONFIG_START( cswat )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_18_432MHz/3/4) // HD68A09EP, 1.5MHz?
+ MCFG_CPU_ADD("maincpu", M6809E, XTAL_18_432MHz/3/4) // HD68A09EP, 1.5MHz?
MCFG_CPU_PROGRAM_MAP(cswat_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", cswat_state, irq0_line_assert)
MCFG_CPU_PERIODIC_INT_DRIVER(cswat_state, nmi_handler, 300) // ?
diff --git a/src/mame/drivers/cubo.cpp b/src/mame/drivers/cubo.cpp
index bc80310d5ff..16dc1625f2c 100644
--- a/src/mame/drivers/cubo.cpp
+++ b/src/mame/drivers/cubo.cpp
@@ -1193,7 +1193,7 @@ void cubo_state::chip_ram_w8_hack(offs_t byteoffs, uint8_t data)
void cubo_state::cndypuzl_input_hack()
{
- if (m_maincpu->pc() < m_chip_ram.bytes())
+ if (m_maincpu->pc < m_chip_ram.bytes())
{
uint32_t r_A5 = m_maincpu->state_int(M68K_A5);
chip_ram_w(r_A5 - 0x7ebe, 0x0000);
@@ -1208,7 +1208,7 @@ DRIVER_INIT_MEMBER( cubo_state, cndypuzl )
void cubo_state::haremchl_input_hack()
{
- if (m_maincpu->pc() < m_chip_ram.bytes())
+ if (m_maincpu->pc < m_chip_ram.bytes())
{
uint32_t r_A5 = m_maincpu->state_int(M68K_A5);
uint32_t r_A2 = (chip_ram_r(r_A5 - 0x7f00 + 0) << 16) | (chip_ram_r(r_A5 - 0x7f00 + 2));
@@ -1224,7 +1224,7 @@ DRIVER_INIT_MEMBER( cubo_state, haremchl )
void cubo_state::lsrquiz_input_hack()
{
- if (m_maincpu->pc() < m_chip_ram.bytes())
+ if (m_maincpu->pc < m_chip_ram.bytes())
{
uint32_t r_A5 = m_maincpu->state_int(M68K_A5);
uint32_t r_A2 = (chip_ram_r(r_A5 - 0x7fe0 + 0) << 16) | (chip_ram_r(r_A5 - 0x7fe0 + 2));
@@ -1241,7 +1241,7 @@ DRIVER_INIT_MEMBER( cubo_state, lsrquiz )
/* The hack isn't working if you exit the test mode with P1 button 2 ! */
void cubo_state::lsrquiz2_input_hack()
{
- if (m_maincpu->pc() < m_chip_ram.bytes())
+ if (m_maincpu->pc < m_chip_ram.bytes())
{
uint32_t r_A5 = m_maincpu->state_int(M68K_A5);
uint32_t r_A2 = (chip_ram_r(r_A5 - 0x7fdc + 0) << 16) | (chip_ram_r(r_A5 - 0x7fdc + 2));
@@ -1257,7 +1257,7 @@ DRIVER_INIT_MEMBER( cubo_state, lsrquiz2 )
void cubo_state::lasstixx_input_hack()
{
- if (m_maincpu->pc() < m_chip_ram.bytes())
+ if (m_maincpu->pc < m_chip_ram.bytes())
{
uint32_t r_A5 = m_maincpu->state_int(M68K_A5);
uint32_t r_A2 = (chip_ram_r(r_A5 - 0x7fa2 + 0) << 16) | (chip_ram_r(r_A5 - 0x7fa2 + 2));
@@ -1273,7 +1273,7 @@ DRIVER_INIT_MEMBER(cubo_state, lasstixx)
void cubo_state::mgnumber_input_hack()
{
- if (m_maincpu->pc() < m_chip_ram.bytes())
+ if (m_maincpu->pc < m_chip_ram.bytes())
{
uint32_t r_A5 = m_maincpu->state_int(M68K_A5);
chip_ram_w(r_A5 - 0x7ed8, 0x0000);
@@ -1288,7 +1288,7 @@ DRIVER_INIT_MEMBER( cubo_state, mgnumber )
void cubo_state::mgprem11_input_hack()
{
- if (m_maincpu->pc() < m_chip_ram.bytes())
+ if (m_maincpu->pc < m_chip_ram.bytes())
{
uint32_t r_A5 = m_maincpu->state_int(M68K_A5);
chip_ram_w8_hack(r_A5 - 0x7eca, 0x00);
diff --git a/src/mame/drivers/cvs.cpp b/src/mame/drivers/cvs.cpp
index 2c65f6b02a2..8581b6b4a36 100644
--- a/src/mame/drivers/cvs.cpp
+++ b/src/mame/drivers/cvs.cpp
@@ -1572,7 +1572,7 @@ DRIVER_INIT_MEMBER(cvs_state,hunchbaka)
/* data lines D2 and D5 swapped */
for (offs = 0; offs < 0x7400; offs++)
- ROM[offs] = bitswap<8>(ROM[offs],7,6,2,4,3,5,1,0);
+ ROM[offs] = BITSWAP8(ROM[offs],7,6,2,4,3,5,1,0);
}
@@ -1638,7 +1638,7 @@ DRIVER_INIT_MEMBER(cvs_state,raiders)
/* data lines D1 and D6 swapped */
for (offs = 0; offs < 0x7400; offs++)
- ROM[offs] = bitswap<8>(ROM[offs],7,1,5,4,3,2,6,0);
+ ROM[offs] = BITSWAP8(ROM[offs],7,1,5,4,3,2,6,0);
/* patch out protection */
ROM[0x010a] = 0xc0;
diff --git a/src/mame/drivers/cybertnk.cpp b/src/mame/drivers/cybertnk.cpp
index 666695fac32..27893cc5a88 100644
--- a/src/mame/drivers/cybertnk.cpp
+++ b/src/mame/drivers/cybertnk.cpp
@@ -982,7 +982,7 @@ DRIVER_INIT_MEMBER(cybertnk_state,cybertnk)
// reorder the data to simplify sprite drawing
// we draw 8 pixels at a time, each each nibble contains a pixel, however the original order of 32-bits (8 pixels)
// is along the lines of 04 15 26 37 which is awkward to use
- spr[x] = bitswap<32>(spr[x], 27,26,25,24, 19,18,17,16, 11,10,9,8, 3,2,1,0, 31,30,29,28, 23,22,21,20, 15,14,13,12, 7,6,5,4 );
+ spr[x] = BITSWAP32(spr[x], 27,26,25,24, 19,18,17,16, 11,10,9,8, 3,2,1,0, 31,30,29,28, 23,22,21,20, 15,14,13,12, 7,6,5,4 );
}
}
diff --git a/src/mame/drivers/d400.cpp b/src/mame/drivers/d400.cpp
index 4cd972bab2f..d3d943d8eb0 100644
--- a/src/mame/drivers/d400.cpp
+++ b/src/mame/drivers/d400.cpp
@@ -38,7 +38,7 @@ static INPUT_PORTS_START( d461 )
INPUT_PORTS_END
static MACHINE_CONFIG_START( d461 )
- MCFG_CPU_ADD("maincpu", MC6809E, 4'000'000) // HD68B09EP
+ MCFG_CPU_ADD("maincpu", M6809, 4'000'000)
MCFG_CPU_PROGRAM_MAP(mem_map)
MCFG_DEVICE_ADD("novram", X2210, 0)
diff --git a/src/mame/drivers/d6809.cpp b/src/mame/drivers/d6809.cpp
index c3f05f44b22..8f3a08878c6 100644
--- a/src/mame/drivers/d6809.cpp
+++ b/src/mame/drivers/d6809.cpp
@@ -149,7 +149,7 @@ void d6809_state::machine_reset()
static MACHINE_CONFIG_START( d6809 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_14_7456MHz / 8) // MC68B09EP
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_14_7456MHz / 8) // MC68B09EP
MCFG_CPU_PROGRAM_MAP(mem_map)
MCFG_DEVICE_ADD("acia1", MOS6551, XTAL_14_7456MHz / 8) // uses Q clock
diff --git a/src/mame/drivers/dambustr.cpp b/src/mame/drivers/dambustr.cpp
index ca7c0047e6a..90351597714 100644
--- a/src/mame/drivers/dambustr.cpp
+++ b/src/mame/drivers/dambustr.cpp
@@ -220,7 +220,7 @@ DRIVER_INIT_MEMBER(dambustr_state,dambustr)
// Bit swap addresses
for(i=0; i<4096*4; i++) {
- rom[i] = usr[bitswap<16>(i,15,14,13,12, 4,10,9,8,7,6,5,3,11,2,1,0)];
+ rom[i] = usr[BITSWAP16(i,15,14,13,12, 4,10,9,8,7,6,5,3,11,2,1,0)];
};
// Swap program ROMs
@@ -233,9 +233,9 @@ DRIVER_INIT_MEMBER(dambustr_state,dambustr)
// Bit swap in $1000-$1fff and $4000-$5fff
for(i=0; i<0x1000; i++) {
- rom[0x1000+i] = bitswap<8>(rom[0x1000+i],7,6,5,1,3,2,4,0);
- rom[0x4000+i] = bitswap<8>(rom[0x4000+i],7,6,5,1,3,2,4,0);
- rom[0x5000+i] = bitswap<8>(rom[0x5000+i],7,6,5,1,3,2,4,0);
+ rom[0x1000+i] = BITSWAP8(rom[0x1000+i],7,6,5,1,3,2,4,0);
+ rom[0x4000+i] = BITSWAP8(rom[0x4000+i],7,6,5,1,3,2,4,0);
+ rom[0x5000+i] = BITSWAP8(rom[0x5000+i],7,6,5,1,3,2,4,0);
};
// Swap graphics ROMs
diff --git a/src/mame/drivers/darkmist.cpp b/src/mame/drivers/darkmist.cpp
index 3329aae6f7b..de4202807d2 100644
--- a/src/mame/drivers/darkmist.cpp
+++ b/src/mame/drivers/darkmist.cpp
@@ -336,7 +336,7 @@ void darkmist_state::decrypt_fgbgtiles(uint8_t* rom, int size)
w1 = (rom[i + 0*size/2] << 8) + rom[i + 1*size/2];
- w1 = bitswap<16>(w1, 9,14,7,2, 6,8,3,15, 10,13,5,12, 0,11,4,1);
+ w1 = BITSWAP16(w1, 9,14,7,2, 6,8,3,15, 10,13,5,12, 0,11,4,1);
buf[i + 0*size/2] = w1 >> 8;
buf[i + 1*size/2] = w1 & 0xff;
@@ -345,7 +345,7 @@ void darkmist_state::decrypt_fgbgtiles(uint8_t* rom, int size)
/* address lines */
for (int i = 0;i < size;i++)
{
- rom[i] = buf[bitswap<24>(i,23,22,21,20,19,18,17,16,15,14,13, 5,4,3,2, 12,11,10,9,8, 1,0, 7,6)];
+ rom[i] = buf[BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13, 5,4,3,2, 12,11,10,9,8, 1,0, 7,6)];
}
}
@@ -368,7 +368,7 @@ void darkmist_state::decrypt_gfx()
w1 = (rom[i + 0*size/2] << 8) + rom[i + 1*size/2];
- w1 = bitswap<16>(w1, 9,14,7,2, 6,8,3,15, 10,13,5,12, 0,11,4,1);
+ w1 = BITSWAP16(w1, 9,14,7,2, 6,8,3,15, 10,13,5,12, 0,11,4,1);
buf[i + 0*size/2] = w1 >> 8;
buf[i + 1*size/2] = w1 & 0xff;
@@ -377,7 +377,7 @@ void darkmist_state::decrypt_gfx()
/* address lines */
for (i = 0;i < size;i++)
{
- rom[i] = buf[bitswap<24>(i,23,22,21,20,19,18,17,16,15,14,13,12, 3,2,1, 11,10,9,8, 0, 7,6,5,4)];
+ rom[i] = buf[BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,12, 3,2,1, 11,10,9,8, 0, 7,6,5,4)];
}
decrypt_fgbgtiles(memregion("bg_gfx")->base(), memregion("bg_gfx")->bytes());
@@ -394,7 +394,7 @@ void darkmist_state::decrypt_gfx()
w1 = (rom[i + 0*size/2] << 8) + rom[i + 1*size/2];
- w1 = bitswap<16>(w1, 9,14,7,2, 6,8,3,15, 10,13,5,12, 0,11,4,1);
+ w1 = BITSWAP16(w1, 9,14,7,2, 6,8,3,15, 10,13,5,12, 0,11,4,1);
buf[i + 0*size/2] = w1 >> 8;
buf[i + 1*size/2] = w1 & 0xff;
@@ -403,7 +403,7 @@ void darkmist_state::decrypt_gfx()
/* address lines */
for (i = 0;i < size;i++)
{
- rom[i] = buf[bitswap<24>(i, 23,22,21,20,19,18,17,16,15,14, 12,11,10,9,8, 5,4,3, 13, 7,6, 1,0, 2)];
+ rom[i] = buf[BITSWAP24(i, 23,22,21,20,19,18,17,16,15,14, 12,11,10,9,8, 5,4,3, 13, 7,6, 1,0, 2)];
}
}
@@ -412,7 +412,7 @@ void darkmist_state::decrypt_snd()
uint8_t *ROM = memregion("t5182_z80")->base();
for (int i = 0x0000; i < 0x8000; i++)
- ROM[i] = bitswap<8>(ROM[i], 7, 1, 2, 3, 4, 5, 6, 0);
+ ROM[i] = BITSWAP8(ROM[i], 7, 1, 2, 3, 4, 5, 6, 0);
}
DRIVER_INIT_MEMBER(darkmist_state,darkmist)
@@ -441,8 +441,8 @@ DRIVER_INIT_MEMBER(darkmist_state,darkmist)
if((i & 0x220) != 0x200)
{
- p = bitswap<8>(p, 7,6,5,2,3,4,1,0);
- d = bitswap<8>(d, 7,6,5,2,3,4,1,0);
+ p = BITSWAP8(p, 7,6,5,2,3,4,1,0);
+ d = BITSWAP8(d, 7,6,5,2,3,4,1,0);
}
ROM[i] = d;
@@ -458,7 +458,7 @@ DRIVER_INIT_MEMBER(darkmist_state,darkmist)
for(i=0;i<len;i++)
{
- ROM[i]=buffer[bitswap<24>(i,23,22,21,20,19,18,17,16,7,6,5,4,3,15,14,13,12,9,8,2,1,11,10, 0)];
+ ROM[i]=buffer[BITSWAP24(i,23,22,21,20,19,18,17,16,7,6,5,4,3,15,14,13,12,9,8,2,1,11,10, 0)];
}
@@ -467,7 +467,7 @@ DRIVER_INIT_MEMBER(darkmist_state,darkmist)
memcpy( &buffer[0], ROM, len );
for(i=0;i<len;i++)
{
- ROM[i]=buffer[bitswap<24>(i,23,22,21,20,19,18,17,16,15 ,6,5,4,3,12,11,10,9,14,13,2,1,8,7 ,0 )];
+ ROM[i]=buffer[BITSWAP24(i,23,22,21,20,19,18,17,16,15 ,6,5,4,3,12,11,10,9,14,13,2,1,8,7 ,0 )];
}
}
diff --git a/src/mame/drivers/datum.cpp b/src/mame/drivers/datum.cpp
index cdeafa1f3d9..4525617cc4c 100644
--- a/src/mame/drivers/datum.cpp
+++ b/src/mame/drivers/datum.cpp
@@ -161,7 +161,7 @@ WRITE8_MEMBER( datum_state::pa_w )
data ^= 0xff;
if (m_keydata > 3)
{
- output().set_digit_value(m_keydata, bitswap<8>(data & 0x7f, 7, 0, 5, 6, 4, 2, 1, 3));
+ output().set_digit_value(m_keydata, BITSWAP8(data & 0x7f, 7, 0, 5, 6, 4, 2, 1, 3));
m_keydata = 0;
}
@@ -171,7 +171,7 @@ WRITE8_MEMBER( datum_state::pa_w )
// select keyboard row, select a digit
WRITE8_MEMBER( datum_state::pb_w )
{
- m_keydata = bitswap<8>(data, 7, 6, 5, 4, 0, 1, 2, 3) & 15;
+ m_keydata = BITSWAP8(data, 7, 6, 5, 4, 0, 1, 2, 3) & 15;
return;
}
diff --git a/src/mame/drivers/dblewing.cpp b/src/mame/drivers/dblewing.cpp
index 8ca06f27bb5..bf8a806d051 100644
--- a/src/mame/drivers/dblewing.cpp
+++ b/src/mame/drivers/dblewing.cpp
@@ -148,7 +148,7 @@ uint32_t dblewing_state::screen_update_dblewing(screen_device &screen, bitmap_in
READ16_MEMBER( dblewing_state::wf_protection_region_0_104_r )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco104->read_data( deco146_addr, mem_mask, cs );
return data;
@@ -157,7 +157,7 @@ READ16_MEMBER( dblewing_state::wf_protection_region_0_104_r )
WRITE16_MEMBER( dblewing_state::wf_protection_region_0_104_w )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco104->write_data( space, deco146_addr, data, mem_mask, cs );
}
diff --git a/src/mame/drivers/dcheese.cpp b/src/mame/drivers/dcheese.cpp
index adc477ee864..b31ee921a25 100644
--- a/src/mame/drivers/dcheese.cpp
+++ b/src/mame/drivers/dcheese.cpp
@@ -119,6 +119,7 @@ WRITE16_MEMBER(dcheese_state::eeprom_control_w)
if (ACCESSING_BITS_0_7)
{
ioport("EEPROMOUT")->write(data, 0xff);
+ machine().device<ticket_dispenser_device>("ticket")->write(space, 0, (data & 1) << 7);
}
}
@@ -256,7 +257,6 @@ static INPUT_PORTS_START( dcheese )
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START( "EEPROMOUT" )
- PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("ticket", ticket_dispenser_device, motor_w)
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
@@ -305,7 +305,6 @@ static INPUT_PORTS_START( lottof2 )
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START( "EEPROMOUT" )
- PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("ticket", ticket_dispenser_device, motor_w)
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
@@ -356,7 +355,6 @@ static INPUT_PORTS_START( fredmem )
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START( "EEPROMOUT" )
- PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("ticket", ticket_dispenser_device, motor_w)
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
diff --git a/src/mame/drivers/ddragon.cpp b/src/mame/drivers/ddragon.cpp
index 9aad91084b6..39f15cc31b6 100644
--- a/src/mame/drivers/ddragon.cpp
+++ b/src/mame/drivers/ddragon.cpp
@@ -231,7 +231,7 @@ WRITE8_MEMBER(darktowr_state::darktowr_mcu_bank_w)
if (offset == 0x1400 || offset == 0)
{
- uint8_t const value(bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7));
+ uint8_t const value(BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7));
m_mcu->pb_w(space, 0, value);
logerror("MCU PORT 1 -> %04x (from %04x)\n", value, data);
}
@@ -946,7 +946,7 @@ static MACHINE_CONFIG_START( ddragon )
MCFG_CPU_ADD("sub", HD63701, MAIN_CLOCK / 2) /* 6 MHz / 4 internally */
MCFG_CPU_PROGRAM_MAP(sub_map)
- MCFG_CPU_ADD("soundcpu", MC6809, MAIN_CLOCK / 2) /* 6 MHz / 4 internally */
+ MCFG_CPU_ADD("soundcpu", M6809, MAIN_CLOCK / 8) /* 1.5 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_QUANTUM_TIME(attotime::from_hz(60000)) /* heavy interleaving to sync up sprite<->main CPUs */
@@ -1009,14 +1009,14 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( ddragon6809 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MAIN_CLOCK / 8) /* 1.5 MHz */
+ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK / 8) /* 1.5 MHz */
MCFG_CPU_PROGRAM_MAP(ddragon_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ddragon_state, ddragon_scanline, "screen", 0, 1)
- MCFG_CPU_ADD("sub", MC6809E, MAIN_CLOCK / 8) /* 1.5 Mhz */
+ MCFG_CPU_ADD("sub", M6809, MAIN_CLOCK / 8) /* 1.5 Mhz */
MCFG_CPU_PROGRAM_MAP(sub_map)
- MCFG_CPU_ADD("soundcpu", MC6809E, MAIN_CLOCK / 8) /* 1.5 MHz */
+ MCFG_CPU_ADD("soundcpu", M6809, MAIN_CLOCK / 8) /* 1.5 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_QUANTUM_TIME(attotime::from_hz(60000)) /* heavy interleaving to sync up sprite<->main CPUs */
@@ -2116,27 +2116,27 @@ DRIVER_INIT_MEMBER(toffy_state, toffy)
rom = memregion("maincpu")->base();
length = memregion("maincpu")->bytes();
for (i = 0; i < length; i++)
- rom[i] = bitswap<8>(rom[i], 6,7,5,4,3,2,1,0);
+ rom[i] = BITSWAP8(rom[i], 6,7,5,4,3,2,1,0);
/* and the fg gfx ... */
rom = memregion("gfx1")->base();
length = memregion("gfx1")->bytes();
for (i = 0; i < length; i++)
- rom[i] = bitswap<8>(rom[i], 7,6,5,3,4,2,1,0);
+ rom[i] = BITSWAP8(rom[i], 7,6,5,3,4,2,1,0);
/* and the sprites gfx */
rom = memregion("gfx2")->base();
length = memregion("gfx2")->bytes();
for (i = 0; i < length; i++)
- rom[i] = bitswap<8>(rom[i], 7,6,5,4,3,2,0,1);
+ rom[i] = BITSWAP8(rom[i], 7,6,5,4,3,2,0,1);
/* and the bg gfx */
rom = memregion("gfx3")->base();
length = memregion("gfx3")->bytes();
for (i = 0; i < length / 2; i++)
{
- rom[i + 0*length/2] = bitswap<8>(rom[i + 0*length/2], 7,6,1,4,3,2,5,0);
- rom[i + 1*length/2] = bitswap<8>(rom[i + 1*length/2], 7,6,2,4,3,5,1,0);
+ rom[i + 0*length/2] = BITSWAP8(rom[i + 0*length/2], 7,6,1,4,3,2,5,0);
+ rom[i + 1*length/2] = BITSWAP8(rom[i + 1*length/2], 7,6,2,4,3,5,1,0);
}
/* should the sound rom be bitswapped too? */
diff --git a/src/mame/drivers/ddribble.cpp b/src/mame/drivers/ddribble.cpp
index b1c62fd855b..89e9e55e985 100644
--- a/src/mame/drivers/ddribble.cpp
+++ b/src/mame/drivers/ddribble.cpp
@@ -259,15 +259,15 @@ void ddribble_state::machine_reset()
static MACHINE_CONFIG_START( ddribble )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_18_432MHz/12) /* verified on pcb */
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_18_432MHz/12) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(cpu0_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", ddribble_state, ddribble_interrupt_0)
- MCFG_CPU_ADD("cpu1", MC6809E, XTAL_18_432MHz/12) /* verified on pcb */
+ MCFG_CPU_ADD("cpu1", M6809, XTAL_18_432MHz/12) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(cpu1_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", ddribble_state, ddribble_interrupt_1)
- MCFG_CPU_ADD("cpu2", MC6809E, XTAL_18_432MHz/12) /* verified on pcb */
+ MCFG_CPU_ADD("cpu2", M6809, XTAL_18_432MHz/12) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(cpu2_map)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* we need heavy synch */
diff --git a/src/mame/drivers/de_2.cpp b/src/mame/drivers/de_2.cpp
index 1a458e877fa..648cfdf89a4 100644
--- a/src/mame/drivers/de_2.cpp
+++ b/src/mame/drivers/de_2.cpp
@@ -3,8 +3,8 @@
/*
DataEast/Sega Version 1 and 2
- Main CPU: 6808 @ 4MHz (internally divided by 4)
- Audio CPU: 68B09E @ 2MHz
+ Main CPU: 6808 @ 4MHz
+ Audio CPU: 68B09E @ 8MHz (internally divided by 4)
Audio: YM2151 @ 3.58MHz, MSM5205 @ 384kHz
*/
@@ -288,7 +288,7 @@ WRITE8_MEMBER( de_2_state::dig1_w )
m_segment2 |= 0x30000;
if ((m_segment2 & 0x70000) == 0x30000)
{
- output().set_digit_value(m_strobe+16, bitswap<16>(m_segment2, 11, 15, 12, 10, 8, 14, 13, 9, 7, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(m_strobe+16, BITSWAP16(m_segment2, 11, 15, 12, 10, 8, 14, 13, 9, 7, 6, 5, 4, 3, 2, 1, 0));
m_segment2 |= 0x40000;
}
}
@@ -299,7 +299,7 @@ WRITE8_MEMBER( de_2_state::type2alpha3_dig1_w )
m_segment2 |= 0x20000;
if ((m_segment2 & 0x70000) == 0x30000)
{
- output().set_digit_value(m_strobe+16, bitswap<16>(m_segment2, 11, 15, 12, 10, 8, 14, 13, 9, 7, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(m_strobe+16, BITSWAP16(m_segment2, 11, 15, 12, 10, 8, 14, 13, 9, 7, 6, 5, 4, 3, 2, 1, 0));
m_segment2 |= 0x40000;
}
}
@@ -310,7 +310,7 @@ WRITE8_MEMBER( de_2_state::alpha3_dig1_w )
m_segment2 |= 0x20000;
if ((m_segment2 & 0x70000) == 0x30000)
{
- output().set_digit_value(m_strobe+16, bitswap<16>(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(m_strobe+16, BITSWAP16(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
m_segment2 |= 0x40000;
}
}
@@ -332,7 +332,7 @@ WRITE8_MEMBER( de_2_state::pia2c_pa_w )
m_segment1 |= 0x10000;
if ((m_segment1 & 0x70000) == 0x30000)
{
- output().set_digit_value(m_strobe, bitswap<16>(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(m_strobe, BITSWAP16(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
m_segment1 |= 0x40000;
}
}
@@ -343,7 +343,7 @@ WRITE8_MEMBER( de_2_state::pia2c_pb_w )
m_segment1 |= 0x20000;
if ((m_segment1 & 0x70000) == 0x30000)
{
- output().set_digit_value(m_strobe, bitswap<16>(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(m_strobe, BITSWAP16(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
m_segment1 |= 0x40000;
}
}
@@ -383,7 +383,7 @@ WRITE8_MEMBER( de_2_state::type2alpha3_pia34_pa_w )
m_segment2 |= 0x10000;
if ((m_segment2 & 0x70000) == 0x30000)
{
- output().set_digit_value(m_strobe+16, bitswap<16>(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(m_strobe+16, BITSWAP16(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
m_segment2 |= 0x40000;
}
}
@@ -394,7 +394,7 @@ WRITE8_MEMBER( de_2_state::alpha3_pia34_pa_w )
m_segment2 |= 0x10000;
if ((m_segment2 & 0x70000) == 0x30000)
{
- output().set_digit_value(m_strobe+16, bitswap<16>(m_segment2, 11, 15, 12, 10, 8, 14, 13, 9, 7, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(m_strobe+16, BITSWAP16(m_segment2, 11, 15, 12, 10, 8, 14, 13, 9, 7, 6, 5, 4, 3, 2, 1, 0));
m_segment2 |= 0x40000;
}
}
@@ -518,26 +518,9 @@ WRITE8_MEMBER(de_2_state::lamps_w)
}
-static MACHINE_CONFIG_START( de_bg_audio )
- /* sound CPU */
- MCFG_CPU_ADD("audiocpu", MC6809E, XTAL_8MHz / 4) // MC68B09E
- MCFG_CPU_PROGRAM_MAP(de_2_audio_map)
-
- MCFG_SPEAKER_STANDARD_MONO("bg")
-
- MCFG_YM2151_ADD("ym2151", XTAL_3_579545MHz)
- MCFG_YM2151_IRQ_HANDLER(WRITELINE(de_2_state, ym2151_irq_w))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50)
-
- MCFG_SOUND_ADD("msm5205", MSM5205, XTAL_384kHz)
- MCFG_MSM5205_VCLK_CB(WRITELINE(de_2_state, msm5205_irq_w))
- MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50)
-MACHINE_CONFIG_END
-
static MACHINE_CONFIG_START( de_type1 )
/* basic machine hardware */
- MCFG_DECOCPU_TYPE1_ADD("decocpu", XTAL_8MHz / 2, ":maincpu")
+ MCFG_DECOCPU_TYPE1_ADD("decocpu",XTAL_8MHz / 2, ":maincpu")
MCFG_DECOCPU_DISPLAY(READ8(de_2_state,display_r),WRITE8(de_2_state,display_w))
MCFG_DECOCPU_SOUNDLATCH(WRITE8(de_2_state,sound_w))
MCFG_DECOCPU_SWITCH(READ8(de_2_state,switch_r),WRITE8(de_2_state,switch_w))
@@ -547,13 +530,25 @@ static MACHINE_CONFIG_START( de_type1 )
/* Video */
MCFG_DEFAULT_LAYOUT(layout_de2)
- MCFG_FRAGMENT_ADD(genpin_audio)
- MCFG_FRAGMENT_ADD(de_bg_audio)
+ MCFG_FRAGMENT_ADD( genpin_audio )
+
+ /* sound CPU */
+ MCFG_CPU_ADD("audiocpu", M6809E, 8000000) // MC68B09E
+ MCFG_CPU_PROGRAM_MAP(de_2_audio_map)
+
+ MCFG_SPEAKER_STANDARD_MONO("bg")
+ MCFG_YM2151_ADD("ym2151", 3580000)
+ MCFG_YM2151_IRQ_HANDLER(WRITELINE(de_2_state, ym2151_irq_w))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50)
+ MCFG_SOUND_ADD("msm5205", MSM5205, 384000)
+ MCFG_MSM5205_VCLK_CB(WRITELINE(de_2_state, msm5205_irq_w))
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( de_type2 )
/* basic machine hardware */
- MCFG_DECOCPU_TYPE2_ADD("decocpu", XTAL_8MHz / 2, ":maincpu")
+ MCFG_DECOCPU_TYPE2_ADD("decocpu",XTAL_8MHz / 2, ":maincpu")
MCFG_DECOCPU_DISPLAY(READ8(de_2_state,display_r),WRITE8(de_2_state,display_w))
MCFG_DECOCPU_SOUNDLATCH(WRITE8(de_2_state,sound_w))
MCFG_DECOCPU_SWITCH(READ8(de_2_state,switch_r),WRITE8(de_2_state,switch_w))
@@ -563,13 +558,25 @@ static MACHINE_CONFIG_START( de_type2 )
/* Video */
MCFG_DEFAULT_LAYOUT(layout_de2)
- MCFG_FRAGMENT_ADD(genpin_audio)
- MCFG_FRAGMENT_ADD(de_bg_audio)
+ MCFG_FRAGMENT_ADD( genpin_audio )
+
+ /* sound CPU */
+ MCFG_CPU_ADD("audiocpu", M6809E, 8000000) // MC68B09E
+ MCFG_CPU_PROGRAM_MAP(de_2_audio_map)
+
+ MCFG_SPEAKER_STANDARD_MONO("bg")
+ MCFG_YM2151_ADD("ym2151", 3580000)
+ MCFG_YM2151_IRQ_HANDLER(WRITELINE(de_2_state, ym2151_irq_w))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50)
+ MCFG_SOUND_ADD("msm5205", MSM5205, 384000)
+ MCFG_MSM5205_VCLK_CB(WRITELINE(de_2_state, msm5205_irq_w))
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( de_type2_alpha3 )
/* basic machine hardware */
- MCFG_DECOCPU_TYPE2_ADD("decocpu", XTAL_8MHz / 2, ":maincpu")
+ MCFG_DECOCPU_TYPE2_ADD("decocpu",XTAL_8MHz / 2, ":maincpu")
MCFG_DECOCPU_DISPLAY(READ8(de_2_state,display_r),WRITE8(de_2_state,type2alpha3_display_w))
MCFG_DECOCPU_SOUNDLATCH(WRITE8(de_2_state,sound_w))
MCFG_DECOCPU_SWITCH(READ8(de_2_state,switch_r),WRITE8(de_2_state,switch_w))
@@ -579,13 +586,25 @@ static MACHINE_CONFIG_START( de_type2_alpha3 )
/* Video */
MCFG_DEFAULT_LAYOUT(layout_de2a3)
- MCFG_FRAGMENT_ADD(genpin_audio)
- MCFG_FRAGMENT_ADD(de_bg_audio)
+ MCFG_FRAGMENT_ADD( genpin_audio )
+
+ /* sound CPU */
+ MCFG_CPU_ADD("audiocpu", M6809E, 8000000) // MC68B09E
+ MCFG_CPU_PROGRAM_MAP(de_2_audio_map)
+
+ MCFG_SPEAKER_STANDARD_MONO("bg")
+ MCFG_YM2151_ADD("ym2151", 3580000)
+ MCFG_YM2151_IRQ_HANDLER(WRITELINE(de_2_state, ym2151_irq_w))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50)
+ MCFG_SOUND_ADD("msm5205", MSM5205, 384000)
+ MCFG_MSM5205_VCLK_CB(WRITELINE(de_2_state, msm5205_irq_w))
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( de_type3 )
/* basic machine hardware */
- MCFG_DECOCPU_TYPE3_ADD("decocpu", XTAL_8MHz / 2, ":maincpu")
+ MCFG_DECOCPU_TYPE3_ADD("decocpu",XTAL_8MHz / 2, ":maincpu")
MCFG_DECOCPU_DISPLAY(READ8(de_2_state,display_r),WRITE8(de_2_state,alpha3_display_w))
MCFG_DECOCPU_SOUNDLATCH(WRITE8(de_2_state,sound_w))
MCFG_DECOCPU_SWITCH(READ8(de_2_state,switch_r),WRITE8(de_2_state,switch_w))
@@ -595,8 +614,20 @@ static MACHINE_CONFIG_START( de_type3 )
/* Video */
MCFG_DEFAULT_LAYOUT(layout_de2a3)
- MCFG_FRAGMENT_ADD(genpin_audio)
- MCFG_FRAGMENT_ADD(de_bg_audio)
+ MCFG_FRAGMENT_ADD( genpin_audio )
+
+ /* sound CPU */
+ MCFG_CPU_ADD("audiocpu", M6809E, 8000000) // MC68B09E
+ MCFG_CPU_PROGRAM_MAP(de_2_audio_map)
+
+ MCFG_SPEAKER_STANDARD_MONO("bg")
+ MCFG_YM2151_ADD("ym2151", 3580000)
+ MCFG_YM2151_IRQ_HANDLER(WRITELINE(de_2_state, ym2151_irq_w))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50)
+ MCFG_SOUND_ADD("msm5205", MSM5205, 384000)
+ MCFG_MSM5205_VCLK_CB(WRITELINE(de_2_state, msm5205_irq_w))
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/de_3.cpp b/src/mame/drivers/de_3.cpp
index 1101e44e18c..4086fab7d20 100644
--- a/src/mame/drivers/de_3.cpp
+++ b/src/mame/drivers/de_3.cpp
@@ -211,9 +211,9 @@ WRITE8_MEMBER( de_3_state::dig1_w )
// if ((m_segment2 & 0x70000) == 0x30000)
// {
// if(m_is_alpha3) // Alphanumeric type 2 uses 7 segment LEDs on the bottom row, type 3 uses 14 segment LEDs
-// output().set_digit_value(m_strobe+16, bitswap<16>(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+// output().set_digit_value(m_strobe+16, BITSWAP16(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
// else
-// output().set_digit_value(m_strobe+16, bitswap<16>(m_segment2, 11, 15, 12, 10, 8, 14, 13, 9, 7, 6, 5, 4, 3, 2, 1, 0));
+// output().set_digit_value(m_strobe+16, BITSWAP16(m_segment2, 11, 15, 12, 10, 8, 14, 13, 9, 7, 6, 5, 4, 3, 2, 1, 0));
// m_segment2 |= 0x40000;
// }
}
@@ -246,7 +246,7 @@ WRITE8_MEMBER( de_3_state::pia2c_pa_w )
// m_segment1 |= 0x10000;
// if ((m_segment1 & 0x70000) == 0x30000)
// {
-// output().set_digit_value(m_strobe, bitswap<16>(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+// output().set_digit_value(m_strobe, BITSWAP16(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
// m_segment1 |= 0x40000;
// }
}
@@ -278,7 +278,7 @@ WRITE8_MEMBER( de_3_state::pia2c_pb_w )
// m_segment1 |= 0x20000;
// if ((m_segment1 & 0x70000) == 0x30000)
// {
-// output().set_digit_value(m_strobe, bitswap<16>(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+// output().set_digit_value(m_strobe, BITSWAP16(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
// m_segment1 |= 0x40000;
// }
}
@@ -312,7 +312,7 @@ WRITE8_MEMBER( de_3_state::pia34_pa_w )
// m_segment2 |= 0x10000;
// if ((m_segment2 & 0x70000) == 0x30000)
// {
-// output().set_digit_value(m_strobe+16, bitswap<16>(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+// output().set_digit_value(m_strobe+16, BITSWAP16(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
// m_segment2 |= 0x40000;
// }
}
diff --git a/src/mame/drivers/dec8.cpp b/src/mame/drivers/dec8.cpp
index 986bcb68b2c..be1d52c24f3 100644
--- a/src/mame/drivers/dec8.cpp
+++ b/src/mame/drivers/dec8.cpp
@@ -1957,10 +1957,10 @@ void dec8_state::machine_reset()
static MACHINE_CONFIG_START( lastmisn )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, 2000000)
+ MCFG_CPU_ADD("maincpu", M6809, 2000000)
MCFG_CPU_PROGRAM_MAP(lastmisn_map)
- MCFG_CPU_ADD("sub", MC6809E, 2000000)
+ MCFG_CPU_ADD("sub", M6809, 2000000)
MCFG_CPU_PROGRAM_MAP(lastmisn_sub_map)
MCFG_CPU_ADD("audiocpu", M6502, 1500000)
@@ -2010,10 +2010,10 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( shackled )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, 2000000)
+ MCFG_CPU_ADD("maincpu", M6809, 2000000)
MCFG_CPU_PROGRAM_MAP(shackled_map)
- MCFG_CPU_ADD("sub", MC6809E, 2000000)
+ MCFG_CPU_ADD("sub", M6809, 2000000)
MCFG_CPU_PROGRAM_MAP(shackled_sub_map)
MCFG_CPU_ADD("audiocpu", M6502, 1500000)
@@ -2233,10 +2233,10 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( csilver )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_12MHz/8) /* verified on pcb */
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_12MHz/8) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(csilver_map)
- MCFG_CPU_ADD("sub", MC6809E, XTAL_12MHz/8) /* verified on pcb */
+ MCFG_CPU_ADD("sub", M6809, XTAL_12MHz/8) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(csilver_sub_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", dec8_state, nmi_line_pulse)
@@ -2350,7 +2350,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( srdarwin )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, 2000000) /* MC68A09EP */
+ MCFG_CPU_ADD("maincpu", M6809,2000000) /* MC68A09EP */
MCFG_CPU_PROGRAM_MAP(srdarwin_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", dec8_state, nmi_line_pulse)
@@ -2400,7 +2400,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( cobracom )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, 2000000)
+ MCFG_CPU_ADD("maincpu", M6809, 2000000)
MCFG_CPU_PROGRAM_MAP(cobra_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", dec8_state, nmi_line_pulse)
diff --git a/src/mame/drivers/deco156.cpp b/src/mame/drivers/deco156.cpp
index 7464130722c..3cb1cddf1dd 100644
--- a/src/mame/drivers/deco156.cpp
+++ b/src/mame/drivers/deco156.cpp
@@ -647,7 +647,7 @@ void deco156_state::descramble_sound( const char *tag )
{
uint32_t addr;
- addr = bitswap<24> (x,23,22,21,0, 20,
+ addr = BITSWAP24 (x,23,22,21,0, 20,
19,18,17,16,
15,14,13,12,
11,10,9, 8,
diff --git a/src/mame/drivers/deco32.cpp b/src/mame/drivers/deco32.cpp
index a561781860e..c0f59bd8bdb 100644
--- a/src/mame/drivers/deco32.cpp
+++ b/src/mame/drivers/deco32.cpp
@@ -670,7 +670,7 @@ ADDRESS_MAP_END
READ16_MEMBER( deco32_state::ioprot_r )
{
offs_t real_address = 0 + (offset *2);
- offs_t deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ offs_t deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
return m_ioprot->read_data( deco146_addr, mem_mask, cs );
@@ -679,7 +679,7 @@ READ16_MEMBER( deco32_state::ioprot_r )
WRITE16_MEMBER( deco32_state::ioprot_w )
{
offs_t real_address = 0 + (offset *2);
- offs_t deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ offs_t deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_ioprot->write_data( space, deco146_addr, data, mem_mask, cs );
@@ -760,7 +760,7 @@ WRITE_LINE_MEMBER( nslasher_state::tattass_sound_irq_w )
{
uint8_t data = m_ioprot->soundlatch_r(machine().dummy_space(), 0);
// Swap bits 0 and 3 to correct for design error from BSMT schematic
- data = bitswap<8>(data, 7, 6, 5, 4, 0, 2, 1, 3);
+ data = BITSWAP8(data, 7, 6, 5, 4, 0, 2, 1, 3);
m_decobsmt->bsmt_comms_w(machine().dummy_space(), 0, data);
}
}
diff --git a/src/mame/drivers/deco_mlc.cpp b/src/mame/drivers/deco_mlc.cpp
index 3a6051e097b..f828fa999ef 100644
--- a/src/mame/drivers/deco_mlc.cpp
+++ b/src/mame/drivers/deco_mlc.cpp
@@ -273,7 +273,7 @@ WRITE32_MEMBER( deco_mlc_state::mlc_spriteram_w )
READ16_MEMBER( deco_mlc_state::sh96_protection_region_0_146_r )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco146->read_data( deco146_addr, mem_mask, cs );
return data;
@@ -282,7 +282,7 @@ READ16_MEMBER( deco_mlc_state::sh96_protection_region_0_146_r )
WRITE16_MEMBER( deco_mlc_state::sh96_protection_region_0_146_w )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco146->write_data( space, deco146_addr, data, mem_mask, cs );
}
@@ -887,7 +887,7 @@ void deco_mlc_state::descramble_sound( )
{
uint32_t addr;
- addr = bitswap<24> (x,23,22,21,0, 20,
+ addr = BITSWAP24 (x,23,22,21,0, 20,
19,18,17,16,
15,14,13,12,
11,10,9, 8,
diff --git a/src/mame/drivers/decocass.cpp b/src/mame/drivers/decocass.cpp
index dbed82ba253..dbe3192353c 100644
--- a/src/mame/drivers/decocass.cpp
+++ b/src/mame/drivers/decocass.cpp
@@ -945,7 +945,7 @@ PALETTE_INIT_MEMBER(decocass_state, decocass)
for (i = 0; i < 32; i++)
{
palette.set_pen_indirect(i, i);
- palette.set_pen_indirect(32+i, bitswap<8>(i, 7, 6, 5, 4, 3, 1, 2, 0));
+ palette.set_pen_indirect(32+i, BITSWAP8(i, 7, 6, 5, 4, 3, 1, 2, 0));
}
}
diff --git a/src/mame/drivers/didact.cpp b/src/mame/drivers/didact.cpp
index 917350d8bd7..7258d24df52 100644
--- a/src/mame/drivers/didact.cpp
+++ b/src/mame/drivers/didact.cpp
@@ -268,7 +268,7 @@ WRITE8_MEMBER( md6802_state::pia2_kbB_w )
// LOG("--->%s(%02x)\n", FUNCNAME, data);
/* Store the segment pattern but do not lit up the digit here, done by pulling the correct cathode low on Port A */
- m_segments = bitswap<8>(data, 0, 4, 5, 3, 2, 1, 7, 6);
+ m_segments = BITSWAP8(data, 0, 4, 5, 3, 2, 1, 7, 6);
}
WRITE_LINE_MEMBER( md6802_state::pia2_ca2_w )
diff --git a/src/mame/drivers/dietgo.cpp b/src/mame/drivers/dietgo.cpp
index fb71b277e68..8321a56ccd7 100644
--- a/src/mame/drivers/dietgo.cpp
+++ b/src/mame/drivers/dietgo.cpp
@@ -37,7 +37,7 @@ PAL16R6A 11H
READ16_MEMBER( dietgo_state::dietgo_protection_region_0_104_r )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco104->read_data( deco146_addr, mem_mask, cs );
return data;
@@ -46,7 +46,7 @@ READ16_MEMBER( dietgo_state::dietgo_protection_region_0_104_r )
WRITE16_MEMBER( dietgo_state::dietgo_protection_region_0_104_w )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco104->write_data( space, deco146_addr, data, mem_mask, cs );
}
diff --git a/src/mame/drivers/digel804.cpp b/src/mame/drivers/digel804.cpp
index cd52cf43741..95378832eec 100644
--- a/src/mame/drivers/digel804.cpp
+++ b/src/mame/drivers/digel804.cpp
@@ -315,7 +315,7 @@ READ8_MEMBER( digel804_state::ip46 ) // keypad read
logerror("Digel804: returning %02X for port 46 keypad read\n", kbd);
#endif
- return bitswap<8>(kbd,7,6,5,4,1,0,3,2); // verified from schematics
+ return BITSWAP8(kbd,7,6,5,4,1,0,3,2); // verified from schematics
}
WRITE8_MEMBER( digel804_state::op46 )
diff --git a/src/mame/drivers/divebomb.cpp b/src/mame/drivers/divebomb.cpp
index 0668f081a11..bb1bcfd65e1 100644
--- a/src/mame/drivers/divebomb.cpp
+++ b/src/mame/drivers/divebomb.cpp
@@ -251,7 +251,7 @@ ADDRESS_MAP_END
WRITE8_MEMBER(divebomb_state::rozcpu_bank_w)
{
- uint32_t bank = bitswap<8>(data, 4, 5, 6, 7, 3, 2, 1, 0) >> 4;
+ uint32_t bank = BITSWAP8(data, 4, 5, 6, 7, 3, 2, 1, 0) >> 4;
m_bank1->set_entry(bank);
if (data & 0x0f)
diff --git a/src/mame/drivers/dkong.cpp b/src/mame/drivers/dkong.cpp
index 53e95b3cffd..06348358273 100644
--- a/src/mame/drivers/dkong.cpp
+++ b/src/mame/drivers/dkong.cpp
@@ -1655,8 +1655,8 @@ void dkong_state::braze_decrypt_rom(uint8_t *dest)
{
oldbyte = ROM[mem];
- newmem = ((bitswap<8>((mem >> 8),7,2,3,1,0,6,4,5))<<8) | (mem & 0xff);
- newbyte = bitswap<8>(oldbyte, 1,4,5,7,6,0,3,2);
+ newmem = ((BITSWAP8((mem >> 8),7,2,3,1,0,6,4,5))<<8) | (mem & 0xff);
+ newbyte = BITSWAP8(oldbyte, 1,4,5,7,6,0,3,2);
dest[newmem] = newbyte;
}
@@ -3248,7 +3248,7 @@ void dkong_state::drakton_decrypt_rom(uint8_t mod, int offs, int *bs)
PAL10H8 driven by the counter. */
newbyte = (oldbyte & mod) | (~oldbyte & ~mod);
- newbyte = bitswap<8>(newbyte, bs[0], bs[1], bs[2], bs[3], bs[4], bs[5], bs[6], bs[7]);
+ newbyte = BITSWAP8(newbyte, bs[0], bs[1], bs[2], bs[3], bs[4], bs[5], bs[6], bs[7]);
ROM[mem + offs] = newbyte;
}
diff --git a/src/mame/drivers/dreambal.cpp b/src/mame/drivers/dreambal.cpp
index ef4899e0096..3e0e5714571 100644
--- a/src/mame/drivers/dreambal.cpp
+++ b/src/mame/drivers/dreambal.cpp
@@ -96,7 +96,7 @@ uint32_t dreambal_state::screen_update_dreambal(screen_device &screen, bitmap_in
READ16_MEMBER( dreambal_state::dreambal_protection_region_0_104_r )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco104->read_data( deco146_addr, mem_mask, cs );
return data;
@@ -105,7 +105,7 @@ READ16_MEMBER( dreambal_state::dreambal_protection_region_0_104_r )
WRITE16_MEMBER( dreambal_state::dreambal_protection_region_0_104_w )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco104->write_data( space, deco146_addr, data, mem_mask, cs );
}
diff --git a/src/mame/drivers/dynax.cpp b/src/mame/drivers/dynax.cpp
index 6d06ce33efe..dc4ec3aef85 100644
--- a/src/mame/drivers/dynax.cpp
+++ b/src/mame/drivers/dynax.cpp
@@ -317,9 +317,9 @@ void dynax_state::hnoridur_palette_update(offs_t offset)
{
int x = (m_palette_ram[256 * m_palbank + offset] << 8) + m_palette_ram[256 * m_palbank + offset + 16 * 256];
/* The bits are in reverse order! */
- int r = bitswap<8>((x >> 0) & 0x1f, 7, 6, 5, 0, 1, 2, 3, 4);
- int g = bitswap<8>((x >> 5) & 0x1f, 7, 6, 5, 0, 1, 2, 3, 4);
- int b = bitswap<8>((x >> 10) & 0x1f, 7, 6, 5, 0, 1, 2, 3, 4);
+ 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);
m_palette->set_pen_color(256 * m_palbank + offset, pal5bit(r), pal5bit(g), pal5bit(b));
}
@@ -5345,7 +5345,7 @@ DRIVER_INIT_MEMBER(dynax_state,blktouch)
for (i = 0; i < 0x90000; i++)
{
- src[i] = bitswap<8>(src[i], 7, 6, 5, 3, 4, 2, 1, 0);
+ src[i] = BITSWAP8(src[i], 7, 6, 5, 3, 4, 2, 1, 0);
}
@@ -5353,7 +5353,7 @@ DRIVER_INIT_MEMBER(dynax_state,blktouch)
for (i = 0; i < 0xc0000; i++)
{
- src[i] = bitswap<8>(src[i], 7, 6, 5, 3, 4, 2, 1, 0);
+ src[i] = BITSWAP8(src[i], 7, 6, 5, 3, 4, 2, 1, 0);
}
}
@@ -5387,7 +5387,7 @@ DRIVER_INIT_MEMBER(dynax_state,maya)
std::vector<uint8_t> rom(0xc0000);
memcpy(&rom[0], gfx, 0xc0000);
for (i = 0; i < 0xc0000; i++)
- gfx[i] = rom[bitswap<24>(i, 23, 22, 21, 20, 19, 18, 14, 15, 16, 17, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)];
+ gfx[i] = rom[BITSWAP24(i, 23, 22, 21, 20, 19, 18, 14, 15, 16, 17, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)];
}
}
@@ -5404,7 +5404,7 @@ DRIVER_INIT_MEMBER(dynax_state,mayac)
std::vector<uint8_t> rom(0xc0000);
memcpy(&rom[0], gfx, 0xc0000);
for (i = 0; i < 0xc0000; i++)
- gfx[i] = rom[bitswap<24>(i, 23, 22, 21, 20, 19, 18, 17, 14, 16, 15, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)];
+ gfx[i] = rom[BITSWAP24(i, 23, 22, 21, 20, 19, 18, 17, 14, 16, 15, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)];
}
}
@@ -6324,7 +6324,7 @@ DRIVER_INIT_MEMBER(dynax_state,mjelct3)
memcpy(&rom1[0], rom, size);
for (i = 0; i < size; i++)
- rom[i] = bitswap<8>(rom1[bitswap<24>(i,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8, 1,6,5,4,3,2,7, 0)], 7,6, 1,4,3,2,5,0);
+ rom[i] = BITSWAP8(rom1[BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8, 1,6,5,4,3,2,7, 0)], 7,6, 1,4,3,2,5,0);
}
DRIVER_INIT_MEMBER(dynax_state,mjelct3a)
diff --git a/src/mame/drivers/eacc.cpp b/src/mame/drivers/eacc.cpp
index 416d4fe79ad..ee95ce8c8e1 100644
--- a/src/mame/drivers/eacc.cpp
+++ b/src/mame/drivers/eacc.cpp
@@ -218,7 +218,7 @@ WRITE8_MEMBER( eacc_state::eacc_segment_w )
{
for (i = 3; i < 7; i++)
if (BIT(m_digit, i))
- output().set_digit_value(i, bitswap<8>(data, 7, 0, 1, 4, 5, 6, 2, 3));
+ output().set_digit_value(i, BITSWAP8(data, 7, 0, 1, 4, 5, 6, 2, 3));
}
}
}
diff --git a/src/mame/drivers/ecoinf3.cpp b/src/mame/drivers/ecoinf3.cpp
index 2a990dc2f3d..65de23155e8 100644
--- a/src/mame/drivers/ecoinf3.cpp
+++ b/src/mame/drivers/ecoinf3.cpp
@@ -351,7 +351,7 @@ static const uint16_t ecoin_charset[]=
static uint32_t set_display(uint32_t segin)
{
- return bitswap<32>(segin, 31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,11,9,15,13,12,8,10,14,7,6,5,4,3,2,1,0);
+ return BITSWAP32(segin, 31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,11,9,15,13,12,8,10,14,7,6,5,4,3,2,1,0);
}
void ecoinf3_state::update_display()
diff --git a/src/mame/drivers/ecoinfr.cpp b/src/mame/drivers/ecoinfr.cpp
index c72a1260f24..c92704d99dc 100644
--- a/src/mame/drivers/ecoinfr.cpp
+++ b/src/mame/drivers/ecoinfr.cpp
@@ -323,7 +323,7 @@ WRITE8_MEMBER(ecoinfr_state::ec_port0d_out_cred_data_w)
{
if (m_credsel!=0xff)
{
- uint8_t bf7segdata = bitswap<8>(data,7,0,1,2,3,4,5,6);
+ uint8_t bf7segdata = BITSWAP8(data,7,0,1,2,3,4,5,6);
output().set_digit_value(m_credsel+8, bf7segdata);
}
}
@@ -336,7 +336,7 @@ WRITE8_MEMBER(ecoinfr_state::ec_port0f_out_bank_segdata_w)
{
if (m_banksel!=0xff)
{
- uint8_t bf7segdata = bitswap<8>(data,7,0,1,2,3,4,5,6);
+ uint8_t bf7segdata = BITSWAP8(data,7,0,1,2,3,4,5,6);
output().set_digit_value(m_banksel, bf7segdata);
}
}
diff --git a/src/mame/drivers/elwro800.cpp b/src/mame/drivers/elwro800.cpp
index 43e2cc8adc9..db006dce814 100644
--- a/src/mame/drivers/elwro800.cpp
+++ b/src/mame/drivers/elwro800.cpp
@@ -129,7 +129,7 @@ void elwro800_state::elwro800jr_mmu_w(uint8_t data)
uint8_t cs;
uint8_t ls175;
- ls175 = bitswap<8>(data, 7, 6, 5, 4, 4, 5, 7, 6) & 0x0f;
+ ls175 = BITSWAP8(data, 7, 6, 5, 4, 4, 5, 7, 6) & 0x0f;
cs = prom[((0x0000 >> 10) | (ls175 << 6)) & 0x1ff];
if (!BIT(cs,0))
diff --git a/src/mame/drivers/enigma2.cpp b/src/mame/drivers/enigma2.cpp
index 910adbadc02..7d979fed997 100644
--- a/src/mame/drivers/enigma2.cpp
+++ b/src/mame/drivers/enigma2.cpp
@@ -401,7 +401,7 @@ WRITE8_MEMBER(enigma2_state::sound_data_w)
READ8_MEMBER(enigma2_state::sound_latch_r)
{
- return bitswap<8>(m_sound_latch,0,1,2,3,4,5,6,7);
+ return BITSWAP8(m_sound_latch,0,1,2,3,4,5,6,7);
}
@@ -700,7 +700,7 @@ DRIVER_INIT_MEMBER(enigma2_state,enigma2)
for(i = 0; i < 0x2000; i++)
{
- rom[i] = bitswap<8>(rom[i],4,5,6,0,7,1,3,2);
+ rom[i] = BITSWAP8(rom[i],4,5,6,0,7,1,3,2);
}
}
diff --git a/src/mame/drivers/enmirage.cpp b/src/mame/drivers/enmirage.cpp
index cd850283463..1bec1447996 100644
--- a/src/mame/drivers/enmirage.cpp
+++ b/src/mame/drivers/enmirage.cpp
@@ -78,7 +78,7 @@ protected:
virtual void machine_reset() override;
virtual void video_start() override;
- required_device<mc6809e_device> m_maincpu;
+ required_device<m6809e_device> m_maincpu;
required_device<wd1772_device> m_fdc;
required_device<via6522_device> m_via;
@@ -208,7 +208,7 @@ WRITE8_MEMBER(enmirage_state::mirage_via_write_portb)
}
static MACHINE_CONFIG_START( mirage )
- MCFG_CPU_ADD("maincpu", MC6809E, 2000000)
+ MCFG_CPU_ADD("maincpu", M6809E, 4000000)
MCFG_CPU_PROGRAM_MAP(mirage_map)
MCFG_DEFAULT_LAYOUT( layout_mirage )
diff --git a/src/mame/drivers/epos.cpp b/src/mame/drivers/epos.cpp
index 8f95c060b1d..7b8a0c24c1d 100644
--- a/src/mame/drivers/epos.cpp
+++ b/src/mame/drivers/epos.cpp
@@ -740,19 +740,19 @@ DRIVER_INIT_MEMBER(epos_state,dealer)
/* Key 0 */
for (A = 0; A < 0x8000; A++)
- rom[A] = bitswap<8>(rom[A] ^ 0xbd, 2,6,4,0,5,7,1,3 );
+ rom[A] = BITSWAP8(rom[A] ^ 0xbd, 2,6,4,0,5,7,1,3 );
/* Key 1 */
for (A = 0; A < 0x8000; A++)
- rom[A + 0x10000] = bitswap<8>(rom[A], 7,5,4,6,3,2,1,0 );
+ rom[A + 0x10000] = BITSWAP8(rom[A], 7,5,4,6,3,2,1,0 );
/* Key 2 */
for (A = 0; A < 0x8000; A++)
- rom[A + 0x20000] = bitswap<8>(rom[A] ^ 1, 7,6,5,4,3,0,2,1 );
+ rom[A + 0x20000] = BITSWAP8(rom[A] ^ 1, 7,6,5,4,3,0,2,1 );
/* Key 3 */
for (A = 0; A < 0x8000; A++)
- rom[A + 0x30000] = bitswap<8>(rom[A] ^ 1, 7,5,4,6,3,0,2,1 );
+ rom[A + 0x30000] = BITSWAP8(rom[A] ^ 1, 7,5,4,6,3,0,2,1 );
/*
there is not enough data to determine key 3.
diff --git a/src/mame/drivers/esq1.cpp b/src/mame/drivers/esq1.cpp
index 9b975c7679a..600341203e9 100644
--- a/src/mame/drivers/esq1.cpp
+++ b/src/mame/drivers/esq1.cpp
@@ -57,7 +57,6 @@ TODO:
- Keyboard
- Analog filters and VCA on the back end of the 5503
- SQ-80 support (additional banking, FDC)
- SQ-80 is totally broken now, jumping into unmapped memory
NOTES:
Commands from KPC are all 2 bytes
@@ -580,7 +579,7 @@ INPUT_CHANGED_MEMBER(esq1_state::key_stroke)
}
static MACHINE_CONFIG_START( esq1 )
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_8MHz) // XTAL not directly attached to CPU
+ MCFG_CPU_ADD("maincpu", M6809E, 4000000) // how fast is it?
MCFG_CPU_PROGRAM_MAP(esq1_map)
MCFG_DEVICE_ADD("duart", SCN2681, XTAL_8MHz / 2)
diff --git a/src/mame/drivers/et3400.cpp b/src/mame/drivers/et3400.cpp
index 5d3553fa765..e3d140c5c63 100644
--- a/src/mame/drivers/et3400.cpp
+++ b/src/mame/drivers/et3400.cpp
@@ -92,7 +92,7 @@ template<int digit>
WRITE8_MEMBER(et3400_state::led_w)
{
/* This computer sets each segment, one at a time. */
- uint8_t segdata = bitswap<8>(~data, 7, 0, 1, 2, 3, 4, 5, 6);
+ uint8_t segdata = BITSWAP8(~data, 7, 0, 1, 2, 3, 4, 5, 6);
output().set_digit_value(digit, segdata);
}
diff --git a/src/mame/drivers/ettrivia.cpp b/src/mame/drivers/ettrivia.cpp
index cc80a38ee3b..494242b06f6 100644
--- a/src/mame/drivers/ettrivia.cpp
+++ b/src/mame/drivers/ettrivia.cpp
@@ -262,7 +262,7 @@ PALETTE_INIT_MEMBER(ettrivia_state, ettrivia)
bit1 = (color_prom[i+0x100] >> 1) & 0x01;
b = combine_2_weights(weights, bit0, bit1);
- palette.set_pen_color(bitswap<8>(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));
}
}
diff --git a/src/mame/drivers/eva.cpp b/src/mame/drivers/eva.cpp
index c7681d980c5..fe290ddaf8c 100644
--- a/src/mame/drivers/eva.cpp
+++ b/src/mame/drivers/eva.cpp
@@ -123,7 +123,7 @@ WRITE16_MEMBER(eva_state::eva11_write_o)
READ8_MEMBER(eva_state::eva11_read_k)
{
// K84: TMS5100 CTL81(O30)
- u8 ctl = bitswap<8>(m_tms5100->ctl_r(space, 0),7,6,5,4,3,0,1,2) & 0xc;
+ u8 ctl = BITSWAP8(m_tms5100->ctl_r(space, 0),7,6,5,4,3,0,1,2) & 0xc;
// TODO: sensors
diff --git a/src/mame/drivers/evmbug.cpp b/src/mame/drivers/evmbug.cpp
index bc742bb35d9..f93e2da9e2d 100644
--- a/src/mame/drivers/evmbug.cpp
+++ b/src/mame/drivers/evmbug.cpp
@@ -2,23 +2,17 @@
// copyright-holders:Robbbert
/***************************************************************************
-Stuart's Breadboard Project. TMS9995 evaluation kit TMAM6095.
+ Stuart's Breadboard Project. TMS9995 evaluation kit TMAM6095.
-2013-06-02 Skeleton driver.
+ 2013-06-02 Skeleton driver.
-http://www.stuartconner.me.uk/tms9995_eval_module/tms9995_eval_module.htm
+ http://www.avjd51.dsl.pipex.com/tms9995_eval_module/tms9995_eval_module.htm
-It uses TMS9902 UART for comms, but our implementation of that chip is
-not ready for rs232.h as yet.
-
-Press any key to get it started. All input to be in uppercase. Haven't found
-any commands that work as yet.
****************************************************************************/
#include "emu.h"
#include "cpu/tms9900/tms9995.h"
-//#include "machine/tms9902.h"
#include "machine/terminal.h"
@@ -39,9 +33,7 @@ private:
virtual void machine_reset() override;
uint8_t m_term_data;
uint8_t m_term_out;
- bool m_rin;
- bool m_rbrl;
- required_device<tms9995_device> m_maincpu;
+ required_device<cpu_device> m_maincpu;
required_device<generic_terminal_device> m_terminal;
};
@@ -52,10 +44,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, AS_IO, 8, evmbug_state )
ADDRESS_MAP_UNMAP_HIGH
- //AM_RANGE(0x0000, 0x0003) AM_DEVREAD("uart1", tms9902_device, cruread)
- //AM_RANGE(0x0000, 0x001f) AM_DEVWRITE("uart1", tms9902_device, cruwrite)
- AM_RANGE(0x0000, 0x0003) AM_READ(rs232_r)
- AM_RANGE(0x0000, 0x001f) AM_WRITE(rs232_w)
+ AM_RANGE(0x0000, 0x0007) AM_WRITE(rs232_w)
+ AM_RANGE(0x0000, 0x0002) AM_READ(rs232_r)
ADDRESS_MAP_END
/* Input ports */
@@ -64,64 +54,60 @@ INPUT_PORTS_END
READ8_MEMBER( evmbug_state::rs232_r )
{
- if (offset == 0)
- return m_term_data;
- else
+ static uint8_t temp = 0;
+ temp^=0xff;
+ if (offset == 1)
+ return temp;
+
if (offset == 2)
- return (m_rbrl ? 0x20 : 0) | 0xc0;
- else
{
- m_rin ^= 1;
- return m_rin << 7;
+ return 0xff;//(m_term_data) ? 0 : 0xff;
}
+
+ uint8_t ret = m_term_data;
+ m_term_data = 0;
+ return ret;
}
WRITE8_MEMBER( evmbug_state::rs232_w )
{
- if (offset < 8)
- {
- if (offset == 0)
- m_term_out = 0;
+ if (offset == 0)
+ m_term_out = 0;
- m_term_out |= (data << offset);
+ m_term_out |= (data << offset);
- if (offset == 7)
- m_terminal->write(space, 0, m_term_out & 0x7f);
- }
- else
- if (offset == 18)
- m_rbrl = 0;
+ if (offset == 7)
+ m_terminal->write(space, 0, m_term_out & 0x7f);
}
void evmbug_state::kbd_put(u8 data)
{
m_term_data = data;
- m_rbrl = data ? 1 : 0;
}
void evmbug_state::machine_reset()
{
- m_rbrl = 0;
+ m_term_data = 0;
// Disable auto wait state generation by raising the READY line on reset
- m_maincpu->ready_line(ASSERT_LINE);
+ static_cast<tms9995_device*>(machine().device("maincpu"))->ready_line(ASSERT_LINE);
}
static MACHINE_CONFIG_START( evmbug )
// basic machine hardware
// TMS9995 CPU @ 12.0 MHz
// We have no lines connected yet
- MCFG_TMS99xx_ADD("maincpu", TMS9995, XTAL_12MHz, mem_map, io_map )
+ MCFG_TMS99xx_ADD("maincpu", TMS9995, 12000000, mem_map, io_map )
/* video hardware */
MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0)
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(evmbug_state, kbd_put))
-
- //MCFG_DEVICE_ADD("uart1", TMS9902, XTAL_12MHz / 4)
MACHINE_CONFIG_END
/* ROM definition */
ROM_START( evmbug )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
+// ROM_LOAD( "u8.bin", 0x0000, 0x1000, CRC(bdb8c7bd) SHA1(340829dcb7a65f2e830fd5aff82a312e3ed7918f) )
+// ROM_LOAD( "u9.bin", 0x1000, 0x0800, CRC(4de459ea) SHA1(00a42fe556d4ffe1f85b2ce369f544b07fbd06d9) )
ROM_LOAD( "evmbug.bin", 0x0000, 0x8000, CRC(a239ec56) SHA1(65b500d7d0f897ce0c320cf3ec32ff4042774599) )
ROM_END
diff --git a/src/mame/drivers/excali64.cpp b/src/mame/drivers/excali64.cpp
index c538655f2d8..a9bc490617b 100644
--- a/src/mame/drivers/excali64.cpp
+++ b/src/mame/drivers/excali64.cpp
@@ -524,7 +524,7 @@ MC6845_UPDATE_ROW( excali64_state::update_row )
if (h > 5)
h = 0; // keep us in bounds
// hires definition - pixels are opposite order to characters
- gfx = bitswap<8>(m_p_hiresram[(h << 12) | (chr<<4) | ra], 0, 1, 2, 3, 4, 5, 6, 7);
+ gfx = BITSWAP8(m_p_hiresram[(h << 12) | (chr<<4) | ra], 0, 1, 2, 3, 4, 5, 6, 7);
}
else
gfx = m_p_chargen[(chr<<4) | ra]; // normal character
diff --git a/src/mame/drivers/exidy440.cpp b/src/mame/drivers/exidy440.cpp
index 9132234065f..7b6ff76b66a 100644
--- a/src/mame/drivers/exidy440.cpp
+++ b/src/mame/drivers/exidy440.cpp
@@ -995,7 +995,7 @@ INPUT_PORTS_END
static MACHINE_CONFIG_START( exidy440 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MAIN_CPU_CLOCK)
+ MCFG_CPU_ADD("maincpu", M6809, MAIN_CPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(exidy440_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", exidy440_state, exidy440_vblank_interrupt)
diff --git a/src/mame/drivers/expro02.cpp b/src/mame/drivers/expro02.cpp
index 5b909c257af..0ff353a8d9c 100644
--- a/src/mame/drivers/expro02.cpp
+++ b/src/mame/drivers/expro02.cpp
@@ -1797,7 +1797,7 @@ DRIVER_INIT_MEMBER(expro02_state,expro02)
offset = x;
// swap bits around to simplify further processing
- offset = bitswap<24>(offset, 23, 22, 21, 20, 19, 18, 15, 9, 10, 8, 7, 12, 13, 16, 17, 6, 5, 4, 3, 14, 11, 2, 1, 0);
+ offset = BITSWAP24(offset, 23, 22, 21, 20, 19, 18, 15, 9, 10, 8, 7, 12, 13, 16, 17, 6, 5, 4, 3, 14, 11, 2, 1, 0);
// invert 8 bits
offset ^= 0x0528f;
@@ -1809,7 +1809,7 @@ DRIVER_INIT_MEMBER(expro02_state,expro02)
offset = (offset & ~0x1fe00) | ((offset - 0x09600) & 0x1fe00);
// reverse the initial bitswap
- offset = bitswap<24>(offset, 23, 22, 21, 20, 19, 18, 9, 10, 17, 4, 11, 12, 3, 15, 16, 14, 13, 8, 7, 6, 5, 2, 1, 0);
+ offset = BITSWAP24(offset, 23, 22, 21, 20, 19, 18, 9, 10, 17, 4, 11, 12, 3, 15, 16, 14, 13, 8, 7, 6, 5, 2, 1, 0);
// swap nibbles to use the same gfxdecode
dst[x] = (src[offset] << 4 & 0xF0F0F0F0) | (src[offset] >> 4 & 0x0F0F0F0F);
diff --git a/src/mame/drivers/exprraid.cpp b/src/mame/drivers/exprraid.cpp
index 14ae38946c9..97ee4be9c18 100644
--- a/src/mame/drivers/exprraid.cpp
+++ b/src/mame/drivers/exprraid.cpp
@@ -494,7 +494,7 @@ static MACHINE_CONFIG_START( exprraid )
MCFG_CPU_PROGRAM_MAP(master_map)
MCFG_CPU_IO_MAP(master_io_map)
- MCFG_CPU_ADD("slave", MC6809, XTAL_12MHz / 2) // MC68B09P
+ MCFG_CPU_ADD("slave", M6809, XTAL_12MHz / 8)
MCFG_CPU_PROGRAM_MAP(slave_map)
/* IRQs are caused by the YM3526 */
diff --git a/src/mame/drivers/fgoal.cpp b/src/mame/drivers/fgoal.cpp
index 70a654ef039..6545b82484b 100644
--- a/src/mame/drivers/fgoal.cpp
+++ b/src/mame/drivers/fgoal.cpp
@@ -171,14 +171,14 @@ READ8_MEMBER(fgoal_state::shifter_r)
{
uint8_t v = m_mb14241->shift_result_r(space, 0);
- return bitswap<8>(v, 7, 6, 5, 4, 3, 2, 1, 0);
+ return BITSWAP8(v, 7, 6, 5, 4, 3, 2, 1, 0);
}
READ8_MEMBER(fgoal_state::shifter_reverse_r)
{
uint8_t v = m_mb14241->shift_result_r(space, 0);
- return bitswap<8>(v, 0, 1, 2, 3, 4, 5, 6, 7);
+ return BITSWAP8(v, 0, 1, 2, 3, 4, 5, 6, 7);
}
diff --git a/src/mame/drivers/fidel6502.cpp b/src/mame/drivers/fidel6502.cpp
index 47cb3612e95..46c144b0db0 100644
--- a/src/mame/drivers/fidel6502.cpp
+++ b/src/mame/drivers/fidel6502.cpp
@@ -351,27 +351,6 @@ CPU D6 to W: (model 6092, tied to VCC otherwise)
- D2-D6: VCC
- D7: TSI BUSY
-------------------
-One interesting clone of The Excellence is the Computerchess Playmate-2. It was
-produced in 1989 by SPS(Bulgaria) and RRR(Riga Radio Factory). The chess program
-ROM is identical to Excellence EP12. All internal circuitry is the same, the only
-difference is the capacitor driving the 555 for IRQ is 10nf instead of 22nf.
-
-What makes it unique is the addition of a chess clock.
-
-connector pinout from main pcb:
-1) 5V
-2) GND
-3) 74HC259.pin9 (Q4) = Row LED driving
-4) 74HC259.pin10 (Q5) = Column LED driving
-5) 74HC259.pin12 (Q7) = Bat. Low signal
-6) 74HC42.pin4 (Q3) = Col-D/Row-4 -> 'White Move' if D-LED blinks
-
-The extra board has a 7474, a К1016ХЛ1 (RTC, or MCU clock driver), a 4-digit
-VFD display, and some buttons for controlling the clock. IRQ frequency is doubled
-presumedly for using the blinking led as seconds counter. It only tracks player time,
-not of the opponent. And it obviously doesn't show chessmove coordinates either.
-
******************************************************************************
@@ -581,7 +560,7 @@ WRITE8_MEMBER(fidel6502_state::csc_pia0_pa_w)
m_speech->data_w(space, 0, data & 0x3f);
// d0-d7: data for the 4 7seg leds, bits are ABFGHCDE (H is extra led)
- m_7seg_data = bitswap<8>(data,0,1,5,6,7,2,3,4);
+ m_7seg_data = BITSWAP8(data,0,1,5,6,7,2,3,4);
csc_prepare_display();
}
@@ -687,7 +666,7 @@ WRITE8_MEMBER(fidel6502_state::eas_segment_w)
{
// a0-a2,d7: digit segment
m_7seg_data = (data & 0x80) >> offset;
- m_7seg_data = bitswap<8>(m_7seg_data,7,6,4,5,0,2,1,3);
+ m_7seg_data = BITSWAP8(m_7seg_data,7,6,4,5,0,2,1,3);
eas_prepare_display();
}
@@ -912,11 +891,11 @@ WRITE8_MEMBER(fidel6502_state::fexcel_ttl_w)
m_dac->write(BIT(sel, 9));
// 74259 Q4-Q7,Q2,Q1: digit/led select (active low)
- u8 led_sel = ~bitswap<8>(m_led_select,0,3,1,2,7,6,5,4) & 0x3f;
+ u8 led_sel = ~BITSWAP8(m_led_select,0,3,1,2,7,6,5,4) & 0x3f;
// a0-a2,d1: digit segment data (model 6093)
m_7seg_data = (m_7seg_data & ~mask) | ((data & 2) ? mask : 0);
- u8 seg_data = bitswap<8>(m_7seg_data,0,1,3,2,7,5,6,4);
+ u8 seg_data = BITSWAP8(m_7seg_data,0,1,3,2,7,5,6,4);
// update display: 4 7seg leds, 2*8 chessboard leds
for (int i = 0; i < 6; i++)
@@ -1009,7 +988,7 @@ WRITE8_MEMBER(fidel6502_state::fdesdis_control_w)
WRITE8_MEMBER(fidel6502_state::fdesdis_lcd_w)
{
// a0-a2,d0-d3: 4*74259 to lcd digit segments
- u32 mask = bitswap<8>(1 << offset,3,7,6,0,1,2,4,5);
+ u32 mask = BITSWAP8(1 << offset,3,7,6,0,1,2,4,5);
for (int i = 0; i < 4; i++)
{
m_7seg_data = (m_7seg_data & ~mask) | ((data >> i & 1) ? 0 : mask);
diff --git a/src/mame/drivers/fidel68k.cpp b/src/mame/drivers/fidel68k.cpp
index f8017727bab..581aba0581c 100644
--- a/src/mame/drivers/fidel68k.cpp
+++ b/src/mame/drivers/fidel68k.cpp
@@ -11,6 +11,7 @@
such as Arena(in editmode).
TODO:
+ - fex68km3 addressmap RAM mirror? PCB has 2*32K RAM, emulated has 16K+64K
- USART is not emulated
- V9(68030 @ 32MHz) is faster than V10(68040 @ 25MHz) but it should be the other
way around, culprit is unemulated cache?
@@ -28,7 +29,7 @@ PCB label 510-1129A01
PCB has edge connector for module, but no external slot
There's room for 2 SIMMs at U22 and U23. Unpopulated in Excel 68000, used for
-128KB hashtable RAM in Mach II. Mach III has wire mods to U8/U9(2*8KB + 2*32KB piggybacked).
+128KB hashtable RAM in Mach II. Mach III has wire mods to U8/U9(2*32KB).
I/O is via TTL, overall very similar to EAG.
@@ -45,13 +46,6 @@ PCB label 510.1134A02
ROM address/data lines are scrambled, presumed for easy placement on PCB and not
for obfuscation. I/O is nearly the same as Designer Display on 6502 hardware.
-Designer Mach IV Master 2325 (model 6129)
------------------------------------------
-32KB(4*P5164-70) + 512KB(TC518512PL-80) RAM, 64KB ROM(TMS 27C512-120JL)
-MC68EC020RP25 CPU, 20MHz XTAL
-PCB label 510.1149A01
-It has a green "Shift" led instead of red, and ROM is not scrambled.
-
******************************************************************************
@@ -187,8 +181,7 @@ B0000x-xxxxxx: see V7, -800000
#include "speaker.h"
// internal artwork
-#include "fidel_desdis_68kg.lh" // clickable
-#include "fidel_desdis_68kr.lh" // clickable
+#include "fidel_desdis_68k.lh" // clickable
#include "fidel_ex_68k.lh" // clickable
#include "fidel_eag_68k.lh" // clickable
@@ -210,9 +203,9 @@ public:
DECLARE_WRITE8_MEMBER(fex68k_mux_w);
// Designer Master
- DECLARE_WRITE8_MEMBER(fdes68k_control_w);
- DECLARE_READ8_MEMBER(fdes68k_input_r);
- DECLARE_WRITE8_MEMBER(fdes68k_lcd_w);
+ DECLARE_WRITE8_MEMBER(fdes2265_control_w);
+ DECLARE_READ8_MEMBER(fdes2265_input_r);
+ DECLARE_WRITE8_MEMBER(fdes2265_lcd_w);
DECLARE_DRIVER_INIT(fdes2265);
// EAG(6114/6117)
@@ -249,7 +242,7 @@ WRITE8_MEMBER(fidel68k_state::fex68k_mux_w)
Designer Master
******************************************************************************/
-WRITE8_MEMBER(fidel68k_state::fdes68k_control_w)
+WRITE8_MEMBER(fidel68k_state::fdes2265_control_w)
{
u8 q3_old = m_led_select & 8;
@@ -280,16 +273,16 @@ WRITE8_MEMBER(fidel68k_state::fdes68k_control_w)
display_update();
}
-READ8_MEMBER(fidel68k_state::fdes68k_input_r)
+READ8_MEMBER(fidel68k_state::fdes2265_input_r)
{
- // a1-a3,d7(d15): multiplexed inputs (active low)
+ // a1-a3,d7: multiplexed inputs (active low)
return (read_inputs(9) >> offset & 1) ? 0 : 0x80;
}
-WRITE8_MEMBER(fidel68k_state::fdes68k_lcd_w)
+WRITE8_MEMBER(fidel68k_state::fdes2265_lcd_w)
{
// a1-a3,d0-d3: 4*74259 to lcd digit segments
- u32 mask = bitswap<8>(1 << offset,3,7,6,0,1,2,4,5);
+ u32 mask = BITSWAP8(1 << offset,3,7,6,0,1,2,4,5);
for (int i = 0; i < 4; i++)
{
m_7seg_data = (m_7seg_data & ~mask) | ((data >> i & 1) ? mask : 0);
@@ -304,13 +297,13 @@ DRIVER_INIT_MEMBER(fidel68k_state, fdes2265)
// descramble data lines
for (int i = 0; i < len; i++)
- rom[i] = bitswap<16>(rom[i], 15,14,8,13,9,12,10,11, 3,4,5,7,6,0,1,2);
+ rom[i] = BITSWAP16(rom[i], 15,14,8,13,9,12,10,11, 3,4,5,7,6,0,1,2);
// descramble address lines
std::vector<u16> buf(len);
memcpy(&buf[0], rom, len*2);
for (int i = 0; i < len; i++)
- rom[i] = buf[bitswap<24>(i, 23,22,21,20,19,18,17,16, 15,14,13,12,11,8,10,9, 7,6,5,4,3,2,1,0)];
+ rom[i] = buf[BITSWAP24(i, 23,22,21,20,19,18,17,16, 15,14,13,12,11,8,10,9, 7,6,5,4,3,2,1,0)];
}
@@ -325,7 +318,7 @@ void fidel68k_state::eag_prepare_display()
{
// Excel 68000: 4*7seg leds, 8*8 chessboard leds
// EAG: 8*7seg leds(2 panels), (8+1)*8 chessboard leds
- u8 seg_data = bitswap<8>(m_7seg_data,0,1,3,2,7,5,6,4);
+ u8 seg_data = BITSWAP8(m_7seg_data,0,1,3,2,7,5,6,4);
set_display_segmask(0x1ff, 0x7f);
display_matrix(16, 9, m_led_data << 8 | seg_data, m_inp_mux);
}
@@ -400,21 +393,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( fdes2265_map, AS_PROGRAM, 16, fidel68k_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x00ffff) AM_ROM
- AM_RANGE(0x000000, 0x00000f) AM_WRITE8(fdes68k_lcd_w, 0x00ff)
+ AM_RANGE(0x000000, 0x00000f) AM_WRITE8(fdes2265_lcd_w, 0x00ff)
AM_RANGE(0x044000, 0x047fff) AM_RAM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x140000, 0x14000f) AM_READ8(fdes68k_input_r, 0xff00)
- AM_RANGE(0x140000, 0x14000f) AM_WRITE8(fdes68k_control_w, 0x00ff)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( fdes2325_map, AS_PROGRAM, 32, fidel68k_state )
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x000000, 0x00ffff) AM_ROM
- AM_RANGE(0x100000, 0x10000f) AM_WRITE8(fdes68k_lcd_w, 0x00ff00ff)
- AM_RANGE(0x140000, 0x14000f) AM_WRITE8(fdes68k_control_w, 0x00ff00ff)
- AM_RANGE(0x180000, 0x18000f) AM_READ8(fdes68k_input_r, 0xff00ff00)
- AM_RANGE(0x300000, 0x37ffff) AM_RAM
- AM_RANGE(0x500000, 0x507fff) AM_RAM
+ AM_RANGE(0x140000, 0x14000f) AM_READ8(fdes2265_input_r, 0xff00)
+ AM_RANGE(0x140000, 0x14000f) AM_WRITE8(fdes2265_control_w, 0x00ff)
ADDRESS_MAP_END
@@ -486,7 +469,7 @@ static INPUT_PORTS_START( fex68k )
INPUT_PORTS_END
-static INPUT_PORTS_START( fdes68k )
+static INPUT_PORTS_START( fdes )
PORT_INCLUDE( fidel_cb_buttons )
PORT_START("IN.8")
@@ -574,7 +557,7 @@ static MACHINE_CONFIG_START( fdes2265 )
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel68k_state, irq_off, attotime::from_hz(597))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_fidel_desdis_68kr)
+ MCFG_DEFAULT_LAYOUT(layout_fidel_desdis_68k)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("speaker")
@@ -583,15 +566,6 @@ static MACHINE_CONFIG_START( fdes2265 )
MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( fdes2325, fdes2265 )
-
- /* basic machine hardware */
- MCFG_CPU_REPLACE("maincpu", M68EC020, XTAL_20MHz) // MC68EC020RP25
- MCFG_CPU_PROGRAM_MAP(fdes2325_map)
-
- MCFG_DEFAULT_LAYOUT(layout_fidel_desdis_68kg)
-MACHINE_CONFIG_END
-
static MACHINE_CONFIG_START( eag )
/* basic machine hardware */
@@ -688,14 +662,6 @@ ROM_START( fdes2265 ) // model 6113, PCB label 510.1134A02
ROM_LOAD16_BYTE("13o_blue.ic10", 0x00001, 0x08000, CRC(81ce7ab2) SHA1(f01a70bcf2fbfe66c7a77d3c4437d897e5cc682d) ) // "
ROM_END
-ROM_START( fdes2325 ) // model 6129, PCB label 510.1149A01
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("61_29_white.ic10", 0x00000, 0x10000, CRC(f74157e1) SHA1(87f3f2d584e292f81593e053240d022cc477834d) ) // 27c512
-
- ROM_REGION( 0x100, "pals", 0 )
- ROM_LOAD("101-1097a01.ic19", 0x000, 0x100, NO_DUMP ) // PALCE16V8Q-25PC
-ROM_END
-
ROM_START( feagv2 ) // from a V2 board
ROM_REGION16_BE( 0x20000, "maincpu", 0 )
@@ -749,18 +715,17 @@ ROM_END
Drivers
******************************************************************************/
-// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
-CONS( 1987, fex68k, 0, 0, fex68k, fex68k, fidel68k_state, 0, "Fidelity Electronics", "Excel 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1988, fex68km2, fex68k, 0, fex68km2, fex68k, fidel68k_state, 0, "Fidelity Electronics", "Excel 68000 Mach II (rev. C+)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1988, fex68km3, fex68k, 0, fex68km3, fex68k, fidel68k_state, 0, "Fidelity Electronics", "Excel 68000 Mach III Master", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-
-CONS( 1989, fdes2265, 0, 0, fdes2265, fdes68k, fidel68k_state, fdes2265, "Fidelity Electronics", "Designer Mach III Master 2265", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1991, fdes2325, fdes2265, 0, fdes2325, fdes68k, fidel68k_state, 0, "Fidelity Electronics", "Designer Mach IV Master 2325", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-
-CONS( 1989, feagv2, 0, 0, eag, eag, fidel68k_state, eag, "Fidelity Electronics", "Elite Avant Garde (model 6114-2/3/4, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1989, feagv2a, feagv2, 0, eag, eag, fidel68k_state, eag, "Fidelity Electronics", "Elite Avant Garde (model 6114-2/3/4, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1990, feagv7, feagv2, 0, eagv7, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-7, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1990, feagv7a, feagv2, 0, eagv7, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-7, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1990, feagv9, feagv2, 0, eagv9, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-9)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1990, feagv10, feagv2, 0, eagv10, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 2002, feagv11, feagv2, 0, eagv11, eag, fidel68k_state, 0, "hack (Wilfried Bucke)", "Elite Avant Garde (model 6117-11)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
+// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
+CONS( 1987, fex68k, 0, 0, fex68k, fex68k, fidel68k_state, 0, "Fidelity Electronics", "Excel 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+CONS( 1988, fex68km2, fex68k, 0, fex68km2, fex68k, fidel68k_state, 0, "Fidelity Electronics", "Excel 68000 Mach II (rev. C+)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+CONS( 1988, fex68km3, fex68k, 0, fex68km3, fex68k, fidel68k_state, 0, "Fidelity Electronics", "Excel 68000 Mach III", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+
+CONS( 1989, fdes2265, 0, 0, fdes2265, fdes, fidel68k_state, fdes2265, "Fidelity Electronics", "Designer Mach III Master 2265", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+
+CONS( 1989, feagv2, 0, 0, eag, eag, fidel68k_state, eag, "Fidelity Electronics", "Elite Avant Garde (model 6114-2/3/4, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+CONS( 1989, feagv2a, feagv2, 0, eag, eag, fidel68k_state, eag, "Fidelity Electronics", "Elite Avant Garde (model 6114-2/3/4, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+CONS( 1990, feagv7, feagv2, 0, eagv7, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-7, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+CONS( 1990, feagv7a, feagv2, 0, eagv7, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-7, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+CONS( 1990, feagv9, feagv2, 0, eagv9, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-9)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+CONS( 1990, feagv10, feagv2, 0, eagv10, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
+CONS( 2002, feagv11, feagv2, 0, eagv11, eag, fidel68k_state, 0, "hack (Wilfried Bucke)", "Elite Avant Garde (model 6117-11)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
diff --git a/src/mame/drivers/fidelz80.cpp b/src/mame/drivers/fidelz80.cpp
index 9c788b95989..2ce5b29dcfd 100644
--- a/src/mame/drivers/fidelz80.cpp
+++ b/src/mame/drivers/fidelz80.cpp
@@ -798,7 +798,7 @@ MACHINE_START_MEMBER(fidelz80_state,vcc)
WRITE8_MEMBER(fidelz80_state::vcc_ppi_porta_w)
{
// d0-d6: digit segment data, bits are xABCDEFG
- m_7seg_data = bitswap<8>(data,7,0,1,2,3,4,5,6);
+ m_7seg_data = BITSWAP8(data,7,0,1,2,3,4,5,6);
vcc_prepare_display();
// d0-d5: TSI C0-C5
@@ -860,7 +860,7 @@ WRITE8_MEMBER(fidelz80_state::cc10_ppi_porta_w)
}
// d0-d6: digit segment data (same as VCC)
- m_7seg_data = bitswap<8>(data,7,0,1,2,3,4,5,6);
+ m_7seg_data = BITSWAP8(data,7,0,1,2,3,4,5,6);
vcc_prepare_display();
}
@@ -943,7 +943,7 @@ WRITE8_MEMBER(fidelz80_state::vsc_ppi_porta_w)
m_speech->data_w(space, 0, data & 0x3f);
// d0-d7: data for the 4 7seg leds, bits are HGCBAFED (H is extra led)
- m_7seg_data = bitswap<8>(data,7,6,2,1,0,5,4,3);
+ m_7seg_data = BITSWAP8(data,7,6,2,1,0,5,4,3);
vsc_prepare_display();
}
@@ -1010,7 +1010,7 @@ WRITE8_MEMBER(fidelz80_state::vsc_pio_portb_w)
void fidelz80_state::vbrc_prepare_display()
{
// 14seg led segments, d15 is extra led, d14 is unused (tone on prototype?)
- u16 outdata = bitswap<16>(m_7seg_data,12,13,1,6,5,2,0,7,15,11,10,14,4,3,9,8);
+ u16 outdata = BITSWAP16(m_7seg_data,12,13,1,6,5,2,0,7,15,11,10,14,4,3,9,8);
set_display_segmask(0xff, 0x3fff);
display_matrix(16, 8, outdata, m_led_select);
}
diff --git a/src/mame/drivers/firefox.cpp b/src/mame/drivers/firefox.cpp
index 07ed8cf4b65..bbbd02e35ae 100644
--- a/src/mame/drivers/firefox.cpp
+++ b/src/mame/drivers/firefox.cpp
@@ -724,7 +724,7 @@ GFXDECODE_END
static MACHINE_CONFIG_START( firefox )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MASTER_XTAL/8) // 68B09E
+ MCFG_CPU_ADD("maincpu", M6809E, MASTER_XTAL/2)
MCFG_CPU_PROGRAM_MAP(main_map)
/* interrupts count starting at end of VBLANK, which is 44, so add 44 */
MCFG_TIMER_DRIVER_ADD_SCANLINE("32v", firefox_state, video_timer_callback, "screen", 96+44, 128)
diff --git a/src/mame/drivers/fm7.cpp b/src/mame/drivers/fm7.cpp
index b35f9fbb9df..99e7c8e86ab 100644
--- a/src/mame/drivers/fm7.cpp
+++ b/src/mame/drivers/fm7.cpp
@@ -2057,12 +2057,12 @@ MCFG_ADDRESS_MAP_BANK_STRIDE(0x1000)
static MACHINE_CONFIG_START( fm7 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, 8000000)
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_2MHz)
MCFG_CPU_PROGRAM_MAP(fm7_mem)
MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(fm7_state,fm7_irq_ack)
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_CPU_ADD("sub", MC6809, 8000000)
+ MCFG_CPU_ADD("sub", M6809, XTAL_2MHz)
MCFG_CPU_PROGRAM_MAP(fm7_sub_mem)
MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(fm7_state,fm7_sub_irq_ack)
MCFG_QUANTUM_PERFECT_CPU("sub")
@@ -2079,7 +2079,10 @@ static MACHINE_CONFIG_START( fm7 )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL_16_128MHz, 1024, 0, 640, 262, 0, 200) // H = 15.75 KHz, V = 60.1145 Hz
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_SIZE(640, 200)
+ MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
MCFG_PALETTE_ADD_3BIT_BRG("palette")
@@ -2112,12 +2115,12 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( fm8 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, 4800000) // 1.2MHz 68A09
+ MCFG_CPU_ADD("maincpu", M6809, 1200000) // 1.2MHz 68A09
MCFG_CPU_PROGRAM_MAP(fm8_mem)
MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(fm7_state,fm7_irq_ack)
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_CPU_ADD("sub", MC6809, 4000000)
+ MCFG_CPU_ADD("sub", M6809, XTAL_1MHz)
MCFG_CPU_PROGRAM_MAP(fm7_sub_mem)
MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(fm7_state,fm7_sub_irq_ack)
MCFG_QUANTUM_PERFECT_CPU("sub")
@@ -2132,7 +2135,10 @@ static MACHINE_CONFIG_START( fm8 )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL_16_128MHz, 1024, 0, 640, 262, 0, 200)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_SIZE(640, 200)
+ MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
MCFG_PALETTE_ADD_3BIT_BRG("palette")
@@ -2202,7 +2208,10 @@ static MACHINE_CONFIG_START( fm77av )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(16128000, 1024, 0, 640, 262, 0, 200)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_SIZE(640, 200)
+ MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
MCFG_PALETTE_ADD_3BIT_BRG("palette")
@@ -2277,7 +2286,10 @@ static MACHINE_CONFIG_START( fm11 )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(16128000, 1024, 0, 640, 262, 0, 200)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_SIZE(640, 200)
+ MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
MCFG_PALETTE_ADD_3BIT_BRG("palette")
@@ -2325,7 +2337,10 @@ static MACHINE_CONFIG_START( fm16beta )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(16128000, 1024, 0, 640, 262, 0, 200)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_SIZE(640, 200)
+ MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
MCFG_PALETTE_ADD_3BIT_BRG("palette")
diff --git a/src/mame/drivers/fmtowns.cpp b/src/mame/drivers/fmtowns.cpp
index 2a831e969b2..7d20aba1d41 100644
--- a/src/mame/drivers/fmtowns.cpp
+++ b/src/mame/drivers/fmtowns.cpp
@@ -985,7 +985,6 @@ READ8_MEMBER(towns_state::towns_padport_r)
break;
case MOUSE_START:
case MOUSE_SYNC:
- break;
default:
if(m_towns_mouse_output < MOUSE_Y_LOW)
ret |= 0x0f;
@@ -1073,7 +1072,6 @@ READ8_MEMBER(towns_state::towns_padport_r)
break;
case MOUSE_START:
case MOUSE_SYNC:
- break;
default:
if(m_towns_mouse_output < MOUSE_Y_LOW)
ret |= 0x0f;
diff --git a/src/mame/drivers/forte2.cpp b/src/mame/drivers/forte2.cpp
index bbf52182675..c4292dc3a49 100644
--- a/src/mame/drivers/forte2.cpp
+++ b/src/mame/drivers/forte2.cpp
@@ -147,7 +147,7 @@ DRIVER_INIT_MEMBER(forte2_state,pesadelo)
// data swap
for (int i = 0; i < memsize; i++)
{
- mem[i] = bitswap<8>(mem[i],3,5,6,7,0,4,2,1);
+ mem[i] = BITSWAP8(mem[i],3,5,6,7,0,4,2,1);
}
// address line swap
@@ -155,7 +155,7 @@ DRIVER_INIT_MEMBER(forte2_state,pesadelo)
memcpy(&buf[0], mem, memsize);
for (int i = 0; i < memsize; i++)
{
- mem[bitswap<16>(i,11,9,8,13,14,15,12,7,6,5,4,3,2,1,0,10)] = buf[i];
+ mem[BITSWAP16(i,11,9,8,13,14,15,12,7,6,5,4,3,2,1,0,10)] = buf[i];
}
}
diff --git a/src/mame/drivers/fp1100.cpp b/src/mame/drivers/fp1100.cpp
index e841528204a..90512cec76b 100644
--- a/src/mame/drivers/fp1100.cpp
+++ b/src/mame/drivers/fp1100.cpp
@@ -246,7 +246,7 @@ d7 - 1=display area; 0=cursor
*/
WRITE8_MEMBER( fp1100_state::colour_control_w )
{
- data = bitswap<8>(data, 7, 4, 6, 5, 3, 0, 2, 1); // change BRG to RGB
+ data = BITSWAP8(data, 7, 4, 6, 5, 3, 0, 2, 1); // change BRG to RGB
m_col_border = data & 7;
diff --git a/src/mame/drivers/fp200.cpp b/src/mame/drivers/fp200.cpp
index 798d6b3ccae..20c85836f26 100644
--- a/src/mame/drivers/fp200.cpp
+++ b/src/mame/drivers/fp200.cpp
@@ -554,7 +554,7 @@ void fp200_state::machine_start()
for(int i=0;i<0x800;i++)
{
- m_chargen[i] = raw_gfx[bitswap<16>(i,15,14,13,12,11,6,5,4,3,10,9,8,7,2,1,0)];
+ m_chargen[i] = raw_gfx[BITSWAP16(i,15,14,13,12,11,6,5,4,3,10,9,8,7,2,1,0)];
}
}
diff --git a/src/mame/drivers/funkyjet.cpp b/src/mame/drivers/funkyjet.cpp
index ef3a853e4f6..c453650e867 100644
--- a/src/mame/drivers/funkyjet.cpp
+++ b/src/mame/drivers/funkyjet.cpp
@@ -110,7 +110,7 @@ READ16_MEMBER( funkyjet_state::funkyjet_protection_region_0_146_r )
// uint16_t realdat = deco16_146_funkyjet_prot_r(space,offset&0x3ff,mem_mask);
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, /* note, same bitswap as fghthist */ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, /* note, same bitswap as fghthist */ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco146->read_data( deco146_addr, mem_mask, cs );
@@ -125,7 +125,7 @@ WRITE16_MEMBER( funkyjet_state::funkyjet_protection_region_0_146_w )
// deco16_146_funkyjet_prot_w(space,offset&0x3ff,data,mem_mask);
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, /* note, same bitswap as fghthist */ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, /* note, same bitswap as fghthist */ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) & 0x7fff;
uint8_t cs = 0;
m_deco146->write_data( space, deco146_addr, data, mem_mask, cs );
}
diff --git a/src/mame/drivers/funtech.cpp b/src/mame/drivers/funtech.cpp
index e780b38df9f..1ecd23625dd 100644
--- a/src/mame/drivers/funtech.cpp
+++ b/src/mame/drivers/funtech.cpp
@@ -280,7 +280,7 @@ WRITE8_MEMBER(fun_tech_corp_state::funtech_coins_w)
if (data & 0x01) printf("funtech_coins_w %02x\n", data);
// 80 = hopper motor?
- m_hopper->motor_w(BIT(data, 7));
+ m_hopper->write(space, 0, data & 0x80);
// 40 = ? sometimes
diff --git a/src/mame/drivers/funworld.cpp b/src/mame/drivers/funworld.cpp
index 23418f8fb80..a31afd756f2 100644
--- a/src/mame/drivers/funworld.cpp
+++ b/src/mame/drivers/funworld.cpp
@@ -3712,30 +3712,6 @@ ROM_START( jolycdie ) /* Bootleg PCB, NON encrypted graphics */
ROM_LOAD( "82s147.bin", 0x0000, 0x0200, CRC(fc9a8aa3) SHA1(6f0a98bd0c7a64281bb1cce35de11b76978d7123) ) // sldh
ROM_END
-/* Jolly Card Italian bootleg...
-
- This PCB has an Altera EP910PC CPLD on board
-
- This set doesn't need any NVRAM initialization.
-
- 5 & 6 are coins.
- W is payout.
-*/
-ROM_START( jolycdif ) /* Altera EP910PC CPLD */
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "1.bin", 0x8000, 0x8000, CRC(80983f6a) SHA1(222ce5d4800887de92a73decbad31e96f8da3b4a) )
-
- ROM_REGION( 0x10000, "gfx1", 0 )
- ROM_LOAD( "2.bin", 0x0000, 0x8000, CRC(a4452751) SHA1(a0b32a8801ebaee7ede7873b244f1a424433fe94) )
- ROM_CONTINUE( 0x0000, 0x8000) /* Discarding 1nd half 1ST AND 2ND HALF IDENTICAL*/
- ROM_LOAD( "3.bin", 0x8000, 0x8000, CRC(2856c82d) SHA1(7ce835bc2246ffede180cff0d8d0d4528afcc297) )
- ROM_CONTINUE( 0x8000, 0x8000) /* Discarding 1nd half 1ST AND 2ND HALF IDENTICAL*/
-
- ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "82s147.bin", 0x0000, 0x0200, CRC(5ebc5659) SHA1(8d59011a181399682ab6e8ed14f83101e9bfa0c6) ) // proper dump
-ROM_END
-
-
ROM_START( sjcd2kx3 ) /* Super Joly 2000 3x */
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "sj3.bin", 0x8000, 0x8000, CRC(c530b518) SHA1(36934d8e1e2cb2f71eb44a05b86ec970c9f398cd) )
@@ -6463,7 +6439,7 @@ DRIVER_INIT_MEMBER(funworld_state, saloon)
for (i = start; i < size; i++)
{
- rom[i] = bitswap<8>(rom[i], 7, 6, 5, 4, 3, 0, 1, 2);
+ rom[i] = BITSWAP8(rom[i], 7, 6, 5, 4, 3, 0, 1, 2);
}
{
@@ -6475,7 +6451,7 @@ DRIVER_INIT_MEMBER(funworld_state, saloon)
for (i = start; i < size; i++)
{
- a = ((i & 0xff00) | bitswap<8>(i & 0xff, 2, 0, 1, 3, 4, 5, 6, 7));
+ a = ((i & 0xff00) | BITSWAP8(i & 0xff, 2, 0, 1, 3, 4, 5, 6, 7));
rom[a] = buffer[i];
}
}
@@ -6493,7 +6469,7 @@ DRIVER_INIT_MEMBER(funworld_state, saloon)
for (i = startg; i < sizeg; i++)
{
- a = bitswap<16>(i, 15, 14, 13, 12, 11, 6, 7, 5, 8, 4, 10, 3, 9, 0, 1, 2);
+ a = BITSWAP16(i, 15, 14, 13, 12, 11, 6, 7, 5, 8, 4, 10, 3, 9, 0, 1, 2);
gfxrom[a] = buffer[i];
}
}
@@ -6507,7 +6483,7 @@ DRIVER_INIT_MEMBER(funworld_state, saloon)
for (i = startp; i < sizep; i++)
{
- prom[i] = bitswap<8>(prom[i], 2, 3, 5, 4, 6, 7, 1, 0);
+ prom[i] = BITSWAP8(prom[i], 2, 3, 5, 4, 6, 7, 1, 0);
}
{
@@ -6519,7 +6495,7 @@ DRIVER_INIT_MEMBER(funworld_state, saloon)
for (i = startp; i < sizep; i++)
{
- a = bitswap<16>(i, 15, 14, 13, 12, 11, 10, 9, 4, 8, 7, 6, 5, 2, 0, 1, 3);
+ a = BITSWAP16(i, 15, 14, 13, 12, 11, 10, 9, 4, 8, 7, 6, 5, 2, 0, 1, 3);
prom[a] = buffer[i];
}
}
@@ -6545,7 +6521,7 @@ DRIVER_INIT_MEMBER(funworld_state, multiwin)
ROM[x] = ROM[x] ^ 0x91;
uint8_t code;
- ROM[x] = bitswap<8>(ROM[x],5,6,7,2,3,0,1,4);
+ ROM[x] = BITSWAP8(ROM[x],5,6,7,2,3,0,1,4);
code = ROM[x];
@@ -6577,7 +6553,7 @@ DRIVER_INIT_MEMBER(funworld_state, royalcdc)
uint8_t code;
// this seems correct for the data, plaintext decrypts fine
- ROM[x] = bitswap<8>(ROM[x],2,6,7,4,3,1,5,0);
+ ROM[x] = BITSWAP8(ROM[x],2,6,7,4,3,1,5,0);
// the code uses different encryption, there are conflicts here
// so it's probably address based
@@ -6642,7 +6618,7 @@ DRIVER_INIT_MEMBER(funworld_state, dino4)
for (i = start; i < size; i++)
{
- rom[i] = bitswap<8>(rom[i], 7, 6, 5, 4, 3, 1, 2, 0);
+ rom[i] = BITSWAP8(rom[i], 7, 6, 5, 4, 3, 1, 2, 0);
}
{
@@ -6654,7 +6630,7 @@ DRIVER_INIT_MEMBER(funworld_state, dino4)
for (i = start; i < size; i++)
{
- a = bitswap<16>(i, 15, 13, 14, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+ a = BITSWAP16(i, 15, 13, 14, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
rom[a] = buffer[i];
}
}
@@ -6672,7 +6648,7 @@ DRIVER_INIT_MEMBER(funworld_state, dino4)
for (i = startg; i < sizeg; i++)
{
- a = bitswap<16>(i, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 4, 5, 3, 2, 1, 0);
+ a = BITSWAP16(i, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 4, 5, 3, 2, 1, 0);
gfxrom[a] = buffer[i];
}
}
@@ -6702,7 +6678,7 @@ DRIVER_INIT_MEMBER(funworld_state, ctunk)
for (i = start; i < size; i++)
{
- rom[i] = bitswap<8>(rom[i], 5, 6, 7, 3, 4, 0, 1, 2);
+ rom[i] = BITSWAP8(rom[i], 5, 6, 7, 3, 4, 0, 1, 2);
}
//buffer = std::make_unique<uint8_t[]>(size);
@@ -6746,7 +6722,7 @@ static void decrypt_rcdino4(uint8_t *rom, int size, uint8_t *gfxrom, int sizeg,
for (i = start; i < size; i++)
{
- rom[i] = bitswap<8>(rom[i], 7, 6, 5, 4, 3, 1, 2, 0);
+ rom[i] = BITSWAP8(rom[i], 7, 6, 5, 4, 3, 1, 2, 0);
}
{
@@ -6758,7 +6734,7 @@ static void decrypt_rcdino4(uint8_t *rom, int size, uint8_t *gfxrom, int sizeg,
for (i = start; i < size; i++)
{
- a = bitswap<16>(i, 15, 13, 14, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+ a = BITSWAP16(i, 15, 13, 14, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
rom[a] = buffer[i];
}
@@ -6776,7 +6752,7 @@ static void decrypt_rcdino4(uint8_t *rom, int size, uint8_t *gfxrom, int sizeg,
for (i = startg; i < sizeg; i++)
{
- a = bitswap<16>(i, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 4, 5, 3, 2, 1, 0);
+ a = BITSWAP16(i, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 4, 5, 3, 2, 1, 0);
gfxrom[a] = buffer[i];
}
}
@@ -6787,7 +6763,7 @@ static void decrypt_rcdino4(uint8_t *rom, int size, uint8_t *gfxrom, int sizeg,
for (x = 0x0000; x < 0x10000; x++)
{
- src[x] = bitswap<8>(src[x], 7, 6, 4, 5, 3, 2, 1, 0);
+ src[x] = BITSWAP8(src[x], 7, 6, 4, 5, 3, 2, 1, 0);
src[x] = src[x] ^ 0x81;
}
@@ -7049,8 +7025,7 @@ GAMEL( 1985, sjcd2kx3, jollycrd, fw1stpal, funworld, funworld_state, 0,
GAME( 1986, jolycdab, jollycrd, fw1stpal, funworld, funworld_state, 0, ROT0, "Inter Games", "Jolly Card (Austrian, Fun World, bootleg)", MACHINE_NOT_WORKING )
GAMEL( 1992, jolycdsp, jollycrd, cuoreuno, jolycdit, funworld_state, ctunk, ROT0, "TAB Austria", "Jolly Card (Spanish, blue TAB board, encrypted)", 0, layout_royalcrd )
GAMEL( 1990, jolycdid, jollycrd, cuoreuno, jolycdcr, funworld_state, 0, ROT0, "bootleg", "Jolly Card (Italian, different colors, set 1)", 0, layout_jollycrd ) // italian, CPLD, different colors.
-GAMEL( 1990, jolycdie, jollycrd, cuoreuno, jolycdib, funworld_state, 0, ROT0, "bootleg", "Jolly Card (Italian, different colors, set 2)", 0, layout_jollycrd ) // not from TAB blue PCB.
-GAMEL( 1990, jolycdif, jollycrd, cuoreuno, jolycdib, funworld_state, 0, ROT0, "bootleg", "Jolly Card (Italian, bootleg)", 0, layout_jollycrd ) // italian, CPLD. doesn't need nvram init.
+GAMEL( 1990, jolycdie, jollycrd, cuoreuno, jolycdib, funworld_state, 0, ROT0, "bootleg", "Jolly Card (Italian, different colors, set 2)", 0, layout_jollycrd ) // not from TAB blue PCB
// Bonus Card based...
GAMEL( 1986, bonuscrd, 0, fw2ndpal, bonuscrd, funworld_state, 0, ROT0, "Fun World", "Bonus Card (Austrian)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) // use fw1stpal machine for green background
diff --git a/src/mame/drivers/gaelco.cpp b/src/mame/drivers/gaelco.cpp
index 305b9d85a70..a61d51e855e 100644
--- a/src/mame/drivers/gaelco.cpp
+++ b/src/mame/drivers/gaelco.cpp
@@ -507,7 +507,7 @@ static MACHINE_CONFIG_START( bigkarnk )
MCFG_CPU_PROGRAM_MAP(bigkarnk_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", gaelco_state, irq6_line_hold)
- MCFG_CPU_ADD("audiocpu", MC6809E, 8867000/4) /* 68B09EP, 2.21675 MHz? */
+ MCFG_CPU_ADD("audiocpu", M6809, 8867000/4) /* 68B09, 2.21675 MHz? */
MCFG_CPU_PROGRAM_MAP(bigkarnk_snd_map)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
diff --git a/src/mame/drivers/gaiden.cpp b/src/mame/drivers/gaiden.cpp
index 3435e630598..52a9b9d8149 100644
--- a/src/mame/drivers/gaiden.cpp
+++ b/src/mame/drivers/gaiden.cpp
@@ -1621,7 +1621,7 @@ void gaiden_state::descramble_drgnbowl(int descramble_cpu)
memcpy(&buffer[0], ROM, size);
for( i = 0; i < size; i++ )
{
- ROM[i] = buffer[bitswap<24>(i,23,22,21,20,
+ ROM[i] = buffer[BITSWAP24(i,23,22,21,20,
19,18,17,15,
16,14,13,12,
11,10, 9, 8,
@@ -1638,7 +1638,7 @@ void gaiden_state::descramble_drgnbowl(int descramble_cpu)
memcpy(&buffer[0],ROM,size);
for( i = 0; i < size; i++ )
{
- ROM[i] = buffer[bitswap<24>(i,23,22,21,20,
+ ROM[i] = buffer[BITSWAP24(i,23,22,21,20,
19,18,16,17,
15,14,13, 4,
3,12,11,10,
@@ -1672,7 +1672,7 @@ void gaiden_state::descramble_mastninj_gfx(uint8_t* src)
int i;
for (i = 0;i < len; i++)
{
- buffer[i] = src[bitswap<24>(i,
+ buffer[i] = src[BITSWAP24(i,
23,22,21,20,
19,18,17,16,
15,5,14,13,12,
@@ -1688,7 +1688,7 @@ void gaiden_state::descramble_mastninj_gfx(uint8_t* src)
int i;
for (i = 0; i < len; i++)
{
- buffer[i] = src[bitswap<24>(i,
+ buffer[i] = src[BITSWAP24(i,
23,22,21,20,
19,18,17,16,
15,6,14,13,12,
diff --git a/src/mame/drivers/galaga.cpp b/src/mame/drivers/galaga.cpp
index b90d89a8119..463a0131641 100644
--- a/src/mame/drivers/galaga.cpp
+++ b/src/mame/drivers/galaga.cpp
@@ -3442,14 +3442,14 @@ DRIVER_INIT_MEMBER(xevious_state,xevios)
rom = memregion("gfx3")->base();
for (A = 0x5000;A < 0x7000;A++)
{
- rom[A] = bitswap<8>(rom[A],1,3,5,7,0,2,4,6);
+ rom[A] = BITSWAP8(rom[A],1,3,5,7,0,2,4,6);
}
/* convert one of tile map ROMs to the format used by Xevious */
rom = memregion("gfx4")->base();
for (A = 0x0000;A < 0x1000;A++)
{
- rom[A] = bitswap<8>(rom[A],3,7,5,1,2,6,4,0);
+ rom[A] = BITSWAP8(rom[A],3,7,5,1,2,6,4,0);
}
DRIVER_INIT_CALL(xevious);
diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp
index ca36d3144bd..8f8894bd8c6 100644
--- a/src/mame/drivers/galaxian.cpp
+++ b/src/mame/drivers/galaxian.cpp
@@ -1017,7 +1017,7 @@ void galaxian_state::monsterz_set_latch()
{
// read from a rom (which one?? "a-3e.k3" from audiocpu ($2700-$2fff) looks very suspicious)
uint8_t *rom = memregion("audiocpu")->base();
- m_protection_result = rom[0x2000 | (m_protection_state & 0x1fff)]; // probably needs a bitswap<8>
+ m_protection_result = rom[0x2000 | (m_protection_state & 0x1fff)]; // probably needs a BITSWAP8
// and an irq on the main z80 afterwards
m_maincpu->set_input_line(0, HOLD_LINE );
@@ -1096,7 +1096,7 @@ READ8_MEMBER(galaxian_state::frogger_sound_timer_r)
{
/* same as regular Konami sound but with bits 3,5 swapped */
uint8_t konami_value = konami_sound_timer_r(space, 0);
- return bitswap<8>(konami_value, 7,6,3,4,5,2,1,0);
+ return BITSWAP8(konami_value, 7,6,3,4,5,2,1,0);
}
@@ -1901,29 +1901,6 @@ static ADDRESS_MAP_START( turtles_map, AS_PROGRAM, 8, galaxian_state )
AM_RANGE(0xb800, 0xb83f) AM_MIRROR(0x47c0) AM_READWRITE(turtles_ppi8255_1_r, turtles_ppi8255_1_w)
ADDRESS_MAP_END
-
-/* map NOT derived from schematics */
-static ADDRESS_MAP_START( amigo2_map, AS_PROGRAM, 8, galaxian_state )
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x4000) AM_READ_PORT("IN0") AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0x4001, 0x4001) AM_READ_PORT("IN1")
- AM_RANGE(0x4002, 0x4002) AM_READ_PORT("IN2")
- AM_RANGE(0x4003, 0x4003) AM_READ_PORT("IN3")
- AM_RANGE(0x5000, 0x5000) AM_WRITE(konami_sound_control_w)
- AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(galaxian_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x9000, 0x90ff) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram")
- AM_RANGE(0xa000, 0xa000) AM_WRITE(scramble_background_red_w)
- AM_RANGE(0xa008, 0xa008) AM_WRITE(irq_enable_w)
- AM_RANGE(0xa010, 0xa010) AM_WRITE(galaxian_flip_screen_y_w)
- AM_RANGE(0xa018, 0xa018) AM_WRITE(galaxian_flip_screen_x_w)
- AM_RANGE(0xa020, 0xa020) AM_WRITE(scramble_background_green_w)
- AM_RANGE(0xa028, 0xa028) AM_WRITE(scramble_background_blue_w)
- AM_RANGE(0xa030, 0xa030) AM_WRITE(coin_count_0_w)
- AM_RANGE(0xa038, 0xa038) AM_WRITE(coin_count_1_w)
- AM_RANGE(0xa800, 0xa800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
-ADDRESS_MAP_END
-
static ADDRESS_MAP_START( turpins_map, AS_PROGRAM, 8, galaxian_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
@@ -2096,13 +2073,13 @@ READ8_MEMBER(galaxian_state::froggeram_ppi8255_r)
uint8_t result = 0xff;
if (offset & 0x0100) result &= m_ppi8255[0]->read(space, offset & 3);
if (offset & 0x0200) result &= m_ppi8255[1]->read(space, offset & 3);
- return bitswap<8>(result, 0, 1, 2, 3, 4, 5, 6, 7);
+ return BITSWAP8(result, 0, 1, 2, 3, 4, 5, 6, 7);
}
WRITE8_MEMBER(galaxian_state::froggeram_ppi8255_w)
{
// same as theend, but accesses are scrambled
- data = bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7);
+ data = BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7);
if (offset & 0x0100) m_ppi8255[0]->write(space, offset & 3, data);
if (offset & 0x0200) m_ppi8255[1]->write(space, offset & 3, data);
}
@@ -6063,15 +6040,6 @@ static MACHINE_CONFIG_DERIVED( turtles, konami_base )
MCFG_CPU_PROGRAM_MAP(turtles_map)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( amigo2, galaxian_base ) // bootleg has no i8255s
-
- /* alternate memory map */
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_PROGRAM_MAP(amigo2_map)
-
- MCFG_FRAGMENT_ADD(konami_sound_2x_ay8910)
-MACHINE_CONFIG_END
-
static MACHINE_CONFIG_DERIVED( turpins, turtles )
// the ROMs came from a blister, so there aren't PCB infos available. Chip types and clocks are guessed.
@@ -6352,7 +6320,7 @@ void galaxian_state::decode_mooncrst(int length, uint8_t *dest)
uint8_t res = data;
if (BIT(data,1)) res ^= 0x40;
if (BIT(data,5)) res ^= 0x04;
- if ((offs & 1) == 0) res = bitswap<8>(res,7,2,5,4,3,6,1,0);
+ if ((offs & 1) == 0) res = BITSWAP8(res,7,2,5,4,3,6,1,0);
dest[offs] = res;
}
}
@@ -6437,7 +6405,7 @@ void galaxian_state::decode_dingoe()
/* Swap bit0 with bit4 */
if (offs & 0x02)
- data = bitswap<8>(data, 7,6,5,0,3,2,1,4);
+ data = BITSWAP8(data, 7,6,5,0,3,2,1,4);
rombase[offs] = data;
}
}
@@ -6450,7 +6418,7 @@ void galaxian_state::decode_frogger_sound()
/* the first ROM of the sound CPU has data lines D0 and D1 swapped */
for (offs = 0; offs < 0x800; offs++)
- rombase[offs] = bitswap<8>(rombase[offs], 7,6,5,4,3,2,0,1);
+ rombase[offs] = BITSWAP8(rombase[offs], 7,6,5,4,3,2,0,1);
}
// froggermc has a bigger first ROM of the sound CPU, thus a different decode
@@ -6461,7 +6429,7 @@ void galaxian_state::decode_froggermc_sound()
/* the first ROM of the sound CPU has data lines D0 and D1 swapped */
for (offs = 0; offs < 0x1000; offs++)
- rombase[offs] = bitswap<8>(rombase[offs], 7,6,5,4,3,2,0,1);
+ rombase[offs] = BITSWAP8(rombase[offs], 7,6,5,4,3,2,0,1);
}
@@ -6472,7 +6440,7 @@ void galaxian_state::decode_frogger_gfx()
/* the 2nd gfx ROM has data lines D0 and D1 swapped */
for (offs = 0x0800; offs < 0x1000; offs++)
- rombase[offs] = bitswap<8>(rombase[offs], 7,6,5,4,3,2,0,1);
+ rombase[offs] = BITSWAP8(rombase[offs], 7,6,5,4,3,2,0,1);
}
@@ -6557,7 +6525,7 @@ void galaxian_state::decode_victoryc()
if (i & 0x04) src[i] ^= 0x40;
if (i & 0x01) src[i] ^= 0x08;
- src[i] = bitswap<8>(src[i], 6, 3, 5, 4, 2, 7, 1, 0);
+ src[i] = BITSWAP8(src[i], 6, 3, 5, 4, 2, 7, 1, 0);
}
}
@@ -7200,7 +7168,7 @@ DRIVER_INIT_MEMBER(galaxian_state,mandinga)
{
DRIVER_INIT_CALL(scramble);
- /* watchdog is in a different location */
+ /* watchdog is in a different location) */
address_space &space = m_maincpu->space(AS_PROGRAM);
watchdog_timer_device *wdog = subdevice<watchdog_timer_device>("watchdog");
space.unmap_read(0x7000, 0x7000, 0x7ff);
@@ -7590,20 +7558,6 @@ ROM_START( galaxrfgg )
ROM_LOAD( "gxrf.6l", 0x0000, 0x0020, CRC(992350e5) SHA1(e901b1abd11cc0f02dd6d87b429d8997f762c15d) )
ROM_END
-ROM_START( galaxrcgg )
- ROM_REGION( 0x4000, "maincpu", 0 )
- ROM_LOAD( "7f.bin", 0x0000, 0x1000, CRC(c06eeb10) SHA1(cf1006a7ff02fe8b04a096d802fb8d8937dd913d) )
- ROM_LOAD( "7j.bin", 0x1000, 0x1000, CRC(182ff334) SHA1(11e84aa887679e3fa977f00dd0b57a7df8ca7d88) )
- ROM_LOAD( "7l.bin", 0x2000, 0x1000, CRC(420dbbf6) SHA1(678563afd091528ef358a8deaae4ac3cee62e8f4) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "1hj.bin", 0x0000, 0x0800, CRC(23e627ff) SHA1(11f8f50fcaa29f757f27d77ea2b977f65dc87e38) )
- ROM_LOAD( "1kl.bin", 0x0800, 0x0800, CRC(0dbcee5b) SHA1(b169c6e539a583a99e1e3ef5982d4c1ab395551f) )
-
- ROM_REGION( 0x0020, "proms", 0 ) // not dumped from this board, supposed to be the same
- ROM_LOAD( "gxrf.6l", 0x0000, 0x0020, CRC(992350e5) SHA1(e901b1abd11cc0f02dd6d87b429d8997f762c15d) )
-ROM_END
-
ROM_START( astrians )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "astrians.7h", 0x0000, 0x0800, CRC(21eba3d0) SHA1(d07f141d785c86faca8c40af034c26f2789e9346) )
@@ -10657,35 +10611,6 @@ ROM_START( amigo )
ROM_LOAD( "amidar.clr", 0x0000, 0x0020, CRC(f940dcc3) SHA1(1015e56f37c244a850a8f4bf0e36668f047fd46d) )
ROM_END
-/*
-1x Z8400A-P5-Z80ACPU 10k 8-bit Microprocessor - main
-1x Z8400A-P5-Z80ACPU 3a 8-bit Microprocessor - sound
-2x AY-3-8910 6a,7a Programmable Sound Generator - sound
-1x LM380N 1 Audio Amplifier - sound
-1x oscillator 12.000MHz 12h
-
-PCB is marked: "AMI" on solder side
-*/
-
-ROM_START( amigo2 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "a1.10l", 0x0000, 0x1000, CRC(e4aeac3f) SHA1(661e4badcebb6f6811e9b22d9b1561b64d7e77a9) ) // 2532
- ROM_LOAD( "a2.9l", 0x1000, 0x1000, CRC(66ae3320) SHA1(3eba2f221ab2662b2b638a8822da48964ee2ceff) ) // 2532
- ROM_LOAD( "a3.8l", 0x2000, 0x1000, CRC(c369b877) SHA1(4180afee10637781b408ebb50404dd8102351d46) ) // 2532
- ROM_LOAD( "a4.7l", 0x3000, 0x1000, CRC(2194a1d3) SHA1(3807c2e25288b21e940ff33fb5d1541b559c5c1e) ) // 2532
-
- ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "a7.3b", 0x0000, 0x1000, CRC(8ca7b750) SHA1(4f4c2915503b85abe141d717fd254ee10c9da99e) ) // 2532
- ROM_LOAD( "a8.4b", 0x1000, 0x1000, CRC(9b5bdc0a) SHA1(84d953618c8bf510d23b42232a856ac55f1baff5) ) // 2532
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "a6.3h", 0x0000, 0x0800, CRC(2082ad0a) SHA1(c6014d9575e92adf09b0961c2158a779ebe940c4) ) // 2516
- ROM_LOAD( "a5.5h", 0x0800, 0x0800, CRC(3029f94f) SHA1(3b432b42e79f8b0a7d65e197f373a04e3c92ff20) ) // 2716
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "sn74s288n.1k", 0x0000, 0x0020, CRC(01004d3f) SHA1(e53cbc54ea96e846481a67bbcccf6b1726e70f9c) )
-ROM_END
-
ROM_START( amidars )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "am2d", 0x0000, 0x0800, CRC(24b79547) SHA1(eca735c6a35561a9a6ba8a20dca1e1c78ed073fc) )
@@ -11967,7 +11892,6 @@ GAME( 1979, galaxbsf2, galaxian, galaxian, galaxian, galaxian_state, galax
GAME( 1979, galaxianbl2, galaxian, galaxian, galaxianbl, galaxian_state, galaxian, ROT90, "bootleg", "Galaxian (bootleg, set 4)", MACHINE_SUPPORTS_SAVE )
GAME( 1980, galaxrf, galaxian, galaxian, galaxrf, galaxian_state, galaxian, ROT90, "bootleg (Recreativos Franco S.A.)", "Galaxian (Recreativos Franco S.A. Spanish bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1980, galaxrfgg, galaxian, galaxian, galaxrf, galaxian_state, galaxian, ROT90, "bootleg (Recreativos Franco S.A.)", "Galaxian Growing Galaxip / Galaxian Nave Creciente (Recreativos Franco S.A. Spanish bootleg)", MACHINE_SUPPORTS_SAVE )
-GAME( 1980, galaxrcgg, galaxian, galaxian, galaxrf, galaxian_state, galaxian, ROT90, "bootleg (Recreativos Covadonga)", "Galaxian Growing Galaxip / Galaxian Nave Creciente (Recreativos Covadonga Spanish bootleg)", MACHINE_SUPPORTS_SAVE )
// these have the extra 'linescroll effect' title screens, like Moon Alien 2 but made out of a random tile, they lack an energy bar.
GAME( 1979, moonaln, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "Namco / Nichibutsu (Karateco license?)", "Moon Alien", MACHINE_SUPPORTS_SAVE ) // or bootleg?
@@ -12175,8 +12099,7 @@ GAME( 1981, amidar1, amidar, turtles, amidar, galaxian_state, turtl
GAME( 1982, amidaru, amidar, turtles, amidaru, galaxian_state, turtles, ROT90, "Konami (Stern Electronics license)", "Amidar (Stern Electronics)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, amidaro, amidar, turtles, amidaro, galaxian_state, turtles, ROT90, "Konami (Olympia license)", "Amidar (Olympia)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, amidarb, amidar, turtles, amidaru, galaxian_state, turtles, ROT90, "bootleg", "Amidar (bootleg)", MACHINE_SUPPORTS_SAVE ) /* similar to Amigo bootleg */
-GAME( 1982, amigo, amidar, turtles, amidaru, galaxian_state, turtles, ROT90, "bootleg", "Amigo (bootleg of Amidar, set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, amigo2, amidar, amigo2, amidaru, galaxian_state, turtles, ROT90, "bootleg", "Amigo (bootleg of Amidar, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, amigo, amidar, turtles, amidaru, galaxian_state, turtles, ROT90, "bootleg", "Amigo", MACHINE_SUPPORTS_SAVE )
GAME( 1982, amidars, amidar, scramble, amidars, galaxian_state, scramble, ROT90, "Konami", "Amidar (Scramble hardware)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, mandinga, amidar, scramble, amidars, galaxian_state, mandinga, ROT90, "bootleg (Artemi)", "Mandinga (bootleg of Amidar)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // sound ROMs have identical halves, reference for color http://www.youtube.com/watch?v=6uGK4AZxV2U
diff --git a/src/mame/drivers/gameplan.cpp b/src/mame/drivers/gameplan.cpp
index 4cf8aabac2a..1460568edfa 100644
--- a/src/mame/drivers/gameplan.cpp
+++ b/src/mame/drivers/gameplan.cpp
@@ -986,18 +986,18 @@ static MACHINE_CONFIG_START( gameplan )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
/* via */
- MCFG_DEVICE_ADD("via6522_0", VIA6522, GAMEPLAN_MAIN_CPU_CLOCK)
+ MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(gameplan_state, video_data_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(gameplan_state, gameplan_video_command_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, video_command_trigger_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(gameplan_state, via_irq))
- MCFG_DEVICE_ADD("via6522_1", VIA6522, GAMEPLAN_MAIN_CPU_CLOCK)
+ MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(gameplan_state, io_port_r))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(gameplan_state, io_select_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(gameplan_state, coin_w))
- MCFG_DEVICE_ADD("via6522_2", VIA6522, GAMEPLAN_MAIN_CPU_CLOCK)
+ MCFG_DEVICE_ADD("via6522_2", VIA6522, 0)
MCFG_VIA6522_READPB_HANDLER(DEVREAD8("soundlatch", generic_latch_8_device, read))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(gameplan_state, audio_cmd_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, audio_trigger_w))
diff --git a/src/mame/drivers/gaplus.cpp b/src/mame/drivers/gaplus.cpp
index b9f839e7f98..4646a889490 100644
--- a/src/mame/drivers/gaplus.cpp
+++ b/src/mame/drivers/gaplus.cpp
@@ -515,15 +515,15 @@ void gaplus_state::machine_start()
static MACHINE_CONFIG_START( gaplus )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_24_576MHz/16) /* 1.536 MHz */
+ MCFG_CPU_ADD("maincpu", M6809, 24576000/16) /* 1.536 MHz */
MCFG_CPU_PROGRAM_MAP(cpu1_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", gaplus_state, vblank_main_irq)
- MCFG_CPU_ADD("sub", MC6809E, XTAL_24_576MHz/16) /* 1.536 MHz */
+ MCFG_CPU_ADD("sub", M6809, 24576000/16) /* 1.536 MHz */
MCFG_CPU_PROGRAM_MAP(cpu2_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", gaplus_state, vblank_sub_irq)
- MCFG_CPU_ADD("sub2", MC6809E, XTAL_24_576MHz/16) /* 1.536 MHz */
+ MCFG_CPU_ADD("sub2", M6809, 24576000/16) /* 1.536 MHz */
MCFG_CPU_PROGRAM_MAP(cpu3_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", gaplus_state, vblank_sub2_irq)
@@ -571,7 +571,7 @@ static MACHINE_CONFIG_START( gaplus )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("namco", NAMCO_15XX, XTAL_24_576MHz/1024)
+ MCFG_SOUND_ADD("namco", NAMCO_15XX, 24576000/1024)
MCFG_NAMCO_AUDIO_VOICES(8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
diff --git a/src/mame/drivers/gba.cpp b/src/mame/drivers/gba.cpp
index 969881e4185..af7fe7991f4 100644
--- a/src/mame/drivers/gba.cpp
+++ b/src/mame/drivers/gba.cpp
@@ -238,8 +238,8 @@ void gba_state::dma_exec(int ch)
{
if ((ctrl>>10) & 1)
{
- src &= 0xfffffffe;
- dst &= 0xfffffffe;
+ src &= 0xfffffffc;
+ dst &= 0xfffffffc;
// 32-bit
space.write_dword(dst, space.read_dword(src));
@@ -1238,16 +1238,16 @@ WRITE_LINE_MEMBER(gba_state::dma_vblank_callback)
static ADDRESS_MAP_START( gba_map, AS_PROGRAM, 32, gba_state )
ADDRESS_MAP_UNMAP_HIGH // for "Fruit Mura no Doubutsu Tachi" and "Classic NES Series"
- AM_RANGE(0x00000000, 0x00003fff) AM_ROM AM_MIRROR(0x01ffc000) AM_READ(gba_bios_r)
+ AM_RANGE(0x00000000, 0x00003fff) AM_ROM AM_READ(gba_bios_r)
AM_RANGE(0x02000000, 0x0203ffff) AM_RAM AM_MIRROR(0xfc0000)
AM_RANGE(0x03000000, 0x03007fff) AM_RAM AM_MIRROR(0xff8000)
AM_RANGE(0x04000000, 0x0400005f) AM_DEVREADWRITE("lcd", gba_lcd_device, video_r, video_w)
AM_RANGE(0x04000060, 0x040003ff) AM_READWRITE(gba_io_r, gba_io_w)
AM_RANGE(0x04000400, 0x04ffffff) AM_NOP // Not used
- AM_RANGE(0x05000000, 0x050003ff) AM_MIRROR(0x00fffc00) AM_DEVREADWRITE("lcd", gba_lcd_device, gba_pram_r, gba_pram_w) // Palette RAM
- AM_RANGE(0x06000000, 0x06017fff) AM_MIRROR(0x00fe0000) AM_DEVREADWRITE("lcd", gba_lcd_device, gba_vram_r, gba_vram_w) // VRAM
- AM_RANGE(0x06018000, 0x0601ffff) AM_MIRROR(0x00fe0000) AM_DEVREADWRITE("lcd", gba_lcd_device, gba_vram_r, gba_vram_w) // VRAM
- AM_RANGE(0x07000000, 0x070003ff) AM_MIRROR(0x00fffc00) AM_DEVREADWRITE("lcd", gba_lcd_device, gba_oam_r, gba_oam_w) // OAM
+ AM_RANGE(0x05000000, 0x050003ff) AM_DEVREADWRITE("lcd", gba_lcd_device, gba_pram_r, gba_pram_w) // Palette RAM
+ AM_RANGE(0x06000000, 0x06017fff) AM_DEVREADWRITE("lcd", gba_lcd_device, gba_vram_r, gba_vram_w) // VRAM
+ AM_RANGE(0x07000000, 0x070003ff) AM_DEVREADWRITE("lcd", gba_lcd_device, gba_oam_r, gba_oam_w) // OAM
+ AM_RANGE(0x07000400, 0x07ffffff) AM_NOP // Not used
//AM_RANGE(0x08000000, 0x0cffffff) // cart ROM + mirrors, mapped here at machine_start if a cart is present
AM_RANGE(0x10000000, 0xffffffff) AM_READ(gba_10000000_r) // for "Justice League Chronicles" (game bug)
ADDRESS_MAP_END
@@ -1353,8 +1353,6 @@ void gba_state::machine_start()
{
m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000000, 0xe00ffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000000, 0xe00ffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe010000, 0xe01ffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe010000, 0xe01ffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
}
if (m_cart->get_type() == GBA_EEPROM || m_cart->get_type() == GBA_EEPROM4 || m_cart->get_type() == GBA_EEPROM64 || m_cart->get_type() == GBA_BOKTAI)
{
diff --git a/src/mame/drivers/gei.cpp b/src/mame/drivers/gei.cpp
index 87186cd4c6b..28c2ffbc11e 100644
--- a/src/mame/drivers/gei.cpp
+++ b/src/mame/drivers/gei.cpp
@@ -212,8 +212,8 @@ WRITE8_MEMBER(gei_state::sound_w)
output().set_led_value(9, BIT(data, 3));
/* bit 5 - ticket out in trivia games */
- if (m_ticket.found())
- m_ticket->motor_w(BIT(data, 5));
+ if (m_ticket != nullptr)
+ m_ticket->write(machine().dummy_space(), 0, (data & 0x20) << 2);
/* bit 6 enables NMI */
m_nmi_mask = data & 0x40;
diff --git a/src/mame/drivers/gimix.cpp b/src/mame/drivers/gimix.cpp
index be06ff87ecb..4467b925b56 100644
--- a/src/mame/drivers/gimix.cpp
+++ b/src/mame/drivers/gimix.cpp
@@ -545,7 +545,7 @@ MCFG_ADDRESS_MAP_BANK_STRIDE(0x1000)
static MACHINE_CONFIG_START( gimix )
// basic machine hardware
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_8MHz)
+ MCFG_CPU_ADD("maincpu", M6809E, XTAL_8MHz)
MCFG_CPU_PROGRAM_MAP(gimix_mem)
MCFG_CPU_IO_MAP(gimix_io)
diff --git a/src/mame/drivers/gladiatr.cpp b/src/mame/drivers/gladiatr.cpp
index e77bcdd8560..6f8e32b0e9e 100644
--- a/src/mame/drivers/gladiatr.cpp
+++ b/src/mame/drivers/gladiatr.cpp
@@ -141,7 +141,7 @@ Address Dir Data Name Description
--------111----- W xxxxxxxx ADCS command to 6809
-Third CPU (HD6809)
+Third CPU (6809)
----------------
Address Dir Data Name Description
@@ -299,7 +299,7 @@ READ8_MEMBER(gladiatr_state::cctl_p2_r)
READ8_MEMBER(gladiatr_state::ucpu_p2_r)
{
- return bitswap<8>(m_dsw1->read(), 0,1,2,3,4,5,6,7);
+ return BITSWAP8(m_dsw1->read(), 0,1,2,3,4,5,6,7);
}
WRITE8_MEMBER(gladiatr_state::ccpu_p2_w)
@@ -356,7 +356,7 @@ WRITE8_MEMBER(gladiatr_state::csnd_p1_w)
READ8_MEMBER(gladiatr_state::csnd_p2_r)
{
- return bitswap<8>(m_dsw2->read(), 2,3,4,5,6,7,1,0);
+ return BITSWAP8(m_dsw2->read(), 2,3,4,5,6,7,1,0);
}
@@ -946,7 +946,7 @@ static MACHINE_CONFIG_START( ppking )
MCFG_CPU_IO_MAP(ppking_cpu2_io)
MCFG_CPU_PERIODIC_INT_DRIVER(ppking_state, irq0_line_assert, 60)
- MCFG_CPU_ADD("audiocpu", MC6809, XTAL_12MHz/4) /* verified on pcb */
+ MCFG_CPU_ADD("audiocpu", M6809, XTAL_12MHz/16) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(ppking_cpu3_map)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
@@ -1010,7 +1010,7 @@ static MACHINE_CONFIG_START( gladiatr )
MCFG_CPU_PROGRAM_MAP(cpu2_map)
MCFG_CPU_IO_MAP(gladiatr_cpu2_io)
- MCFG_CPU_ADD("audiocpu", MC6809, XTAL_12MHz/4) /* verified on pcb */
+ MCFG_CPU_ADD("audiocpu", M6809, XTAL_12MHz/16) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(gladiatr_cpu3_map)
MCFG_MACHINE_RESET_OVERRIDE(gladiatr_state,gladiator)
diff --git a/src/mame/drivers/gng.cpp b/src/mame/drivers/gng.cpp
index a899095f732..6dd73d4a42c 100644
--- a/src/mame/drivers/gng.cpp
+++ b/src/mame/drivers/gng.cpp
@@ -357,7 +357,7 @@ void gng_state::machine_reset()
static MACHINE_CONFIG_START( gng )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_12MHz/2) /* verified on pcb */
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_12MHz/8) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(gng_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", gng_state, irq0_line_hold)
@@ -503,8 +503,8 @@ ROM_START( gngbl )
ROM_REGION( 0x18000, "gfx2", 0 )
ROM_LOAD( "13.84490.3e", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/
ROM_LOAD( "12.84490.1e", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/
- ROM_LOAD( "11.84490.3c", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/
- ROM_LOAD( "10.84490.1c", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/
+ ROM_LOAD( "11.84490.3c", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/
+ ROM_LOAD( "10.84490.1c", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/
ROM_LOAD( "9.84490.3b", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/
ROM_LOAD( "8.84490.1b", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/
@@ -529,7 +529,7 @@ ROM_START( gngprot )
ROM_LOAD( "gg14h.bin", 0x0000, 0x8000, CRC(55cfb196) SHA1(df9cdbb24c26bca226d7274225725d62ea854c7a) )
ROM_REGION( 0x04000, "gfx1", 0 )
- ROM_LOAD( "gg11e.bin", 0x00000, 0x4000, CRC(ccea9365) SHA1(bb567529fa376afc0a5afd331dcecef4f61cc8a3) ) /* characters */
+ ROM_LOAD( "1.84490.11e", 0x00000, 0x4000, BAD_DUMP CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */ // MISSING FROM THIS SET! (was on PCB, why wasn't it dumped?)
ROM_REGION( 0x18000, "gfx2", 0 )
ROM_LOAD( "gg3e.bin", 0x00000, 0x4000, CRC(68db22c8) SHA1(ada859bfa60d9563a8a86b1b6526f626b932981c) ) /* tiles 0-1 Plane 1*/
diff --git a/src/mame/drivers/goldnpkr.cpp b/src/mame/drivers/goldnpkr.cpp
index ae900522393..a17b44474cb 100644
--- a/src/mame/drivers/goldnpkr.cpp
+++ b/src/mame/drivers/goldnpkr.cpp
@@ -11042,7 +11042,7 @@ DRIVER_INIT_MEMBER(goldnpkr_state, flcnw)
for (i = start; i < size; i++)
{
ROM[i] = ROM[i] ^ 0xa0;
- ROM[i] = bitswap<8>(ROM[i], 7, 6, 3, 4, 5, 2, 1, 0);
+ ROM[i] = BITSWAP8(ROM[i], 7, 6, 3, 4, 5, 2, 1, 0);
}
}
diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp
index 5d56ee2cd97..358bbd6f7be 100644
--- a/src/mame/drivers/goldstar.cpp
+++ b/src/mame/drivers/goldstar.cpp
@@ -1144,7 +1144,7 @@ WRITE8_MEMBER(unkch_state::coincount_w)
*/
- m_ticket_dispenser->motor_w(BIT(data, 7));
+ m_ticket_dispenser->write(space, offset, data & 0x80);
machine().bookkeeping().coin_counter_w(0, data & 0x04); /* Credit counter */
machine().bookkeeping().coin_counter_w(1, data & 0x08); /* Key In counter */
@@ -11967,7 +11967,7 @@ DRIVER_INIT_MEMBER(wingco_state, magoddsc)
if ((A & 4) == 4)
ROM[A] ^= 0x01;
- ROM[A] = bitswap<8>(ROM[A], 3,6,5,4,7,2,1,0);
+ ROM[A] = BITSWAP8(ROM[A], 3,6,5,4,7,2,1,0);
}
}
@@ -13361,10 +13361,10 @@ DRIVER_INIT_MEMBER(cmaster_state, fb2010)
switch(i & 0x22)
{
- case 0x00: x = bitswap<8>(x^0x4c^0xff, 0,4,7,6,5,1,3,2); break;
- case 0x02: x = bitswap<8>(x^0xc0^0xff, 7,6,0,5,3,2,1,4); break; // 67053214
- case 0x20: x = bitswap<8>(x^0x6b^0xff, 4,3,2,7,5,6,0,1); break;
- case 0x22: x = bitswap<8>(x^0x23^0xff, 0,6,1,3,4,5,2,7); break;
+ case 0x00: x = BITSWAP8(x^0x4c^0xff, 0,4,7,6,5,1,3,2); break;
+ case 0x02: x = BITSWAP8(x^0xc0^0xff, 7,6,0,5,3,2,1,4); break; // 67053214
+ case 0x20: x = BITSWAP8(x^0x6b^0xff, 4,3,2,7,5,6,0,1); break;
+ case 0x22: x = BITSWAP8(x^0x23^0xff, 0,6,1,3,4,5,2,7); break;
}
ROM[i] = x;
@@ -15373,9 +15373,9 @@ uint8_t cb3_state::cb3_decrypt(uint8_t cipherText, uint16_t address)
idx = BIT(cipherText, 1) | (BIT(address,0) << 1) | (BIT(address, 4) << 2);
if (rotation[idx] == 0)
- output = bitswap<8>(cipherText, 5, 6, 3, 4, 7, 2, 1, 0); // rotates bit #3, #5 and #7 in one direction...
+ output = BITSWAP8(cipherText, 5, 6, 3, 4, 7, 2, 1, 0); // rotates bit #3, #5 and #7 in one direction...
else
- output = bitswap<8>(cipherText, 3, 6, 7, 4, 5, 2, 1, 0); // ... or in the other
+ output = BITSWAP8(cipherText, 3, 6, 7, 4, 5, 2, 1, 0); // ... or in the other
return output ^ sbox[idx];
}
@@ -15437,7 +15437,7 @@ DRIVER_INIT_MEMBER(cb3_state, chrygld)
for (A = 0; A < 0x10000; A++)
{
uint8_t dat = ROM[A];
- dat = bitswap<8>(dat, 5, 6, 3, 4, 7, 2, 1, 0);
+ dat = BITSWAP8(dat, 5, 6, 3, 4, 7, 2, 1, 0);
ROM[A] = dat;
}
@@ -15494,14 +15494,14 @@ DRIVER_INIT_MEMBER(cmaster_state, nfb96sea)
uint8_t x = ROM[i];
switch(i & 7)
{
- case 0: x = bitswap<8>(x ^ 0x80, 1, 6, 7, 4, 5, 2, 3, 0); break;
- case 1: x = bitswap<8>(x ^ 0xa0, 5, 6, 3, 4, 1, 2, 7, 0); break;
- case 2: x = bitswap<8>(x ^ 0x02, 5, 6, 3, 4, 1, 2, 7, 0); break;
- case 3: x = bitswap<8>(x ^ 0xa0, 3, 6, 1, 4, 7, 2, 5, 0); break;
- case 4: x = bitswap<8>(x ^ 0x82, 3, 6, 1, 4, 7, 2, 5, 0); break;
- case 5: x = bitswap<8>(x ^ 0x02, 1, 6, 7, 4, 5, 2, 3, 0); break;
- case 6: x = bitswap<8>(x ^ 0x08, 3, 6, 1, 4, 7, 2, 5, 0); break;
- case 7: x = bitswap<8>(x ^ 0x80, 5, 6, 3, 4, 1, 2, 7, 0); break;
+ case 0: x = BITSWAP8(x ^ 0x80, 1, 6, 7, 4, 5, 2, 3, 0); break;
+ case 1: x = BITSWAP8(x ^ 0xa0, 5, 6, 3, 4, 1, 2, 7, 0); break;
+ case 2: x = BITSWAP8(x ^ 0x02, 5, 6, 3, 4, 1, 2, 7, 0); break;
+ case 3: x = BITSWAP8(x ^ 0xa0, 3, 6, 1, 4, 7, 2, 5, 0); break;
+ case 4: x = BITSWAP8(x ^ 0x82, 3, 6, 1, 4, 7, 2, 5, 0); break;
+ case 5: x = BITSWAP8(x ^ 0x02, 1, 6, 7, 4, 5, 2, 3, 0); break;
+ case 6: x = BITSWAP8(x ^ 0x08, 3, 6, 1, 4, 7, 2, 5, 0); break;
+ case 7: x = BITSWAP8(x ^ 0x80, 5, 6, 3, 4, 1, 2, 7, 0); break;
}
ROM[i] = x;
@@ -15518,10 +15518,10 @@ DRIVER_INIT_MEMBER(cmaster_state, schery97)
uint8_t x = ROM[i];
switch(i & 0x12)
{
- case 0x00: x = bitswap<8>(x ^ 0x3e, 1, 0, 7, 6, 5, 4, 3, 2); break;
- case 0x02: x = bitswap<8>(x ^ 0x4d, 0, 7, 6, 5, 4, 3, 2, 1); break;
- case 0x10: x = bitswap<8>(x ^ 0x24, 2, 1, 0, 7, 6, 5, 4, 3); break;
- case 0x12: x = bitswap<8>(x ^ 0xbb, 4, 3, 2, 1, 0, 7, 6, 5); break;
+ case 0x00: x = BITSWAP8(x ^ 0x3e, 1, 0, 7, 6, 5, 4, 3, 2); break;
+ case 0x02: x = BITSWAP8(x ^ 0x4d, 0, 7, 6, 5, 4, 3, 2, 1); break;
+ case 0x10: x = BITSWAP8(x ^ 0x24, 2, 1, 0, 7, 6, 5, 4, 3); break;
+ case 0x12: x = BITSWAP8(x ^ 0xbb, 4, 3, 2, 1, 0, 7, 6, 5); break;
}
ROM[i] = x;
@@ -15540,10 +15540,10 @@ DRIVER_INIT_MEMBER(cmaster_state, schery97a)
uint8_t x = ROM[i];
switch(i & 6)
{
- case 0: x = bitswap<8>(x ^ 0xb9, 4, 0, 6, 7, 3, 1, 5, 2); break;
- case 2: x = bitswap<8>(x ^ 0x8f, 6, 7, 4, 0, 3, 2, 1, 5); break;
- case 4: x = bitswap<8>(x ^ 0xd2, 3, 4, 0, 2, 5, 6, 1, 7); break;
- case 6: x = bitswap<8>(x ^ 0xd1, 6, 0, 2, 1, 4, 5, 3, 7); break;
+ case 0: x = BITSWAP8(x ^ 0xb9, 4, 0, 6, 7, 3, 1, 5, 2); break;
+ case 2: x = BITSWAP8(x ^ 0x8f, 6, 7, 4, 0, 3, 2, 1, 5); break;
+ case 4: x = BITSWAP8(x ^ 0xd2, 3, 4, 0, 2, 5, 6, 1, 7); break;
+ case 6: x = BITSWAP8(x ^ 0xd1, 6, 0, 2, 1, 4, 5, 3, 7); break;
}
ROM[i] = x;
@@ -15563,10 +15563,10 @@ DRIVER_INIT_MEMBER(cmaster_state, skill98)
uint8_t x = ROM[i];
switch(i & 0x12)
{
- case 0x00: x = bitswap<8>(x ^ 0x21, 2, 1, 0, 7, 6, 5, 4, 3); break;
- case 0x02: x = bitswap<8>(x ^ 0x45, 2, 1, 0, 7, 6, 5, 4, 3); break;
- case 0x10: x = bitswap<8>(x ^ 0x23, 4, 3, 2, 1, 0, 7, 6, 5); break;
- case 0x12: x = bitswap<8>(x ^ 0x5b, 4, 3, 2, 1, 0, 7, 6, 5); break;
+ case 0x00: x = BITSWAP8(x ^ 0x21, 2, 1, 0, 7, 6, 5, 4, 3); break;
+ case 0x02: x = BITSWAP8(x ^ 0x45, 2, 1, 0, 7, 6, 5, 4, 3); break;
+ case 0x10: x = BITSWAP8(x ^ 0x23, 4, 3, 2, 1, 0, 7, 6, 5); break;
+ case 0x12: x = BITSWAP8(x ^ 0x5b, 4, 3, 2, 1, 0, 7, 6, 5); break;
}
ROM[i] = x;
@@ -15585,10 +15585,10 @@ DRIVER_INIT_MEMBER(cmaster_state, nfb96_c1)
switch(i & 0x12)
{
- case 0x00: x = bitswap<8>(x ^ 0xf5, 6, 4, 3, 7, 0, 1, 5, 2); break;
- case 0x02: x = bitswap<8>(x ^ 0xe6, 4, 6, 3, 0, 7, 2, 1, 5); break;
- case 0x10: x = bitswap<8>(x ^ 0x34, 0, 3, 5, 2, 4, 6, 1, 7); break;
- case 0x12: x = bitswap<8>(x ^ 0xc6, 2, 0, 4, 1, 6, 5, 3, 7); break;
+ case 0x00: x = BITSWAP8(x ^ 0xf5, 6, 4, 3, 7, 0, 1, 5, 2); break;
+ case 0x02: x = BITSWAP8(x ^ 0xe6, 4, 6, 3, 0, 7, 2, 1, 5); break;
+ case 0x10: x = BITSWAP8(x ^ 0x34, 0, 3, 5, 2, 4, 6, 1, 7); break;
+ case 0x12: x = BITSWAP8(x ^ 0xc6, 2, 0, 4, 1, 6, 5, 3, 7); break;
}
ROM[i] = x;
}
@@ -15606,10 +15606,10 @@ DRIVER_INIT_MEMBER(cmaster_state, nfb96_c2)
switch(i & 0x22)
{
- case 0x00: x = bitswap<8>(x ^ 0x5f, 6, 4, 3, 7, 0, 5, 2, 1); break;
- case 0x02: x = bitswap<8>(x ^ 0xe7, 4, 6, 3, 0, 7, 5, 1, 2); break;
- case 0x20: x = bitswap<8>(x ^ 0x18, 0, 3, 5, 2, 4, 7, 1, 6); break;
- case 0x22: x = bitswap<8>(x ^ 0x74, 2, 0, 4, 1, 6, 7, 3, 5); break;
+ case 0x00: x = BITSWAP8(x ^ 0x5f, 6, 4, 3, 7, 0, 5, 2, 1); break;
+ case 0x02: x = BITSWAP8(x ^ 0xe7, 4, 6, 3, 0, 7, 5, 1, 2); break;
+ case 0x20: x = BITSWAP8(x ^ 0x18, 0, 3, 5, 2, 4, 7, 1, 6); break;
+ case 0x22: x = BITSWAP8(x ^ 0x74, 2, 0, 4, 1, 6, 7, 3, 5); break;
}
ROM[i] = x;
@@ -15627,10 +15627,10 @@ DRIVER_INIT_MEMBER(cmaster_state, nfb96_d)
switch(i & 5)
{
- case 0: x = bitswap<8>(x ^ 0x6a, 2, 1, 0, 7, 6, 5, 4, 3); break;
- case 1: x = bitswap<8>(x ^ 0xcc, 0, 7, 6, 5, 4, 3, 2, 1); break;
- case 4: x = bitswap<8>(x ^ 0x8f, 3, 2, 1, 0, 7, 6, 5, 4); break;
- case 5: x = bitswap<8>(x ^ 0x93, 4, 3, 2, 1, 0, 7, 6, 5); break;
+ case 0: x = BITSWAP8(x ^ 0x6a, 2, 1, 0, 7, 6, 5, 4, 3); break;
+ case 1: x = BITSWAP8(x ^ 0xcc, 0, 7, 6, 5, 4, 3, 2, 1); break;
+ case 4: x = BITSWAP8(x ^ 0x8f, 3, 2, 1, 0, 7, 6, 5, 4); break;
+ case 5: x = BITSWAP8(x ^ 0x93, 4, 3, 2, 1, 0, 7, 6, 5); break;
}
ROM[i] = x;
}
@@ -15654,10 +15654,10 @@ DRIVER_INIT_MEMBER(cmaster_state, nfb96_dk)
switch(i & 5)
{
- case 0: x = bitswap<8>(x ^ 0xce, 1, 0, 7, 6, 5, 4, 3, 2); break;
- case 1: x = bitswap<8>(x ^ 0x9e, 3, 2, 1, 0, 7, 6, 5, 4); break;
- case 4: x = bitswap<8>(x ^ 0xc3, 0, 7, 6, 5, 4, 3, 2, 1); break;
- case 5: x = bitswap<8>(x ^ 0xdb, 4, 3, 2, 1, 0, 7, 6, 5); break;
+ case 0: x = BITSWAP8(x ^ 0xce, 1, 0, 7, 6, 5, 4, 3, 2); break;
+ case 1: x = BITSWAP8(x ^ 0x9e, 3, 2, 1, 0, 7, 6, 5, 4); break;
+ case 4: x = BITSWAP8(x ^ 0xc3, 0, 7, 6, 5, 4, 3, 2, 1); break;
+ case 5: x = BITSWAP8(x ^ 0xdb, 4, 3, 2, 1, 0, 7, 6, 5); break;
}
ROM[i] = x;
}
@@ -15675,10 +15675,10 @@ DRIVER_INIT_MEMBER(cmaster_state, rp35)
switch(i & 3)
{
- case 0: x = bitswap<8>(x ^ 0x2a, 0, 7, 6, 5, 4, 3, 2, 1); break;
- case 1: x = bitswap<8>(x ^ 0x1c, 4, 3, 2, 1, 0, 7, 6, 5); break;
- case 2: x = bitswap<8>(x ^ 0x4f, 3, 2, 1, 0, 7, 6, 5, 4); break;
- case 3: x = bitswap<8>(x ^ 0x23, 1, 0, 7, 6, 5, 4, 3, 2); break;
+ case 0: x = BITSWAP8(x ^ 0x2a, 0, 7, 6, 5, 4, 3, 2, 1); break;
+ case 1: x = BITSWAP8(x ^ 0x1c, 4, 3, 2, 1, 0, 7, 6, 5); break;
+ case 2: x = BITSWAP8(x ^ 0x4f, 3, 2, 1, 0, 7, 6, 5, 4); break;
+ case 3: x = BITSWAP8(x ^ 0x23, 1, 0, 7, 6, 5, 4, 3, 2); break;
}
ROM[i] = x;
}
@@ -15697,10 +15697,10 @@ DRIVER_INIT_MEMBER(cmaster_state, rp36)
switch(i & 5)
{
- case 0: x = bitswap<8>(x ^ 0xee, 2, 1, 0, 7, 6, 5, 4, 3); break;
- case 1: x = bitswap<8>(x ^ 0x9f, 3, 2, 1, 0, 7, 6, 5, 4); break;
- case 4: x = bitswap<8>(x ^ 0xc7, 3, 2, 1, 0, 7, 6, 5, 4); break;
- case 5: x = bitswap<8>(x ^ 0xc3, 3, 2, 1, 0, 7, 6, 5, 4); break;
+ case 0: x = BITSWAP8(x ^ 0xee, 2, 1, 0, 7, 6, 5, 4, 3); break;
+ case 1: x = BITSWAP8(x ^ 0x9f, 3, 2, 1, 0, 7, 6, 5, 4); break;
+ case 4: x = BITSWAP8(x ^ 0xc7, 3, 2, 1, 0, 7, 6, 5, 4); break;
+ case 5: x = BITSWAP8(x ^ 0xc3, 3, 2, 1, 0, 7, 6, 5, 4); break;
}
ROM[i] = x;
@@ -15719,10 +15719,10 @@ DRIVER_INIT_MEMBER(cmaster_state, rp36c3)
switch(i & 0xa)
{
- case 0x0: x = bitswap<8>(x ^ 0xfd, 6, 4, 0, 7, 3, 1, 5, 2); break;
- case 0x2: x = bitswap<8>(x ^ 0xee, 4, 6, 7, 0, 3, 2, 1, 5); break;
- case 0x8: x = bitswap<8>(x ^ 0x2c, 0, 3, 4, 2, 5, 6, 1, 7); break;
- case 0xa: x = bitswap<8>(x ^ 0xd6, 2, 0, 6, 1, 4, 5, 3, 7); break;
+ case 0x0: x = BITSWAP8(x ^ 0xfd, 6, 4, 0, 7, 3, 1, 5, 2); break;
+ case 0x2: x = BITSWAP8(x ^ 0xee, 4, 6, 7, 0, 3, 2, 1, 5); break;
+ case 0x8: x = BITSWAP8(x ^ 0x2c, 0, 3, 4, 2, 5, 6, 1, 7); break;
+ case 0xa: x = BITSWAP8(x ^ 0xd6, 2, 0, 6, 1, 4, 5, 3, 7); break;
}
ROM[i] = x;
@@ -15741,10 +15741,10 @@ DRIVER_INIT_MEMBER(cmaster_state, rp96sub) // 95 33 95 33 70 6C 70 6C... XORs s
switch(i & 5)
{
- case 0: x = bitswap<8>(x ^ 0x6a, 7, 6, 5, 4, 3, 2, 1, 0); break;
- case 1: x = bitswap<8>(x ^ 0xcc, 7, 6, 5, 4, 3, 2, 1, 0); break;
- case 4: x = bitswap<8>(x ^ 0x8f, 7, 6, 5, 4, 3, 2, 1, 0); break;
- case 5: x = bitswap<8>(x ^ 0x93, 7, 6, 5, 4, 3, 2, 1, 0); break;
+ case 0: x = BITSWAP8(x ^ 0x6a, 7, 6, 5, 4, 3, 2, 1, 0); break;
+ case 1: x = BITSWAP8(x ^ 0xcc, 7, 6, 5, 4, 3, 2, 1, 0); break;
+ case 4: x = BITSWAP8(x ^ 0x8f, 7, 6, 5, 4, 3, 2, 1, 0); break;
+ case 5: x = BITSWAP8(x ^ 0x93, 7, 6, 5, 4, 3, 2, 1, 0); break;
}
ROM[i] = x;
@@ -15764,10 +15764,10 @@ DRIVER_INIT_MEMBER(cmaster_state, po33)
switch(i & 0x14)
{
- case 0x00: x = bitswap<8>(x ^ 0xde, 2, 1, 0, 7, 6, 5, 4, 3); break;
- case 0x04: x = bitswap<8>(x ^ 0x3c, 0, 7, 6, 5, 4, 3, 2, 1); break;
- case 0x10: x = bitswap<8>(x ^ 0x2f, 3, 2, 1, 0, 7, 6, 5, 4); break;
- case 0x14: x = bitswap<8>(x ^ 0x5b, 4, 3, 2, 1, 0, 7, 6, 5); break;
+ case 0x00: x = BITSWAP8(x ^ 0xde, 2, 1, 0, 7, 6, 5, 4, 3); break;
+ case 0x04: x = BITSWAP8(x ^ 0x3c, 0, 7, 6, 5, 4, 3, 2, 1); break;
+ case 0x10: x = BITSWAP8(x ^ 0x2f, 3, 2, 1, 0, 7, 6, 5, 4); break;
+ case 0x14: x = BITSWAP8(x ^ 0x5b, 4, 3, 2, 1, 0, 7, 6, 5); break;
}
ROM[i] = x;
@@ -15787,10 +15787,10 @@ DRIVER_INIT_MEMBER(cmaster_state, match133)
switch(i & 0x12)
{
- case 0x00: x = bitswap<8>(x ^ 0xde, 3, 2, 1, 0, 7, 6, 5, 4); break;
- case 0x02: x = bitswap<8>(x ^ 0x3d, 1, 0, 7, 6, 5, 4, 3, 2); break;
- case 0x10: x = bitswap<8>(x ^ 0x2f, 4, 3, 2, 1, 0, 7, 6, 5); break;
- case 0x12: x = bitswap<8>(x ^ 0x5c, 4, 3, 2, 1, 0, 7, 6, 5); break;
+ case 0x00: x = BITSWAP8(x ^ 0xde, 3, 2, 1, 0, 7, 6, 5, 4); break;
+ case 0x02: x = BITSWAP8(x ^ 0x3d, 1, 0, 7, 6, 5, 4, 3, 2); break;
+ case 0x10: x = BITSWAP8(x ^ 0x2f, 4, 3, 2, 1, 0, 7, 6, 5); break;
+ case 0x12: x = BITSWAP8(x ^ 0x5c, 4, 3, 2, 1, 0, 7, 6, 5); break;
}
ROM[i] = x;
@@ -15884,17 +15884,17 @@ DRIVER_INIT_MEMBER(goldstar_state, super9)
uint8_t *src = memregion("gfx1")->base();
for (i = 0; i < 0x20000; i++)
{
-// src[i] = bitswap<8>(src[i], 7, 4, 2, 1, 6, 5, 3, 0);
-// src[i] = bitswap<8>(src[i], 7, 3, 2, 6, 1, 5, 4, 0);
- src[i] = bitswap<8>(src[i], 7, 3, 2, 6, 5, 1, 4, 0);
+// src[i] = BITSWAP8(src[i], 7, 4, 2, 1, 6, 5, 3, 0);
+// src[i] = BITSWAP8(src[i], 7, 3, 2, 6, 1, 5, 4, 0);
+ src[i] = BITSWAP8(src[i], 7, 3, 2, 6, 5, 1, 4, 0);
}
uint8_t *src2 = memregion("gfx2")->base();
for (i = 0; i < 0x8000; i++)
{
-// src2[i] = bitswap<8>(src2[i], 7, 4, 2, 1, 6, 5, 3, 0);
-// src2[i] = bitswap<8>(src2[i], 7, 3, 2, 6, 1, 5, 4, 0);
- src2[i] = bitswap<8>(src2[i], 3, 7, 6, 2, 5, 1, 0, 4); // endianess
+// src2[i] = BITSWAP8(src2[i], 7, 4, 2, 1, 6, 5, 3, 0);
+// src2[i] = BITSWAP8(src2[i], 7, 3, 2, 6, 1, 5, 4, 0);
+ src2[i] = BITSWAP8(src2[i], 3, 7, 6, 2, 5, 1, 0, 4); // endianess
}
}
@@ -15909,7 +15909,7 @@ DRIVER_INIT_MEMBER(cb3_state, cb3e)
for (i = 0; i < 0x10000; i++)
{
uint8_t dat = ROM[i];
- dat = bitswap<8>(dat, 5, 6, 3, 4, 7, 2, 1, 0);
+ dat = BITSWAP8(dat, 5, 6, 3, 4, 7, 2, 1, 0);
ROM[i] = dat;
}
@@ -15918,14 +15918,14 @@ DRIVER_INIT_MEMBER(cb3_state, cb3e)
uint8_t *src = memregion("gfx1")->base();
for (i = 0; i < 0x20000; i++)
{
- src[i] = bitswap<8>(src[i], 4, 3, 2, 5, 1, 6, 0, 7); // OK
+ src[i] = BITSWAP8(src[i], 4, 3, 2, 5, 1, 6, 0, 7); // OK
}
/* bank 2 graphics */
uint8_t *src2 = memregion("gfx2")->base();
for (i = 0; i < 0x8000; i++)
{
- src2[i] = bitswap<8>(src2[i], 3, 4, 2, 5, 1, 6, 0, 7); // OK
+ src2[i] = BITSWAP8(src2[i], 3, 4, 2, 5, 1, 6, 0, 7); // OK
}
}
@@ -15936,14 +15936,14 @@ DRIVER_INIT_MEMBER(goldstar_state, wcherry)
uint8_t *src = memregion("gfx1")->base();
for (i = 0; i < 0x20000; i++)
{
- src[i] = bitswap<8>(src[i], 4, 3, 2, 5, 1, 6, 0, 7); // OK
+ src[i] = BITSWAP8(src[i], 4, 3, 2, 5, 1, 6, 0, 7); // OK
}
/* bank 2 graphics */
uint8_t *src2 = memregion("gfx2")->base();
for (i = 0; i < 0x8000; i++)
{
- src2[i] = bitswap<8>(src2[i], 3, 4, 2, 5, 1, 6, 0, 7); // OK
+ src2[i] = BITSWAP8(src2[i], 3, 4, 2, 5, 1, 6, 0, 7); // OK
}
}
@@ -15961,14 +15961,14 @@ DRIVER_INIT_MEMBER(wingco_state, flaming7)
uint8_t *src = memregion("gfx1")->base();
for (i = 0; i < 0x20000; i++)
{
- src[i] = bitswap<8>(src[i], 4, 3, 2, 5, 1, 6, 0, 7); // OK
+ src[i] = BITSWAP8(src[i], 4, 3, 2, 5, 1, 6, 0, 7); // OK
}
/* bank 2 graphics */
uint8_t *src2 = memregion("gfx2")->base();
for (i = 0; i < 0x8000; i++)
{
- src2[i] = bitswap<8>(src2[i], 3, 4, 2, 5, 1, 6, 0, 7); // OK
+ src2[i] = BITSWAP8(src2[i], 3, 4, 2, 5, 1, 6, 0, 7); // OK
}
/* Patch to bypass the iButton electronic serial number check.
diff --git a/src/mame/drivers/gottlieb.cpp b/src/mame/drivers/gottlieb.cpp
index df603359dab..d86b95b3fec 100644
--- a/src/mame/drivers/gottlieb.cpp
+++ b/src/mame/drivers/gottlieb.cpp
@@ -2161,13 +2161,13 @@ ROM_END
ROM_START( krull )
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "gv-105_ram_2.c7", 0x1000, 0x1000, CRC(302feadf) SHA1(9d70de35e4f0490dc4e601070993ad146f250dea) )
- ROM_LOAD( "gv-105_ram_4.c9-10", 0x2000, 0x1000, CRC(79355a60) SHA1(57ad5c904b9ac4bf7c7d828bf755bbcbba6a4fd7) )
- ROM_LOAD( "gv-105_rom_4.c16", 0x6000, 0x2000, CRC(2b696394) SHA1(b18270f4ad97743f6ff8c4cbc93e523c77a8e794) )
- ROM_LOAD( "gv-105_rom_3.c14-15", 0x8000, 0x2000, CRC(14b0ee42) SHA1(276c4008a013806b3989c529f41cbc358ec49fd6) )
- ROM_LOAD( "gv-105_rom_2.c13-14", 0xa000, 0x2000, CRC(b5fad94a) SHA1(1bae895fbdd658cfb56c53cc2139282cc1e778de) )
- ROM_LOAD( "gv-105_rom_1.c12-13", 0xc000, 0x2000, CRC(1ad956a3) SHA1(f5b74b196fe1bd9ab48336e0051cbf29c650cfc1) )
- ROM_LOAD( "gv-105_rom_0.c11-12", 0xe000, 0x2000, CRC(a466afae) SHA1(d691cbb46e8c3b71f9b1688d7fcef36df82aa854) )
+ ROM_LOAD( "ram2.bin", 0x1000, 0x1000, CRC(302feadf) SHA1(9d70de35e4f0490dc4e601070993ad146f250dea) )
+ ROM_LOAD( "ram4.bin", 0x2000, 0x1000, CRC(79355a60) SHA1(57ad5c904b9ac4bf7c7d828bf755bbcbba6a4fd7) )
+ ROM_LOAD( "rom4.bin", 0x6000, 0x2000, CRC(2b696394) SHA1(b18270f4ad97743f6ff8c4cbc93e523c77a8e794) )
+ ROM_LOAD( "rom3.bin", 0x8000, 0x2000, CRC(14b0ee42) SHA1(276c4008a013806b3989c529f41cbc358ec49fd6) )
+ ROM_LOAD( "rom2.bin", 0xa000, 0x2000, CRC(b5fad94a) SHA1(1bae895fbdd658cfb56c53cc2139282cc1e778de) )
+ ROM_LOAD( "rom1.bin", 0xc000, 0x2000, CRC(1ad956a3) SHA1(f5b74b196fe1bd9ab48336e0051cbf29c650cfc1) )
+ ROM_LOAD( "rom0.bin", 0xe000, 0x2000, CRC(a466afae) SHA1(d691cbb46e8c3b71f9b1688d7fcef36df82aa854) )
ROM_REGION( 0x10000, "r1sound:audiocpu", 0 )
ROM_LOAD( "snd1.bin", 0x6000, 0x1000, CRC(dd2b30b4) SHA1(f01cb64932493bf69d4fc75a7fa809ff6f6e4263) )
@@ -2177,10 +2177,10 @@ ROM_START( krull )
/* no ROMs; RAM is used instead */
ROM_REGION( 0x8000, "sprites", 0 )
- ROM_LOAD( "gv-105_fg_3.k7-8", 0x0000, 0x2000, CRC(82d77a45) SHA1(753476609c4bf4f0f0cd28d61fd8aef6967bda57) )
- ROM_LOAD( "gv-105_fg_2.k6", 0x2000, 0x2000, CRC(25a24317) SHA1(33d2c23a388b09c4a09b9893648c30fbd5482cc3) )
- ROM_LOAD( "gv-105_fg_1.k5", 0x4000, 0x2000, CRC(7e3ad7b0) SHA1(0de86e632e5a9e6c1ec82550b15dc25a17ab7066) )
- ROM_LOAD( "gv-105_fg_0.k4", 0x6000, 0x2000, CRC(7402dc19) SHA1(d6d1b8aca8e9ee3bdc57f4474d22b405963909ec) )
+ ROM_LOAD( "fg3.bin", 0x0000, 0x2000, CRC(82d77a45) SHA1(753476609c4bf4f0f0cd28d61fd8aef6967bda57) )
+ ROM_LOAD( "fg2.bin", 0x2000, 0x2000, CRC(25a24317) SHA1(33d2c23a388b09c4a09b9893648c30fbd5482cc3) )
+ ROM_LOAD( "fg1.bin", 0x4000, 0x2000, CRC(7e3ad7b0) SHA1(0de86e632e5a9e6c1ec82550b15dc25a17ab7066) )
+ ROM_LOAD( "fg0.bin", 0x6000, 0x2000, CRC(7402dc19) SHA1(d6d1b8aca8e9ee3bdc57f4474d22b405963909ec) )
ROM_END
diff --git a/src/mame/drivers/goupil.cpp b/src/mame/drivers/goupil.cpp
index 647c409f5b9..182f60f0458 100644
--- a/src/mame/drivers/goupil.cpp
+++ b/src/mame/drivers/goupil.cpp
@@ -552,15 +552,15 @@ static MACHINE_CONFIG_START( goupil_g1 )
MCFG_EF9364_PAGES_CNT(1);
MCFG_TIMER_DRIVER_ADD_SCANLINE("goupil_sl", goupil_g1_state, goupil_scanline, "screen", 0, 10)
- MCFG_DEVICE_ADD("m_via_video", VIA6522, CPU_CLOCK / 4)
+ MCFG_DEVICE_ADD("m_via_video", VIA6522, 0)
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(goupil_g1_state, via_video_pba_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(goupil_g1_state, via_video_pbb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(goupil_g1_state, via_video_ca2_w))
- MCFG_DEVICE_ADD("m_via_keyb", VIA6522, CPU_CLOCK / 4)
+ MCFG_DEVICE_ADD("m_via_keyb", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M6808_IRQ_LINE))
- MCFG_DEVICE_ADD("m_via_modem", VIA6522, CPU_CLOCK / 4)
+ MCFG_DEVICE_ADD("m_via_modem", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M6808_IRQ_LINE))
/* Floppy */
@@ -615,15 +615,15 @@ static MACHINE_CONFIG_START( goupil_g2 )
MCFG_MC6845_UPDATE_ROW_CB(goupil_g2_state, crtc_update_row)
MCFG_MC6845_ADDR_CHANGED_CB(goupil_g2_state, crtc_update_addr_changed)
- MCFG_DEVICE_ADD("m_via_video", VIA6522, CPU_CLOCK / 4)
+ MCFG_DEVICE_ADD("m_via_video", VIA6522, 0)
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(goupil_g2_state, via_video_pba_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(goupil_g2_state, via_video_pbb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(goupil_g2_state, via_video_ca2_w))
- MCFG_DEVICE_ADD("m_via_keyb", VIA6522, CPU_CLOCK / 4)
+ MCFG_DEVICE_ADD("m_via_keyb", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M6808_IRQ_LINE))
- MCFG_DEVICE_ADD("m_via_modem", VIA6522, CPU_CLOCK / 4)
+ MCFG_DEVICE_ADD("m_via_modem", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M6808_IRQ_LINE))
/* Floppy */
diff --git a/src/mame/drivers/gticlub.cpp b/src/mame/drivers/gticlub.cpp
index 985218b3126..8deb21c4696 100644
--- a/src/mame/drivers/gticlub.cpp
+++ b/src/mame/drivers/gticlub.cpp
@@ -1500,8 +1500,8 @@ GAME( 1996, gticlub, 0, gticlub, gticlub, gticlub_state, gticlub, R
GAME( 1996, gticlubu, gticlub, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1996, gticluba, gticlub, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1996, gticlubj, gticlub, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1997, thunderh, 0, thunderh, thunderh, gticlub_state, gticlub, ROT0, "Konami", "Operation Thunder Hurricane (ver EAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
-GAME( 1997, thunderhu, thunderh, thunderh, thunderh, gticlub_state, gticlub, ROT0, "Konami", "Operation Thunder Hurricane (ver UAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, thunderh, 0, thunderh, thunderh, gticlub_state, gticlub, ROT0, "Konami", "Operation Thunder Hurricane (ver EAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, thunderhu, thunderh, thunderh, thunderh, gticlub_state, gticlub, ROT0, "Konami", "Operation Thunder Hurricane (ver UAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
GAME( 1997, slrasslt, 0, slrasslt, slrasslt, gticlub_state, gticlub, ROT0, "Konami", "Solar Assault (ver UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // Based on Revised code
GAME( 1997, slrassltj, slrasslt, slrasslt, slrasslt, gticlub_state, gticlub, ROT0, "Konami", "Solar Assault Revised (ver JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1997, slrassltj1, slrasslt, slrasslt, slrasslt, gticlub_state, gticlub, ROT0, "Konami", "Solar Assault (ver JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/gts3.cpp b/src/mame/drivers/gts3.cpp
index 67af5c9348f..6a7262468e6 100644
--- a/src/mame/drivers/gts3.cpp
+++ b/src/mame/drivers/gts3.cpp
@@ -220,7 +220,7 @@ WRITE8_MEMBER( gts3_state::segbank_w )
uint32_t seg1,seg2;
m_segment[offset] = data;
seg1 = m_segment[offset&2] | (m_segment[offset|1] << 8);
- seg2 = bitswap<32>(seg1,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,14,9,7,13,11,10,6,8,12,5,4,3,3,2,1,0,0);
+ seg2 = BITSWAP32(seg1,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,14,9,7,13,11,10,6,8,12,5,4,3,3,2,1,0,0);
output().set_digit_value(m_digit+(BIT(offset, 1) ? 0 : 20), seg2);
}
@@ -286,7 +286,7 @@ static MACHINE_CONFIG_START( gts3 )
/* Sound */
MCFG_FRAGMENT_ADD( genpin_audio )
- MCFG_DEVICE_ADD("u4", VIA6522, XTAL_4MHz / 2)
+ MCFG_DEVICE_ADD("u4", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M65C02_IRQ_LINE))
MCFG_VIA6522_READPA_HANDLER(READ8(gts3_state, u4a_r))
MCFG_VIA6522_READPB_HANDLER(READ8(gts3_state, u4b_r))
@@ -294,7 +294,7 @@ static MACHINE_CONFIG_START( gts3 )
//MCFG_VIA6522_CA2_HANDLER(WRITELINE(gts3_state, u4ca2_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(gts3_state, nmi_w))
- MCFG_DEVICE_ADD("u5", VIA6522, XTAL_4MHz / 2)
+ MCFG_DEVICE_ADD("u5", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M65C02_IRQ_LINE))
//MCFG_VIA6522_READPA_HANDLER(READ8(gts3_state, u5a_r))
//MCFG_VIA6522_READPB_HANDLER(READ8(gts3_state, u5b_r))
diff --git a/src/mame/drivers/gts3a.cpp b/src/mame/drivers/gts3a.cpp
index f59c551155e..8cbf012e168 100644
--- a/src/mame/drivers/gts3a.cpp
+++ b/src/mame/drivers/gts3a.cpp
@@ -232,7 +232,7 @@ WRITE8_MEMBER( gts3a_state::segbank_w )
uint32_t seg1,seg2;
m_segment[offset] = data;
seg1 = m_segment[offset&2] | (m_segment[offset|1] << 8);
- seg2 = bitswap<32>(seg1,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,14,9,7,13,11,10,6,8,12,5,4,3,3,2,1,0,0);
+ seg2 = BITSWAP32(seg1,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,14,9,7,13,11,10,6,8,12,5,4,3,3,2,1,0,0);
output().set_digit_value(m_digit+(BIT(offset, 1) ? 0 : 20), seg2);
}
@@ -334,7 +334,7 @@ static MACHINE_CONFIG_START( gts3a )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M65C02, XTAL_4MHz / 2)
MCFG_CPU_PROGRAM_MAP(gts3a_map)
- MCFG_NVRAM_ADD_0FILL("nvram") // 6116LP + DS1210
+ MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_CPU_ADD("dmdcpu", M65C02, XTAL_3_579545MHz / 2)
MCFG_CPU_PROGRAM_MAP(gts3a_dmd_map)
@@ -357,7 +357,7 @@ static MACHINE_CONFIG_START( gts3a )
/* Sound */
MCFG_FRAGMENT_ADD( genpin_audio )
- MCFG_DEVICE_ADD("u4", VIA6522, XTAL_4MHz / 2)
+ MCFG_DEVICE_ADD("u4", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M65C02_IRQ_LINE))
MCFG_VIA6522_READPA_HANDLER(READ8(gts3a_state, u4a_r))
MCFG_VIA6522_READPB_HANDLER(READ8(gts3a_state, u4b_r))
@@ -365,7 +365,7 @@ static MACHINE_CONFIG_START( gts3a )
//MCFG_VIA6522_CA2_HANDLER(WRITELINE(gts3a_state, u4ca2_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(gts3a_state, nmi_w))
- MCFG_DEVICE_ADD("u5", VIA6522, XTAL_4MHz / 2)
+ MCFG_DEVICE_ADD("u5", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M65C02_IRQ_LINE))
//MCFG_VIA6522_READPA_HANDLER(READ8(gts3a_state, u5a_r))
//MCFG_VIA6522_READPB_HANDLER(READ8(gts3a_state, u5b_r))
diff --git a/src/mame/drivers/gts80.cpp b/src/mame/drivers/gts80.cpp
index 9e3db98e589..e5b3d813570 100644
--- a/src/mame/drivers/gts80.cpp
+++ b/src/mame/drivers/gts80.cpp
@@ -295,7 +295,7 @@ WRITE8_MEMBER( gts80_state::port2a_w )
m_port2 = data;
static const uint8_t patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67,0x58,0x4c,0x62,0x69,0x78,0 }; // 7448
uint16_t seg1 = (uint16_t)patterns[m_segment & 15];
- uint16_t seg2 = bitswap<16>(seg1, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 5, 4, 3, 2, 1, 0);
+ uint16_t seg2 = BITSWAP16(seg1, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 5, 4, 3, 2, 1, 0);
switch (data & 0x70)
{
case 0x10: // player 1&2
diff --git a/src/mame/drivers/gts80a.cpp b/src/mame/drivers/gts80a.cpp
index 584e822afcd..28656075ca2 100644
--- a/src/mame/drivers/gts80a.cpp
+++ b/src/mame/drivers/gts80a.cpp
@@ -286,7 +286,7 @@ WRITE8_MEMBER( gts80a_state::port2a_w )
m_port2 = data;
static const uint8_t patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67,0x58,0x4c,0x62,0x69,0x78,0 }; // 7448
uint16_t seg1 = (uint16_t)patterns[m_segment & 15];
- uint16_t seg2 = bitswap<16>(seg1, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 5, 4, 3, 2, 1, 0);
+ uint16_t seg2 = BITSWAP16(seg1, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 5, 4, 3, 2, 1, 0);
switch (data & 0x70)
{
case 0x10: // player 1&2
diff --git a/src/mame/drivers/gts80b.cpp b/src/mame/drivers/gts80b.cpp
index ef0d713c403..e6bcb349895 100644
--- a/src/mame/drivers/gts80b.cpp
+++ b/src/mame/drivers/gts80b.cpp
@@ -338,7 +338,7 @@ WRITE8_MEMBER( gts80b_state::port2b_w )
else
{ // display a character
segment = patterns[m_dispcmd & 0x7f]; // ignore blank/inverse bit
- segment = bitswap<16>(segment, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 3, 2, 1, 0, 0);
+ segment = BITSWAP16(segment, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 3, 2, 1, 0, 0);
output().set_digit_value(m_digit[i]+i*20, segment);
m_digit[i]++; // auto-increment pointer
if (m_digit[i] > 19) m_digit[i] = 0; // check for overflow
diff --git a/src/mame/drivers/h8.cpp b/src/mame/drivers/h8.cpp
index d2a28e54356..0d645cdfaa1 100644
--- a/src/mame/drivers/h8.cpp
+++ b/src/mame/drivers/h8.cpp
@@ -170,7 +170,7 @@ WRITE8_MEMBER( h8_state::portf1_w )
//d1 segment a
//d0 segment g
- m_segment = 0xff ^ bitswap<8>(data, 7, 0, 6, 5, 4, 3, 2, 1);
+ m_segment = 0xff ^ BITSWAP8(data, 7, 0, 6, 5, 4, 3, 2, 1);
if (m_digit) output().set_digit_value(m_digit, m_segment);
}
diff --git a/src/mame/drivers/halleys.cpp b/src/mame/drivers/halleys.cpp
index 6c677e85a62..63223fa0cff 100644
--- a/src/mame/drivers/halleys.cpp
+++ b/src/mame/drivers/halleys.cpp
@@ -1921,7 +1921,7 @@ void halleys_state::machine_reset()
static MACHINE_CONFIG_START( halleys )
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_19_968MHz/12) /* verified on pcb */
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_19_968MHz/12) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(halleys_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", halleys_state, halleys_scanline, "screen", 0, 1)
@@ -2154,8 +2154,8 @@ void halleys_state::init_common()
for (i=0; i<0x10000; i++)
{
- addr = bitswap<16>(i,15,14,13,12,11,10,1,0,4,5,6,3,7,8,9,2);
- buf[i] = bitswap<8>(rom[addr],0,7,6,5,1,4,2,3);
+ addr = BITSWAP16(i,15,14,13,12,11,10,1,0,4,5,6,3,7,8,9,2);
+ buf[i] = BITSWAP8(rom[addr],0,7,6,5,1,4,2,3);
}
memcpy(rom, buf, 0x10000);
diff --git a/src/mame/drivers/hankin.cpp b/src/mame/drivers/hankin.cpp
index 26eb97e7049..cb46a01686a 100644
--- a/src/mame/drivers/hankin.cpp
+++ b/src/mame/drivers/hankin.cpp
@@ -283,7 +283,7 @@ WRITE8_MEMBER( hankin_state::ic10_a_w )
for (i = 0; i < 5; i++)
{
seg1 = patterns[m_segment[i]];
- seg2 = bitswap<16>(seg1, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 5, 4, 3, 2, 1, 0);
+ seg2 = BITSWAP16(seg1, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 5, 4, 3, 2, 1, 0);
output().set_digit_value(i*10+m_digit, seg2);
}
}
diff --git a/src/mame/drivers/hh_amis2k.cpp b/src/mame/drivers/hh_amis2k.cpp
index b6ce7c7f61d..0639bf2cc55 100644
--- a/src/mame/drivers/hh_amis2k.cpp
+++ b/src/mame/drivers/hh_amis2k.cpp
@@ -140,7 +140,7 @@ void wildfire_state::display_update()
if (m_display_cache[i] != active_state[i])
{
if (index_is_7segled(i))
- output().set_digit_value(i, bitswap<8>(active_state[i],7,0,1,2,3,4,5,6) & 0x7f);
+ output().set_digit_value(i, BITSWAP8(active_state[i],7,0,1,2,3,4,5,6) & 0x7f);
for (int j = 0; j < 8; j++)
output().set_lamp_value(i*10 + j, active_state[i] >> j & 1);
diff --git a/src/mame/drivers/hh_cop400.cpp b/src/mame/drivers/hh_cop400.cpp
index 27762e37a82..8f533e913f9 100644
--- a/src/mame/drivers/hh_cop400.cpp
+++ b/src/mame/drivers/hh_cop400.cpp
@@ -486,7 +486,7 @@ void einvaderc_state::prepare_display()
set_display_segmask(7, 0x7f);
// update display
- u8 l = bitswap<8>(m_l,7,6,0,1,2,3,4,5);
+ u8 l = BITSWAP8(m_l,7,6,0,1,2,3,4,5);
u16 grid = (m_d | m_g << 4 | m_sk << 8 | m_so << 9) ^ 0x0ff;
display_matrix(8, 10, l, grid);
}
diff --git a/src/mame/drivers/hh_hmcs40.cpp b/src/mame/drivers/hh_hmcs40.cpp
index 5f70d409338..3888a877904 100644
--- a/src/mame/drivers/hh_hmcs40.cpp
+++ b/src/mame/drivers/hh_hmcs40.cpp
@@ -85,7 +85,7 @@
On MAME they will show with full brightness, see eg. building explosions.
Currently there's a workaround in place.
- bzaxxon 3D effect is difficult to simulate
- - improve/redo SVGs of: bzaxxon, bpengo, bbtime
+ - improve SVGs of bzaxxon, bpengo, bbtime
***************************************************************************/
@@ -370,12 +370,12 @@ public:
WRITE8_MEMBER(bambball_state::plate_w)
{
- // R1x-R3x(,D0-D3): vfd plate
+ // R1x-R3x(,D0-D3): vfd matrix plate
int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u16 plate = bitswap<16>(m_plate,13,8,4,12,9,10,14,1,7,0,15,11,6,3,5,2);
+ u16 plate = BITSWAP16(m_plate,13,8,4,12,9,10,14,1,7,0,15,11,6,3,5,2);
display_matrix(16, 9, plate, m_grid);
}
@@ -387,7 +387,7 @@ WRITE16_MEMBER(bambball_state::grid_w)
// D7-D10: input mux
m_inp_mux = data >> 7 & 0xf;
- // D7-D15: vfd grid
+ // D7-D15: vfd matrix grid
m_grid = data >> 7 & 0x1ff;
// D0-D3: more plates (update display there)
@@ -484,14 +484,14 @@ public:
void bmboxing_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,9,0,1,2,3,4,5,6,7,8);
- u32 plate = bitswap<16>(m_plate,15,14,13,12,1,2,0,3,11,4,10,7,5,6,9,8);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,0,1,2,3,4,5,6,7,8);
+ u32 plate = BITSWAP16(m_plate,15,14,13,12,1,2,0,3,11,4,10,7,5,6,9,8);
display_matrix(12, 9, plate, grid);
}
WRITE8_MEMBER(bmboxing_state::plate_w)
{
- // R1x-R3x: vfd plate
+ // R1x-R3x: vfd matrix plate
int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -505,7 +505,7 @@ WRITE16_MEMBER(bmboxing_state::grid_w)
// D9-D12: input mux
m_inp_mux = data >> 9 & 0xf;
- // D4-D12: vfd grid
+ // D4-D12: vfd matrix grid
m_grid = data >> 4 & 0x1ff;
prepare_display();
}
@@ -623,14 +623,14 @@ public:
void bfriskyt_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,9,8,0,1,2,3,4,5,6,7);
- u32 plate = bitswap<24>(m_plate,23,22,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,8,0,1,2,3,4,5,6,7);
+ u32 plate = BITSWAP24(m_plate,23,22,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21);
display_matrix(22, 8, plate, grid);
}
WRITE8_MEMBER(bfriskyt_state::plate_w)
{
- // R0x-R3x: vfd plate
+ // R0x-R3x: vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -649,7 +649,7 @@ WRITE16_MEMBER(bfriskyt_state::grid_w)
update_int1();
}
- // D8-D15: vfd grid
+ // D8-D15: vfd matrix grid
m_grid = data >> 8 & 0xff;
// D0-D5: more plates
@@ -750,13 +750,13 @@ public:
WRITE8_MEMBER(packmon_state::plate_w)
{
- // R0x-R3x(,D0-D3): vfd plate
+ // R0x-R3x(,D0-D3): vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,0,1,2,3,4,5,6,7,8,9);
- u32 plate = bitswap<24>(m_plate,23,22,21,20,0,1,2,3,4,5,6,19,18,17,16,15,14,13,12,11,10,9,8,7);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,0,1,2,3,4,5,6,7,8,9);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,0,1,2,3,4,5,6,19,18,17,16,15,14,13,12,11,10,9,8,7);
display_matrix(20, 10, plate, grid);
}
@@ -768,7 +768,7 @@ WRITE16_MEMBER(packmon_state::grid_w)
// D11-D15: input mux
m_inp_mux = data >> 11 & 0x1f;
- // D6-D15: vfd grid
+ // D6-D15: vfd matrix grid
m_grid = data >> 6 & 0x3ff;
// D0-D3: plate 9-12 (update display there)
@@ -865,14 +865,14 @@ public:
void msthawk_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,0,1,2,3,4,5,6,7,8,9);
- u32 plate = bitswap<24>(m_plate,23,22,21,19,20,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,0,1,2,3,4,5,6,7,8,9);
+ u32 plate = BITSWAP24(m_plate,23,22,21,19,20,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
display_matrix(21, 10, plate, grid);
}
WRITE8_MEMBER(msthawk_state::plate_w)
{
- // R0x-R3x: vfd plate
+ // R0x-R3x: vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -891,7 +891,7 @@ WRITE16_MEMBER(msthawk_state::grid_w)
update_int0();
}
- // D6-D15: vfd grid
+ // D6-D15: vfd matrix grid
m_grid = data >> 6 & 0x3ff;
// D0-D4: more plates
@@ -992,13 +992,13 @@ public:
WRITE8_MEMBER(bzaxxon_state::plate_w)
{
- // R0x-R3x(,D0-D2): vfd plate
+ // R0x-R3x(,D0-D2): vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,6,7,8,9,10,5,4,3,2,1,0);
- u32 plate = bitswap<24>(m_plate,23,22,21,20,5,7,0,1,2,3,4,6,19,16,17,18,15,14,13,12,10,8,9,11) | 0x800;
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,6,7,8,9,10,5,4,3,2,1,0);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,5,7,0,1,2,3,4,6,19,16,17,18,15,14,13,12,10,8,9,11) | 0x800;
display_matrix(20, 11, plate, grid);
}
@@ -1015,7 +1015,7 @@ WRITE16_MEMBER(bzaxxon_state::grid_w)
update_int1();
}
- // D5-D15: vfd grid
+ // D5-D15: vfd matrix grid
m_grid = data >> 5 & 0x7ff;
// D0-D2: plate 7-9 (update display there)
@@ -1112,13 +1112,13 @@ public:
WRITE8_MEMBER(zackman_state::plate_w)
{
- // R0x-R6x(,D0,D1): vfd plate
+ // R0x-R6x(,D0,D1): vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u8 grid = bitswap<8>(m_grid,0,1,2,3,4,5,6,7);
- u32 plate = bitswap<32>(m_plate,31,30,27,0,1,2,3,4,5,6,7,8,9,10,11,24,25,26,29,28,23,22,21,20,19,18,17,16,15,14,13,12);
+ u8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
+ u32 plate = BITSWAP32(m_plate,31,30,27,0,1,2,3,4,5,6,7,8,9,10,11,24,25,26,29,28,23,22,21,20,19,18,17,16,15,14,13,12);
display_matrix(29, 8, plate, grid);
}
@@ -1135,7 +1135,7 @@ WRITE16_MEMBER(zackman_state::grid_w)
update_int0();
}
- // D8-D15: vfd grid
+ // D8-D15: vfd matrix grid
m_grid = data >> 8 & 0xff;
// D0,D1: plate 12,13 (update display there)
@@ -1232,14 +1232,14 @@ public:
void bpengo_state::prepare_display()
{
- u8 grid = bitswap<8>(m_grid,0,1,2,3,4,5,6,7);
- u32 plate = bitswap<32>(m_plate,31,30,29,28,23,22,21,16,17,18,19,20,27,26,25,24,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
+ u8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
+ u32 plate = BITSWAP32(m_plate,31,30,29,28,23,22,21,16,17,18,19,20,27,26,25,24,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
display_matrix(25, 8, plate, grid);
}
WRITE8_MEMBER(bpengo_state::plate_w)
{
- // R0x-R6x: vfd plate
+ // R0x-R6x: vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -1258,7 +1258,7 @@ WRITE16_MEMBER(bpengo_state::grid_w)
update_int0();
}
- // D0-D7: vfd grid
+ // D0-D7: vfd matrix grid
m_grid = data & 0xff;
prepare_display();
}
@@ -1360,14 +1360,14 @@ public:
void bbtime_state::prepare_display()
{
- u8 grid = bitswap<8>(m_grid,7,6,0,1,2,3,4,5);
- u32 plate = bitswap<32>(m_plate,31,30,29,28,25,24,26,27,22,23,15,14,12,11,10,8,7,6,4,1,5,9,13,3,2,16,17,18,19,20,0,21) | 0x1;
+ u8 grid = BITSWAP8(m_grid,7,6,0,1,2,3,4,5);
+ u32 plate = BITSWAP32(m_plate,31,30,29,28,25,24,26,27,22,23,15,14,12,11,10,8,7,6,4,1,5,9,13,3,2,16,17,18,19,20,0,21) | 0x1;
display_matrix(28, 6, plate, grid);
}
WRITE8_MEMBER(bbtime_state::plate_w)
{
- // R0x-R6x: vfd plate
+ // R0x-R6x: vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -1386,7 +1386,7 @@ WRITE16_MEMBER(bbtime_state::grid_w)
update_int0();
}
- // D4-D9: vfd grid
+ // D4-D9: vfd matrix grid
m_grid = data >> 4 & 0x3f;
prepare_display();
}
@@ -1480,13 +1480,13 @@ public:
WRITE8_MEMBER(bdoramon_state::plate_w)
{
- // R0x-R3x(,D0-D3): vfd plate
+ // R0x-R3x(,D0-D3): vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u8 grid = bitswap<8>(m_grid,0,1,2,3,4,5,7,6);
- u32 plate = bitswap<24>(m_plate,23,22,21,20,11,19,18,17,16,15,14,13,12,10,9,8,7,6,5,4,3,2,1,0);
+ u8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,7,6);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,11,19,18,17,16,15,14,13,12,10,9,8,7,6,5,4,3,2,1,0);
display_matrix(19, 8, plate, grid);
}
@@ -1495,7 +1495,7 @@ WRITE16_MEMBER(bdoramon_state::grid_w)
// D7: speaker out
m_speaker->level_w(data >> 7 & 1);
- // D8-D15: vfd grid
+ // D8-D15: vfd matrix grid
m_grid = data >> 8 & 0xff;
// D0-D3: plate 15-18 (update display there)
@@ -1579,13 +1579,13 @@ public:
WRITE8_MEMBER(bultrman_state::plate_w)
{
- // R0x-R3x(,D0-D2): vfd plate
+ // R0x-R3x(,D0-D2): vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u8 grid = bitswap<8>(m_grid,0,1,2,3,4,5,6,7);
- u32 plate = bitswap<24>(m_plate,23,22,21,20,19,0,18,17,16,15,14,13,12,3,11,10,9,8,7,6,5,4,1,2);
+ u8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,19,0,18,17,16,15,14,13,12,3,11,10,9,8,7,6,5,4,1,2);
display_matrix(18, 8, plate, grid);
}
@@ -1594,7 +1594,7 @@ WRITE16_MEMBER(bultrman_state::grid_w)
// D7: speaker out
m_speaker->level_w(data >> 7 & 1);
- // D8-D15: vfd grid
+ // D8-D15: vfd matrix grid
m_grid = data >> 8 & 0xff;
// D0-D2: plate 15-17 (update display there)
@@ -1672,13 +1672,13 @@ public:
void machiman_state::prepare_display()
{
- u32 plate = bitswap<24>(m_plate,23,22,21,20,19,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,19,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
display_matrix(19, 5, plate, m_grid);
}
WRITE8_MEMBER(machiman_state::plate_w)
{
- // R0x-R3x,R6012: vfd plate
+ // R0x-R3x,R6012: vfd matrix plate
int shift = (offset == hmcs40_cpu_device::PORT_R6X) ? 16 : offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -1689,7 +1689,7 @@ WRITE16_MEMBER(machiman_state::grid_w)
// D13: speaker out
m_speaker->level_w(data >> 13 & 1);
- // D0-D4: vfd grid
+ // D0-D4: vfd matrix grid
m_grid = data & 0x1f;
prepare_display();
}
@@ -1771,7 +1771,7 @@ public:
WRITE8_MEMBER(pairmtch_state::plate_w)
{
- // R2x,R3x,R6x: vfd plate
+ // R2x,R3x,R6x: vfd matrix plate
int shift = (offset == hmcs40_cpu_device::PORT_R6X) ? 8 : (offset-2) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
display_matrix(12, 6, m_plate, m_grid);
@@ -1788,7 +1788,7 @@ WRITE16_MEMBER(pairmtch_state::grid_w)
// D10,D15: input mux
m_inp_mux = (data >> 10 & 1) | (data >> 14 & 2);
- // D0-D5: vfd grid
+ // D0-D5: vfd matrix grid
m_grid = data & 0x3f;
display_matrix(12, 6, m_plate, m_grid);
}
@@ -1802,7 +1802,7 @@ READ8_MEMBER(pairmtch_state::input_r)
WRITE8_MEMBER(pairmtch_state::sound_w)
{
// R5x: soundlatch (to audiocpu R2x)
- m_soundlatch->write(space, 0, bitswap<8>(data,7,6,5,4,0,1,2,3));
+ m_soundlatch->write(space, 0, BITSWAP8(data,7,6,5,4,0,1,2,3));
}
@@ -1811,7 +1811,7 @@ WRITE8_MEMBER(pairmtch_state::sound_w)
WRITE8_MEMBER(pairmtch_state::sound2_w)
{
// R2x: soundlatch (to maincpu R5x)
- m_soundlatch2->write(space, 0, bitswap<8>(data,7,6,5,4,0,1,2,3));
+ m_soundlatch2->write(space, 0, BITSWAP8(data,7,6,5,4,0,1,2,3));
}
WRITE16_MEMBER(pairmtch_state::speaker_w)
@@ -1919,12 +1919,12 @@ public:
WRITE8_MEMBER(alnattck_state::plate_w)
{
- // R0x-R3x(,D0-D3): vfd plate
+ // R0x-R3x(,D0-D3): vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u32 plate = bitswap<24>(m_plate,23,22,21,20,19,18,17,16,11,9,8,10,7,2,0,1,3,4,5,6,12,13,14,15);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,17,16,11,9,8,10,7,2,0,1,3,4,5,6,12,13,14,15);
display_matrix(20, 10, plate, m_grid);
}
@@ -1936,7 +1936,7 @@ WRITE16_MEMBER(alnattck_state::grid_w)
// D7-D13: input mux
m_inp_mux = data >> 7 & 0x7f;
- // D6-D15: vfd grid
+ // D6-D15: vfd matrix grid
m_grid = data >> 6 & 0x3ff;
// D0-D3: plate 16-19 (update display there)
@@ -2054,7 +2054,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(cdkong_state::speaker_decay_sim)
void cdkong_state::prepare_display()
{
- u32 plate = bitswap<32>(m_plate,31,30,29,24,0,16,8,1,23,17,9,2,18,10,25,27,26,3,15,27,11,11,14,22,6,13,21,5,19,12,20,4) | 0x800800;
+ u32 plate = BITSWAP32(m_plate,31,30,29,24,0,16,8,1,23,17,9,2,18,10,25,27,26,3,15,27,11,11,14,22,6,13,21,5,19,12,20,4) | 0x800800;
display_matrix(29, 11, plate, m_grid);
}
@@ -2064,7 +2064,7 @@ WRITE8_MEMBER(cdkong_state::plate_w)
m_r[offset] = data;
speaker_decay_reset();
- // R0x-R6x: vfd plate
+ // R0x-R6x: vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -2075,7 +2075,7 @@ WRITE16_MEMBER(cdkong_state::grid_w)
// D3: speaker out
m_speaker->level_w(data >> 3 & 1);
- // D4-D14: vfd grid
+ // D4-D14: vfd matrix grid
m_grid = data >> 4 & 0x7ff;
prepare_display();
}
@@ -2172,8 +2172,8 @@ public:
void cgalaxn_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,1,2,0,11,10,9,8,7,6,5,4,3);
- u16 plate = bitswap<16>(m_plate,15,14,6,5,4,3,2,1,7,8,9,10,11,0,12,13);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,1,2,0,11,10,9,8,7,6,5,4,3);
+ u16 plate = BITSWAP16(m_plate,15,14,6,5,4,3,2,1,7,8,9,10,11,0,12,13);
display_matrix(15, 12, plate, grid);
}
@@ -2183,7 +2183,7 @@ WRITE8_MEMBER(cgalaxn_state::grid_w)
if (offset == hmcs40_cpu_device::PORT_R1X)
m_inp_mux = data & 3;
- // R1x-R3x: vfd grid
+ // R1x-R3x: vfd matrix grid
int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -2196,7 +2196,7 @@ WRITE16_MEMBER(cgalaxn_state::plate_w)
// D1: start alien attack whine sound effect (edge triggered)
- // D2-D15: vfd plate
+ // D2-D15: vfd matrix plate
m_plate = (m_plate & 0x4000) | (data >> 2 & 0x3fff);
prepare_display();
}
@@ -2302,13 +2302,13 @@ public:
WRITE8_MEMBER(cpacman_state::plate_w)
{
- // R1x-R6x(,D1,D2): vfd plate
+ // R1x-R6x(,D1,D2): vfd matrix plate
int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,0,1,2,3,4,5,6,7,8,9,10);
- u32 plate = bitswap<32>(m_plate,31,30,29,28,27,0,1,2,3,8,9,10,11,16,17,18,19,25,26,23,22,21,20,24,15,14,13,12,4,5,6,7);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,0,1,2,3,4,5,6,7,8,9,10);
+ u32 plate = BITSWAP32(m_plate,31,30,29,28,27,0,1,2,3,8,9,10,11,16,17,18,19,25,26,23,22,21,20,24,15,14,13,12,4,5,6,7);
display_matrix(27, 11, plate, grid);
}
@@ -2320,7 +2320,7 @@ WRITE16_MEMBER(cpacman_state::grid_w)
// D13-D15: input mux
m_inp_mux = data >> 13 & 7;
- // D5-D15: vfd grid
+ // D5-D15: vfd matrix grid
m_grid = data >> 5 & 0x7ff;
// D1,D2: plate 8,14 (update display there)
@@ -2419,13 +2419,13 @@ public:
WRITE8_MEMBER(cmspacmn_state::plate_w)
{
- // R1x-R6x(,D0,D1): vfd plate
+ // R1x-R6x(,D0,D1): vfd matrix plate
int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u16 grid = bitswap<16>(m_grid,15,14,13,11,10,9,8,7,6,5,4,3,2,1,0,1);
- u64 plate = BIT(m_plate,15)<<32 | bitswap<32>(m_plate,14,13,12,4,5,6,7,24,23,25,22,21,20,13,24,3,19,14,12,11,24,2,10,8,7,25,0,9,1,18,17,16) | 0x1004080;
+ u16 grid = BITSWAP16(m_grid,15,14,13,11,10,9,8,7,6,5,4,3,2,1,0,1);
+ u64 plate = BIT(m_plate,15)<<32 | BITSWAP32(m_plate,14,13,12,4,5,6,7,24,23,25,22,21,20,13,24,3,19,14,12,11,24,2,10,8,7,25,0,9,1,18,17,16) | 0x1004080;
display_matrix(33, 12, plate, grid);
}
@@ -2437,7 +2437,7 @@ WRITE16_MEMBER(cmspacmn_state::grid_w)
// D13-D15: input mux
m_inp_mux = data >> 13 & 7;
- // D5-D15: vfd grid
+ // D5-D15: vfd matrix grid
m_grid = data >> 5 & 0x7ff;
// D0,D1: more plates (update display there)
@@ -2540,7 +2540,7 @@ void sag_state::prepare_display()
// grid 8-11 are 7segs
set_display_segmask(0xf00, 0x7f);
- u8 seg = bitswap<8>(m_plate,3,4,5,6,7,8,9,10);
+ u8 seg = BITSWAP8(m_plate,3,4,5,6,7,8,9,10);
for (int y = 8; y < 12; y++)
m_display_state[y] = (m_grid >> y & 1) ? seg : 0;
@@ -2550,7 +2550,7 @@ void sag_state::prepare_display()
WRITE8_MEMBER(sag_state::plate_w)
{
- // R0x-R3x: vfd plate
+ // R0x-R3x: vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -2564,7 +2564,7 @@ WRITE16_MEMBER(sag_state::grid_w)
// D2-D7: input mux
m_inp_mux = data >> 2 & 0x3f;
- // D1-D12: vfd grid
+ // D1-D12: vfd matrix grid
m_grid = data >> 1 & 0xfff;
prepare_display();
}
@@ -2670,8 +2670,8 @@ public:
void egalaxn2_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14);
- u32 plate = bitswap<24>(m_plate,23,22,21,20,15,14,13,12,7,6,5,4,3,2,1,0,19,18,17,16,11,10,9,8);
+ u16 grid = BITSWAP16(m_grid,15,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,15,14,13,12,7,6,5,4,3,2,1,0,19,18,17,16,11,10,9,8);
display_matrix(24, 15, plate, grid);
}
@@ -2683,14 +2683,14 @@ WRITE16_MEMBER(egalaxn2_state::grid_w)
// D1-D4: input mux
m_inp_mux = data >> 1 & 0xf;
- // D1-D15: vfd grid
+ // D1-D15: vfd matrix grid
m_grid = data >> 1 & 0x7fff;
prepare_display();
}
WRITE8_MEMBER(egalaxn2_state::plate_w)
{
- // R1x-R6x: vfd plate
+ // R1x-R6x: vfd matrix plate
int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -2870,8 +2870,8 @@ protected:
void eturtles_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,1,14,13,12,11,10,9,8,7,6,5,4,3,2,0);
- u32 plate = bitswap<32>(m_plate,31,30,11,12,18,19,16,17,22,15,20,21,27,26,23,25,24,2,3,1,0,6,4,5,10,9,2,8,7,14,1,13);
+ u16 grid = BITSWAP16(m_grid,15,1,14,13,12,11,10,9,8,7,6,5,4,3,2,0);
+ u32 plate = BITSWAP32(m_plate,31,30,11,12,18,19,16,17,22,15,20,21,27,26,23,25,24,2,3,1,0,6,4,5,10,9,2,8,7,14,1,13);
display_matrix(30, 15, plate | (grid >> 5 & 8), grid); // grid 8 also forces plate 3 high
}
@@ -2879,7 +2879,7 @@ WRITE8_MEMBER(eturtles_state::plate_w)
{
m_r[offset] = data;
- // R0x-R6x: vfd plate
+ // R0x-R6x: vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -2897,7 +2897,7 @@ WRITE16_MEMBER(eturtles_state::grid_w)
update_int();
}
- // D1-D15: vfd grid
+ // D1-D15: vfd matrix grid
m_grid = data >> 1 & 0x7fff;
prepare_display();
}
@@ -3049,8 +3049,8 @@ public:
void estargte_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,0,14,13,12,11,10,9,8,7,6,5,4,3,2,1);
- u32 plate = bitswap<32>(m_plate,31,30,29,15,17,19,21,23,25,27,26,24,3,22,20,18,16,14,12,10,8,6,4,2,0,1,3,5,7,9,11,13);
+ u16 grid = BITSWAP16(m_grid,15,0,14,13,12,11,10,9,8,7,6,5,4,3,2,1);
+ u32 plate = BITSWAP32(m_plate,31,30,29,15,17,19,21,23,25,27,26,24,3,22,20,18,16,14,12,10,8,6,4,2,0,1,3,5,7,9,11,13);
display_matrix(29, 14, plate, grid);
}
@@ -3161,13 +3161,13 @@ public:
WRITE8_MEMBER(ghalien_state::plate_w)
{
- // R0x-R3x(,D10-D13): vfd plate
+ // R0x-R3x(,D10-D13): vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,0,1,2,3,4,5,6,7,8,9);
- u32 plate = bitswap<24>(m_plate,23,22,21,20,14,12,10,8,9,13,15,2,0,1,3,11,7,5,4,6,19,17,16,18);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,0,1,2,3,4,5,6,7,8,9);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,14,12,10,8,9,13,15,2,0,1,3,11,7,5,4,6,19,17,16,18);
display_matrix(20, 10, plate, grid);
}
@@ -3179,7 +3179,7 @@ WRITE16_MEMBER(ghalien_state::grid_w)
// D0-D6: input mux
m_inp_mux = data & 0x7f;
- // D0-D9: vfd grid
+ // D0-D9: vfd matrix grid
m_grid = data & 0x3ff;
// D10-D13: more plates (update display there)
@@ -3280,13 +3280,13 @@ public:
WRITE8_MEMBER(gckong_state::plate_w)
{
- // R0x-R3x(,D0,D1): vfd plate
+ // R0x-R3x(,D0,D1): vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,0,1,2,3,4,5,6,7,8,9,10);
- u32 plate = bitswap<32>(m_plate,31,30,29,28,27,26,25,6,7,8,12,13,14,15,16,17,18,17,16,12,11,10,9,8,7,6,5,4,3,2,1,0) | 0x8000;
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,0,1,2,3,4,5,6,7,8,9,10);
+ u32 plate = BITSWAP32(m_plate,31,30,29,28,27,26,25,6,7,8,12,13,14,15,16,17,18,17,16,12,11,10,9,8,7,6,5,4,3,2,1,0) | 0x8000;
display_matrix(32, 11, plate, grid);
}
@@ -3303,7 +3303,7 @@ WRITE16_MEMBER(gckong_state::grid_w)
update_int1();
}
- // D5-D15: vfd grid
+ // D5-D15: vfd matrix grid
m_grid = data >> 5 & 0x7ff;
// D0,D1: more plates (update display there)
@@ -3403,12 +3403,12 @@ public:
WRITE8_MEMBER(gdigdug_state::plate_w)
{
- // R0x-R6x(,D0-D3): vfd plate
+ // R0x-R6x(,D0-D3): vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u32 plate = bitswap<32>(m_plate,30,31,0,1,2,3,4,5,6,7,20,21,22,27,26,25,28,29,24,23,15,14,13,12,8,9,10,11,19,18,17,16);
+ u32 plate = BITSWAP32(m_plate,30,31,0,1,2,3,4,5,6,7,20,21,22,27,26,25,28,29,24,23,15,14,13,12,8,9,10,11,19,18,17,16);
display_matrix(32, 9, plate, m_grid);
}
@@ -3425,7 +3425,7 @@ WRITE16_MEMBER(gdigdug_state::grid_w)
update_int1();
}
- // D7-D15: vfd grid
+ // D7-D15: vfd matrix grid
m_grid = data >> 7 & 0x1ff;
// D0-D3: more plates (update display there)
@@ -3528,13 +3528,13 @@ public:
void mwcbaseb_state::prepare_display()
{
- u8 grid = bitswap<8>(m_grid,0,1,2,3,4,5,6,7);
+ u8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
display_matrix(16, 8, m_plate, grid);
}
WRITE8_MEMBER(mwcbaseb_state::plate_w)
{
- // R1x-R3x,R6x: vfd plate
+ // R1x-R3x,R6x: vfd matrix plate
int shift = (offset == hmcs40_cpu_device::PORT_R6X) ? 12 : (offset - hmcs40_cpu_device::PORT_R1X) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -3545,7 +3545,7 @@ WRITE16_MEMBER(mwcbaseb_state::grid_w)
// D9-D15: input mux
m_inp_mux = data >> 9 & 0x7f;
- // D0-D7: vfd grid
+ // D0-D7: vfd matrix grid
m_grid = data & 0xff;
prepare_display();
}
@@ -3683,12 +3683,12 @@ public:
WRITE8_MEMBER(pbqbert_state::plate_w)
{
- // R0x-R6x(,D8): vfd plate
+ // R0x-R6x(,D8): vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u32 plate = bitswap<32>(m_plate,31,30,24,25,26,27,28,15,14,29,13,12,11,10,9,8,7,6,5,4,3,2,1,0,16,17,18,19,20,21,22,23) | 0x400000;
+ u32 plate = BITSWAP32(m_plate,31,30,24,25,26,27,28,15,14,29,13,12,11,10,9,8,7,6,5,4,3,2,1,0,16,17,18,19,20,21,22,23) | 0x400000;
display_matrix(30, 8, plate, m_grid);
}
@@ -3697,7 +3697,7 @@ WRITE16_MEMBER(pbqbert_state::grid_w)
// D14: speaker out
m_speaker->level_w(data >> 14 & 1);
- // D0-D7: vfd grid
+ // D0-D7: vfd matrix grid
m_grid = data & 0xff;
// D8: plate 25 (update display there)
@@ -3776,14 +3776,14 @@ public:
void kingman_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,9,0,1,2,3,4,5,6,7,8);
- u32 plate = bitswap<24>(m_plate,23,6,7,5,4,3,2,1,0,13,12,20,19,18,17,16,10,11,9,8,14,15,13,12);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,0,1,2,3,4,5,6,7,8);
+ u32 plate = BITSWAP24(m_plate,23,6,7,5,4,3,2,1,0,13,12,20,19,18,17,16,10,11,9,8,14,15,13,12);
display_matrix(23, 9, plate, grid);
}
WRITE8_MEMBER(kingman_state::plate_w)
{
- // R0x-R3x: vfd plate
+ // R0x-R3x: vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -3802,7 +3802,7 @@ WRITE16_MEMBER(kingman_state::grid_w)
update_int0();
}
- // D7-D15: vfd grid
+ // D7-D15: vfd matrix grid
m_grid = data >> 7 & 0x1ff;
// D0-D4: more plates
@@ -3897,14 +3897,14 @@ public:
void tmtron_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,1,2,3,4,5,6,7,8,9,0);
- u32 plate = bitswap<24>(m_plate,23,5,2,21,1,6,7,9,10,11,21,0,19,3,4,8,3,18,17,16,12,13,14,15);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,1,2,3,4,5,6,7,8,9,0);
+ u32 plate = BITSWAP24(m_plate,23,5,2,21,1,6,7,9,10,11,21,0,19,3,4,8,3,18,17,16,12,13,14,15);
display_matrix(23, 10, plate, grid);
}
WRITE8_MEMBER(tmtron_state::plate_w)
{
- // R0x-R3x: vfd plate
+ // R0x-R3x: vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -3923,7 +3923,7 @@ WRITE16_MEMBER(tmtron_state::grid_w)
update_int1();
}
- // D6-D15: vfd grid
+ // D6-D15: vfd matrix grid
m_grid = data >> 6 & 0x3ff;
// D0-D3,D5: more plates
@@ -4018,12 +4018,12 @@ public:
WRITE8_MEMBER(vinvader_state::plate_w)
{
- // R1x-R3x(,D4-D6): vfd plate
+ // R1x-R3x(,D4-D6): vfd matrix plate
int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- u16 plate = bitswap<16>(m_plate,15,11,7,3,10,6,14,2,9,5,13,1,8,4,12,0);
+ u16 plate = BITSWAP16(m_plate,15,11,7,3,10,6,14,2,9,5,13,1,8,4,12,0);
display_matrix(12, 9, plate, m_grid);
}
@@ -4032,7 +4032,7 @@ WRITE16_MEMBER(vinvader_state::grid_w)
// D0: speaker out
m_speaker->level_w(data & 1);
- // D7-D15: vfd grid
+ // D7-D15: vfd matrix grid
m_grid = data >> 7 & 0x1ff;
// D4-D6: more plates (update display there)
@@ -4147,7 +4147,7 @@ ROM_START( bzaxxon )
ROM_CONTINUE( 0x1e80, 0x0100 )
ROM_REGION( 521080, "svg", 0)
- ROM_LOAD( "bzaxxon.svg", 0, 521080, BAD_DUMP CRC(f4fbb2de) SHA1(83db400e67d91ae4bfee3e8568ae9df94ebede19) )
+ ROM_LOAD( "bzaxxon.svg", 0, 521080, CRC(f4fbb2de) SHA1(83db400e67d91ae4bfee3e8568ae9df94ebede19) )
ROM_END
@@ -4167,7 +4167,7 @@ ROM_START( bpengo )
ROM_CONTINUE( 0x1e80, 0x0100 )
ROM_REGION( 744461, "svg", 0)
- ROM_LOAD( "bpengo.svg", 0, 744461, BAD_DUMP CRC(2b9abaa5) SHA1(c70a6ac1fa757fdd3ababfe6e00573ef1410c1eb) )
+ ROM_LOAD( "bpengo.svg", 0, 744461, CRC(2b9abaa5) SHA1(c70a6ac1fa757fdd3ababfe6e00573ef1410c1eb) )
ROM_END
@@ -4177,7 +4177,7 @@ ROM_START( bbtime )
ROM_CONTINUE( 0x1e80, 0x0100 )
ROM_REGION( 461605, "svg", 0)
- ROM_LOAD( "bbtime.svg", 0, 461605, BAD_DUMP CRC(5b335271) SHA1(46c45b711358e8397ae707668aecead9e341ab8a) )
+ ROM_LOAD( "bbtime.svg", 0, 461605, CRC(5b335271) SHA1(46c45b711358e8397ae707668aecead9e341ab8a) )
ROM_END
diff --git a/src/mame/drivers/hh_melps4.cpp b/src/mame/drivers/hh_melps4.cpp
index 9dbdd384e1c..f233dc064d7 100644
--- a/src/mame/drivers/hh_melps4.cpp
+++ b/src/mame/drivers/hh_melps4.cpp
@@ -235,8 +235,8 @@ public:
void cfrogger_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,0,1,2,3,4,5,6,7,8,9,10,11);
- u16 plate = bitswap<16>(m_plate,12,4,13,5,14,6,15,7,3,11,2,10,1,9,0,8);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,0,1,2,3,4,5,6,7,8,9,10,11);
+ u16 plate = BITSWAP16(m_plate,12,4,13,5,14,6,15,7,3,11,2,10,1,9,0,8);
display_matrix(16, 12, plate, grid);
}
@@ -246,7 +246,7 @@ WRITE8_MEMBER(cfrogger_state::plate_w)
if (offset == MELPS4_PORTF)
m_inp_mux = data & 3;
- // Sx,Fx,Gx: vfd plate
+ // Sx,Fx,Gx: vfd matrix plate
int mask = (offset == MELPS4_PORTS) ? 0xff : 0xf; // port S is 8-bit
int shift = (offset == MELPS4_PORTS) ? 0 : (offset + 1) * 4;
m_plate = (m_plate & ~(mask << shift)) | (data << shift);
@@ -255,7 +255,7 @@ WRITE8_MEMBER(cfrogger_state::plate_w)
WRITE16_MEMBER(cfrogger_state::grid_w)
{
- // D0-D11: vfd grid
+ // D0-D11: vfd matrix grid
m_grid = data;
prepare_display();
}
@@ -351,8 +351,8 @@ public:
void gjungler_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,9,8,7,6,5,4,3,2,0,1);
- u32 plate = bitswap<24>(m_plate,23,22,21,20,19,18,8,9,10,11,13,16,15,14,13,12,7,0,6,1,5,2,4,3) | 0x2000;
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,8,7,6,5,4,3,2,0,1);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,8,9,10,11,13,16,15,14,13,12,7,0,6,1,5,2,4,3) | 0x2000;
display_matrix(18, 12, plate, grid);
}
@@ -362,7 +362,7 @@ WRITE8_MEMBER(gjungler_state::plate_w)
if (offset == MELPS4_PORTG)
m_inp_mux = data & 3;
- // Sx,Fx,Gx,U: vfd plate
+ // Sx,Fx,Gx,U: vfd matrix plate
int mask = (offset == MELPS4_PORTS) ? 0xff : 0xf; // port S is 8-bit
int shift = (offset == MELPS4_PORTS) ? 0 : (offset + 1) * 4;
m_plate = (m_plate & ~(mask << shift)) | (data << shift);
@@ -371,7 +371,7 @@ WRITE8_MEMBER(gjungler_state::plate_w)
WRITE16_MEMBER(gjungler_state::grid_w)
{
- // D0-D11: vfd grid
+ // D0-D11: vfd matrix grid
m_grid = data;
prepare_display();
}
diff --git a/src/mame/drivers/hh_pic16.cpp b/src/mame/drivers/hh_pic16.cpp
index d7e03652bfa..ca8e2a946aa 100644
--- a/src/mame/drivers/hh_pic16.cpp
+++ b/src/mame/drivers/hh_pic16.cpp
@@ -1395,7 +1395,7 @@ WRITE8_MEMBER(uspbball_state::write_a)
WRITE8_MEMBER(uspbball_state::write_b)
{
// B: digit segment data
- m_b = bitswap<8>(data,0,1,2,3,4,5,6,7);
+ m_b = BITSWAP8(data,0,1,2,3,4,5,6,7);
prepare_display();
}
diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp
index 97cf885532a..1879f7801e7 100644
--- a/src/mame/drivers/hh_sm510.cpp
+++ b/src/mame/drivers/hh_sm510.cpp
@@ -7,13 +7,10 @@
List of child drivers:
- rzone: Tiger R-Zone
- The LCD screen graphics are provided internally with an SVG file.
- MAME external artwork is recommended for the backgrounds inlays.
-
TODO:
- - improve/redo SVGs of: gnw_mc25, gnw_eg26, exospace
+ - improve LCD segments in SVGs for: gnw_mc25, gnw_eg26, exospace
- confirm gnw_mc25/gnw_eg26 rom (dumped from Soviet clone, but pretty confident that it's same)
- - identify lcd segments for tgaiden
+ - some of the Tiger games release years are uncertain
***************************************************************************/
@@ -1602,16 +1599,13 @@ MACHINE_CONFIG_END
/***************************************************************************
- Tiger Gauntlet (model 7-778), Robin Hood (model 7-861)
+ Tiger Gauntlet
* Sharp SM510 under epoxy (die label CMS54C, KMS583)
* lcd screen with custom segments, 1-bit sound
- known releases (Gauntlet):
+ known releases:
- World: Gauntlet
- Japan: Gauntlet (published by Sega)
- - UK: Gauntlet (published by Grandstand)
-
- Robin Hood is the same ROM, different LCD.
***************************************************************************/
@@ -1670,13 +1664,6 @@ static INPUT_PORTS_START( tgaunt )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
INPUT_PORTS_END
-static INPUT_PORTS_START( trobhood )
- PORT_INCLUDE( tgaunt )
-
- PORT_MODIFY("IN.3")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Money")
-INPUT_PORTS_END
-
static MACHINE_CONFIG_START( tgaunt )
/* basic machine hardware */
@@ -1703,21 +1690,13 @@ static MACHINE_CONFIG_START( tgaunt )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( trobhood, tgaunt )
-
- /* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_SIZE(1468, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1468-1, 0, 1080-1)
-MACHINE_CONFIG_END
-
/***************************************************************************
- Tiger Double Dragon (model 7-780)
+ Tiger Double Dragon
* Sharp SM510 under epoxy (die label CMS54C, KMS570, KMS593)
* lcd screen with custom segments, 1-bit sound
@@ -1805,200 +1784,7 @@ MACHINE_CONFIG_END
/***************************************************************************
- Tiger Karnov (model 7-783)
- * Sharp SM510 under epoxy (die label CMS54C, KMS582)
- * lcd screen with custom segments, 1-bit sound
-
-***************************************************************************/
-
-class tkarnov_state : public hh_sm510_state
-{
-public:
- tkarnov_state(const machine_config &mconfig, device_type type, const char *tag)
- : hh_sm510_state(mconfig, type, tag)
- {
- m_inp_lines = 6;
- m_inp_fixed = 6;
- }
-};
-
-// config
-
-static INPUT_PORTS_START( tkarnov )
- PORT_START("IN.0") // S1
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.1") // S2
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.2") // S3
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.3") // S4
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Fire-Ball")
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.4") // S5
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Boomerang")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Shield")
- PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.5") // S6
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Max Score")
- PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.6") // GND!
- PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start")
-
- PORT_START("BA")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
-
- PORT_START("B")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
-
- PORT_START("ACL")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
-INPUT_PORTS_END
-
-static MACHINE_CONFIG_START( tkarnov )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz)
- MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w))
- MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
- MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
- MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w))
- MCFG_SM510_READ_BA_CB(IOPORT("BA"))
- MCFG_SM510_READ_B_CB(IOPORT("B"))
-
- /* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1477, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1477-1, 0, 1080-1)
-
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_svg)
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-
-
-
-
-/***************************************************************************
-
- Tiger Ninja Gaiden (model 7-787)
- * Sharp SM510 under epoxy (die label M82)
- * lcd screen with custom segments, 1 led, 1-bit sound
-
-***************************************************************************/
-
-class tgaiden_state : public hh_sm510_state
-{
-public:
- tgaiden_state(const machine_config &mconfig, device_type type, const char *tag)
- : hh_sm510_state(mconfig, type, tag)
- {
- m_inp_lines = 5;
- m_inp_fixed = 5;
- }
-
- DECLARE_WRITE8_MEMBER(write_r);
-};
-
-// handlers
-
-WRITE8_MEMBER(tgaiden_state::write_r)
-{
- // R1: speaker out
- piezo_r1_w(space, 0, data & 1);
-
- // R2: led
- //..
-}
-
-// config
-
-static INPUT_PORTS_START( tgaiden )
- PORT_START("IN.0") // S1
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.1") // S2
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.2") // S3
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.3") // S4
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Jump")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Attack/Pick")
- PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.4") // S5
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause")
- PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.5") // GND!
- PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start")
-
- PORT_START("BA")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
-
- PORT_START("B")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
-
- PORT_START("ACL")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
-INPUT_PORTS_END
-
-static MACHINE_CONFIG_START( tgaiden )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz)
- MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w))
- MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
- MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
- MCFG_SM510_WRITE_R_CB(WRITE8(tgaiden_state, write_r))
- MCFG_SM510_READ_BA_CB(IOPORT("BA"))
- MCFG_SM510_READ_B_CB(IOPORT("B"))
-
- /* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1920, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1920-1, 0, 1080-1)
-
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_svg)
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-
-
-
-
-/***************************************************************************
-
- Tiger Batman (model 7-799)
+ Tiger Batman
* Sharp SM510 under epoxy (die label CMS54C, KMS597)
* lcd screen with custom segments, 1-bit sound
@@ -2085,198 +1871,10 @@ MACHINE_CONFIG_END
/***************************************************************************
- Tiger Space Harrier II (model 7-814)
- * Sharp SM510 under epoxy (die label M91)
- * lcd screen with custom segments, 1-bit sound
-
- known releases:
- - World: Space Harrier II
- - Japan: Space Harrier (published by Sega)
-
-***************************************************************************/
-
-class tsharr2_state : public hh_sm510_state
-{
-public:
- tsharr2_state(const machine_config &mconfig, device_type type, const char *tag)
- : hh_sm510_state(mconfig, type, tag)
- {
- m_inp_lines = 5;
- m_inp_fixed = 5;
- }
-};
-
-// config
-
-static INPUT_PORTS_START( tsharr2 )
- PORT_START("IN.0") // S1
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.1") // S2
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.2") // S3
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.3") // S4
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) // Attack
- PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.4") // S5
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Max Score")
- PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.5") // GND!
- PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start")
-
- PORT_START("BA")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
-
- PORT_START("B")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
-
- PORT_START("ACL")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
-INPUT_PORTS_END
-
-static MACHINE_CONFIG_START( tsharr2 )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz)
- MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w))
- MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
- MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
- MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w))
- MCFG_SM510_R_DIRECT_CONTROL(true)
- MCFG_SM510_READ_BA_CB(IOPORT("BA"))
- MCFG_SM510_READ_B_CB(IOPORT("B"))
-
- /* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1493, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1493-1, 0, 1080-1)
-
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_svg)
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-
-
-
-
-/***************************************************************************
-
- Tiger Robocop 2 (model 7-830)
- * Sharp SM510 under epoxy (die label M96)
- * lcd screen with custom segments, 1-bit sound
-
-***************************************************************************/
-
-class trobocop2_state : public hh_sm510_state
-{
-public:
- trobocop2_state(const machine_config &mconfig, device_type type, const char *tag)
- : hh_sm510_state(mconfig, type, tag)
- {
- m_inp_lines = 6;
- m_inp_fixed = 6;
- }
-};
-
-// config
-
-static INPUT_PORTS_START( trobocop2 )
- PORT_START("IN.0") // S1
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.1") // S2
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) // Rescue
- PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.2") // S3
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) // /Pick
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.3") // S4
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Shoot Right")
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.4") // S5
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Shoot Up")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Shoot Left")
- PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.5") // S6
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause")
- PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.6") // GND!
- PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start")
-
- PORT_START("BA")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
-
- PORT_START("B")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
-
- PORT_START("ACL")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
-INPUT_PORTS_END
-
-static MACHINE_CONFIG_START( trobocop2 )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz)
- MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w))
- MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
- MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
- MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w))
- MCFG_SM510_READ_BA_CB(IOPORT("BA"))
- MCFG_SM510_READ_B_CB(IOPORT("B"))
-
- /* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1487, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1487-1, 0, 1080-1)
-
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_svg)
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-
-
-
-
-/***************************************************************************
-
- Tiger Altered Beast (model 7-831)
+ Tiger Altered Beast
* Sharp SM510 under epoxy (die label M88)
* lcd screen with custom segments, 1-bit sound
- known releases:
- - World: Altered Beast
- - Japan: Juuouki (published by Sega)
-
***************************************************************************/
class taltbeast_state : public hh_sm510_state
@@ -2365,7 +1963,7 @@ MACHINE_CONFIG_END
/***************************************************************************
- Tiger Swamp Thing (model 7-851)
+ Tiger Swamp Thing
* Sharp SM510 under epoxy (die label MB0)
* lcd screen with custom segments, 1-bit sound
@@ -2453,99 +2051,7 @@ MACHINE_CONFIG_END
/***************************************************************************
- Tiger Battletoads (model 7-868)
- * Sharp SM510 under epoxy (die label MB3)
- * lcd screen with custom segments, 1-bit sound
-
-***************************************************************************/
-
-class tbtoads_state : public hh_sm510_state
-{
-public:
- tbtoads_state(const machine_config &mconfig, device_type type, const char *tag)
- : hh_sm510_state(mconfig, type, tag)
- {
- m_inp_lines = 6;
- m_inp_fixed = 6;
- }
-};
-
-// config
-
-static INPUT_PORTS_START( tbtoads )
- PORT_START("IN.0") // S1
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.1") // S2
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.2") // S3
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.3") // S4
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Attack Right")
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.4") // S5
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Select")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Attack Left")
- PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.5") // S6
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Score")
- PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.6") // GND!
- PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start")
-
- PORT_START("BA")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
-
- PORT_START("B")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
-
- PORT_START("ACL")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
-INPUT_PORTS_END
-
-static MACHINE_CONFIG_START( tbtoads )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz)
- MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w))
- MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
- MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
- MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w))
- MCFG_SM510_READ_BA_CB(IOPORT("BA"))
- MCFG_SM510_READ_B_CB(IOPORT("B"))
-
- /* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1454, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1454-1, 0, 1080-1)
-
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_svg)
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-
-
-
-
-/***************************************************************************
-
- Tiger Sonic The Hedgehog (model 78-513)
+ Tiger Sonic The Hedgehog
* Sharp SM511 under epoxy (die label KMS73B, N71)
* lcd screen with custom segments, 2-bit sound
@@ -2595,7 +2101,7 @@ WRITE8_MEMBER(tsonic_state::write_s)
static INPUT_PORTS_START( tsonic )
PORT_START("IN.0") // S2
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) // Jump Up
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) // Jump
PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.1") // S3
@@ -2604,7 +2110,7 @@ static INPUT_PORTS_START( tsonic )
PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.2") // S4
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) // Down
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.3") // S5
@@ -2663,26 +2169,26 @@ MACHINE_CONFIG_END
/***************************************************************************
- Tiger The Shadow (model 78-559)
- * Sharp SM510 under epoxy (die label MJ5)
+ Tiger Space Jam
+ * Sharp SM510 under epoxy (die label KMS10, 23)
* lcd screen with custom segments, 1-bit sound
***************************************************************************/
-class tshadow_state : public hh_sm510_state
+class tsjam_state : public hh_sm510_state
{
public:
- tshadow_state(const machine_config &mconfig, device_type type, const char *tag)
+ tsjam_state(const machine_config &mconfig, device_type type, const char *tag)
: hh_sm510_state(mconfig, type, tag)
{
- m_inp_lines = 6;
- m_inp_fixed = 6;
+ m_inp_lines = 5;
+ m_inp_fixed = 5;
}
};
// config
-static INPUT_PORTS_START( tshadow )
+static INPUT_PORTS_START( tsjam )
PORT_START("IN.0") // S1
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
@@ -2697,112 +2203,15 @@ static INPUT_PORTS_START( tshadow )
PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.3") // S4
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Punch")
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.4") // S5
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Shadow")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Kick")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Shoot/Block")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Tune/Steal")
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_START("IN.5") // S6
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause")
- PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.6") // GND!
- PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start")
-
- PORT_START("BA")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
-
- PORT_START("B")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
-
- PORT_START("ACL")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
-INPUT_PORTS_END
-
-static MACHINE_CONFIG_START( tshadow )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz)
- MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w))
- MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
- MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
- MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w))
- MCFG_SM510_READ_BA_CB(IOPORT("BA"))
- MCFG_SM510_READ_B_CB(IOPORT("B"))
-
- /* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1484, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1484-1, 0, 1080-1)
-
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_svg)
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-
-
-
-
-/***************************************************************************
-
- Tiger Batman Forever - Double Dose of Doom (model 78-572)
- * Sharp SM510 under epoxy (die label MK3)
- * lcd screen with custom segments, 1-bit sound
-
-***************************************************************************/
-
-class tbatfor_state : public hh_sm510_state
-{
-public:
- tbatfor_state(const machine_config &mconfig, device_type type, const char *tag)
- : hh_sm510_state(mconfig, type, tag)
- {
- m_inp_lines = 6;
- m_inp_fixed = 6;
- }
-};
-
-// config
-
-static INPUT_PORTS_START( tbatfor )
- PORT_START("IN.0") // S1
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Grappling Gun")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0a, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.1") // S2
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.2") // S3
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.3") // S4
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Help")
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
PORT_START("IN.4") // S5
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Batarang")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Thruster")
- PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.5") // S6
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause")
PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_START("IN.6") // GND!
+ PORT_START("IN.5") // GND!
PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start")
@@ -2816,10 +2225,10 @@ static INPUT_PORTS_START( tbatfor )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
INPUT_PORTS_END
-static MACHINE_CONFIG_START( tbatfor )
+static MACHINE_CONFIG_START( tsjam )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz)
+ MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz) // no external XTAL
MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w))
MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
@@ -2830,8 +2239,8 @@ static MACHINE_CONFIG_START( tbatfor )
/* video hardware */
MCFG_SCREEN_SVG_ADD("screen", "svg")
MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1493, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1493-1, 0, 1080-1)
+ MCFG_SCREEN_SIZE(1421, 1080)
+ MCFG_SCREEN_VISIBLE_AREA(0, 1421-1, 0, 1080-1)
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_svg)
@@ -2848,7 +2257,7 @@ MACHINE_CONFIG_END
/***************************************************************************
- Tiger Judge Dredd (model 78-581)
+ Tiger Judge Dredd
* Sharp SM510 under epoxy (die label MKS)
* lcd screen with custom segments, 1-bit sound
@@ -2941,187 +2350,6 @@ MACHINE_CONFIG_END
/***************************************************************************
- Tiger Apollo 13 (model 78-591)
- * Sharp SM510 under epoxy (die label 10 07)
- * lcd screen with custom segments, 1-bit sound
-
-***************************************************************************/
-
-class tapollo13_state : public hh_sm510_state
-{
-public:
- tapollo13_state(const machine_config &mconfig, device_type type, const char *tag)
- : hh_sm510_state(mconfig, type, tag)
- {
- m_inp_lines = 6;
- m_inp_fixed = 6;
- }
-};
-
-// config
-
-static INPUT_PORTS_START( tapollo13 )
- PORT_START("IN.0") // S1
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Thruster Left")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0a, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.1") // S2
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.2") // S3
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.3") // S4
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Parachute")
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.4") // S5
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Thruster Right")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Capture")
- PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.5") // S6
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause")
- PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.6") // GND!
- PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start")
-
- PORT_START("BA")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
-
- PORT_START("B")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
-
- PORT_START("ACL")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
-INPUT_PORTS_END
-
-static MACHINE_CONFIG_START( tapollo13 )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz)
- MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w))
- MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
- MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
- MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w))
- MCFG_SM510_READ_BA_CB(IOPORT("BA"))
- MCFG_SM510_READ_B_CB(IOPORT("B"))
-
- /* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1467, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1467-1, 0, 1080-1)
-
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_svg)
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-
-
-
-
-/***************************************************************************
-
- Tiger Space Jam (model 78-621)
- * Sharp SM510 under epoxy (die label KMS10, 23)
- * lcd screen with custom segments, 1-bit sound
-
-***************************************************************************/
-
-class tsjam_state : public hh_sm510_state
-{
-public:
- tsjam_state(const machine_config &mconfig, device_type type, const char *tag)
- : hh_sm510_state(mconfig, type, tag)
- {
- m_inp_lines = 5;
- m_inp_fixed = 5;
- }
-};
-
-// config
-
-static INPUT_PORTS_START( tsjam )
- PORT_START("IN.0") // S1
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.1") // S2
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.2") // S3
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.3") // S4
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Shoot/Block")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Tune/Steal")
- PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.4") // S5
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause")
- PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.5") // GND!
- PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start")
-
- PORT_START("BA")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
-
- PORT_START("B")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
-
- PORT_START("ACL")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
-INPUT_PORTS_END
-
-static MACHINE_CONFIG_START( tsjam )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz) // no external XTAL
- MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w))
- MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
- MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
- MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w))
- MCFG_SM510_READ_BA_CB(IOPORT("BA"))
- MCFG_SM510_READ_B_CB(IOPORT("B"))
-
- /* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1421, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1421-1, 0, 1080-1)
-
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_svg)
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-
-
-
-
-/***************************************************************************
-
Game driver(s)
***************************************************************************/
@@ -3257,7 +2485,7 @@ ROM_START( gnw_mc25 )
ROM_LOAD( "mc-25", 0x0000, 0x0740, BAD_DUMP CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) // dumped from Soviet clone
ROM_REGION( 102453, "svg", 0)
- ROM_LOAD( "gnw_mc25.svg", 0, 102453, BAD_DUMP CRC(88cc7c49) SHA1(c000d51d1b99750116b97f9bafc0314ea506366d) )
+ ROM_LOAD( "gnw_mc25.svg", 0, 102453, CRC(88cc7c49) SHA1(c000d51d1b99750116b97f9bafc0314ea506366d) )
ROM_END
ROM_START( gnw_eg26 )
@@ -3265,7 +2493,7 @@ ROM_START( gnw_eg26 )
ROM_LOAD( "eg-26", 0x0000, 0x0740, BAD_DUMP CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) // dumped from Soviet clone
ROM_REGION( 102848, "svg", 0)
- ROM_LOAD( "gnw_eg26.svg", 0, 102848, BAD_DUMP CRC(742c2605) SHA1(984d430ad2ff47ad7a3f9b25b7d3f3d51b10cca5) )
+ ROM_LOAD( "gnw_eg26.svg", 0, 102848, CRC(742c2605) SHA1(984d430ad2ff47ad7a3f9b25b7d3f3d51b10cca5) )
ROM_END
ROM_START( nupogodi )
@@ -3281,7 +2509,7 @@ ROM_START( exospace )
ROM_LOAD( "exospace.bin", 0x0000, 0x0740, CRC(553e2b09) SHA1(2b74f8437b881fbb62b61f25435a5bfc66872a9a) )
ROM_REGION( 66790, "svg", 0)
- ROM_LOAD( "exospace.svg", 0, 66790, BAD_DUMP CRC(df31043a) SHA1(2d8caf42894df699e469652e5f448beaebbcc1ae) )
+ ROM_LOAD( "exospace.svg", 0, 66790, CRC(df31043a) SHA1(2d8caf42894df699e469652e5f448beaebbcc1ae) )
ROM_END
@@ -3359,14 +2587,6 @@ ROM_START( tgaunt )
ROM_LOAD( "tgaunt.svg", 0, 713020, CRC(1f65ae21) SHA1(57ca33d073d1096a7fc17f2bdac940868d1ae651) )
ROM_END
-ROM_START( trobhood )
- ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "583", 0x0000, 0x1000, CRC(598d8156) SHA1(9f776e8b9b4321e8118481e6b1304f8a38f9932e) )
-
- ROM_REGION( 704892, "svg", 0)
- ROM_LOAD( "trobhood.svg", 0, 704892, CRC(291fd8db) SHA1(1de6bd0e203f16c44f7d661e44863a1a919f3da9) )
-ROM_END
-
ROM_START( tddragon )
ROM_REGION( 0x1000, "maincpu", 0 )
@@ -3377,24 +2597,6 @@ ROM_START( tddragon )
ROM_END
-ROM_START( tkarnov )
- ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "582", 0x0000, 0x1000, CRC(cee85bdd) SHA1(143e39524f1dea523e0575f327ed189343cc87f5) )
-
- ROM_REGION( 527360, "svg", 0)
- ROM_LOAD( "tkarnov.svg", 0, 527360, CRC(ee918299) SHA1(2d8ccf7650ec9b71fcdbdf3f5228e17dca990216) )
-ROM_END
-
-
-ROM_START( tgaiden )
- ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "m82", 0x0000, 0x1000, CRC(278eafb0) SHA1(14396a0010bade0fde705969151200ed432321e7) )
-
- ROM_REGION( 100000, "svg", 0)
- ROM_LOAD( "tgaiden.svg", 0, 100000, NO_DUMP )
-ROM_END
-
-
ROM_START( tbatman )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "597", 0x0000, 0x1000, CRC(8b7acc97) SHA1(fe811675dc5c5ef9f6f969685c933926c8b9e868) )
@@ -3404,30 +2606,12 @@ ROM_START( tbatman )
ROM_END
-ROM_START( tsharr2 )
- ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "m91", 0x0000, 0x1000, CRC(b207ac79) SHA1(9889dfec26089313ba2bdac845a75a26742d09e1) )
-
- ROM_REGION( 555126, "svg", 0)
- ROM_LOAD( "tsharr2.svg", 0, 555126, CRC(ff43e29b) SHA1(0af02e65a1dcf95958296a292343430670b67ae5) )
-ROM_END
-
-
-ROM_START( trobocop2 )
- ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "m96", 0x0000, 0x1000, CRC(3704b60c) SHA1(04275833e1a79fd33226faf060890b66ae54e1d3) )
-
- ROM_REGION( 463532, "svg", 0)
- ROM_LOAD( "trobocop2.svg", 0, 463532, CRC(c2b92868) SHA1(87912f02bea967c10ba1d8f7c810e3c44b0e3cff) )
-ROM_END
-
-
ROM_START( taltbeast )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "m88", 0x0000, 0x1000, CRC(1b3d15e7) SHA1(78371230dff872d6c07eefdbc4856c2a3336eb61) )
- ROM_REGION( 667887, "svg", 0)
- ROM_LOAD( "taltbeast.svg", 0, 667887, CRC(1ca9bbf1) SHA1(be844dddee4a95f70ea2adf875d3ee6cda2a6633) )
+ ROM_REGION( 668221, "svg", 0)
+ ROM_LOAD( "taltbeast.svg", 0, 668221, CRC(9b41b5b9) SHA1(4c520f917572894a2f0ab92efbd344c6bc6deccc) )
ROM_END
@@ -3440,15 +2624,6 @@ ROM_START( tswampt )
ROM_END
-ROM_START( tbtoads )
- ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "mb3", 0x0000, 0x1000, CRC(8fa4c55a) SHA1(2be97e63dfed51313e180d7388dd431058db5a51) )
-
- ROM_REGION( 694523, "svg", 0)
- ROM_LOAD( "tbtoads.svg", 0, 694523, CRC(9a5c3ac5) SHA1(569e8ecd6dee75842e23eebf17611cef8d06ccf5) )
-ROM_END
-
-
ROM_START( tsonic )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "n71.program", 0x0000, 0x1000, CRC(44cafd68) SHA1(bf8d0ab88d153fabc688ffec19959209ca79c3db) )
@@ -3461,21 +2636,12 @@ ROM_START( tsonic )
ROM_END
-ROM_START( tshadow )
- ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "mj5", 0x0000, 0x1000, CRC(09822d73) SHA1(30cae8b783a4f388193aee248fa18c6c1042e0ec) )
-
- ROM_REGION( 946450, "svg", 0)
- ROM_LOAD( "tshadow.svg", 0, 946450, CRC(5cab680a) SHA1(8f8f660c08fc56287362b11c183655047fbd91ca) )
-ROM_END
-
-
-ROM_START( tbatfor )
+ROM_START( tsjam )
ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "mk3", 0x0000, 0x1000, CRC(9993c382) SHA1(0c89e21024315ce7c086af5390c60f5766028c4f) )
+ ROM_LOAD( "10_23", 0x0000, 0x1000, CRC(6eaabfbd) SHA1(f0ecbd6f65fe72ce2d8a452685be2e77a63fc9f0) )
- ROM_REGION( 876501, "svg", 0)
- ROM_LOAD( "tbatfor.svg", 0, 876501, CRC(2506eb20) SHA1(329dddc514d9c0c6e658b489059371b18b45d301) )
+ ROM_REGION( 1044643, "svg", 0)
+ ROM_LOAD( "tsjam.svg", 0, 1044643, CRC(f91d9429) SHA1(57a843673bf4c5753ae795d49da29ceb6fe095f3) )
ROM_END
@@ -3488,24 +2654,6 @@ ROM_START( tjdredd )
ROM_END
-ROM_START( tapollo13 )
- ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "10_07", 0x0000, 0x1000, CRC(63d0deaa) SHA1(d5de99d5e0ee08ec2ebeef7189ebac1c008d2e7d) )
-
- ROM_REGION( 643176, "svg", 0)
- ROM_LOAD( "tapollo13.svg", 0, 643176, CRC(e2dac162) SHA1(4089fa485579d2b87ac49b1cf33d6c2c085ea4c5) )
-ROM_END
-
-
-ROM_START( tsjam )
- ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "10_23", 0x0000, 0x1000, CRC(6eaabfbd) SHA1(f0ecbd6f65fe72ce2d8a452685be2e77a63fc9f0) )
-
- ROM_REGION( 1044643, "svg", 0)
- ROM_LOAD( "tsjam.svg", 0, 1044643, CRC(f91d9429) SHA1(57a843673bf4c5753ae795d49da29ceb6fe095f3) )
-ROM_END
-
-
// YEAR NAME PARENT COMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
CONS( 1989, kdribble, 0, 0, kdribble, kdribble, kdribble_state, 0, "Konami", "Double Dribble (handheld)", MACHINE_SUPPORTS_SAVE )
@@ -3534,20 +2682,11 @@ CONS( 1983, gnw_ml102, 0, 0, ml102, ml102, ml102_state, 0, "N
CONS( 1984, gnw_bx301, 0, 0, bx301, bx301, bx301_state, 0, "Nintendo", "Game & Watch: Boxing", MACHINE_SUPPORTS_SAVE )
-CONS( 1989, tgaunt, 0, 0, tgaunt, tgaunt, tgaunt_state, 0, "Tiger Electronics (licensed from Tengen)", "Gauntlet (handheld)", MACHINE_SUPPORTS_SAVE )
-CONS( 1991, trobhood, tgaunt, 0, trobhood, trobhood, tgaunt_state, 0, "Tiger Electronics", "Robin Hood (handheld)", MACHINE_SUPPORTS_SAVE )
-CONS( 1989, tddragon, 0, 0, tddragon, tddragon, tddragon_state, 0, "Tiger Electronics (licensed from Technos/Tradewest)", "Double Dragon (handheld)", MACHINE_SUPPORTS_SAVE )
-CONS( 1989, tkarnov, 0, 0, tkarnov, tkarnov, tkarnov_state, 0, "Tiger Electronics (licensed from Data East)", "Karnov (handheld)", MACHINE_SUPPORTS_SAVE )
-CONS( 1989, tgaiden, 0, 0, tgaiden, tgaiden, tgaiden_state, 0, "Tiger Electronics (licensed from Tecmo)", "Ninja Gaiden (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+CONS( 1988, tgaunt, 0, 0, tgaunt, tgaunt, tgaunt_state, 0, "Tiger Electronics (licensed from Tengen)", "Gauntlet (handheld)", MACHINE_SUPPORTS_SAVE )
+CONS( 1988, tddragon, 0, 0, tddragon, tddragon, tddragon_state, 0, "Tiger Electronics (licensed from Tradewest/Technos)", "Double Dragon (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1989, tbatman, 0, 0, tbatman, tbatman, tbatman_state, 0, "Tiger Electronics", "Batman (handheld)", MACHINE_SUPPORTS_SAVE )
-CONS( 1990, tsharr2, 0, 0, tsharr2, tsharr2, tsharr2_state, 0, "Tiger Electronics (licensed from Sega)", "Space Harrier II (handheld)", MACHINE_SUPPORTS_SAVE )
-CONS( 1990, trobocop2, 0, 0, trobocop2, trobocop2, trobocop2_state, 0, "Tiger Electronics", "Robocop 2 (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1990, taltbeast, 0, 0, taltbeast, taltbeast, taltbeast_state, 0, "Tiger Electronics (licensed from Sega)", "Altered Beast (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1991, tswampt, 0, 0, tswampt, tswampt, tswampt_state, 0, "Tiger Electronics", "Swamp Thing (handheld)", MACHINE_SUPPORTS_SAVE )
-CONS( 1991, tbtoads, 0, 0, tbtoads, tbtoads, tbtoads_state, 0, "Tiger Electronics (licensed from Rare/Tradewest)", "Battletoads (handheld)", MACHINE_SUPPORTS_SAVE )
-CONS( 1992, tsonic, 0, 0, tsonic, tsonic, tsonic_state, 0, "Tiger Electronics (licensed from Sega)", "Sonic The Hedgehog (handheld)", MACHINE_SUPPORTS_SAVE )
-CONS( 1994, tshadow, 0, 0, tshadow, tshadow, tshadow_state, 0, "Tiger Electronics", "The Shadow (handheld)", MACHINE_SUPPORTS_SAVE )
-CONS( 1995, tbatfor, 0, 0, tbatfor, tbatfor, tbatfor_state, 0, "Tiger Electronics", "Batman Forever - Double Dose of Doom", MACHINE_SUPPORTS_SAVE )
-CONS( 1995, tjdredd, 0, 0, tjdredd, tjdredd, tjdredd_state, 0, "Tiger Electronics", "Judge Dredd (handheld)", MACHINE_SUPPORTS_SAVE )
-CONS( 1995, tapollo13, 0, 0, tapollo13, tapollo13, tapollo13_state, 0, "Tiger Electronics", "Apollo 13 (handheld)", MACHINE_SUPPORTS_SAVE )
+CONS( 1991, tsonic, 0, 0, tsonic, tsonic, tsonic_state, 0, "Tiger Electronics (licensed from Sega)", "Sonic The Hedgehog (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1996, tsjam, 0, 0, tsjam, tsjam, tsjam_state, 0, "Tiger Electronics", "Space Jam (handheld)", MACHINE_SUPPORTS_SAVE )
+CONS( 1998, tjdredd, 0, 0, tjdredd, tjdredd, tjdredd_state, 0, "Tiger Electronics", "Judge Dredd (handheld)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp
index d0dde07b070..57ab1b33e11 100644
--- a/src/mame/drivers/hh_tms1k.cpp
+++ b/src/mame/drivers/hh_tms1k.cpp
@@ -5,10 +5,9 @@
This driver is a collection of simple dedicated handheld and tabletop
toys based around the TMS1000 MCU series. Anything more complex or clearly
part of a series is (or will be) in its own driver, see:
+ - hh_tms1k: here
- eva: Chrysler EVA-11 (and EVA-24)
- microvsn: Milton Bradley MicroVision
-
- (contd.) hh_tms1k child drivers:
- ticalc1x: TI TMS1K-based calculators
- tispellb: TI Spelling B series gen. 1
- tispeak: TI Speak & Spell series gen. 1
@@ -42,7 +41,7 @@
@MP1180 TMS1100 1980, Tomy Power House Pinball
@MP1181 TMS1100 1979, Conic Football 2
@MP1183 TMS1100 1980, E.R.S. Superbowl XV Football/Tandy Championship Football (model 60-2151)
- @MP1185 TMS1100 1979, Fonas 3-in-1: Football, Basketball, Soccer
+ *MP1185 TMS1100 1979, Fonas 3-in-1: Football, Basketball, Soccer
@MP1193 TMS1100 1980, Tandy Championship Football (model 60-2150)
@MP1204 TMS1100 1980, Entex Baseball 3 (6007)
*MP1209 TMS1100 1980, U.S. Games Space Cruiser/Strategy Football
@@ -54,10 +53,10 @@
@MP1312 TMS1100 1983, Gakken FX-Micom R-165/Tandy Radio Shack Science Fair Microcomputer Trainer
*MP1359 TMS1100? 1985, Capsela CRC2000
@MP1525 TMS1170 1980, Coleco Head to Head Baseball
- @MP1604 TMS1370 1982, Gakken Invader 2000/Tandy Cosmic Fire Away 3000
+ *MP1604 ? 1982, Gakken Invader 2000/Tandy Cosmic Fire Away 3000 (? note: VFD-capable)
@MP1801 TMS1700 1981, Tiger Ditto/Tandy Pocket Repeat (model 60-2152)
@MP2105 TMS1370 1979, Gakken/Entex Poker (6005)
- @MP2139 TMS1370 1981, Gakken Galaxy Invader 1000/Tandy Cosmic 1000 Fire Away
+ @MP2139 TMS1370 1982, Gakken Galaxy Invader 1000/Tandy Cosmic 1000 Fire Away
@MP2726 TMS1040 1979, Tomy Break Up
*MP2788 TMS1040? 1980, Bandai Flight Time (? note: VFD-capable)
@MP3005 TMS1730 1989, Tiger Copy Cat (model 7-522)
@@ -100,7 +99,7 @@
@M34038 TMS1100 1982, Parker Brothers Lost Treasure
M34047 TMS1100 1982, MicroVision cartridge: Super Blockbuster
@M34078A TMS1100 1983, Milton Bradley Electronic Arcade Mania
- @MP4486A TMS1000C 1983, Vulcan XL 25
+ *MP4486A TMS1000C 1983, Vulcan XL 25
@MP6100A TMS0980 1979, Ideal Electronic Detective
@MP6101B TMS0980 1979, Parker Brothers Stop Thief
*MP6361 ? 1983, Defender Strikes (? note: VFD-capable)
@@ -130,7 +129,7 @@
- unknown MCU clocks for some: TMS1000 RC curve is documented in the data manual,
but not for newer ones (rev. E or TMS1400 MCUs). TMS0970/0980 osc. is on-die.
- some of the games rely on the fact that faster/longer strobed leds appear brighter,
- eg. tc4/h2hfootb(offense), bankshot(cue ball), f3in1(ball), ...
+ eg. tc4/h2hfootb(offense), bankshot(cue ball), ...
- stopthiep: unable to start a game (may be intentional?)
- 7in1ss: in 2-player mode, game select and skill select can be configured after selecting a game?
- arrball: shot button is unresponsive sometimes, maybe BTANB? no video of game on Youtube
@@ -189,7 +188,6 @@
#include "esbattle.lh"
#include "esoccer.lh"
#include "f2pbball.lh"
-#include "f3in1.lh"
#include "fxmcr165.lh" // clickable
#include "gjackpot.lh"
#include "gpoker.lh"
@@ -219,7 +217,6 @@
#include "tc4.lh"
#include "tcfball.lh"
#include "tcfballa.lh"
-#include "xl25.lh" // clickable
#include "zodiac.lh"
#include "hh_tms1k_test.lh" // common test-layout - use external artwork
@@ -1776,7 +1773,7 @@ DEVICE_IMAGE_LOAD_MEMBER(quizwizc_state, cartridge)
// get cartridge pinout K1 to R connections
std::string pinout(image.get_feature("pinout"));
m_pinout = std::stoul(pinout, nullptr, 2) & 0xe7;
- m_pinout = bitswap<8>(m_pinout,4,3,7,5,2,1,6,0) << 4;
+ m_pinout = BITSWAP8(m_pinout,4,3,7,5,2,1,6,0) << 4;
return image_init_result::PASS;
}
@@ -1808,7 +1805,7 @@ WRITE16_MEMBER(quizwizc_state::write_r)
WRITE16_MEMBER(quizwizc_state::write_o)
{
// O0-O7: led/digit segment data
- m_o = bitswap<8>(data,7,0,1,2,3,4,5,6);
+ m_o = BITSWAP8(data,7,0,1,2,3,4,5,6);
prepare_display();
}
@@ -3895,7 +3892,7 @@ WRITE16_MEMBER(f2pbball_state::write_r)
WRITE16_MEMBER(f2pbball_state::write_o)
{
// O0-O7: led state
- m_o = bitswap<8>(data,0,7,6,5,4,3,2,1);
+ m_o = BITSWAP8(data,0,7,6,5,4,3,2,1);
prepare_display();
}
@@ -3962,143 +3959,6 @@ MACHINE_CONFIG_END
/***************************************************************************
- Fonas 3 in 1: Football, Basketball, Soccer
- * TMS1100NLL MP1185
- * 4 7seg LEDs, 40 other LEDs, 1-bit sound
-
- It's not known if this game has an official title. The current one is
- taken from the handheld front side.
- MAME external artwork is needed for the switchable overlays.
-
-***************************************************************************/
-
-class f3in1_state : public hh_tms1k_state
-{
-public:
- f3in1_state(const machine_config &mconfig, device_type type, const char *tag)
- : hh_tms1k_state(mconfig, type, tag)
- { }
-
- void prepare_display();
- DECLARE_WRITE16_MEMBER(write_r);
- DECLARE_WRITE16_MEMBER(write_o);
- DECLARE_READ8_MEMBER(read_k);
-
- void set_clock();
- DECLARE_INPUT_CHANGED_MEMBER(skill_switch);
-
-protected:
- virtual void machine_reset() override;
-};
-
-// handlers
-
-void f3in1_state::prepare_display()
-{
- // R6-R9 are 7segs
- set_display_segmask(0x3c0, 0x7f);
- display_matrix(8, 10, m_o, m_r & ~0x20);
-}
-
-WRITE16_MEMBER(f3in1_state::write_r)
-{
- // R0-R2,R4: input mux
- m_inp_mux = (data & 7) | (data >> 1 & 8);
-
- // R10: speaker out
- m_speaker->level_w(data >> 10 & 1);
-
- // R0-R4,R6-R9: led select
- m_r = data;
- prepare_display();
-}
-
-WRITE16_MEMBER(f3in1_state::write_o)
-{
- // O0-O7: led state
- m_o = data;
- prepare_display();
-}
-
-READ8_MEMBER(f3in1_state::read_k)
-{
- // K: multiplexed inputs
- return read_inputs(4);
-}
-
-
-// config
-
-static INPUT_PORTS_START( f3in1 )
- PORT_START("IN.0") // R0
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P Button")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("K Button")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("D Button")
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.1") // R1
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
- PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.2") // R2
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
- PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.3") // R4
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_CONFNAME( 0x0e, 0x02, "Game Select" )
- PORT_CONFSETTING( 0x02, "Football" )
- PORT_CONFSETTING( 0x04, "Basketball" )
- PORT_CONFSETTING( 0x08, "Soccer" )
-
- PORT_START("IN.4") // fake
- PORT_CONFNAME( 0x01, 0x00, DEF_STR( Difficulty ) ) PORT_CHANGED_MEMBER(DEVICE_SELF, f3in1_state, skill_switch, nullptr)
- PORT_CONFSETTING( 0x00, "Regular" ) // REG
- PORT_CONFSETTING( 0x01, "Professional" ) // PROF
-INPUT_PORTS_END
-
-INPUT_CHANGED_MEMBER(f3in1_state::skill_switch)
-{
- set_clock();
-}
-
-void f3in1_state::set_clock()
-{
- // MCU clock is from an RC circuit where C=47pF, R=39K(PROF) or 56K(REG)
- m_maincpu->set_unscaled_clock((m_inp_matrix[4]->read() & 1) ? 400000 : 300000);
-}
-
-void f3in1_state::machine_reset()
-{
- hh_tms1k_state::machine_reset();
- set_clock();
-}
-
-static MACHINE_CONFIG_START( f3in1 )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", TMS1100, 300000) // see set_clock
- MCFG_TMS1XXX_READ_K_CB(READ8(f3in1_state, read_k))
- MCFG_TMS1XXX_WRITE_R_CB(WRITE16(f3in1_state, write_r))
- MCFG_TMS1XXX_WRITE_O_CB(WRITE16(f3in1_state, write_o))
-
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_f3in1)
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-
-
-
-
-/***************************************************************************
-
Gakken Poker
* PCB label POKER. gakken
* TMS1370 MP2105 (die label same)
@@ -4134,7 +3994,7 @@ protected:
void gpoker_state::prepare_display()
{
set_display_segmask(0x7ff, 0x20ff); // 7seg + bottom-right diagonal
- u16 segs = bitswap<16>(m_o, 15,14,7,12,11,10,9,8,6,6,5,4,3,2,1,0) & 0x20ff;
+ u16 segs = BITSWAP16(m_o, 15,14,7,12,11,10,9,8,6,6,5,4,3,2,1,0) & 0x20ff;
display_matrix(14, 11, segs | (m_r >> 3 & 0xf00), m_r & 0x7ff);
}
@@ -4386,8 +4246,8 @@ public:
void ginv1000_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,0,1,2,3,4,5,6,9,8,7);
- u16 plate = bitswap<16>(m_plate,15,14,13,12,3,4,7,8,9,10,11,2,6,5,1,0);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,0,1,2,3,4,5,6,9,8,7);
+ u16 plate = BITSWAP16(m_plate,15,14,13,12,3,4,7,8,9,10,11,2,6,5,1,0);
display_matrix(12, 10, plate, grid);
}
@@ -4399,8 +4259,8 @@ WRITE16_MEMBER(ginv1000_state::write_r)
// R8,R15: input mux
m_inp_mux = (data >> 8 & 1) | (data >> 14 & 2);
- // R1-R10: VFD grid
- // R11-R14: VFD plate
+ // R1-R10: VFD matrix grid
+ // R11-R14: VFD matrix plate
m_grid = data >> 1 & 0x3ff;
m_plate = (m_plate & 0xff) | (data >> 3 & 0xf00);
prepare_display();
@@ -4408,14 +4268,14 @@ WRITE16_MEMBER(ginv1000_state::write_r)
WRITE16_MEMBER(ginv1000_state::write_o)
{
- // O0-O7: VFD plate
+ // O0-O7: VFD matrix plate
m_plate = (m_plate & ~0xff) | data;
prepare_display();
}
READ8_MEMBER(ginv1000_state::read_k)
{
- // K1,K2: multiplexed inputs (K8 is fire button)
+ // K: multiplexed inputs (K8 is fire button)
return m_inp_matrix[2]->read() | read_inputs(2);
}
@@ -4467,142 +4327,6 @@ MACHINE_CONFIG_END
/***************************************************************************
- Gakken Invader 2000
- * TMS1370(28 pins) MP1604 (die label 1370A MP1604)
- * TMS1024 I/O expander
- * cyan/red/green VFD display, 1-bit sound
-
- known releases:
- - World: Invader 2000
- - USA(1): Galaxy Invader 10000, published by CGL
- - USA(2): Cosmic 3000 Fire Away, published by Tandy
-
-***************************************************************************/
-
-class ginv2000_state : public hh_tms1k_state
-{
-public:
- ginv2000_state(const machine_config &mconfig, device_type type, const char *tag)
- : hh_tms1k_state(mconfig, type, tag),
- m_expander(*this, "expander")
- { }
-
- required_device<tms1024_device> m_expander;
- DECLARE_WRITE8_MEMBER(expander_w);
-
- void prepare_display();
- virtual DECLARE_WRITE16_MEMBER(write_r);
- virtual DECLARE_WRITE16_MEMBER(write_o);
- virtual DECLARE_READ8_MEMBER(read_k);
-
-protected:
- virtual void machine_reset() override;
-};
-
-// handlers
-
-void ginv2000_state::prepare_display()
-{
- display_matrix(16, 10, m_plate, m_grid);
-}
-
-WRITE8_MEMBER(ginv2000_state::expander_w)
-{
- // TMS1024 port 4-7: VFD plate
- int shift = (offset - tms1024_device::PORT4) * 4;
- m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
- prepare_display();
-}
-
-WRITE16_MEMBER(ginv2000_state::write_r)
-{
- // R0: speaker out
- m_speaker->level_w(data & 1);
-
- // R11,R12: input mux
- m_inp_mux = data >> 11 & 3;
-
- // R11,R12: TMS1024 S1,S0 (S2 forced high)
- // R13: TMS1024 STD
- m_expander->write_s(space, 0, (data >> 12 & 1) | (data >> 10 & 2) | 4);
- m_expander->write_std(data >> 13 & 1);
-
- // R1-R10: VFD grid
- m_grid = data >> 1 & 0x3ff;
- prepare_display();
-}
-
-WRITE16_MEMBER(ginv2000_state::write_o)
-{
- // O4-O7: TMS1024 H1-H4
- m_expander->write_h(space, 0, data >> 4 & 0xf);
-}
-
-READ8_MEMBER(ginv2000_state::read_k)
-{
- // K1,K2: multiplexed inputs (K8 is fire button)
- return m_inp_matrix[2]->read() | read_inputs(2);
-}
-
-
-// config
-
-static INPUT_PORTS_START( ginv2000 )
- PORT_START("IN.0") // R11
- PORT_CONFNAME( 0x03, 0x01, DEF_STR( Difficulty ) )
- PORT_CONFSETTING( 0x01, "1" )
- PORT_CONFSETTING( 0x02, "2" )
- PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.1") // R12
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
- PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.2") // K8
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )
-INPUT_PORTS_END
-
-void ginv2000_state::machine_reset()
-{
- hh_tms1k_state::machine_reset();
- m_expander->write_ms(1); // Vss
-}
-
-static MACHINE_CONFIG_START( ginv2000 )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", TMS1370, 425000) // approximation - RC osc. R=36K, C=47pF
- MCFG_TMS1XXX_READ_K_CB(READ8(ginv2000_state, read_k))
- MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ginv2000_state, write_r))
- MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ginv2000_state, write_o))
-
- MCFG_DEVICE_ADD("expander", TMS1024, 0)
- MCFG_TMS1025_WRITE_PORT_CB(PORT4, WRITE8(ginv2000_state, expander_w))
- MCFG_TMS1025_WRITE_PORT_CB(PORT5, WRITE8(ginv2000_state, expander_w))
- MCFG_TMS1025_WRITE_PORT_CB(PORT6, WRITE8(ginv2000_state, expander_w))
- MCFG_TMS1025_WRITE_PORT_CB(PORT7, WRITE8(ginv2000_state, expander_w))
-
- /* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(364, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 364-1, 0, 1080-1)
- MCFG_DEFAULT_LAYOUT(layout_svg)
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-
-
-
-
-/***************************************************************************
-
Gakken FX-Micom R-165
* TMS1100 MCU, label MP1312 (die label MP1312A)
* 1 7seg led, 6 other leds, 1-bit sound
@@ -4638,7 +4362,7 @@ void fxmcr165_state::prepare_display()
{
// 7seg digit from O0-O6
m_display_segmask[0] = 0x7f;
- m_display_state[0] = bitswap<8>(m_o,7,2,6,5,4,3,1,0) & 0x7f;
+ m_display_state[0] = BITSWAP8(m_o,7,2,6,5,4,3,1,0) & 0x7f;
// leds from R4-R10
m_display_state[1] = m_r >> 4 & 0x7f;
@@ -4775,7 +4499,7 @@ WRITE16_MEMBER(elecdet_state::write_r)
// R0-R6: select digit
set_display_segmask(0x7f, 0x7f);
- display_matrix(7, 7, bitswap<8>(m_o,7,5,2,1,4,0,6,3), data);
+ display_matrix(7, 7, BITSWAP8(m_o,7,5,2,1,4,0,6,3), data);
}
WRITE16_MEMBER(elecdet_state::write_o)
@@ -5333,7 +5057,7 @@ WRITE32_MEMBER(horseran_state::lcd_output_w)
// col5-11 and col13-19 are 7segs
for (int i = 0; i < 2; i++)
- m_display_state[3 + (offset << 1 | i)] = bitswap<8>(data >> (4+8*i),7,3,5,2,0,1,4,6) & 0x7f;
+ m_display_state[3 + (offset << 1 | i)] = BITSWAP8(data >> (4+8*i),7,3,5,2,0,1,4,6) & 0x7f;
set_display_segmask(0x3f<<3, 0x7f);
set_display_size(24, 3+6);
@@ -6520,7 +6244,7 @@ void mbdtower_state::prepare_display()
// update current state
if (~m_r & 0x10)
{
- u8 o = bitswap<8>(m_o,7,0,4,3,2,1,6,5) & 0x7f;
+ u8 o = BITSWAP8(m_o,7,0,4,3,2,1,6,5) & 0x7f;
m_display_state[2] = (m_o & 0x80) ? o : 0;
m_display_state[1] = (m_o & 0x80) ? 0 : o;
m_display_state[0] = (m_r >> 8 & 1) | (m_r >> 4 & 0xe);
@@ -7091,7 +6815,7 @@ WRITE16_MEMBER(stopthief_state::write_r)
{
// R0-R2: select digit
set_display_segmask(7, 0x7f);
- display_matrix(7, 3, bitswap<8>(m_o,3,5,2,1,4,0,6,7) & 0x7f, data & 7);
+ display_matrix(7, 3, BITSWAP8(m_o,3,5,2,1,4,0,6,7) & 0x7f, data & 7);
// R3-R8(tied together): speaker out
int level = 0;
@@ -7200,7 +6924,6 @@ public:
: hh_tms1k_state(mconfig, type, tag)
{ }
- void prepare_display();
DECLARE_WRITE16_MEMBER(write_r);
DECLARE_WRITE16_MEMBER(write_o);
DECLARE_READ8_MEMBER(read_k);
@@ -7208,11 +6931,6 @@ public:
// handlers
-void bankshot_state::prepare_display()
-{
- display_matrix(7, 11, m_o, m_r & ~3);
-}
-
WRITE16_MEMBER(bankshot_state::write_r)
{
// R0: speaker out
@@ -7222,8 +6940,8 @@ WRITE16_MEMBER(bankshot_state::write_r)
m_inp_mux = data >> 2 & 3;
// R2-R10: led select
- m_r = data;
- prepare_display();
+ m_r = data & ~3;
+ display_matrix(7, 11, m_o, m_r);
}
WRITE16_MEMBER(bankshot_state::write_o)
@@ -7231,7 +6949,7 @@ WRITE16_MEMBER(bankshot_state::write_o)
// O0-O6: led state
// O7: N/C
m_o = data & 0x7f;
- prepare_display();
+ display_matrix(7, 11, m_o, m_r);
}
READ8_MEMBER(bankshot_state::read_k)
@@ -7329,7 +7047,6 @@ public:
: hh_tms1k_state(mconfig, type, tag)
{ }
- void prepare_display();
DECLARE_WRITE16_MEMBER(write_r);
DECLARE_WRITE16_MEMBER(write_o);
DECLARE_READ8_MEMBER(read_k);
@@ -7337,11 +7054,6 @@ public:
// handlers
-void splitsec_state::prepare_display()
-{
- display_matrix(7, 8, m_o, m_r);
-}
-
WRITE16_MEMBER(splitsec_state::write_r)
{
// R8: speaker out
@@ -7352,7 +7064,7 @@ WRITE16_MEMBER(splitsec_state::write_r)
// R0-R7: led select
m_r = data;
- prepare_display();
+ display_matrix(7, 8, m_o, m_r);
}
WRITE16_MEMBER(splitsec_state::write_o)
@@ -7360,7 +7072,7 @@ WRITE16_MEMBER(splitsec_state::write_o)
// O0-O6: led state
// O7: N/C
m_o = data & 0x7f;
- prepare_display();
+ display_matrix(7, 8, m_o, m_r);
}
READ8_MEMBER(splitsec_state::read_k)
@@ -8952,175 +8664,6 @@ MACHINE_CONFIG_END
/***************************************************************************
- Vulcan XL 25
- * TMS1000SLC MP4486A (die label 1000C/, MP4486A)
- * 28 LEDs, 1-bit sound
-
- This game is the same logic puzzle as Tiger's Lights Out, except that
- all 25 lights need to be turned on instead of off.
-
-***************************************************************************/
-
-class xl25_state : public hh_tms1k_state
-{
-public:
- xl25_state(const machine_config &mconfig, device_type type, const char *tag)
- : hh_tms1k_state(mconfig, type, tag)
- { }
-
- void update_halt();
- DECLARE_INPUT_CHANGED_MEMBER(k4_button);
-
- void prepare_display();
- DECLARE_WRITE16_MEMBER(write_r);
- DECLARE_WRITE16_MEMBER(write_o);
- DECLARE_READ8_MEMBER(read_k);
-
-protected:
- virtual void machine_reset() override;
-};
-
-// handlers
-
-void xl25_state::update_halt()
-{
- // O5+K4 go to HALT pin (used when pressing store/recall button)
- bool halt = !((m_o & 0x20) || (read_k(machine().dummy_space(), 0) & 4));
- m_maincpu->set_input_line(TMS1XXX_INPUT_LINE_HALT, halt ? ASSERT_LINE : CLEAR_LINE);
-}
-
-void xl25_state::prepare_display()
-{
- display_matrix(3, 10, m_o >> 1, m_r);
-}
-
-WRITE16_MEMBER(xl25_state::write_r)
-{
- // R0-R9: input mux, led select
- m_inp_mux = data;
- m_r = data;
- prepare_display();
-}
-
-WRITE16_MEMBER(xl25_state::write_o)
-{
- // O1-O3: led data
- m_o = data;
- prepare_display();
-
- // O6: speaker out
- m_speaker->level_w(data >> 6 & 1);
-
- // O5(+K4): MCU halt
- update_halt();
-}
-
-READ8_MEMBER(xl25_state::read_k)
-{
- // K: multiplexed inputs
- // K4 also goes to MCU halt
- return read_inputs(10);
-}
-
-
-// config
-
-static INPUT_PORTS_START( xl25 )
- PORT_START("IN.0") // R0
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 1")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 6")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 11") PORT_CHANGED_MEMBER(DEVICE_SELF, xl25_state, k4_button, nullptr)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.1") // R1
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 2")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 7")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 12") PORT_CHANGED_MEMBER(DEVICE_SELF, xl25_state, k4_button, nullptr)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.2") // R2
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 3")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 8")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 13") PORT_CHANGED_MEMBER(DEVICE_SELF, xl25_state, k4_button, nullptr)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.3") // R3
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 4")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 9")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 14") PORT_CHANGED_MEMBER(DEVICE_SELF, xl25_state, k4_button, nullptr)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.4") // R4
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 5")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 10")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 15") PORT_CHANGED_MEMBER(DEVICE_SELF, xl25_state, k4_button, nullptr)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.5") // R5
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 16")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 21")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_NAME("Store / Recall") PORT_CHANGED_MEMBER(DEVICE_SELF, xl25_state, k4_button, nullptr)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.6") // R6
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 17")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 22")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_NAME("Cross / Knight / Score") PORT_CHANGED_MEMBER(DEVICE_SELF, xl25_state, k4_button, nullptr)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.7") // R7
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 18")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 23")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_NAME("Clear") PORT_CHANGED_MEMBER(DEVICE_SELF, xl25_state, k4_button, nullptr)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.8") // R8
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 19")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 24")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_NAME("Random") PORT_CHANGED_MEMBER(DEVICE_SELF, xl25_state, k4_button, nullptr)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.9") // R9
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 20")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 25")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_NAME("Sound") PORT_CHANGED_MEMBER(DEVICE_SELF, xl25_state, k4_button, nullptr)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
-INPUT_PORTS_END
-
-INPUT_CHANGED_MEMBER(xl25_state::k4_button)
-{
- update_halt();
-}
-
-void xl25_state::machine_reset()
-{
- hh_tms1k_state::machine_reset();
- update_halt();
-}
-
-static MACHINE_CONFIG_START( xl25 )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", TMS1000C, 300000) // approximation - RC osc. R=5.6K, C=47pF
- MCFG_TMS1XXX_READ_K_CB(READ8(xl25_state, read_k))
- MCFG_TMS1XXX_WRITE_R_CB(WRITE16(xl25_state, write_r))
- MCFG_TMS1XXX_WRITE_O_CB(WRITE16(xl25_state, write_o))
-
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_xl25)
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-
-
-
-
-/***************************************************************************
-
Game driver(s)
***************************************************************************/
@@ -9425,17 +8968,6 @@ ROM_START( f2pbball )
ROM_END
-ROM_START( f3in1 )
- ROM_REGION( 0x0800, "maincpu", 0 )
- ROM_LOAD( "mp1185", 0x0000, 0x0800, CRC(53f7b28d) SHA1(2249890e3a259095193b4331ca88c29ccd81eefe) )
-
- ROM_REGION( 867, "maincpu:mpla", 0 )
- ROM_LOAD( "tms1100_common2_micro.pla", 0, 867, CRC(7cc90264) SHA1(c6e1cf1ffb178061da9e31858514f7cd94e86990) )
- ROM_REGION( 365, "maincpu:opla", 0 )
- ROM_LOAD( "tms1100_f3in1_output.pla", 0, 365, CRC(51d947bc) SHA1(f766397d84f038be96e83d40989195c98ddcb1d9) )
-ROM_END
-
-
ROM_START( gpoker )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "mp2105", 0x0000, 0x0800, CRC(95a8f5b4) SHA1(d14f00ba9f57e437264d972baa14a14a28ff8719) )
@@ -9472,20 +9004,6 @@ ROM_START( ginv1000 )
ROM_END
-ROM_START( ginv2000 )
- ROM_REGION( 0x0800, "maincpu", 0 )
- ROM_LOAD( "mp1604", 0x0000, 0x0800, CRC(f1646d0b) SHA1(65601931d81e3eef7bf22a08de5a146910ce8137) )
-
- ROM_REGION( 867, "maincpu:mpla", 0 )
- ROM_LOAD( "tms1100_common2_micro.pla", 0, 867, CRC(7cc90264) SHA1(c6e1cf1ffb178061da9e31858514f7cd94e86990) )
- ROM_REGION( 365, "maincpu:opla", 0 )
- ROM_LOAD( "tms1100_ginv2000_output.pla", 0, 365, CRC(520bb003) SHA1(1640ae54f8dcc257e0ad0cbe0281b38fcbd8da35) )
-
- ROM_REGION( 374443, "svg", 0)
- ROM_LOAD( "ginv2000.svg", 0, 374443, CRC(a4ce1e6d) SHA1(57d9ff05d634a8d495b9d544a2a959790cd10b6b) )
-ROM_END
-
-
ROM_START( fxmcr165 )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "mp1312", 0x0000, 0x0800, CRC(6efc8bcc) SHA1(ced8a02b472a3178073691d3dccc0f19f57428fd) )
@@ -9910,17 +9428,6 @@ ROM_START( ssports4 )
ROM_END
-ROM_START( xl25 )
- ROM_REGION( 0x0400, "maincpu", 0 )
- ROM_LOAD( "mp4486a", 0x0000, 0x0400, CRC(bd84b515) SHA1(377fcc68a517260acd51eb9746cd62914a75d739) )
-
- ROM_REGION( 867, "maincpu:mpla", 0 )
- ROM_LOAD( "tms1000_common2_micro.pla", 0, 867, BAD_DUMP CRC(d33da3cf) SHA1(13c4ebbca227818db75e6db0d45b66ba5e207776) ) // placeholder
- ROM_REGION( 558, "maincpu:opla", 0 )
- ROM_LOAD( "tms1000c_xl25_output.pla", 0, 558, CRC(06ecc6e0) SHA1(e0fa1b9388948197b4de2edd3cd02fbde1dbabbb) )
-ROM_END
-
-
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
CONS( 1979, matchnum, 0, 0, matchnum, matchnum, matchnum_state, 0, "A-One LSI", "Match Number", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
@@ -9956,12 +9463,10 @@ CONS( 1980, ebaskb2 , 0, 0, ebaskb2, ebaskb2, ebaskb2_state, 0,
CONS( 1980, raisedvl, 0, 0, raisedvl, raisedvl, raisedvl_state, 0, "Entex", "Raise The Devil", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
CONS( 1979, f2pbball, 0, 0, f2pbball, f2pbball, f2pbball_state, 0, "Fonas", "2 Player Baseball (Fonas)", MACHINE_SUPPORTS_SAVE )
-CONS( 1979, f3in1, 0, 0, f3in1, f3in1, f3in1_state, 0, "Fonas", "3 in 1: Football, Basketball, Soccer", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
CONS( 1979, gpoker, 0, 0, gpoker, gpoker, gpoker_state, 0, "Gakken", "Poker (Gakken, 1979 version)", MACHINE_SUPPORTS_SAVE )
CONS( 1980, gjackpot, 0, 0, gjackpot, gjackpot, gjackpot_state, 0, "Gakken", "Jackpot: Gin Rummy & Black Jack", MACHINE_SUPPORTS_SAVE )
-CONS( 1981, ginv1000, 0, 0, ginv1000, ginv1000, ginv1000_state, 0, "Gakken", "Galaxy Invader 1000", MACHINE_SUPPORTS_SAVE )
-CONS( 1982, ginv2000, 0, 0, ginv2000, ginv2000, ginv2000_state, 0, "Gakken", "Invader 2000", MACHINE_SUPPORTS_SAVE )
+CONS( 1982, ginv1000, 0, 0, ginv1000, ginv1000, ginv1000_state, 0, "Gakken", "Galaxy Invader 1000", MACHINE_SUPPORTS_SAVE )
COMP( 1983, fxmcr165, 0, 0, fxmcr165, fxmcr165, fxmcr165_state, 0, "Gakken", "FX-Micom R-165", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1979, elecdet, 0, 0, elecdet, elecdet, elecdet_state, 0, "Ideal", "Electronic Detective", MACHINE_SUPPORTS_SAVE ) // ***
@@ -10012,7 +9517,5 @@ CONS( 1980, phpball, 0, 0, phpball, phpball, phpball_state, 0,
CONS( 1980, ssports4, 0, 0, ssports4, ssports4, ssports4_state, 0, "U.S. Games", "Super Sports-4", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1983, xl25, 0, 0, xl25, xl25, xl25_state, 0, "Vulcan Electronics", "XL 25", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-
// ***: As far as MAME is concerned, the game is emulated fine. But for it to be playable, it requires interaction
// with other, unemulatable, things eg. game board/pieces, playing cards, pen & paper, etc.
diff --git a/src/mame/drivers/hh_ucom4.cpp b/src/mame/drivers/hh_ucom4.cpp
index 79293b89db2..11a92566f36 100644
--- a/src/mame/drivers/hh_ucom4.cpp
+++ b/src/mame/drivers/hh_ucom4.cpp
@@ -281,14 +281,14 @@ public:
void ufombs_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,9,3,2,1,0,4,5,6,7,8);
- u16 plate = bitswap<16>(m_plate,15,14,13,12,11,7,10,6,9,5,8,4,0,1,2,3);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,3,2,1,0,4,5,6,7,8);
+ u16 plate = BITSWAP16(m_plate,15,14,13,12,11,7,10,6,9,5,8,4,0,1,2,3);
display_matrix(10, 9, plate, grid);
}
WRITE8_MEMBER(ufombs_state::grid_w)
{
- // F,G,H0: vfd grid
+ // F,G,H0: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTF) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -296,7 +296,7 @@ WRITE8_MEMBER(ufombs_state::grid_w)
WRITE8_MEMBER(ufombs_state::plate_w)
{
- // C,D012,I: vfd plate
+ // C,D012,I: vfd matrix plate
int shift = (offset == NEC_UCOM4_PORTI) ? 8 : (offset - NEC_UCOM4_PORTC) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -394,13 +394,13 @@ public:
void ssfball_state::prepare_display()
{
- u32 plate = bitswap<24>(m_plate,23,22,21,20,19,11,7,3,12,17,13,18,16,14,15,10,9,8,0,1,2,4,5,6);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,19,11,7,3,12,17,13,18,16,14,15,10,9,8,0,1,2,4,5,6);
display_matrix(16, 9, plate, m_grid);
}
WRITE8_MEMBER(ssfball_state::grid_w)
{
- // C,D(,E3): vfd grid 0-7(,8)
+ // C,D(,E3): vfd matrix grid 0-7(,8)
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -410,7 +410,7 @@ WRITE8_MEMBER(ssfball_state::plate_w)
{
m_port[offset] = data;
- // E,F,G,H,I(not all!): vfd plate
+ // E,F,G,H,I(not all!): vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
@@ -418,7 +418,7 @@ WRITE8_MEMBER(ssfball_state::plate_w)
m_inp_mux = (m_port[NEC_UCOM4_PORTF] >> 3 & 1) | (m_port[NEC_UCOM4_PORTG] >> 2 & 2);
m_speaker->level_w(m_inp_mux);
- // E3: vfd grid 8
+ // E3: vfd matrix grid 8
if (offset == NEC_UCOM4_PORTE)
grid_w(space, offset, data >> 3 & 1);
else
@@ -538,7 +538,7 @@ public:
void bmsoccer_state::prepare_display()
{
- u32 plate = bitswap<24>(m_plate,23,22,21,20,19,11,7,3,12,17,13,18,16,14,15,8,4,0,9,5,1,10,6,2);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,19,11,7,3,12,17,13,18,16,14,15,8,4,0,9,5,1,10,6,2);
display_matrix(16, 9, plate, m_grid);
}
@@ -548,7 +548,7 @@ WRITE8_MEMBER(bmsoccer_state::grid_w)
if (offset == NEC_UCOM4_PORTC)
m_inp_mux = data & 3;
- // C,D(,E3): vfd grid
+ // C,D(,E3): vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -560,7 +560,7 @@ WRITE8_MEMBER(bmsoccer_state::plate_w)
if (offset == NEC_UCOM4_PORTG)
m_speaker->level_w(data >> 3 & 1);
- // E012,F012,G012,H,I: vfd plate
+ // E012,F012,G012,H,I: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
@@ -661,14 +661,14 @@ public:
void bmsafari_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,9,0,1,2,3,4,5,6,7,8);
- u16 plate = bitswap<16>(m_plate,15,14,13,12,11,7,10,2,9,5,8,4,0,1,6,3);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,0,1,2,3,4,5,6,7,8);
+ u16 plate = BITSWAP16(m_plate,15,14,13,12,11,7,10,2,9,5,8,4,0,1,6,3);
display_matrix(10, 9, plate, grid);
}
WRITE8_MEMBER(bmsafari_state::grid_w)
{
- // C,D(,E3): vfd grid
+ // C,D(,E3): vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -676,7 +676,7 @@ WRITE8_MEMBER(bmsafari_state::grid_w)
WRITE8_MEMBER(bmsafari_state::plate_w)
{
- // E012,H,I: vfd plate
+ // E012,H,I: vfd matrix plate
int shift = (offset == NEC_UCOM4_PORTE) ? 8 : (offset - NEC_UCOM4_PORTH) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
@@ -771,20 +771,20 @@ public:
void splasfgt_state::prepare_display()
{
- u32 plate = bitswap<24>(m_plate,23,22,21,20,19,18,17,13,1,0,8,6,0,10,11,14,15,16,9,5,7,4,2,3);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,17,13,1,0,8,6,0,10,11,14,15,16,9,5,7,4,2,3);
display_matrix(16, 9, plate, m_grid);
}
WRITE8_MEMBER(splasfgt_state::grid_w)
{
- // G,H,I0: vfd grid
+ // G,H,I0: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTG) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
// G(grid 0-3): input mux
m_inp_mux = m_grid & 0xf;
- // I2: vfd plate 6
+ // I2: vfd matrix plate 6
if (offset == NEC_UCOM4_PORTI)
plate_w(space, 4 + NEC_UCOM4_PORTC, data >> 2 & 1);
else
@@ -797,7 +797,7 @@ WRITE8_MEMBER(splasfgt_state::plate_w)
if (offset == NEC_UCOM4_PORTF)
m_speaker->level_w(data & 3);
- // C,D,E,F23(,I2): vfd plate
+ // C,D,E,F23(,I2): vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -923,8 +923,8 @@ public:
void bcclimbr_state::prepare_display()
{
- u8 grid = bitswap<8>(m_grid,7,6,0,1,2,3,4,5);
- u32 plate = bitswap<24>(m_plate,23,22,21,20,16,17,18,19,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
+ u8 grid = BITSWAP8(m_grid,7,6,0,1,2,3,4,5);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,16,17,18,19,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
display_matrix(20, 6, plate, grid);
}
@@ -934,7 +934,7 @@ WRITE8_MEMBER(bcclimbr_state::grid_w)
if (offset == NEC_UCOM4_PORTI)
m_speaker->level_w(data >> 2 & 1);
- // H,I01: vfd grid
+ // H,I01: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTH) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -942,7 +942,7 @@ WRITE8_MEMBER(bcclimbr_state::grid_w)
WRITE8_MEMBER(bcclimbr_state::plate_w)
{
- // C,D,E,F: vfd plate
+ // C,D,E,F: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -1141,8 +1141,8 @@ public:
void invspace_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,8,9,7,6,5,4,3,2,1,0);
- u32 plate = bitswap<24>(m_plate,23,22,21,20,19,9,14,13,8,15,11,10,7,11,3,2,6,10,1,5,9,0,4,8);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,8,9,7,6,5,4,3,2,1,0);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,19,9,14,13,8,15,11,10,7,11,3,2,6,10,1,5,9,0,4,8);
display_matrix(19, 9, plate, grid);
}
@@ -1152,7 +1152,7 @@ WRITE8_MEMBER(invspace_state::grid_w)
if (offset == NEC_UCOM4_PORTI)
m_speaker->level_w(data & 1);
- // C,D,I1: vfd grid
+ // C,D,I1: vfd matrix grid
int shift = (offset == NEC_UCOM4_PORTI) ? 8 : (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -1160,7 +1160,7 @@ WRITE8_MEMBER(invspace_state::grid_w)
WRITE8_MEMBER(invspace_state::plate_w)
{
- // E,F,G,H123: vfd plate
+ // E,F,G,H123: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -1243,7 +1243,7 @@ public:
void efball_state::prepare_display()
{
- u16 plate = bitswap<16>(m_plate,15,14,13,12,11,4,3,0,2,1,6,10,9,5,8,7);
+ u16 plate = BITSWAP16(m_plate,15,14,13,12,11,4,3,0,2,1,6,10,9,5,8,7);
display_matrix(11, 10, plate, m_grid);
}
@@ -1253,7 +1253,7 @@ WRITE8_MEMBER(efball_state::grid_w)
if (offset == NEC_UCOM4_PORTH)
m_speaker->level_w(data >> 2 & 1);
- // F,G,H01: vfd grid
+ // F,G,H01: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTF) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -1261,7 +1261,7 @@ WRITE8_MEMBER(efball_state::grid_w)
WRITE8_MEMBER(efball_state::plate_w)
{
- // D,E,I: vfd plate
+ // D,E,I: vfd matrix plate
int shift = (offset == NEC_UCOM4_PORTI) ? 8 : (offset - NEC_UCOM4_PORTD) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -1356,8 +1356,8 @@ public:
void galaxy2_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,0,1,2,3,4,5,6,7,8,9);
- u16 plate = bitswap<16>(m_plate,15,3,2,6,1,5,4,0,11,10,7,12,14,13,8,9);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,0,1,2,3,4,5,6,7,8,9);
+ u16 plate = BITSWAP16(m_plate,15,3,2,6,1,5,4,0,11,10,7,12,14,13,8,9);
display_matrix(15, 10, plate, grid);
}
@@ -1367,7 +1367,7 @@ WRITE8_MEMBER(galaxy2_state::grid_w)
if (offset == NEC_UCOM4_PORTE)
m_speaker->level_w(data >> 3 & 1);
- // C,D,E01: vfd grid
+ // C,D,E01: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -1375,7 +1375,7 @@ WRITE8_MEMBER(galaxy2_state::grid_w)
WRITE8_MEMBER(galaxy2_state::plate_w)
{
- // F,G,H,I: vfd plate
+ // F,G,H,I: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTF) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -1467,14 +1467,14 @@ public:
void astrocmd_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,9,8,4,5,6,7,0,1,2,3);
- u32 plate = bitswap<24>(m_plate,23,22,21,20,19,3,2,12,13,14,15,16,17,18,0,1,4,8,5,9,7,11,6,10);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,8,4,5,6,7,0,1,2,3);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,19,3,2,12,13,14,15,16,17,18,0,1,4,8,5,9,7,11,6,10);
display_matrix(17, 9, plate, grid);
}
WRITE8_MEMBER(astrocmd_state::grid_w)
{
- // C,D(,E3): vfd grid
+ // C,D(,E3): vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -1482,7 +1482,7 @@ WRITE8_MEMBER(astrocmd_state::grid_w)
WRITE8_MEMBER(astrocmd_state::plate_w)
{
- // E01,F,G,H,I: vfd plate
+ // E01,F,G,H,I: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
@@ -1491,7 +1491,7 @@ WRITE8_MEMBER(astrocmd_state::plate_w)
// E2: speaker out
m_speaker->level_w(data >> 2 & 1);
- // E3: vfd grid 8
+ // E3: vfd matrix grid 8
grid_w(space, offset, data >> 3 & 1);
}
else
@@ -1576,7 +1576,7 @@ public:
WRITE8_MEMBER(edracula_state::grid_w)
{
- // C,D: vfd grid
+ // C,D: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
display_matrix(18, 8, m_plate, m_grid);
@@ -1588,7 +1588,7 @@ WRITE8_MEMBER(edracula_state::plate_w)
if (offset == NEC_UCOM4_PORTI)
m_speaker->level_w(data >> 2 & 1);
- // E,F,G,H,I01: vfd plate
+ // E,F,G,H,I01: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
display_matrix(18, 8, m_plate, m_grid);
@@ -1746,14 +1746,14 @@ public:
void mvbfree_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
- u16 plate = bitswap<16>(m_plate,15,14,13,12,11,10,0,1,2,3,4,5,6,7,8,9);
+ u16 grid = BITSWAP16(m_grid,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+ u16 plate = BITSWAP16(m_plate,15,14,13,12,11,10,0,1,2,3,4,5,6,7,8,9);
display_matrix(10, 14, plate, grid);
}
WRITE8_MEMBER(mvbfree_state::grid_w)
{
- // E23,F,G,H: vfd grid
+ // E23,F,G,H: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
@@ -1766,7 +1766,7 @@ WRITE8_MEMBER(mvbfree_state::grid_w)
WRITE8_MEMBER(mvbfree_state::plate_w)
{
- // C,D(,E01): vfd plate
+ // C,D(,E01): vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -1967,8 +1967,8 @@ public:
void tccombat_state::prepare_display()
{
- u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,9,8,3,2,1,0,7,6,5,4);
- u32 plate = bitswap<24>(m_plate,23,22,21,20,11,15,3,10,14,2,9,13,1,0,12,8,15,1,5,0,3,7,2,6);
+ u16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,8,3,2,1,0,7,6,5,4);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,11,15,3,10,14,2,9,13,1,0,12,8,15,1,5,0,3,7,2,6);
display_matrix(20, 9, plate, grid);
}
@@ -1978,7 +1978,7 @@ WRITE8_MEMBER(tccombat_state::grid_w)
if (offset == NEC_UCOM4_PORTI)
m_speaker->level_w(data >> 1 & 1);
- // C,D,I0: vfd grid
+ // C,D,I0: vfd matrix grid
int shift = (offset == NEC_UCOM4_PORTI) ? 8 : (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -1986,7 +1986,7 @@ WRITE8_MEMBER(tccombat_state::grid_w)
WRITE8_MEMBER(tccombat_state::plate_w)
{
- // E,F123,G,H: vfd plate
+ // E,F123,G,H: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -2074,7 +2074,7 @@ protected:
WRITE8_MEMBER(tmtennis_state::grid_w)
{
- // G,H,I: vfd grid
+ // G,H,I: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTG) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
display_matrix(12, 12, m_plate, m_grid);
@@ -2082,7 +2082,7 @@ WRITE8_MEMBER(tmtennis_state::grid_w)
WRITE8_MEMBER(tmtennis_state::plate_w)
{
- // C,D,F: vfd plate
+ // C,D,F: vfd matrix plate
int shift = (offset == NEC_UCOM4_PORTF) ? 8 : (offset - NEC_UCOM4_PORTC) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
display_matrix(12, 12, m_plate, m_grid);
@@ -2229,14 +2229,14 @@ public:
void tmpacman_state::prepare_display()
{
- u8 grid = bitswap<8>(m_grid,0,1,2,3,4,5,6,7);
- u32 plate = bitswap<24>(m_plate,23,22,21,20,19,16,17,18,11,10,9,8,0,2,3,1,4,5,6,7,12,13,14,15) | 0x100;
+ u8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,19,16,17,18,11,10,9,8,0,2,3,1,4,5,6,7,12,13,14,15) | 0x100;
display_matrix(19, 8, plate, grid);
}
WRITE8_MEMBER(tmpacman_state::grid_w)
{
- // C,D: vfd grid
+ // C,D: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -2248,7 +2248,7 @@ WRITE8_MEMBER(tmpacman_state::plate_w)
if (offset == NEC_UCOM4_PORTE)
m_speaker->level_w(data >> 1 & 1);
- // E023,F,G,H,I: vfd plate
+ // E023,F,G,H,I: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -2334,7 +2334,7 @@ public:
void tmscramb_state::prepare_display()
{
- u32 plate = bitswap<24>(m_plate,23,22,21,20,19,18,17,3,15,2,14,1,13,16,0,12,8,4,9,5,10,6,11,7) | 0x400;
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,17,3,15,2,14,1,13,16,0,12,8,4,9,5,10,6,11,7) | 0x400;
display_matrix(17, 10, plate, m_grid);
}
@@ -2344,7 +2344,7 @@ WRITE8_MEMBER(tmscramb_state::grid_w)
if (offset == NEC_UCOM4_PORTI)
m_speaker->level_w(data >> 2 & 1);
- // C,D,I01: vfd grid
+ // C,D,I01: vfd matrix grid
int shift = (offset == NEC_UCOM4_PORTI) ? 8 : (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -2352,7 +2352,7 @@ WRITE8_MEMBER(tmscramb_state::grid_w)
WRITE8_MEMBER(tmscramb_state::plate_w)
{
- // E,F,G,H: vfd plate
+ // E,F,G,H: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -2436,14 +2436,14 @@ public:
void tcaveman_state::prepare_display()
{
- u8 grid = bitswap<8>(m_grid,0,1,2,3,4,5,6,7);
- u32 plate = bitswap<24>(m_plate,23,22,21,20,19,10,11,5,6,7,8,0,9,2,18,17,16,3,15,14,13,12,4,1) | 0x40;
+ u8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
+ u32 plate = BITSWAP24(m_plate,23,22,21,20,19,10,11,5,6,7,8,0,9,2,18,17,16,3,15,14,13,12,4,1) | 0x40;
display_matrix(19, 8, plate, grid);
}
WRITE8_MEMBER(tcaveman_state::grid_w)
{
- // C,D: vfd grid
+ // C,D: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -2455,7 +2455,7 @@ WRITE8_MEMBER(tcaveman_state::plate_w)
if (offset == NEC_UCOM4_PORTE)
m_speaker->level_w(data >> 3 & 1);
- // E012,F,G,H,I: vfd plate
+ // E012,F,G,H,I: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
prepare_display();
@@ -2537,7 +2537,7 @@ WRITE8_MEMBER(alnchase_state::output_w)
{
if (offset <= NEC_UCOM4_PORTE)
{
- // C,D,E0: vfd grid
+ // C,D,E0: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
@@ -2552,7 +2552,7 @@ WRITE8_MEMBER(alnchase_state::output_w)
if (offset >= NEC_UCOM4_PORTE)
{
- // E23,F,G,H,I: vfd plate
+ // E23,F,G,H,I: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = ((m_plate << 2 & ~(0xf << shift)) | (data << shift)) >> 2;
}
diff --git a/src/mame/drivers/hnayayoi.cpp b/src/mame/drivers/hnayayoi.cpp
index 01d847956ac..12bc4ec803e 100644
--- a/src/mame/drivers/hnayayoi.cpp
+++ b/src/mame/drivers/hnayayoi.cpp
@@ -694,7 +694,7 @@ DRIVER_INIT_MEMBER(hnayayoi_state,hnfubuki)
/* swap data bits 0 and 1 */
for (i = 0; i < len; i++)
{
- rom[i] = bitswap<8>(rom[i],7,6,5,4,3,2,0,1);
+ rom[i] = BITSWAP8(rom[i],7,6,5,4,3,2,0,1);
}
}
diff --git a/src/mame/drivers/hp64k.cpp b/src/mame/drivers/hp64k.cpp
index 54fe302a140..7c9bf6e965b 100644
--- a/src/mame/drivers/hp64k.cpp
+++ b/src/mame/drivers/hp64k.cpp
@@ -439,9 +439,7 @@ WRITE_LINE_MEMBER(hp64k_state::hp64k_crtc_drq_w)
if (!prev_crtc && crtc_drq) {
address_space& prog_space = m_cpu->space(AS_PROGRAM);
- uint16_t data = prog_space.read_word(m_crtc_ptr >> 1);
- data = m_crtc_ptr & 1 ? data & 0xff : data >> 8;
-
+ uint8_t data = prog_space.read_byte(m_crtc_ptr);
m_crtc_ptr++;
m_crtc->dack_w(prog_space , 0 , hp64k_crtc_filter(data));
diff --git a/src/mame/drivers/hp9845.cpp b/src/mame/drivers/hp9845.cpp
index b104ef1e7b7..f8a20913c4d 100644
--- a/src/mame/drivers/hp9845.cpp
+++ b/src/mame/drivers/hp9845.cpp
@@ -25,7 +25,6 @@
// - Correct character generator ROMs (a huge "thank you" to Ansgar Kueckes for the dumps!)
// - 98775 light pen controller
// - Display softkeys on 45C & 45T
-// - HLE of integral printer
// What's not yet in:
// - Better naming of tape drive image (it's now "magt1" and "magt2", should be "t15" and "t14")
// - Better documentation of this file
@@ -33,6 +32,7 @@
// - Speed, as usual
// - Light pen tracing sometimes behaves erratically in 45C and 45T
// What will probably never be in:
+// - Integral printer (firmware and character generator ROMs are very difficult to dump)
// - Fast LPU processor (dump of microcode PROMs is not available)
#include "emu.h"
@@ -48,7 +48,6 @@
#include "hp9845b.lh"
-#include "machine/hp9845_printer.h"
// Debugging
#define VERBOSE 0
@@ -188,7 +187,6 @@ constexpr unsigned LP_FOV = 9; // Field of view
constexpr unsigned LP_XOFFSET = 5; // x-offset of LP (due to delay in hit recognition)
// Peripheral Addresses (PA)
-#define PRINTER_PA 0
#define IO_SLOT_FIRST_PA 1
#define IO_SLOT_LAST_PA 12
#define GVIDEO_PA 13
@@ -525,8 +523,6 @@ void hp9845_base_state::machine_reset()
m_beeper->set_state(0);
- m_prt_irl = false;
-
logerror("STS=%04x FLG=%04x\n" , m_sts_status , m_flg_status);
}
@@ -712,8 +708,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(hp9845_base_state::kb_scan)
// Key pressed, store scancode & generate IRL
//logerror("idx=%u msl=%d\n" , max_seq_idx , max_seq_len);
m_kb_scancode = max_seq_idx;
+ irq_w(0 , 1);
BIT_SET(m_kb_status, 0);
- update_kb_prt_irq();
// Special case: pressing stop key sets LPU "status" flag
if (max_seq_idx == 0x47) {
@@ -736,8 +732,8 @@ READ16_MEMBER(hp9845_base_state::kb_status_r)
WRITE16_MEMBER(hp9845_base_state::kb_irq_clear_w)
{
+ irq_w(0 , 0);
BIT_CLR(m_kb_status, 0);
- update_kb_prt_irq();
m_lpu->status_w(0);
if (BIT(data , 15)) {
@@ -747,12 +743,6 @@ WRITE16_MEMBER(hp9845_base_state::kb_irq_clear_w)
}
}
-void hp9845_base_state::update_kb_prt_irq()
-{
- bool state = BIT(m_kb_status , 0) || m_prt_irl;
- irq_w(0 , state);
-}
-
TIMER_DEVICE_CALLBACK_MEMBER(hp9845_base_state::beeper_off)
{
m_beeper->set_state(0);
@@ -766,22 +756,6 @@ WRITE8_MEMBER(hp9845_base_state::pa_w)
}
}
-WRITE_LINE_MEMBER(hp9845_base_state::prt_irl_w)
-{
- m_prt_irl = state;
- update_kb_prt_irq();
-}
-
-WRITE_LINE_MEMBER(hp9845_base_state::prt_flg_w)
-{
- flg_w(PRINTER_PA , state);
-}
-
-WRITE_LINE_MEMBER(hp9845_base_state::prt_sts_w)
-{
- sts_w(PRINTER_PA , state);
-}
-
WRITE_LINE_MEMBER(hp9845_base_state::t14_irq_w)
{
irq_w(T14_PA , state);
@@ -1072,7 +1046,7 @@ void hp9845b_state::video_fill_buff(bool buff_idx)
// Limit on accesses per row reached
break;
}
- m_video_word = prog_space.read_word(m_video_mar);
+ m_video_word = prog_space.read_word(m_video_mar << 1);
if (m_video_load_mar) {
// Load new address into MAR after start of a new frame or NWA instruction
if (m_video_first_mar) {
@@ -1646,7 +1620,7 @@ void hp9845ct_base_state::video_fill_buff(bool buff_idx)
// Limit on accesses per row reached
break;
}
- m_video_word = prog_space.read_word(m_video_mar);
+ m_video_word = prog_space.read_word(m_video_mar << 1);
if (m_video_load_mar) {
// Load new address into MAR after start of a new frame or NWA instruction
if (m_video_first_mar) {
@@ -3721,9 +3695,6 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START(ppu_io_map , AS_IO , 16 , hp9845_base_state)
ADDRESS_MAP_UNMAP_LOW
- // PA = 0, IC = 0..1
- // Internal printer
- AM_RANGE(HP_MAKE_IOADDR(PRINTER_PA , 0) , HP_MAKE_IOADDR(PRINTER_PA , 1)) AM_DEVREADWRITE("printer" , hp9845_printer_device , printer_r , printer_w)
// PA = 0, IC = 2
// Keyboard scancode input
AM_RANGE(HP_MAKE_IOADDR(0 , 2) , HP_MAKE_IOADDR(0 , 2)) AM_READ(kb_scancode_r)
@@ -3820,12 +3791,6 @@ static MACHINE_CONFIG_START(hp9845_base)
MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("192K")
MCFG_RAM_EXTRA_OPTIONS("64K, 320K, 448K")
-
- // Internal printer
- MCFG_DEVICE_ADD("printer" , HP9845_PRINTER , 0)
- MCFG_9845PRT_IRL_HANDLER(WRITELINE(hp9845_base_state , prt_irl_w))
- MCFG_9845PRT_FLG_HANDLER(WRITELINE(hp9845_base_state , prt_flg_w))
- MCFG_9845PRT_STS_HANDLER(WRITELINE(hp9845_base_state , prt_sts_w))
MACHINE_CONFIG_END
static MACHINE_CONFIG_START(hp9845b)
diff --git a/src/mame/drivers/hprot1.cpp b/src/mame/drivers/hprot1.cpp
index 03bac45704c..56d9913e638 100644
--- a/src/mame/drivers/hprot1.cpp
+++ b/src/mame/drivers/hprot1.cpp
@@ -100,7 +100,7 @@ DRIVER_INIT_MEMBER( hprot1_state, hprot1 )
bitswapped_ROM[i] = ROM[i];
for(i=0x0000;i<0x10000;i++)
- ROM[bitswap<16>(i, 15, 14, 13, 12, 11, 10, 9, 8, 3, 2, 1, 0, 4, 5, 6, 7)] = bitswapped_ROM[i];
+ ROM[BITSWAP16(i, 15, 14, 13, 12, 11, 10, 9, 8, 3, 2, 1, 0, 4, 5, 6, 7)] = bitswapped_ROM[i];
}
//A4 = display RS
diff --git a/src/mame/drivers/hshavoc.cpp b/src/mame/drivers/hshavoc.cpp
index ae7d7ade2af..4a9e6213155 100644
--- a/src/mame/drivers/hshavoc.cpp
+++ b/src/mame/drivers/hshavoc.cpp
@@ -131,7 +131,7 @@ DRIVER_INIT_MEMBER(md_boot_state,hshavoc)
for (x = 0; x < rom_size / 2; x++)
{
- src[x] = bitswap<16>(src[x],
+ src[x] = BITSWAP16(src[x],
7, 15,6, 14,
5, 2, 1, 10,
13,4, 12,3,
@@ -152,7 +152,7 @@ DRIVER_INIT_MEMBER(md_boot_state,hshavoc)
if (src[x] & 0x0100)
src[x] ^= 0x0004;
- src[x] = bitswap<16>(src[x], 15,14,13,12,
+ src[x] = BITSWAP16(src[x], 15,14,13,12,
11,9, 10,8,
7, 6, 5, 4,
3, 2, 1, 0 );
@@ -162,13 +162,13 @@ DRIVER_INIT_MEMBER(md_boot_state,hshavoc)
/* START e? from e80000 to end you need THIS ALONE to match the genesis rom */
for (x = rom_size / 2; x < 0x100000 / 2; x++)
{
- src[x] = bitswap<16>(src[x],
+ src[x] = BITSWAP16(src[x],
7, 15,6, 14,
5, 2, 1, 10,
13,4, 12,3,
11,0, 8, 9 );
- src[x] = bitswap<16>(src[x],
+ src[x] = BITSWAP16(src[x],
15,14,13,12,
11,10,9, 2,
7, 6, 5, 4,
@@ -192,7 +192,7 @@ DRIVER_INIT_MEMBER(md_boot_state,hshavoc)
{
src[x] ^= 0x0107; //? seems conditional..
- src[x] = bitswap<16>(src[x],
+ src[x] = BITSWAP16(src[x],
15,13,14,12,
11,10,9, 0,
8, 6, 5, 4,
diff --git a/src/mame/drivers/icecold.cpp b/src/mame/drivers/icecold.cpp
index 96b81561513..523be013c23 100644
--- a/src/mame/drivers/icecold.cpp
+++ b/src/mame/drivers/icecold.cpp
@@ -333,7 +333,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(icecold_state::icecold_motors_timer)
static MACHINE_CONFIG_START( icecold )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_6MHz/4) // 68A09E
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_6MHz/4)
MCFG_CPU_PROGRAM_MAP(icecold_map)
MCFG_DEVICE_ADD( "pia0", PIA6821, 0)
diff --git a/src/mame/drivers/idsa.cpp b/src/mame/drivers/idsa.cpp
index ee1ffc1dcc3..024150bae00 100644
--- a/src/mame/drivers/idsa.cpp
+++ b/src/mame/drivers/idsa.cpp
@@ -9,8 +9,8 @@ Hardware:
---------
CPU: Z80 @ 4 MHz
INT: IRQ @ 977 Hz (4MHz/2048/2) or 488 Hz (4MHz/2048/4)
-DRIVERS: bsktbllp: 2 x 8255 driving lamps and coils, used as demultiplexers only (no read access)
-DISPLAY: bsktbllp: 7-digit 7-segment panels with PROM-based 5-bit BCD data (allowing a simple alphabet)
+DRIVERS: 2 x 8255 driving lamps and coils, used as demultiplexers only (no read access)
+DISPLAY: bsktball: 7-digit 7-segment panels with PROM-based 5-bit BCD data (allowing a simple alphabet)
v1: 6-digit 7-segment panels with BCD decoding
SOUND: 2 x AY8910 @ 2 MHz (also used as output interface) plus SP0256 @ 3.12 MHz on board
@@ -50,14 +50,6 @@ public:
DECLARE_READ8_MEMBER(portb0_r);
DECLARE_WRITE8_MEMBER(port80_w);
DECLARE_WRITE8_MEMBER(port90_w);
- DECLARE_WRITE8_MEMBER(ppi_control_w);
- DECLARE_WRITE8_MEMBER(ppi_data_w);
- DECLARE_WRITE8_MEMBER(ppi1_a_w);
- DECLARE_WRITE8_MEMBER(ppi1_b_w);
- DECLARE_WRITE8_MEMBER(ppi1_c_w);
- DECLARE_WRITE8_MEMBER(ppi2_a_w);
- DECLARE_WRITE8_MEMBER(ppi2_b_w);
- DECLARE_WRITE8_MEMBER(ppi2_c_w);
DECLARE_WRITE8_MEMBER(ay1_a_w);
DECLARE_WRITE8_MEMBER(ay1_b_w);
DECLARE_WRITE8_MEMBER(ay2_a_w);
@@ -70,7 +62,7 @@ private:
uint8_t m_ppi_data;
required_device<cpu_device> m_maincpu;
required_device<sp0256_device> m_speech;
- optional_device_array<i8255_device, 2> m_ppi;
+ required_device_array<i8255_device, 2> m_ppi;
};
static ADDRESS_MAP_START( maincpu_map, AS_PROGRAM, 8, idsa_state )
@@ -239,7 +231,7 @@ WRITE8_MEMBER( idsa_state::port90_w )
}
// AY ports are for lamps and solenoids
-WRITE8_MEMBER( idsa_state::ppi_control_w )
+WRITE8_MEMBER( idsa_state::ay1_a_w )
{
//logerror("%s: AY1 port A = %02X\n", machine().describe_context(), data);
if (!BIT(data, 2))
@@ -248,49 +240,9 @@ WRITE8_MEMBER( idsa_state::ppi_control_w )
m_ppi[1]->write(space, data & 0x03, m_ppi_data);
}
-WRITE8_MEMBER( idsa_state::ppi_data_w )
-{
- m_ppi_data = data;
-}
-
-WRITE8_MEMBER( idsa_state::ppi1_a_w )
-{
- logerror("%s: PPI1 port A = %02X\n", machine().describe_context(), data);
-}
-
-WRITE8_MEMBER( idsa_state::ppi1_b_w )
-{
- logerror("%s: PPI1 port B = %02X\n", machine().describe_context(), data);
-}
-
-WRITE8_MEMBER( idsa_state::ppi1_c_w )
-{
- logerror("%s: PPI1 port C = %02X\n", machine().describe_context(), data);
-}
-
-WRITE8_MEMBER( idsa_state::ppi2_a_w )
-{
- logerror("%s: PPI2 port A = %02X\n", machine().describe_context(), data);
-}
-
-WRITE8_MEMBER( idsa_state::ppi2_b_w )
-{
- logerror("%s: PPI2 port B = %02X\n", machine().describe_context(), data);
-}
-
-WRITE8_MEMBER( idsa_state::ppi2_c_w )
-{
- logerror("%s: PPI2 port C = %02X\n", machine().describe_context(), data);
-}
-
-WRITE8_MEMBER( idsa_state::ay1_a_w )
-{
- //logerror("%s: AY1 port A = %02X\n", machine().describe_context(), data);
-}
-
WRITE8_MEMBER( idsa_state::ay1_b_w )
{
- //logerror("%s: AY1 port B = %02X\n", machine().describe_context(), data);
+ m_ppi_data = data;
}
WRITE8_MEMBER( idsa_state::ay2_a_w )
@@ -339,33 +291,21 @@ static MACHINE_CONFIG_START( idsa )
/* sound hardware */
MCFG_FRAGMENT_ADD( genpin_audio )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_SOUND_ADD("speech", SP0256, 3120000) // unknown variant
+ MCFG_SOUND_ADD("speech", SP0256, 3120000)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.5)
MCFG_SOUND_ADD("aysnd1", AY8910, 2000000) // 2Mhz according to pinmame, schematic omits the clock line
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(idsa_state, ay1_a_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(idsa_state, ay1_b_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75)
MCFG_SOUND_ADD("aysnd2", AY8910, 2000000)
- MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(idsa_state, ay1_a_w))
- MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(idsa_state, ay1_b_w))
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(idsa_state, ay2_a_w))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(idsa_state, ay2_b_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75)
-MACHINE_CONFIG_END
-
-static MACHINE_CONFIG_DERIVED( bsktbllp, idsa )
- MCFG_DEVICE_MODIFY("aysnd1")
- MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(idsa_state, ppi_control_w))
- MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(idsa_state, ppi_data_w))
MCFG_DEVICE_ADD("ppi1", I8255, 0)
- MCFG_I8255_OUT_PORTA_CB(WRITE8(idsa_state, ppi1_a_w))
- MCFG_I8255_OUT_PORTB_CB(WRITE8(idsa_state, ppi1_b_w))
- MCFG_I8255_OUT_PORTC_CB(WRITE8(idsa_state, ppi1_c_w))
MCFG_DEVICE_ADD("ppi2", I8255, 0)
- MCFG_I8255_OUT_PORTA_CB(WRITE8(idsa_state, ppi2_a_w))
- MCFG_I8255_OUT_PORTB_CB(WRITE8(idsa_state, ppi2_b_w))
- MCFG_I8255_OUT_PORTC_CB(WRITE8(idsa_state, ppi2_c_w))
MACHINE_CONFIG_END
@@ -380,12 +320,11 @@ ROM_END
ROM_START(bsktbllp)
ROM_REGION(0x8000, "maincpu", 0)
ROM_LOAD("bsktball.256", 0x0000, 0x8000, CRC(d474e29b) SHA1(750cbacef34dde0b3dcb6c1e4679db78a73643fd))
- ROM_FILL(0x0cb8, 1, 0x3e) // patch suspicious LD that fetches a bad AY address
ROM_REGION(0x10000, "speech", 0)
ROM_LOAD( "sp0256a-al2.1b", 0x1000, 0x0800, CRC(b504ac15) SHA1(e60fcb5fa16ff3f3b69d36c7a6e955744d3feafc) )
ROM_END
-GAME( 1985, v1, 0, idsa, idsa, idsa_state, 0, ROT0, "IDSA", "V.1", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 1987, bsktbllp, 0, bsktbllp, idsa, idsa_state, 0, ROT0, "IDSA", "Basket Ball", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1985, v1, 0, idsa, idsa, idsa_state, 0, ROT0, "IDSA", "V.1", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1987, bsktbllp, 0, idsa, idsa, idsa_state, 0, ROT0, "IDSA", "Basket Ball", MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mame/drivers/igs011.cpp b/src/mame/drivers/igs011.cpp
index dd9ead31478..5e4ae3856fd 100644
--- a/src/mame/drivers/igs011.cpp
+++ b/src/mame/drivers/igs011.cpp
@@ -827,7 +827,7 @@ void igs011_state::lhb2_decrypt()
if ((i & 0x3080) != 0x3080 && (i & 0x3090) != 0x3010)
x ^= 0x0020;
- j = bitswap<24>(i, 23,22,21,20,19,18,17,16,15,14,13, 8, 11,10, 9, 2, 7,6,5,4,3, 12, 1,0);
+ j = BITSWAP24(i, 23,22,21,20,19,18,17,16,15,14,13, 8, 11,10, 9, 2, 7,6,5,4,3, 12, 1,0);
result_data[j] = x;
}
@@ -849,7 +849,7 @@ void igs011_state::nkishusp_decrypt()
uint16_t x = src[i];
// lhb2 address scrambling
- j = bitswap<24>(i, 23,22,21,20,19,18,17,16,15,14,13, 8, 11,10, 9, 2, 7,6,5,4,3, 12, 1,0);
+ j = BITSWAP24(i, 23,22,21,20,19,18,17,16,15,14,13, 8, 11,10, 9, 2, 7,6,5,4,3, 12, 1,0);
// ryukobou xor:
@@ -1047,7 +1047,7 @@ void igs011_state::lhb2_gfx_decrypt()
std::vector<uint8_t> result_data(rom_size);
for (i=0; i<rom_size; i++)
- result_data[i] = src[bitswap<24>(i, 23,22,21,20, 19, 17,16,15, 13,12, 10,9,8,7,6,5,4, 2,1, 3, 11, 14, 18, 0)];
+ result_data[i] = src[BITSWAP24(i, 23,22,21,20, 19, 17,16,15, 13,12, 10,9,8,7,6,5,4, 2,1, 3, 11, 14, 18, 0)];
memcpy(src,&result_data[0],rom_size);
}
@@ -1060,7 +1060,7 @@ void igs011_state::drgnwrld_gfx_decrypt()
std::vector<uint8_t> result_data(rom_size);
for (i=0; i<rom_size; i++)
- result_data[i] = src[bitswap<24>(i, 23,22,21,20,19,18,17,16,15, 12, 13, 14, 11,10,9,8,7,6,5,4,3,2,1,0)];
+ result_data[i] = src[BITSWAP24(i, 23,22,21,20,19,18,17,16,15, 12, 13, 14, 11,10,9,8,7,6,5,4,3,2,1,0)];
memcpy(src,&result_data[0],rom_size);
}
@@ -1742,7 +1742,7 @@ READ16_MEMBER(igs011_state::lhb2_igs003_r)
break;
case 0x03:
- return bitswap<16>(m_igs003_prot_hold, 14,11,8,6,4,3,1,0, 5,2,9,7,10,13,12,15) & 0xff;
+ return BITSWAP16(m_igs003_prot_hold, 14,11,8,6,4,3,1,0, 5,2,9,7,10,13,12,15) & 0xff;
// Protection:
// 0544FE: 20 21 22 24 25 26 27 28 2A 2B 2C 2D 2E 30 31 32 33 34
@@ -2010,7 +2010,7 @@ READ16_MEMBER(igs011_state::vbowl_igs003_r)
case 0x01: return ioport("IN1")->read();
case 0x03:
- return bitswap<16>(m_igs003_prot_hold, 14,11,8,6,4,3,1,0, 5,2,9,7,10,13,12,15) & 0xff;
+ return BITSWAP16(m_igs003_prot_hold, 14,11,8,6,4,3,1,0, 5,2,9,7,10,13,12,15) & 0xff;
case 0x20: return 0x49;
case 0x21: return 0x47;
diff --git a/src/mame/drivers/igs017.cpp b/src/mame/drivers/igs017.cpp
index f71cb186a5e..976d5d4fb0a 100644
--- a/src/mame/drivers/igs017.cpp
+++ b/src/mame/drivers/igs017.cpp
@@ -225,24 +225,24 @@ uint16_t igs017_state::mgcs_palette_bitswap(uint16_t bgr)
{
bgr = ((bgr & 0xff00) >> 8) | ((bgr & 0x00ff) << 8);
- return bitswap<16>(bgr, 7, 8, 9, 2, 14, 3, 13, 15, 12, 11, 10, 0, 1, 4, 5, 6);
+ return BITSWAP16(bgr, 7, 8, 9, 2, 14, 3, 13, 15, 12, 11, 10, 0, 1, 4, 5, 6);
}
uint16_t igs017_state::lhzb2a_palette_bitswap(uint16_t bgr)
{
// bgr = ((bgr & 0xff00) >> 8) | ((bgr & 0x00ff) << 8);
- return bitswap<16>(bgr, 15,9,13,12,11,5,4,8,7,6,0,14,3,2,1,10);
+ return BITSWAP16(bgr, 15,9,13,12,11,5,4,8,7,6,0,14,3,2,1,10);
}
uint16_t igs017_state::tjsb_palette_bitswap(uint16_t bgr)
{
// bitswap
- return bitswap<16>(bgr, 15,12,3,6,10,5,4,2,9,13,8,7,11,1,0,14);
+ return BITSWAP16(bgr, 15,12,3,6,10,5,4,2,9,13,8,7,11,1,0,14);
}
uint16_t igs017_state::slqz2_palette_bitswap(uint16_t bgr)
{
- return bitswap<16>(bgr, 15,14,9,4,11,10,12,3,7,6,5,8,13,2,1,0);
+ return BITSWAP16(bgr, 15,14,9,4,11,10,12,3,7,6,5,8,13,2,1,0);
}
@@ -297,7 +297,7 @@ void igs017_state::decrypt_program_rom(int mask, int a7, int a6, int a5, int a4,
// address lines swap
for (i = 0;i < length;i++)
{
- int addr = (i & ~0xff) | bitswap<8>(i,a7,a6,a5,a4,a3,a2,a1,a0);
+ int addr = (i & ~0xff) | BITSWAP8(i,a7,a6,a5,a4,a3,a2,a1,a0);
rom[i] = tmp[addr];
}
@@ -363,7 +363,7 @@ void igs017_state::tjsb_decrypt_sprites()
memcpy(tmp.get(), rom, length);
for (i = 0; i < length; i++)
{
- addr = (i & ~0xff) | bitswap<8>(i,7,6,5,2,1,4,3,0);
+ addr = (i & ~0xff) | BITSWAP8(i,7,6,5,2,1,4,3,0);
rom[i] = tmp[addr];
}
@@ -371,7 +371,7 @@ void igs017_state::tjsb_decrypt_sprites()
for (i = 0; i < length; i += 2)
{
uint16_t data = (rom[i+1] << 8) | rom[i+0]; // x-22222-11111-00000
- data = bitswap<16>(data, 15, 14,13,12,11,10, 9,1,7,6,5, 4,3,2,8,0);
+ data = BITSWAP16(data, 15, 14,13,12,11,10, 9,1,7,6,5, 4,3,2,8,0);
rom[i+0] = data;
rom[i+1] = data >> 8;
}
@@ -447,8 +447,8 @@ void igs017_state::mgcs_decrypt_tiles()
memcpy(&tmp[0],rom,length);
for (i = 0;i < length;i++)
{
- int addr = (i & ~0xffff) | bitswap<16>(i,15,14,13,12,11,10,6,7,8,9,5,4,3,2,1,0);
- rom[i^1] = bitswap<8>(tmp[addr],0,1,2,3,4,5,6,7);
+ int addr = (i & ~0xffff) | BITSWAP16(i,15,14,13,12,11,10,6,7,8,9,5,4,3,2,1,0);
+ rom[i^1] = BITSWAP8(tmp[addr],0,1,2,3,4,5,6,7);
}
}
@@ -463,10 +463,10 @@ void igs017_state::mgcs_flip_sprites()
uint16_t pixels = (rom[i+1] << 8) | rom[i+0];
// flip bits
- pixels = bitswap<16>(pixels,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+ pixels = BITSWAP16(pixels,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
// flip pixels
- pixels = bitswap<16>(pixels,15, 0,1,2,3,4, 5,6,7,8,9, 10,11,12,13,14);
+ pixels = BITSWAP16(pixels,15, 0,1,2,3,4, 5,6,7,8,9, 10,11,12,13,14);
rom[i+0] = pixels;
rom[i+1] = pixels >> 8;
@@ -507,8 +507,8 @@ void igs017_state::tarzan_decrypt_tiles()
memcpy(&tmp[0],rom,length);
for (i = 0;i < length;i++)
{
- int addr = (i & ~0xffff) | bitswap<16>(i,15,14,13,12,11,7,8,6,10,9,5,4,3,2,1,0);
- rom[i] = bitswap<8>(tmp[addr],0,1,2,3,4,5,6,7);
+ int addr = (i & ~0xffff) | BITSWAP16(i,15,14,13,12,11,7,8,6,10,9,5,4,3,2,1,0);
+ rom[i] = BITSWAP8(tmp[addr],0,1,2,3,4,5,6,7);
}
}
@@ -765,7 +765,7 @@ void igs017_state::lhzb2_decrypt_tiles()
memcpy(&tmp[0], rom, length);
for (i = 0; i < length; i++)
{
- addr = (i & ~0xffffff) | bitswap<24>(i,23,22,21,20,19,18,17,1,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,0);
+ addr = (i & ~0xffffff) | BITSWAP24(i,23,22,21,20,19,18,17,1,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,0);
rom[i] = tmp[addr];
}
}
@@ -781,7 +781,7 @@ void igs017_state::lhzb2_decrypt_sprites()
memcpy(tmp.get(), rom, length);
for (i = 0; i < length; i++)
{
- addr = (i & ~0xffff) | bitswap<16>(i,15,14,13,6,7,10,9,8,11,12,5,4,3,2,1,0);
+ addr = (i & ~0xffff) | BITSWAP16(i,15,14,13,6,7,10,9,8,11,12,5,4,3,2,1,0);
rom[i] = tmp[addr];
}
@@ -789,7 +789,7 @@ void igs017_state::lhzb2_decrypt_sprites()
for (i = 0;i < length;i+=2)
{
uint16_t data = (rom[i+1] << 8) | rom[i+0]; // x-22222-11111-00000
- data = bitswap<16>(data, 15, 7,6,5,4,3, 2,1,0,14,13, 12,11,10,9,8);
+ data = BITSWAP16(data, 15, 7,6,5,4,3, 2,1,0,14,13, 12,11,10,9,8);
rom[i+0] = data;
rom[i+1] = data >> 8;
}
@@ -989,7 +989,7 @@ void igs017_state::slqz2_decrypt_tiles()
memcpy(&tmp[0],rom,length);
for (i = 0;i < length;i++)
{
- int addr = (i & ~0xff) | bitswap<8>(i,7,4,5,6,3,2,1,0);
+ int addr = (i & ~0xff) | BITSWAP8(i,7,4,5,6,3,2,1,0);
rom[i] = tmp[addr];
}
}
@@ -1096,9 +1096,9 @@ void igs017_state::spkrform_decrypt_sprites()
for (i = 0; i < length; i++)
{
if (i & 0x80000)
- addr = (i & ~0xff) | bitswap<8>(i,7,6,3,4,5,2,1,0);
+ addr = (i & ~0xff) | BITSWAP8(i,7,6,3,4,5,2,1,0);
else
- addr = (i & ~0xffff) | bitswap<16>(i,15,14,13,12,11,10, 4, 8,7,6,5, 9,3,2,1,0);
+ addr = (i & ~0xffff) | BITSWAP16(i,15,14,13,12,11,10, 4, 8,7,6,5, 9,3,2,1,0);
rom[i] = tmp[addr];
}
@@ -1337,7 +1337,7 @@ WRITE16_MEMBER(igs017_state::mgcs_magic_w)
// ---- ---0 Hopper Motor
m_input_select = data & 0xff;
- m_hopperdev->motor_w(BIT(data, 0));
+ m_hopperdev->write(space, 0, (data & 0x0001) ? 0x80 : 0x00);
if (igs029_irq)
{
@@ -1412,7 +1412,7 @@ READ16_MEMBER(igs017_state::mgcs_magic_r)
case 0x01:
{
- uint16_t ret = bitswap<8>( (bitswap<8>(m_scramble_data, 0,1,2,3,4,5,6,7) + 1) & 3, 4,5,6,7, 0,1,2,3);
+ uint16_t ret = BITSWAP8( (BITSWAP8(m_scramble_data, 0,1,2,3,4,5,6,7) + 1) & 3, 4,5,6,7, 0,1,2,3);
logerror("%s: reading %02x from igs_magic = %02x\n", machine().describe_context(), ret, m_igs_magic[0]);
return ret;
}
@@ -1627,7 +1627,7 @@ READ16_MEMBER(igs017_state::mgdha_magic_r)
return ioport("BUTTONS")->read();
case 0x02:
- return bitswap<8>(ioport("DSW2")->read(), 0,1,2,3,4,5,6,7);
+ return BITSWAP8(ioport("DSW2")->read(), 0,1,2,3,4,5,6,7);
case 0x03:
{
diff --git a/src/mame/drivers/igs_m027.cpp b/src/mame/drivers/igs_m027.cpp
index d3932cfb485..a2389ee2a6a 100644
--- a/src/mame/drivers/igs_m027.cpp
+++ b/src/mame/drivers/igs_m027.cpp
@@ -212,7 +212,7 @@ void igs_m027_state::sdwx_gfx_decrypt()
std::vector<uint8_t> result_data(rom_size);
for (i=0; i<rom_size; i++)
- result_data[i] = src[bitswap<24>(i, 23,22,21,20,19,18,17,16,15,14,13,12,11,8,7,6,10,9,5,4,3,2,1,0)];
+ result_data[i] = src[BITSWAP24(i, 23,22,21,20,19,18,17,16,15,14,13,12,11,8,7,6,10,9,5,4,3,2,1,0)];
for (i=0; i<rom_size; i+=0x200)
{
diff --git a/src/mame/drivers/igspoker.cpp b/src/mame/drivers/igspoker.cpp
index 882bf27b7b1..5b805f32731 100644
--- a/src/mame/drivers/igspoker.cpp
+++ b/src/mame/drivers/igspoker.cpp
@@ -2605,7 +2605,7 @@ DRIVER_INIT_MEMBER(igspoker_state,number10)
memcpy(&tmp[0],rom,length);
for (A = 0; A < length; A++)
{
- int addr = (A & ~0xffff) | bitswap<16>(A,15,14,13,12,11,10,9,8,7,6,5,4,3,0,1,2);
+ int addr = (A & ~0xffff) | BITSWAP16(A,15,14,13,12,11,10,9,8,7,6,5,4,3,0,1,2);
rom[A] = tmp[addr];
}
}
diff --git a/src/mame/drivers/inder.cpp b/src/mame/drivers/inder.cpp
index 230c3c4cc25..ae429be67d7 100644
--- a/src/mame/drivers/inder.cpp
+++ b/src/mame/drivers/inder.cpp
@@ -1121,7 +1121,7 @@ WRITE8_MEMBER( inder_state::sw_w )
WRITE8_MEMBER( inder_state::sn_w )
{
- m_sn->write(space, 0, bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7));
+ m_sn->write(space, 0, BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7));
}
WRITE8_MEMBER( inder_state::sndcmd_lapbylap_w )
diff --git a/src/mame/drivers/instantm.cpp b/src/mame/drivers/instantm.cpp
index b08d85685ee..c2fb903b228 100644
--- a/src/mame/drivers/instantm.cpp
+++ b/src/mame/drivers/instantm.cpp
@@ -1,6 +1,6 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
-/******************************************************************************************************************************
+/*
has a sticker marked
Part # 04-0008
@@ -14,91 +14,33 @@ Serial# : 0115
There were several different designs for this, it's possible they used
different speech roms etc.
-ToDo:
-- work out how the cpus communicate (there's an interrupt handler in main cpu)
-- clear up the speech
-- inputs
-- mechanical matters (camera, printer, etc)
-At the moment it simply outputs all the speech strings, one after the other, then stops.
-
-*****************************************************************************************************************************/
+*/
#include "emu.h"
#include "cpu/z80/z80.h"
-#include "machine/clock.h"
-#include "sound/dac.h"
-#include "sound/volt_reg.h"
-#include "speaker.h"
class instantm_state : public driver_device
{
public:
instantm_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag)
- , m_maincpu(*this, "maincpu")
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu")
{ }
- DECLARE_READ8_MEMBER(port01_r);
- DECLARE_WRITE8_MEMBER(port01_w);
- DECLARE_WRITE_LINE_MEMBER(clock_w);
-
-private:
- u8 m_port01;
- bool m_clock_en;
virtual void machine_start() override;
virtual void machine_reset() override;
required_device<cpu_device> m_maincpu;
};
-// return instruction from main cpu
-READ8_MEMBER( instantm_state::port01_r )
-{
- return m_port01;
-}
-
-// tell maincpu the speech is done
-WRITE8_MEMBER( instantm_state::port01_w )
-{
- // bump to next bit of speech for now
- if ((m_port01 & 15) < 15)
- m_port01++;
- else
- m_clock_en = false;
-}
-
-// clock out the speech bytes
-WRITE_LINE_MEMBER( instantm_state::clock_w )
-{
- if (m_clock_en)
- m_port01 ^= 0x80;
-}
-
-
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, instantm_state )
- AM_RANGE(0x0000, 0x1fff) AM_ROM
- AM_RANGE(0x4000, 0x47ff) AM_RAM
- AM_RANGE(0x8000, 0x8000) //AM_WRITE
- AM_RANGE(0xc000, 0xc000) //AM_WRITE
- AM_RANGE(0xc400, 0xc400) //AM_WRITE
- AM_RANGE(0xc800, 0xc800) //AM_WRITE
- AM_RANGE(0xcc00, 0xcc00) //AM_WRITE
- AM_RANGE(0xec00, 0xec00) //AM_READ
- AM_RANGE(0xf000, 0xf000) //AM_READ
- AM_RANGE(0xf400, 0xf400) //AM_READ
- AM_RANGE(0xfc00, 0xfc00) //AM_READ
-ADDRESS_MAP_END
-// doesn't use ram
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, instantm_state )
- AM_RANGE(0x0000, 0xffff) AM_ROM
- AM_RANGE(0x0000, 0x0000) AM_DEVWRITE("dac", dac_byte_interface, write)
+static ADDRESS_MAP_START( instantm_map, AS_PROGRAM, 8, instantm_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_io, AS_PROGRAM, 8, instantm_state )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x01, 0x01) AM_READWRITE(port01_r,port01_w)
+static ADDRESS_MAP_START( instantm_submap, AS_PROGRAM, 8, instantm_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
ADDRESS_MAP_END
static INPUT_PORTS_START( instantm )
@@ -111,29 +53,18 @@ void instantm_state::machine_start()
void instantm_state::machine_reset()
{
- m_port01 = 0xf0; // bit 4 low sends subcpu to a test mode
- m_clock_en = true;
}
// OSC1 = XTAL_3_579545MHz
static MACHINE_CONFIG_START( instantm )
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz)
- MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_CPU_ADD("subcpu", Z80, XTAL_3_579545MHz)
- MCFG_CPU_PROGRAM_MAP(sub_map)
- MCFG_CPU_IO_MAP(sub_io)
-
- // all guesswork
- MCFG_DEVICE_ADD("voice_clock", CLOCK, 24000)
- MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(instantm_state, clock_w))
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80,XTAL_3_579545MHz)
+ MCFG_CPU_PROGRAM_MAP(instantm_map)
- MCFG_SPEAKER_STANDARD_MONO("speaker")
- MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_CPU_ADD("subcpu", Z80,XTAL_3_579545MHz)
+ MCFG_CPU_PROGRAM_MAP(instantm_submap)
MACHINE_CONFIG_END
@@ -147,4 +78,4 @@ ROM_START( instantm )
ROM_END
-GAME( 199?, instantm, 0, instantm, instantm, instantm_state, 0, ROT0, "Capcom / Polaroid", "Polaroid Instant Memories", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, instantm, 0, instantm, instantm, instantm_state, 0, ROT0, "Capcom / Polaroid", "Polaroid Instant Memories", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/irobot.cpp b/src/mame/drivers/irobot.cpp
index 6a297cb5a6e..8669ef200e7 100644
--- a/src/mame/drivers/irobot.cpp
+++ b/src/mame/drivers/irobot.cpp
@@ -301,7 +301,7 @@ GFXDECODE_END
static MACHINE_CONFIG_START( irobot )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MAIN_CLOCK/8)
+ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK/8)
MCFG_CPU_PROGRAM_MAP(irobot_map)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/ironhors.cpp b/src/mame/drivers/ironhors.cpp
index 29e7a6703fb..ee36c03d9c2 100644
--- a/src/mame/drivers/ironhors.cpp
+++ b/src/mame/drivers/ironhors.cpp
@@ -15,6 +15,7 @@
#include "cpu/m6809/m6809.h"
#include "cpu/z80/z80.h"
#include "sound/2203intf.h"
+#include "sound/discrete.h"
#include "screen.h"
#include "speaker.h"
@@ -48,6 +49,7 @@ WRITE8_MEMBER(ironhors_state::sh_irqtrigger_w)
WRITE8_MEMBER(ironhors_state::filter_w)
{
+ discrete_device *m_disc_ih = machine().device<discrete_device>("disc_ih");
m_disc_ih->write(space, NODE_11, (data & 0x04) >> 2);
m_disc_ih->write(space, NODE_12, (data & 0x02) >> 1);
m_disc_ih->write(space, NODE_13, (data & 0x01) >> 0);
@@ -358,29 +360,14 @@ void ironhors_state::machine_reset()
m_spriterambank = 0;
}
-/*
-clock measurements:
-main Xtal is 18.432mhz
-
-Z80 runs at 3.072mhz
-
-M6809E runs at 1.532mhz ( NOT 3.072mhz)
-
-Vsync is 61hz
-
-Hsync is 15,56khz
-
-These clocks make the emulation run too fast.
-*/
-
static MACHINE_CONFIG_START( ironhors )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, 18432000/6) /* 3.072 MHz??? mod by Shingo Suzuki 1999/10/15 */
+ MCFG_CPU_ADD("maincpu", M6809,18432000/6) /* 3.072 MHz??? mod by Shingo Suzuki 1999/10/15 */
MCFG_CPU_PROGRAM_MAP(master_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ironhors_state, irq, "screen", 0, 1)
- MCFG_CPU_ADD("soundcpu", Z80, 18432000/6) /* 3.072 MHz */
+ MCFG_CPU_ADD("soundcpu",Z80,18432000/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(slave_map)
MCFG_CPU_IO_MAP(slave_io_map)
diff --git a/src/mame/drivers/itech32.cpp b/src/mame/drivers/itech32.cpp
index 70b234a9326..f2033c0dedd 100644
--- a/src/mame/drivers/itech32.cpp
+++ b/src/mame/drivers/itech32.cpp
@@ -359,6 +359,7 @@ Notes:
#include "cpu/tms32031/tms32031.h"
#include "machine/6522via.h"
#include "machine/nvram.h"
+#include "machine/ticket.h"
#include "machine/timekpr.h"
#include "machine/watchdog.h"
#include "sound/es5506.h"
@@ -738,11 +739,11 @@ WRITE8_MEMBER(itech32_state::drivedge_portb_out)
/* bit 4 controls the ticket dispenser */
/* bit 5 controls the coin counter */
/* bit 6 controls the diagnostic sound LED */
- output().set_led_value(1, BIT(data, 0));
- output().set_led_value(2, BIT(data, 1));
- output().set_led_value(3, BIT(data, 2));
- m_ticket->motor_w(BIT(data, 4));
- machine().bookkeeping().coin_counter_w(0, BIT(data, 5));
+ output().set_led_value(1, data & 0x01);
+ output().set_led_value(2, data & 0x02);
+ output().set_led_value(3, data & 0x04);
+ machine().device<ticket_dispenser_device>("ticket")->write(machine().dummy_space(), 0, (data & 0x10) << 3);
+ machine().bookkeeping().coin_counter_w(0, (data & 0x20) >> 5);
}
@@ -759,8 +760,8 @@ WRITE8_MEMBER(itech32_state::pia_portb_out)
/* bit 4 controls the ticket dispenser */
/* bit 5 controls the coin counter */
/* bit 6 controls the diagnostic sound LED */
- m_ticket->motor_w(BIT(data, 4));
- machine().bookkeeping().coin_counter_w(0, BIT(data, 5));
+ machine().device<ticket_dispenser_device>("ticket")->write(machine().dummy_space(), 0, (data & 0x10) << 3);
+ machine().bookkeeping().coin_counter_w(0, (data & 0x20) >> 5);
}
@@ -1678,7 +1679,7 @@ static MACHINE_CONFIG_START( timekill )
MCFG_CPU_PROGRAM_MAP(timekill_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", itech32_state, generate_int1)
- MCFG_CPU_ADD("soundcpu", MC6809, SOUND_CLOCK/2)
+ MCFG_CPU_ADD("soundcpu", M6809, SOUND_CLOCK/8)
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_NVRAM_ADD_CUSTOM_DRIVER("nvram", itech32_state, nvram_init)
diff --git a/src/mame/drivers/itech8.cpp b/src/mame/drivers/itech8.cpp
index e20d83eef9e..646d3a34f63 100644
--- a/src/mame/drivers/itech8.cpp
+++ b/src/mame/drivers/itech8.cpp
@@ -536,7 +536,7 @@ void itech8_state::update_interrupts(int periodic, int tms34061, int blitter)
if (blitter != -1) m_blitter_int = blitter;
/* handle the 6809 case */
- if (main_cpu_type == MC6809 || main_cpu_type == HD6309)
+ if (main_cpu_type == M6809 || main_cpu_type == HD6309)
{
/* just modify lines that have changed */
if (periodic != -1) m_maincpu->set_input_line(INPUT_LINE_NMI, periodic ? ASSERT_LINE : CLEAR_LINE);
@@ -625,7 +625,7 @@ void itech8_state::machine_reset()
device_type main_cpu_type = m_maincpu->type();
/* make sure bank 0 is selected */
- if (main_cpu_type == MC6809 || main_cpu_type == HD6309)
+ if (main_cpu_type == M6809 || main_cpu_type == HD6309)
{
membank("bank1")->set_entry(0);
m_maincpu->reset();
@@ -748,8 +748,8 @@ WRITE8_MEMBER(itech8_state::pia_portb_out)
/* bit 5 controls the coin counter */
/* bit 6 controls the diagnostic sound LED */
m_pia_portb_data = data;
- m_ticket->motor_w(BIT(data, 4));
- machine().bookkeeping().coin_counter_w(0, BIT(data, 5));
+ m_ticket->write(space, 0, (data & 0x10) << 3);
+ machine().bookkeeping().coin_counter_w(0, (data & 0x20) >> 5);
}
@@ -762,8 +762,8 @@ WRITE8_MEMBER(itech8_state::ym2203_portb_out)
/* bit 6 controls the diagnostic sound LED */
/* bit 7 controls the ticket dispenser */
m_pia_portb_data = data;
- m_ticket->motor_w(BIT(data, 7));
- machine().bookkeeping().coin_counter_w(0, BIT(data, 5));
+ m_ticket->write(machine().dummy_space(), 0, data & 0x80);
+ machine().bookkeeping().coin_counter_w(0, (data & 0x20) >> 5);
}
@@ -1668,7 +1668,7 @@ WRITE_LINE_MEMBER(itech8_state::generate_tms34061_interrupt)
static MACHINE_CONFIG_START( itech8_core_lo )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, CLOCK_8MHz)
+ MCFG_CPU_ADD("maincpu", M6809, CLOCK_8MHz/4)
MCFG_CPU_PROGRAM_MAP(tmslo_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", itech8_state, generate_nmi)
@@ -1710,7 +1710,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( itech8_sound_ym2203 )
/* basic machine hardware */
- MCFG_CPU_ADD("soundcpu", MC6809, CLOCK_8MHz)
+ MCFG_CPU_ADD("soundcpu", M6809, CLOCK_8MHz/4)
MCFG_CPU_PROGRAM_MAP(sound2203_map)
/* sound hardware */
@@ -1730,7 +1730,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( itech8_sound_ym2608b )
/* basic machine hardware */
- MCFG_CPU_ADD("soundcpu", MC6809, CLOCK_8MHz)
+ MCFG_CPU_ADD("soundcpu", M6809, CLOCK_8MHz/4)
MCFG_CPU_PROGRAM_MAP(sound2608b_map)
/* sound hardware */
@@ -1744,7 +1744,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( itech8_sound_ym3812 )
/* basic machine hardware */
- MCFG_CPU_ADD("soundcpu", MC6809, CLOCK_8MHz)
+ MCFG_CPU_ADD("soundcpu", M6809, CLOCK_8MHz/4)
MCFG_CPU_PROGRAM_MAP(sound3812_map)
MCFG_DEVICE_ADD("pia", PIA6821, 0)
@@ -1765,7 +1765,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( itech8_sound_ym3812_external )
/* basic machine hardware */
- MCFG_CPU_ADD("soundcpu", MC6809, CLOCK_8MHz)
+ MCFG_CPU_ADD("soundcpu", M6809, CLOCK_8MHz/4)
MCFG_CPU_PROGRAM_MAP(sound3812_external_map)
/* sound hardware */
diff --git a/src/mame/drivers/jack.cpp b/src/mame/drivers/jack.cpp
index 9bcf5b51ea5..eccc17deb26 100644
--- a/src/mame/drivers/jack.cpp
+++ b/src/mame/drivers/jack.cpp
@@ -1590,16 +1590,16 @@ DRIVER_INIT_MEMBER(jack_state,striv)
if (A & 0x1000)
{
if (A & 4)
- ROM[A] = bitswap<8>(data,7,2,5,1,3,6,4,0) ^ 1;
+ ROM[A] = BITSWAP8(data,7,2,5,1,3,6,4,0) ^ 1;
else
- ROM[A] = bitswap<8>(data,0,2,5,1,3,6,4,7) ^ 0x81;
+ ROM[A] = BITSWAP8(data,0,2,5,1,3,6,4,7) ^ 0x81;
}
else
{
if (A & 4)
- ROM[A] = bitswap<8>(data,7,2,5,1,3,6,4,0) ^ 1;
+ ROM[A] = BITSWAP8(data,7,2,5,1,3,6,4,0) ^ 1;
else
- ROM[A] = bitswap<8>(data,0,2,5,1,3,6,4,7);
+ ROM[A] = BITSWAP8(data,0,2,5,1,3,6,4,7);
}
}
diff --git a/src/mame/drivers/jclub2.cpp b/src/mame/drivers/jclub2.cpp
index 096d73fbf49..7ee386c5b59 100644
--- a/src/mame/drivers/jclub2.cpp
+++ b/src/mame/drivers/jclub2.cpp
@@ -1499,7 +1499,7 @@ DRIVER_INIT_MEMBER(darkhors_state,darkhors)
std::vector<uint8_t> temp(len);
for (int i = 0; i < len; i++)
- temp[i] = eeprom[bitswap<8>(i,7,5,4,3,2,1,0,6)];
+ temp[i] = eeprom[BITSWAP8(i,7,5,4,3,2,1,0,6)];
memcpy(eeprom, &temp[0], len);
}
diff --git a/src/mame/drivers/jongkyo.cpp b/src/mame/drivers/jongkyo.cpp
index 082da98218e..6e0eb848ba5 100644
--- a/src/mame/drivers/jongkyo.cpp
+++ b/src/mame/drivers/jongkyo.cpp
@@ -564,7 +564,7 @@ DRIVER_INIT_MEMBER(jongkyo_state,jongkyo)
/* first of all, do a simple bitswap */
for (int i = 0x6000; i < 0x8c00; ++i)
{
- rom[i] = bitswap<8>(rom[i], 7,6,5,3,4,2,1,0);
+ rom[i] = BITSWAP8(rom[i], 7,6,5,3,4,2,1,0);
}
uint8_t *opcodes = auto_alloc_array(machine(), uint8_t, 0x6c00+0x400*8);
diff --git a/src/mame/drivers/jp.cpp b/src/mame/drivers/jp.cpp
index d66d3ba3477..821f220e71f 100644
--- a/src/mame/drivers/jp.cpp
+++ b/src/mame/drivers/jp.cpp
@@ -256,7 +256,7 @@ void jp_state::update_display()
if (t == 8)
{ // ball number
segment = m_disp_data >> 6;
- output().set_digit_value(94, bitswap<8>(segment, 0, 1, 2, 3, 4, 5, 6, 7) ^ 0xff);
+ output().set_digit_value(94, BITSWAP8(segment, 0, 1, 2, 3, 4, 5, 6, 7) ^ 0xff);
}
else if (t < 8)
{ // main displays
diff --git a/src/mame/drivers/jpmmps.cpp b/src/mame/drivers/jpmmps.cpp
index be18b9c96ba..1f4609a5223 100644
--- a/src/mame/drivers/jpmmps.cpp
+++ b/src/mame/drivers/jpmmps.cpp
@@ -33,7 +33,6 @@
#include "cpu/tms9900/tms9995.h"
#include "sound/sn76496.h"
-#include "machine/74259.h"
#include "machine/i8255.h"
#include "machine/tms9902.h"
#include "machine/meters.h"
@@ -186,7 +185,15 @@ static ADDRESS_MAP_START( jpmmps_io_map, AS_IO, 8, jpmmps_state )
// AM_RANGE(0x0027, 0x0027) // uart2 int
AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE("tms9902_ic10", tms9902_device, cruread, cruwrite)
- AM_RANGE(0x0060, 0x0067) AM_DEVWRITE("mainlatch", ls259_device, write_d0)
+
+// AM_RANGE(0x0060, 0x0060) // watchdog
+// AM_RANGE(0x0061, 0x0061) // ram en
+// AM_RANGE(0x0062, 0x0062) // alarm
+// AM_RANGE(0x0063, 0x0063) // nmi en
+// AM_RANGE(0x0064, 0x0064) // reel en
+// AM_RANGE(0x0065, 0x0065) // io en
+// AM_RANGE(0x0066, 0x0066) // bb
+// AM_RANGE(0x0067, 0x0067) // diagnostic led
ADDRESS_MAP_END
@@ -225,10 +232,10 @@ WRITE8_MEMBER(jpmmps_state::jpmmps_ic22_portc_w)
}
-// BCLKOUT (used by peripherals) is normally TMS9995 CLKOUT; however, MPS1 allows an external CLK DMA to be selected instead
-#define MAIN_CLOCK XTAL_6MHz
-#define SOUND_CLOCK (MAIN_CLOCK / 4)
-#define DUART_CLOCK (MAIN_CLOCK / 4)
+// these are wrong
+#define MAIN_CLOCK 2000000
+#define SOUND_CLOCK 2000000
+#define DUART_CLOCK 2000000
void jpmmps_state::machine_reset()
@@ -242,18 +249,6 @@ static MACHINE_CONFIG_START( jpmmps )
// CPU TMS9995, standard variant; no line connections
MCFG_TMS99xx_ADD("maincpu", TMS9995, MAIN_CLOCK, jpmmps_map, jpmmps_io_map)
- MCFG_DEVICE_ADD("mainlatch", LS259, 0) // IC10
- MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(NOOP) // watchdog
- MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(NOOP) // ram en
- MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(NOOP) // alarm
- MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(NOOP) // nmi en
- //MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(INPUTLINE("reelmcu", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT // reel en
- MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(NOOP) // io en
- MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(NOOP) // bb
- MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(NOOP) // diagnostic led
-
- //MCFG_CPU_ADD("reelmcu", TMS7041, XTAL_5MHz)
-
MCFG_DEVICE_ADD("ppi8255_ic26", I8255, 0)
// Port B 0 is coin lockout
MCFG_I8255_OUT_PORTC_CB(WRITE8(jpmmps_state, jpmmps_meters_w))
diff --git a/src/mame/drivers/k28.cpp b/src/mame/drivers/k28.cpp
index 965bf62f0b3..c78a73c7f81 100644
--- a/src/mame/drivers/k28.cpp
+++ b/src/mame/drivers/k28.cpp
@@ -337,7 +337,7 @@ WRITE_LINE_MEMBER(k28_state::mcu_prog_w)
// output 0-15: digit segment data
u16 seg_data = (u16)(m_vfd_shiftreg >> 19);
- seg_data = bitswap<16>(seg_data,0,1,13,9,10,12,14,8,3,4,5,2,15,11,6,7);
+ seg_data = BITSWAP16(seg_data,0,1,13,9,10,12,14,8,3,4,5,2,15,11,6,7);
// output 16-24: digit select
u16 digit_sel = (u16)(m_vfd_shiftreg >> 10) & 0x1ff;
diff --git a/src/mame/drivers/kaneko16.cpp b/src/mame/drivers/kaneko16.cpp
index 7e535c74755..a39e9728918 100644
--- a/src/mame/drivers/kaneko16.cpp
+++ b/src/mame/drivers/kaneko16.cpp
@@ -278,14 +278,14 @@ WRITE16_MEMBER(kaneko16_berlwall_state::berlwall_oki_w)
READ16_MEMBER(kaneko16_berlwall_state::berlwall_spriteram_r)
{
- offset = bitswap<16>(offset, 15, 14, 13, 12, 2, 11, 10, 9, 8, 7, 6, 5, 4, 3, 1, 0);
+ offset = BITSWAP16(offset, 15, 14, 13, 12, 2, 11, 10, 9, 8, 7, 6, 5, 4, 3, 1, 0);
offset ^= 0x800;
return m_spriteram[offset];
}
WRITE16_MEMBER(kaneko16_berlwall_state::berlwall_spriteram_w)
{
- offset = bitswap<16>(offset, 15, 14, 13, 12, 2, 11, 10, 9, 8, 7, 6, 5, 4, 3, 1, 0);
+ offset = BITSWAP16(offset, 15, 14, 13, 12, 2, 11, 10, 9, 8, 7, 6, 5, 4, 3, 1, 0);
offset ^= 0x800;
COMBINE_DATA(&m_spriteram[offset]);
}
@@ -294,7 +294,7 @@ READ16_MEMBER(kaneko16_berlwall_state::berlwall_spriteregs_r)
{
if (offset & 0x4)
return 0;
- offset = bitswap<8>(offset, 7, 6, 5, 2, 4, 3, 1, 0);
+ offset = BITSWAP8(offset, 7, 6, 5, 2, 4, 3, 1, 0);
return m_kaneko_spr->kaneko16_sprites_regs_r(space, offset, mem_mask);
}
@@ -302,7 +302,7 @@ WRITE16_MEMBER(kaneko16_berlwall_state::berlwall_spriteregs_w)
{
if (offset & 0x4)
return;
- offset = bitswap<8>(offset, 7, 6, 5, 2, 4, 3, 1, 0);
+ offset = BITSWAP8(offset, 7, 6, 5, 2, 4, 3, 1, 0);
m_kaneko_spr->kaneko16_sprites_regs_w(space, offset, data, mem_mask);
}
diff --git a/src/mame/drivers/kas89.cpp b/src/mame/drivers/kas89.cpp
index cf1bddcac47..d2a067c118f 100644
--- a/src/mame/drivers/kas89.cpp
+++ b/src/mame/drivers/kas89.cpp
@@ -841,7 +841,7 @@ DRIVER_INIT_MEMBER(kas89_state,kas89)
/* Unscrambling data lines */
for ( i = 0; i < memsize; i++ )
{
- mem[i] = bitswap<8>(mem[i], 3, 1, 0, 5, 6, 4, 7, 2);
+ mem[i] = BITSWAP8(mem[i], 3, 1, 0, 5, 6, 4, 7, 2);
}
/* Unscrambling address lines */
@@ -849,7 +849,7 @@ DRIVER_INIT_MEMBER(kas89_state,kas89)
memcpy(&buf[0], mem, memsize);
for ( i = 0; i < memsize; i++ )
{
- mem[bitswap<16>(i, 15, 14, 5, 6, 3, 0, 12, 1, 9, 13, 4, 7, 10, 8, 2, 11)] = buf[i];
+ mem[BITSWAP16(i, 15, 14, 5, 6, 3, 0, 12, 1, 9, 13, 4, 7, 10, 8, 2, 11)] = buf[i];
}
}
diff --git a/src/mame/drivers/kingdrby.cpp b/src/mame/drivers/kingdrby.cpp
index 36f94ac3055..90f87d7b628 100644
--- a/src/mame/drivers/kingdrby.cpp
+++ b/src/mame/drivers/kingdrby.cpp
@@ -904,7 +904,7 @@ PALETTE_INIT_MEMBER(kingdrby_state,kingdrbb)
for(i = 0; i < 0x200; i++)
{
/* this set has an extra address line shuffle applied on the prom */
- prom[i] = raw_prom[bitswap<16>(i, 15,14,13,12,11,10,9,8,7,6,5,0,1,2,3,4)+0x1000];
+ prom[i] = raw_prom[BITSWAP16(i, 15,14,13,12,11,10,9,8,7,6,5,0,1,2,3,4)+0x1000];
}
for(i = 0; i < 0x200; i++)
diff --git a/src/mame/drivers/konmedal.cpp b/src/mame/drivers/konmedal.cpp
index 65751aec191..a79997e6686 100644
--- a/src/mame/drivers/konmedal.cpp
+++ b/src/mame/drivers/konmedal.cpp
@@ -47,8 +47,13 @@ public:
m_oki(*this, "oki")
{ }
+ required_device<cpu_device> m_maincpu;
+ required_device<k056832_device> m_k056832;
+ required_device<palette_device> m_palette;
+ optional_device<ymz280b_device> m_ymz;
+ optional_device<okim6295_device> m_oki;
+
DECLARE_PALETTE_INIT(konmedal);
- DECLARE_MACHINE_START(shuriboy);
READ8_MEMBER(vram_r);
WRITE8_MEMBER(vram_w);
@@ -60,24 +65,16 @@ public:
return 0xff;
}
- uint32_t screen_update_konmedal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- uint32_t screen_update_shuriboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(konmedal_interrupt);
- K056832_CB_MEMBER(tile_callback);
+private:
+ u8 m_control, m_control2;
-protected:
+public:
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void video_start() override;
-
-private:
- required_device<cpu_device> m_maincpu;
- optional_device<k056832_device> m_k056832;
- required_device<palette_device> m_palette;
- optional_device<ymz280b_device> m_ymz;
- optional_device<okim6295_device> m_oki;
-
- u8 m_control, m_control2;
+ uint32_t screen_update_konmedal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ INTERRUPT_GEN_MEMBER(konmedal_interrupt);
+ K056832_CB_MEMBER(tile_callback);
};
WRITE8_MEMBER(konmedal_state::control2_w)
@@ -157,11 +154,6 @@ uint32_t konmedal_state::screen_update_konmedal(screen_device &screen, bitmap_in
return 0;
}
-uint32_t konmedal_state::screen_update_shuriboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- return 0;
-}
-
PALETTE_INIT_MEMBER(konmedal_state, konmedal)
{
int i;
@@ -231,10 +223,6 @@ static ADDRESS_MAP_START( ddboy_main, AS_PROGRAM, 8, konmedal_state )
AM_RANGE(0xe000, 0xffff) AM_READWRITE(vram_r, vram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shuriboy_main, AS_PROGRAM, 8, konmedal_state )
- AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("maincpu", 0)
-ADDRESS_MAP_END
-
static INPUT_PORTS_START( konmedal )
PORT_START("DSW1")
PORT_DIPNAME( 0x07, 0x00, "Coin Slot 1" ) PORT_DIPLOCATION("SW1:1,2,3")
@@ -318,11 +306,6 @@ void konmedal_state::machine_start()
membank("bank1")->set_entry(4);
}
-MACHINE_START_MEMBER(konmedal_state, shuriboy)
-{
-
-}
-
void konmedal_state::machine_reset()
{
}
@@ -395,48 +378,6 @@ static MACHINE_CONFIG_START( ddboy )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
MACHINE_CONFIG_END
-/*
-Shuriken Boy
-While being a Z80 medal game, it runs on fairly different hardware. It might merit a new driver when emulation will be fleshed out.
-
-PCB: Konami PWB 452039A
-Main CPU: Z80B
-OSC: 24.000 MHz
-Custom video chips: 051962 + 052109
-Sound chips: NEC UPD7759C + 051649
-Other custom chip: 051550
-Dips: 2 x 8 dips bank
-*/
-
-static MACHINE_CONFIG_START( shuriboy )
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz / 3) // divisor unknown
- MCFG_CPU_PROGRAM_MAP(shuriboy_main)
-
- /* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER) // everything not verified, just a placeholder
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(80, 400-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(konmedal_state, screen_update_shuriboy)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD("palette", 8192) // not verified
-
- // 051962 + 052109
-
- MCFG_MACHINE_START_OVERRIDE(konmedal_state, shuriboy)
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
-
- MCFG_K051649_ADD("k051649", XTAL_24MHz / 12) // divisor unknown
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
-
- // upd7759c
-MACHINE_CONFIG_END
-
ROM_START( tsukande )
ROM_REGION( 0x20000, "maincpu", 0 ) /* main program */
ROM_LOAD( "441-d02.4g", 0x000000, 0x020000, CRC(6ed17227) SHA1(4e3f5219cbf6f42c60df38a99f3009fe49f78fc1) )
@@ -478,20 +419,5 @@ ROM_START( ddboy )
ROM_LOAD( "342_a10.82s129.14g", 0x000300, 0x000100, CRC(1fa443f9) SHA1(84b0a36a4e49bf75bda1871bf52090ee5a75cd03) )
ROM_END
-ROM_START( shuriboy )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* main program */
- ROM_LOAD( "gs-341-b01.13g", 0x000000, 0x010000, CRC(3c0f36b6) SHA1(1d3838f45969228a8b2054cd5baf8892db68b644) )
-
- ROM_REGION( 0x40000, "gfx1", 0 ) /* tilemaps */
- ROM_LOAD32_BYTE( "341-A03.2H", 0x000002, 0x010000, CRC(8e9e9835) SHA1(f8dc4579f238d91c0aef59167be7e5de87dc4ba7) )
- ROM_LOAD32_BYTE( "341-A04.4H", 0x000003, 0x010000, CRC(ac82d67b) SHA1(65869adfbb67cf10c92e50239fd747fc5ad4714d) )
- ROM_LOAD32_BYTE( "341-A05.5H", 0x000000, 0x010000, CRC(31403832) SHA1(d13c54d3768a0c2d60a3751db8980199f60db243) )
- ROM_LOAD32_BYTE( "341-A06.7H", 0x000001, 0x010000, CRC(361e26eb) SHA1(7b5ad6a6067afb3350d85a3f2026e4d685429e20) )
-
- ROM_REGION( 0x200000, "upd", 0 )
- ROM_LOAD( "341-A02.13C", 0x000000, 0x020000, CRC(e1f5c8f1) SHA1(323a078720e09a7326e82cb623b6c90e2674e800) )
-ROM_END
-
-GAME( 1995, tsukande, 0, tsukande, konmedal, konmedal_state, 0, ROT0, "Konami", "Tsukande Toru Chicchi", MACHINE_NOT_WORKING)
-GAME( 1995, ddboy, 0, ddboy, konmedal, konmedal_state, 0, ROT0, "Konami", "Dam Dam Boy", MACHINE_NOT_WORKING)
-GAME( 1993, shuriboy, 0, shuriboy, konmedal, konmedal_state, 0, ROT0, "Konami", "Shuriken Boy", MACHINE_IS_SKELETON)
+GAME( 1995, tsukande, 0, tsukande, konmedal, konmedal_state, 0, ROT0, "Konami", "Tsukande Toru Chicchi", MACHINE_NOT_WORKING)
+GAME( 1995, ddboy, 0, ddboy, konmedal, konmedal_state, 0, ROT0, "Konami", "Dam Dam Boy", MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/kurukuru.cpp b/src/mame/drivers/kurukuru.cpp
index 1494be17b4c..c77f1f20b4c 100644
--- a/src/mame/drivers/kurukuru.cpp
+++ b/src/mame/drivers/kurukuru.cpp
@@ -491,10 +491,10 @@ WRITE8_MEMBER(kurukuru_state::kurukuru_out_latch_w)
07 | Not connected | unused
*/
- machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
- machine().bookkeeping().coin_counter_w(1, BIT(data, 5));
- //machine().bookkeeping().coin_lockout_global_w(BIT(data, 6));
- m_hopper->motor_w(BIT(data, 6));
+ machine().bookkeeping().coin_counter_w(0, data & 0x01); /* Coin Counter 1 */
+ machine().bookkeeping().coin_counter_w(1, data & 0x20); /* Coin Counter 2 */
+ machine().bookkeeping().coin_lockout_global_w(data & 0x40); /* Coin Lock */
+ m_hopper->write(space, 0, (data & 0x40) ? 0x80 : 0); /* Hopper Motor */
if (data & 0x9e)
logerror("kurukuru_out_latch_w %02X @ %04X\n", data, space.device().safe_pc());
@@ -604,7 +604,7 @@ WRITE8_MEMBER(kurukuru_state::kurukuru_adpcm_reset_w)
bit 2 = S2
bit 3 = S1
*/
- m_adpcm->playmode_w(bitswap<8>((data>>1), 7,6,5,4,3,0,1,2));
+ m_adpcm->playmode_w(BITSWAP8((data>>1), 7,6,5,4,3,0,1,2));
m_adpcm->reset_w(data & 1);
}
diff --git a/src/mame/drivers/lasso.cpp b/src/mame/drivers/lasso.cpp
index 2cf4d92ba2a..c391fdcc18d 100644
--- a/src/mame/drivers/lasso.cpp
+++ b/src/mame/drivers/lasso.cpp
@@ -64,7 +64,7 @@ READ8_MEMBER(lasso_state::sound_status_r)
WRITE8_MEMBER(lasso_state::sound_select_w)
{
- uint8_t to_write = bitswap<8>(*m_chip_data, 0, 1, 2, 3, 4, 5, 6, 7);
+ uint8_t to_write = BITSWAP8(*m_chip_data, 0, 1, 2, 3, 4, 5, 6, 7);
if (~data & 0x01) /* chip #0 */
m_sn_1->write(space, 0, to_write);
diff --git a/src/mame/drivers/lbeach.cpp b/src/mame/drivers/lbeach.cpp
index 2ecda224a5a..fd9e89deb9f 100644
--- a/src/mame/drivers/lbeach.cpp
+++ b/src/mame/drivers/lbeach.cpp
@@ -202,7 +202,7 @@ WRITE8_MEMBER(lbeach_state::lbeach_fg_vram_w)
READ8_MEMBER(lbeach_state::lbeach_in1_r)
{
// d6,7(steering wheel) need to be swapped
- return bitswap<8>(ioport("IN1")->read(),6,7,5,4,3,2,1,0);
+ return BITSWAP8(ioport("IN1")->read(),6,7,5,4,3,2,1,0);
}
READ8_MEMBER(lbeach_state::lbeach_in2_r)
diff --git a/src/mame/drivers/lc80.cpp b/src/mame/drivers/lc80.cpp
index 10335127097..ca64d778460 100644
--- a/src/mame/drivers/lc80.cpp
+++ b/src/mame/drivers/lc80.cpp
@@ -164,7 +164,7 @@ WRITE8_MEMBER( lc80_state::pio1_pa_w )
*/
- m_segment = bitswap<8>(~data, 4, 3, 1, 6, 7, 5, 0, 2);
+ m_segment = BITSWAP8(~data, 4, 3, 1, 6, 7, 5, 0, 2);
update_display();
}
diff --git a/src/mame/drivers/legionna.cpp b/src/mame/drivers/legionna.cpp
index e8646105192..21936a8ed6b 100644
--- a/src/mame/drivers/legionna.cpp
+++ b/src/mame/drivers/legionna.cpp
@@ -1054,7 +1054,7 @@ void legionna_state::descramble_legionnaire_gfx(uint8_t* src)
int i;
for (i = 0;i < len; i++)
{
- buffer[i] = src[bitswap<24>(i,
+ buffer[i] = src[BITSWAP24(i,
23,22,21,20,
19,18,17,16,
6,5,15,14,13,12,
diff --git a/src/mame/drivers/lemmings.cpp b/src/mame/drivers/lemmings.cpp
index 023acc82e7c..900a4649a1f 100644
--- a/src/mame/drivers/lemmings.cpp
+++ b/src/mame/drivers/lemmings.cpp
@@ -51,7 +51,7 @@ READ16_MEMBER(lemmings_state::lemmings_trackball_r)
READ16_MEMBER( lemmings_state::lem_protection_region_0_146_r )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco146->read_data( deco146_addr, mem_mask, cs );
return data;
@@ -60,7 +60,7 @@ READ16_MEMBER( lemmings_state::lem_protection_region_0_146_r )
WRITE16_MEMBER( lemmings_state::lem_protection_region_0_146_w )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco146->write_data( space, deco146_addr, data, mem_mask, cs );
}
diff --git a/src/mame/drivers/lethalj.cpp b/src/mame/drivers/lethalj.cpp
index 5d233730c9f..46d4f812ada 100644
--- a/src/mame/drivers/lethalj.cpp
+++ b/src/mame/drivers/lethalj.cpp
@@ -176,29 +176,29 @@ CUSTOM_INPUT_MEMBER(lethalj_state::cclownz_paddle)
WRITE16_MEMBER(lethalj_state::ripribit_control_w)
{
- machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
- m_ticket->motor_w(BIT(data, 1));
- output().set_lamp_value(0, BIT(data, 2));
+ machine().bookkeeping().coin_counter_w(0, data & 1);
+ m_ticket->write(space, 0, ((data >> 1) & 1) << 7);
+ output().set_lamp_value(0, (data >> 2) & 1);
}
WRITE16_MEMBER(lethalj_state::cfarm_control_w)
{
- m_ticket->motor_w(BIT(data, 0));
- output().set_lamp_value(0, BIT(data, 2));
- output().set_lamp_value(1, BIT(data, 3));
- output().set_lamp_value(2, BIT(data, 4));
- machine().bookkeeping().coin_counter_w(0, BIT(data, 7));
+ m_ticket->write(space, 0, ((data >> 0) & 1) << 7);
+ output().set_lamp_value(0, (data >> 2) & 1);
+ output().set_lamp_value(1, (data >> 3) & 1);
+ output().set_lamp_value(2, (data >> 4) & 1);
+ machine().bookkeeping().coin_counter_w(0, (data >> 7) & 1);
}
WRITE16_MEMBER(lethalj_state::cclownz_control_w)
{
- m_ticket->motor_w(BIT(data, 0));
- output().set_lamp_value(0, BIT(data, 2));
- output().set_lamp_value(1, BIT(data, 4));
- output().set_lamp_value(2, BIT(data, 5));
- machine().bookkeeping().coin_counter_w(0, BIT(data, 6));
+ m_ticket->write(space, 0, ((data >> 0) & 1) << 7);
+ output().set_lamp_value(0, (data >> 2) & 1);
+ output().set_lamp_value(1, (data >> 4) & 1);
+ output().set_lamp_value(2, (data >> 5) & 1);
+ machine().bookkeeping().coin_counter_w(0, (data >> 6) & 1);
}
diff --git a/src/mame/drivers/looping.cpp b/src/mame/drivers/looping.cpp
index 610e063c384..9f0e58c0e4a 100644
--- a/src/mame/drivers/looping.cpp
+++ b/src/mame/drivers/looping.cpp
@@ -913,7 +913,7 @@ DRIVER_INIT_MEMBER(looping_state,looping)
/* bitswap the TMS9995 ROMs */
for (i = 0; i < length; i++)
- rom[i] = bitswap<8>(rom[i], 0,1,2,3,4,5,6,7);
+ rom[i] = BITSWAP8(rom[i], 0,1,2,3,4,5,6,7);
/* install protection handlers */
m_maincpu->space(AS_PROGRAM).install_read_handler(0x7000, 0x7007, read8_delegate(FUNC(looping_state::protection_r), this));
diff --git a/src/mame/drivers/ltcasino.cpp b/src/mame/drivers/ltcasino.cpp
index 37035b365e8..05df8f26cd7 100644
--- a/src/mame/drivers/ltcasino.cpp
+++ b/src/mame/drivers/ltcasino.cpp
@@ -723,7 +723,7 @@ DRIVER_INIT_MEMBER(ltcasino_state,mv4in1)
int i;
uint8_t *rom = memregion("maincpu")->base();
for(i=0;i<0x10000;i++)
- rom[i]=bitswap<8>(rom[i],7,6,5,4,3,1,2,0);
+ rom[i]=BITSWAP8(rom[i],7,6,5,4,3,1,2,0);
}
diff --git a/src/mame/drivers/ltd.cpp b/src/mame/drivers/ltd.cpp
index f8b14c62515..83c848d8958 100644
--- a/src/mame/drivers/ltd.cpp
+++ b/src/mame/drivers/ltd.cpp
@@ -306,7 +306,7 @@ WRITE8_MEMBER( ltd_state::port1_w )
if (m_port2 & 0x10)
{
uint8_t row = m_digit & 15;
- uint8_t segment = bitswap<8>(data, 7, 0, 1, 2, 3, 4, 5, 6);
+ uint8_t segment = BITSWAP8(data, 7, 0, 1, 2, 3, 4, 5, 6);
switch (m_counter)
{
diff --git a/src/mame/drivers/lwriter.cpp b/src/mame/drivers/lwriter.cpp
index e69be51d853..93cea41ba28 100644
--- a/src/mame/drivers/lwriter.cpp
+++ b/src/mame/drivers/lwriter.cpp
@@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( lwriter )
#if TPI
MCFG_DEVICE_ADD("tpi", TPI6525, 0)
#else
- MCFG_DEVICE_ADD("via", VIA6522, CPU_CLK/10) // 68000 E clock presumed
+ MCFG_DEVICE_ADD("via", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(lwriter_state, via_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(lwriter_state, via_pb_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(lwriter_state, via_pa_w))
diff --git a/src/mame/drivers/m90.cpp b/src/mame/drivers/m90.cpp
index 2ed7cb6e896..b121752189a 100644
--- a/src/mame/drivers/m90.cpp
+++ b/src/mame/drivers/m90.cpp
@@ -1248,10 +1248,10 @@ DRIVER_INIT_MEMBER(m90_state,bomblord)
for (int i = 0; i < 0x100000 / 2; i += 4)
{
- ROM[i+0]=bitswap<16>(ROM[i+0],0xc,0x8,0xd,0xe,0xf,0xb,0xa,0x9,0x6,0x4,0x7,0x3,0x1,0x2,0x0,0x5);
- ROM[i+1]=bitswap<16>(ROM[i+1],0xc,0xb,0xd,0xa,0xe,0x9,0xf,0x8,0x0,0x6,0x1,0x5,0x3,0x4,0x2,0x7);
- ROM[i+2]=bitswap<16>(ROM[i+2],0xd,0x9,0xc,0x8,0xe,0xf,0xa,0xb,0x4,0x7,0x3,0x2,0x5,0x6,0x1,0x0);
- ROM[i+3]=bitswap<16>(ROM[i+3],0xe,0xd,0xf,0x8,0xb,0xa,0x9,0xc,0x6,0x3,0x7,0x5,0x0,0x1,0x4,0x2);
+ ROM[i+0]=BITSWAP16(ROM[i+0],0xc,0x8,0xd,0xe,0xf,0xb,0xa,0x9,0x6,0x4,0x7,0x3,0x1,0x2,0x0,0x5);
+ ROM[i+1]=BITSWAP16(ROM[i+1],0xc,0xb,0xd,0xa,0xe,0x9,0xf,0x8,0x0,0x6,0x1,0x5,0x3,0x4,0x2,0x7);
+ ROM[i+2]=BITSWAP16(ROM[i+2],0xd,0x9,0xc,0x8,0xe,0xf,0xa,0xb,0x4,0x7,0x3,0x2,0x5,0x6,0x1,0x0);
+ ROM[i+3]=BITSWAP16(ROM[i+3],0xe,0xd,0xf,0x8,0xb,0xa,0x9,0xc,0x6,0x3,0x7,0x5,0x0,0x1,0x4,0x2);
}
}
diff --git a/src/mame/drivers/madalien.cpp b/src/mame/drivers/madalien.cpp
index 497830f4e04..7ca8b8299c8 100644
--- a/src/mame/drivers/madalien.cpp
+++ b/src/mame/drivers/madalien.cpp
@@ -43,11 +43,11 @@ READ8_MEMBER(madalien_state::shift_r)
READ8_MEMBER(madalien_state::shift_rev_r)
{
uint8_t hi = *m_shift_hi ^ 0x07;
- uint8_t lo = bitswap<8>(*m_shift_lo,0,1,2,3,4,5,6,7);
+ uint8_t lo = BITSWAP8(*m_shift_lo,0,1,2,3,4,5,6,7);
uint8_t ret = shift_common(hi, lo);
- return bitswap<8>(ret,7,0,1,2,3,4,5,6) & 0x7f;
+ return BITSWAP8(ret,7,0,1,2,3,4,5,6) & 0x7f;
}
diff --git a/src/mame/drivers/mappy.cpp b/src/mame/drivers/mappy.cpp
index 733266fe340..b5935bd983b 100644
--- a/src/mame/drivers/mappy.cpp
+++ b/src/mame/drivers/mappy.cpp
@@ -195,7 +195,7 @@ PCB Number: 22109611 (22109631)
| 0773 1502 |
| PAL GR1-3.3M |
| 8148 VOL |
- | 68A09EP 8148 |
+ | 6809 8148 |
| |
| GR1-4.1K |
| --|
@@ -217,7 +217,7 @@ PCB Number: 22109611 (22109631)
| 5604 |
| GR2-1.1B |
| PAL 1603 DSWA |
- | 68A09EP |
+ | 6809 |
| 18.432MHz |
|---------------------------------|
@@ -1315,11 +1315,11 @@ void mappy_state::machine_start()
static MACHINE_CONFIG_START( superpac_common )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */
+ MCFG_CPU_ADD("maincpu", M6809, PIXEL_CLOCK/4) /* 1.536 MHz */
MCFG_CPU_PROGRAM_MAP(superpac_cpu1_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, main_vblank_irq) // also update the custom I/O chips
- MCFG_CPU_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */
+ MCFG_CPU_ADD("sub", M6809, PIXEL_CLOCK/4) /* 1.536 MHz */
MCFG_CPU_PROGRAM_MAP(superpac_cpu2_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, sub_vblank_irq)
@@ -1427,15 +1427,15 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( phozon )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, PIXEL_CLOCK/4) /* MAIN CPU */
+ MCFG_CPU_ADD("maincpu", M6809, PIXEL_CLOCK/4) /* MAIN CPU */
MCFG_CPU_PROGRAM_MAP(phozon_cpu1_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, main_vblank_irq) // also update the custom I/O chips
- MCFG_CPU_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* SOUND CPU */
+ MCFG_CPU_ADD("sub", M6809, PIXEL_CLOCK/4) /* SOUND CPU */
MCFG_CPU_PROGRAM_MAP(phozon_cpu2_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, sub_vblank_irq)
- MCFG_CPU_ADD("sub2", MC6809E, PIXEL_CLOCK/4) /* SUB CPU */
+ MCFG_CPU_ADD("sub2", M6809, PIXEL_CLOCK/4) /* SUB CPU */
MCFG_CPU_PROGRAM_MAP(phozon_cpu3_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, sub2_vblank_irq)
@@ -1495,11 +1495,11 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( mappy_common )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */
+ MCFG_CPU_ADD("maincpu", M6809, PIXEL_CLOCK/4) /* 1.536 MHz */
MCFG_CPU_PROGRAM_MAP(mappy_cpu1_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, main_vblank_irq) // also update the custom I/O chips
- MCFG_CPU_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */
+ MCFG_CPU_ADD("sub", M6809, PIXEL_CLOCK/4) /* 1.536 MHz */
MCFG_CPU_PROGRAM_MAP(mappy_cpu2_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, sub_vblank_irq)
diff --git a/src/mame/drivers/mario.cpp b/src/mame/drivers/mario.cpp
index e77418c86f4..b3dad1b78d6 100644
--- a/src/mame/drivers/mario.cpp
+++ b/src/mame/drivers/mario.cpp
@@ -216,10 +216,9 @@ static INPUT_PORTS_START( mario )
PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x0c, DEF_STR( 1C_3C ) )
PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:!5,!6")
- PORT_DIPSETTING( 0x00, "20k only" )
- PORT_DIPSETTING( 0x10, "30k only" )
- PORT_DIPSETTING( 0x20, "40k only" )
- PORT_DIPSETTING( 0x30, DEF_STR( None ) )
+ PORT_DIPSETTING( 0x00, "20k 40k 20k+" )
+ PORT_DIPSETTING( 0x10, "30k 50k 20k+" )
+ PORT_DIPSETTING( 0x20, "40k 60k 20k+" )
PORT_DIPSETTING( 0x30, DEF_STR( None ) )
PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:!7,!8")
PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
@@ -234,19 +233,20 @@ static INPUT_PORTS_START( mario )
INPUT_PORTS_END
-static INPUT_PORTS_START( mariof )
+static INPUT_PORTS_START( marioo )
PORT_INCLUDE( mario )
PORT_MODIFY( "DSW" )
PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:!5,!6")
- PORT_DIPSETTING( 0x00, "20k 40k 20k+" )
- PORT_DIPSETTING( 0x10, "30k 50k 20k+" )
- PORT_DIPSETTING( 0x20, "40k 60k 20k+" )
+ PORT_DIPSETTING( 0x00, "20k only" )
+ PORT_DIPSETTING( 0x10, "30k only" )
+ PORT_DIPSETTING( 0x20, "40k only" )
+ PORT_DIPSETTING( 0x30, DEF_STR( None ) )
INPUT_PORTS_END
static INPUT_PORTS_START( marioe )
- PORT_INCLUDE( mario )
+ PORT_INCLUDE( marioo )
PORT_MODIFY ( "IN1" )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN1 )
@@ -389,10 +389,10 @@ MACHINE_CONFIG_END
ROM_START( mario )
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "tma1-c-7f_g.7f", 0x0000, 0x2000, CRC(c0c6e014) SHA1(36a04f9ca1c2a583477cb8a6f2ef94e044e08296) ) /* Unknown revision */
- ROM_LOAD( "tma1-c-7e_g.7e", 0x2000, 0x2000, CRC(116b3856) SHA1(e372f846d0e5a2b9b47ebd0330293fcc8a12363f) )
- ROM_LOAD( "tma1-c-7d_g.7d", 0x4000, 0x2000, CRC(dcceb6c1) SHA1(b19804e69ce2c98cf276c6055c3a250316b96b45) )
- ROM_LOAD( "tma1-c-7c_g.7c", 0xf000, 0x1000, CRC(4a63d96b) SHA1(b09060b2c84ab77cc540a27b8f932cb60ec8d442) )
+ ROM_LOAD( "tma1-c-7f_f.7f", 0x0000, 0x2000, CRC(c0c6e014) SHA1(36a04f9ca1c2a583477cb8a6f2ef94e044e08296) )
+ ROM_LOAD( "tma1-c-7e_f.7e", 0x2000, 0x2000, CRC(94fb60d6) SHA1(e74d74aa27f87a164bdd453ab0076efeeb7d4ea3) )
+ ROM_LOAD( "tma1-c-7d_f.7d", 0x4000, 0x2000, CRC(dcceb6c1) SHA1(b19804e69ce2c98cf276c6055c3a250316b96b45) )
+ ROM_LOAD( "tma1-c-7c_f.7c", 0xf000, 0x1000, CRC(4a63d96b) SHA1(b09060b2c84ab77cc540a27b8f932cb60ec8d442) )
ROM_REGION( 0x1800, "audiocpu", 0 ) /* sound */
/* internal rom */
@@ -415,18 +415,18 @@ ROM_START( mario )
ROM_LOAD( "tma1-v-7u.7u", 0x5000, 0x1000, CRC(7baf5309) SHA1(d9194ff7b89a18273d37b47228fc7fb7e2a0ed1f) )
ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "tma1-c-4p.4p", 0x0000, 0x0200, CRC(afc9bd41) SHA1(90b739c4c7f24a88b6ac5ca29b06c032906a2801) )
+ ROM_LOAD( "tma1-c-4p_1.4p", 0x0000, 0x0200, CRC(8187d286) SHA1(8a6d8e622599f1aacaeb10f7b1a39a23c8a840a0) ) /* BPROM was a MB7124E read as 82S147 */
- ROM_REGION( 0x0020, "decoder_prom", 0 )
- ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, main cpu memory map decoding prom */
+ ROM_REGION( 0x0020, "unk_proms", 0 ) /* is this the color prom? */
+ ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, unknown use */
ROM_END
-ROM_START( mariof )
+ROM_START( marioe )
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "tma1-c-7f_f.7f", 0x0000, 0x2000, CRC(c0c6e014) SHA1(36a04f9ca1c2a583477cb8a6f2ef94e044e08296) )
- ROM_LOAD( "tma1-c-7e_f.7e", 0x2000, 0x2000, CRC(94fb60d6) SHA1(e74d74aa27f87a164bdd453ab0076efeeb7d4ea3) )
- ROM_LOAD( "tma1-c-7d_f.7d", 0x4000, 0x2000, CRC(dcceb6c1) SHA1(b19804e69ce2c98cf276c6055c3a250316b96b45) )
- ROM_LOAD( "tma1-c-7c_f.7c", 0xf000, 0x1000, CRC(4a63d96b) SHA1(b09060b2c84ab77cc540a27b8f932cb60ec8d442) )
+ ROM_LOAD( "tma1-c-7f_e-1.7f", 0x0000, 0x2000, CRC(c0c6e014) SHA1(36a04f9ca1c2a583477cb8a6f2ef94e044e08296) )
+ ROM_LOAD( "tma1-c-7e_e-3.7e", 0x2000, 0x2000, CRC(b09ab857) SHA1(35b91cd1c4c3dd2d543a1ea8ff7b951715727792) )
+ ROM_LOAD( "tma1-c-7d_e-1.7d", 0x4000, 0x2000, CRC(dcceb6c1) SHA1(b19804e69ce2c98cf276c6055c3a250316b96b45) )
+ ROM_LOAD( "tma1-c-7c_e-3.7c", 0xf000, 0x1000, CRC(0d31bd1c) SHA1(a2e238470ba2ea3c81225fec687f61f047c68c59) )
ROM_REGION( 0x1800, "audiocpu", 0 ) /* sound */
/* internal rom */
@@ -441,26 +441,26 @@ ROM_START( mariof )
ROM_LOAD( "tma1-v-3j.3j", 0x1000, 0x1000, CRC(0c8cc04d) SHA1(15fae47d701dc1ef15c943cee6aa991776ecffdf) )
ROM_REGION( 0x6000, "gfx2", 0 )
- ROM_LOAD( "tma1-v-7m.7m", 0x0000, 0x1000, CRC(22b7372e) SHA1(4a1c1e239cb6d483e76f50d7a3b941025963c6a3) )
- ROM_LOAD( "tma1-v-7n.7n", 0x1000, 0x1000, CRC(4f3a1f47) SHA1(0747d693b9482f6dd28b0bc484fd1d3e29d35654) )
- ROM_LOAD( "tma1-v-7p.7p", 0x2000, 0x1000, CRC(56be6ccd) SHA1(15a6e16c189d45f72761ebcbe9db5001bdecd659) )
- ROM_LOAD( "tma1-v-7s.7s", 0x3000, 0x1000, CRC(56f1d613) SHA1(9af6844dbaa3615433d0595e9e85e72493e31a54) )
- ROM_LOAD( "tma1-v-7t.7t", 0x4000, 0x1000, CRC(641f0008) SHA1(589fe108c7c11278fd897f2ded8f0498bc149cfd) )
- ROM_LOAD( "tma1-v-7u.7u", 0x5000, 0x1000, CRC(7baf5309) SHA1(d9194ff7b89a18273d37b47228fc7fb7e2a0ed1f) )
+ ROM_LOAD( "tma1-v.7m", 0x0000, 0x1000, CRC(d01c0e2c) SHA1(cd6cc9d69c36db15543601f5da2abf109cde43c9) )
+ ROM_LOAD( "tma1-v-7n.7n", 0x1000, 0x1000, CRC(4f3a1f47) SHA1(0747d693b9482f6dd28b0bc484fd1d3e29d35654) )
+ ROM_LOAD( "tma1-v-7p.7p", 0x2000, 0x1000, CRC(56be6ccd) SHA1(15a6e16c189d45f72761ebcbe9db5001bdecd659) )
+ ROM_LOAD( "tma1-v.7s", 0x3000, 0x1000, CRC(ff856e6f) SHA1(2bc9ff18bb1842e8de2bc61ac828f1b175290bed) )
+ ROM_LOAD( "tma1-v-7t.7t", 0x4000, 0x1000, CRC(641f0008) SHA1(589fe108c7c11278fd897f2ded8f0498bc149cfd) )
+ ROM_LOAD( "tma1-v.7u", 0x5000, 0x1000, CRC(d2dbeb75) SHA1(676cf3e15252cd0d9e926ca15c3aa0caa39be269) )
ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "tma1-c-4p_1.4p", 0x0000, 0x0200, CRC(8187d286) SHA1(8a6d8e622599f1aacaeb10f7b1a39a23c8a840a0) ) /* BPROM was a MB7124E read as 82S147 */
+ ROM_LOAD( "tma1-c-4p_1.4p", 0x0000, 0x0200, CRC(8187d286) SHA1(8a6d8e622599f1aacaeb10f7b1a39a23c8a840a0) ) /* BPROM was a MB7124E read as 82S147 */
- ROM_REGION( 0x0020, "decoder_prom", 0 )
- ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, main cpu memory map decoding prom */
+ ROM_REGION( 0x0020, "unk_proms", 0 ) /* is this the color prom? */
+ ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, unknown use */
ROM_END
-ROM_START( marioe )
+ROM_START( marioo )
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "tma1-c-7f_e-1.7f", 0x0000, 0x2000, CRC(c0c6e014) SHA1(36a04f9ca1c2a583477cb8a6f2ef94e044e08296) )
- ROM_LOAD( "tma1-c-7e_e-3.7e", 0x2000, 0x2000, CRC(b09ab857) SHA1(35b91cd1c4c3dd2d543a1ea8ff7b951715727792) )
- ROM_LOAD( "tma1-c-7d_e-1.7d", 0x4000, 0x2000, CRC(dcceb6c1) SHA1(b19804e69ce2c98cf276c6055c3a250316b96b45) )
- ROM_LOAD( "tma1-c-7c_e-3.7c", 0xf000, 0x1000, CRC(0d31bd1c) SHA1(a2e238470ba2ea3c81225fec687f61f047c68c59) )
+ ROM_LOAD( "tma1-c-7f_.7f", 0x0000, 0x2000, CRC(c0c6e014) SHA1(36a04f9ca1c2a583477cb8a6f2ef94e044e08296) ) /* Unknown revision */
+ ROM_LOAD( "tma1-c-7f_.7e", 0x2000, 0x2000, CRC(116b3856) SHA1(e372f846d0e5a2b9b47ebd0330293fcc8a12363f) )
+ ROM_LOAD( "tma1-c-7f_.7d", 0x4000, 0x2000, CRC(dcceb6c1) SHA1(b19804e69ce2c98cf276c6055c3a250316b96b45) )
+ ROM_LOAD( "tma1-c-7f_.7c", 0xf000, 0x1000, CRC(4a63d96b) SHA1(b09060b2c84ab77cc540a27b8f932cb60ec8d442) )
ROM_REGION( 0x1800, "audiocpu", 0 ) /* sound */
/* internal rom */
@@ -475,18 +475,18 @@ ROM_START( marioe )
ROM_LOAD( "tma1-v-3j.3j", 0x1000, 0x1000, CRC(0c8cc04d) SHA1(15fae47d701dc1ef15c943cee6aa991776ecffdf) )
ROM_REGION( 0x6000, "gfx2", 0 )
- ROM_LOAD( "tma1-v.7m", 0x0000, 0x1000, CRC(d01c0e2c) SHA1(cd6cc9d69c36db15543601f5da2abf109cde43c9) )
- ROM_LOAD( "tma1-v-7n.7n", 0x1000, 0x1000, CRC(4f3a1f47) SHA1(0747d693b9482f6dd28b0bc484fd1d3e29d35654) )
- ROM_LOAD( "tma1-v-7p.7p", 0x2000, 0x1000, CRC(56be6ccd) SHA1(15a6e16c189d45f72761ebcbe9db5001bdecd659) )
- ROM_LOAD( "tma1-v.7s", 0x3000, 0x1000, CRC(ff856e6f) SHA1(2bc9ff18bb1842e8de2bc61ac828f1b175290bed) )
- ROM_LOAD( "tma1-v-7t.7t", 0x4000, 0x1000, CRC(641f0008) SHA1(589fe108c7c11278fd897f2ded8f0498bc149cfd) )
- ROM_LOAD( "tma1-v.7u", 0x5000, 0x1000, CRC(d2dbeb75) SHA1(676cf3e15252cd0d9e926ca15c3aa0caa39be269) )
+ ROM_LOAD( "tma1-v-7m.7m", 0x0000, 0x1000, CRC(22b7372e) SHA1(4a1c1e239cb6d483e76f50d7a3b941025963c6a3) )
+ ROM_LOAD( "tma1-v-7n.7n", 0x1000, 0x1000, CRC(4f3a1f47) SHA1(0747d693b9482f6dd28b0bc484fd1d3e29d35654) )
+ ROM_LOAD( "tma1-v-7p.7p", 0x2000, 0x1000, CRC(56be6ccd) SHA1(15a6e16c189d45f72761ebcbe9db5001bdecd659) )
+ ROM_LOAD( "tma1-v-7s.7s", 0x3000, 0x1000, CRC(56f1d613) SHA1(9af6844dbaa3615433d0595e9e85e72493e31a54) )
+ ROM_LOAD( "tma1-v-7t.7t", 0x4000, 0x1000, CRC(641f0008) SHA1(589fe108c7c11278fd897f2ded8f0498bc149cfd) )
+ ROM_LOAD( "tma1-v-7u.7u", 0x5000, 0x1000, CRC(7baf5309) SHA1(d9194ff7b89a18273d37b47228fc7fb7e2a0ed1f) )
ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "tma1-c-4p_1.4p", 0x0000, 0x0200, CRC(8187d286) SHA1(8a6d8e622599f1aacaeb10f7b1a39a23c8a840a0) ) /* BPROM was a MB7124E read as 82S147 */
+ ROM_LOAD( "tma1-c-4p.4p", 0x0000, 0x0200, CRC(afc9bd41) SHA1(90b739c4c7f24a88b6ac5ca29b06c032906a2801) )
- ROM_REGION( 0x0020, "decoder_prom", 0 )
- ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, main cpu memory map decoding prom */
+ ROM_REGION( 0x0020, "unk_proms", 0 ) /* is this the color prom? */
+ ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, unknown use */
ROM_END
ROM_START( marioj )
@@ -519,8 +519,8 @@ ROM_START( marioj )
ROM_REGION( 0x0200, "proms", 0 )
ROM_LOAD( "tma1-c-4p.4p", 0x0000, 0x0200, CRC(afc9bd41) SHA1(90b739c4c7f24a88b6ac5ca29b06c032906a2801) )
- ROM_REGION( 0x0020, "decoder_prom", 0 )
- ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, main cpu memory map decoding prom */
+ ROM_REGION( 0x0020, "unk_proms", 0 ) /* is this the color prom? */
+ ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, unknown use */
ROM_END
ROM_START( masao )
@@ -556,8 +556,8 @@ ROM_END
*
*************************************/
-GAME( 1983, mario, 0, mario, mario, mario_state, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Revision G)", MACHINE_SUPPORTS_SAVE )
-GAME( 1983, mariof, mario, mario, mariof, mario_state, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Revision F)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, mario, 0, mario, mario, mario_state, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Revision F)", MACHINE_SUPPORTS_SAVE )
GAME( 1983, marioe, mario, mario, marioe, mario_state, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Revision E)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, marioo, mario, mario, marioo, mario_state, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Unknown Rev)", MACHINE_SUPPORTS_SAVE )
GAME( 1983, marioj, mario, mario, marioj, mario_state, 0, ROT0, "Nintendo", "Mario Bros. (Japan, Revision C)", MACHINE_SUPPORTS_SAVE )
GAME( 1983, masao, mario, masao, mario, mario_state, 0, ROT0, "bootleg", "Masao", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/maygay1b.cpp b/src/mame/drivers/maygay1b.cpp
index 143de6d02df..e8d95836dcf 100644
--- a/src/mame/drivers/maygay1b.cpp
+++ b/src/mame/drivers/maygay1b.cpp
@@ -769,7 +769,7 @@ ADDRESS_MAP_END
MACHINE_CONFIG_START( maygay_m1 )
- MCFG_CPU_ADD("maincpu", MC6809, M1_MASTER_CLOCK/2) // claimed to be 4 MHz
+ MCFG_CPU_ADD("maincpu", M6809, M1_MASTER_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(m1_memmap)
MCFG_CPU_ADD("mcu", I80C51, 2000000) // EP840034.A-P-80C51AVW
diff --git a/src/mame/drivers/mcr3.cpp b/src/mame/drivers/mcr3.cpp
index b1d42fcde32..f77425c9bf5 100644
--- a/src/mame/drivers/mcr3.cpp
+++ b/src/mame/drivers/mcr3.cpp
@@ -268,7 +268,7 @@ WRITE8_MEMBER(mcr3_state::maxrpm_op6_w)
/* when both the write and the enable are low, it's a write to the ADC0844 */
if (!(data & 0x40) && !(data & 0x20))
- m_maxrpm_adc->write(space, 0, bitswap<8>(m_maxrpm_adc_control, 7, 6, 5, 4, 2, 3, 1, 0));
+ m_maxrpm_adc->write(space, 0, BITSWAP8(m_maxrpm_adc_control, 7, 6, 5, 4, 2, 3, 1, 0));
/* low 5 bits control the turbo CS */
m_turbo_cheap_squeak->write(space, offset, data);
@@ -415,21 +415,25 @@ WRITE8_MEMBER(mcr3_state::spyhunt_op4_w)
/*
Lamp Driver:
- A 3-to-8 latching demuxer (MC14099) is connected to the input bits.
+ A 3-to-8 latching demuxer is connected to the input bits.
Three of the inputs (J1-11,10,12) specify which output to write
to, and the fourth input (J1-14) is the data value. A fifth input
(J1-13) controls the strobe to latch the data value for the
- demuxer. The eight outputs control 8 lamps through a pair of
- Darlington drivers (ULN2068B).
+ demuxer. The eight outputs directly control 8 lamps.
*/
/* bit 5 = STR1 (J1-13) */
if (((m_last_op4 ^ data) & 0x20) && !(data & 0x20))
{
+ static const char *const lampname[8] =
+ {
+ "lamp0", "lamp1", "lamp2", "lamp3",
+ "lamp4", "lamp5", "lamp6", "lamp7"
+ };
/* bit 3 -> J1-14 (DATA) */
/* bit 2 -> J1-11 (A2) */
/* bit 1 -> J1-10 (A1) */
/* bit 0 -> J1-12 (A0) */
- m_lamplatch->write_bit(data & 7, BIT(data, 3));
+ output().set_value(lampname[data & 7], (data >> 3) & 1);
}
m_last_op4 = data;
@@ -439,13 +443,6 @@ WRITE8_MEMBER(mcr3_state::spyhunt_op4_w)
}
-template<int n>
-WRITE_LINE_MEMBER(mcr3_state::spyhunt_lamp_w)
-{
- m_spyhunt_lamp[n] = state;
-}
-
-
/*************************************
*
@@ -1192,16 +1189,6 @@ static MACHINE_CONFIG_DERIVED( mcrsc_csd, mcrscroll )
MCFG_SOUND_ADD("csd", MIDWAY_CHEAP_SQUEAK_DELUXE, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-
- MCFG_DEVICE_ADD("lamplatch", CD4099, 0) // U1 on Lamp Driver Board
- MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(mcr3_state, spyhunt_lamp_w<0>))
- MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(mcr3_state, spyhunt_lamp_w<1>))
- MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(mcr3_state, spyhunt_lamp_w<2>))
- MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(mcr3_state, spyhunt_lamp_w<3>))
- MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE(mcr3_state, spyhunt_lamp_w<4>))
- MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(mcr3_state, spyhunt_lamp_w<5>))
- MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(WRITELINE(mcr3_state, spyhunt_lamp_w<6>))
- MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(WRITELINE(mcr3_state, spyhunt_lamp_w<7>))
MACHINE_CONFIG_END
@@ -1639,8 +1626,6 @@ DRIVER_INIT_MEMBER(mcr3_state,spyhunt)
machine().device<midway_ssio_device>("ssio")->set_custom_input(2, 0xff, read8_delegate(FUNC(mcr3_state::spyhunt_ip2_r),this));
machine().device<midway_ssio_device>("ssio")->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr3_state::spyhunt_op4_w),this));
- m_spyhunt_lamp.resolve();
-
m_spyhunt_sprite_color_mask = 0x00;
m_spyhunt_scroll_offset = 16;
}
@@ -1663,8 +1648,6 @@ DRIVER_INIT_MEMBER(mcr3_state,turbotag)
machine().device<midway_ssio_device>("ssio")->set_custom_input(2, 0xff, read8_delegate(FUNC(mcr3_state::turbotag_ip2_r),this));
machine().device<midway_ssio_device>("ssio")->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr3_state::spyhunt_op4_w),this));
- m_spyhunt_lamp.resolve();
-
m_spyhunt_sprite_color_mask = 0x00;
m_spyhunt_scroll_offset = 88;
diff --git a/src/mame/drivers/meadows.cpp b/src/mame/drivers/meadows.cpp
index 39242ae9745..5ae137b4ac0 100644
--- a/src/mame/drivers/meadows.cpp
+++ b/src/mame/drivers/meadows.cpp
@@ -141,7 +141,7 @@
READ8_MEMBER(meadows_state::hsync_chain_r)
{
uint8_t val = m_screen->hpos();
- return bitswap<8>(val,0,1,2,3,4,5,6,7);
+ return BITSWAP8(val,0,1,2,3,4,5,6,7);
}
diff --git a/src/mame/drivers/megadrvb.cpp b/src/mame/drivers/megadrvb.cpp
index d0cbc41cb92..22dfbbe709d 100644
--- a/src/mame/drivers/megadrvb.cpp
+++ b/src/mame/drivers/megadrvb.cpp
@@ -812,12 +812,12 @@ DRIVER_INIT_MEMBER(md_boot_state,mk3mdb)
if (x & 0x80000)
{
rom[x] = rom[x] ^ 0xff;
- rom[x] = bitswap<8>(rom[x], 0,3,2,5,4,6,7,1);
+ rom[x] = BITSWAP8(rom[x], 0,3,2,5,4,6,7,1);
}
else
{
rom[x] = rom[x] ^ 0xff;
- rom[x] = bitswap<8>(rom[x], 4,0,7,1,3,6,2,5);
+ rom[x] = BITSWAP8(rom[x], 4,0,7,1,3,6,2,5);
}
}
@@ -826,11 +826,11 @@ DRIVER_INIT_MEMBER(md_boot_state,mk3mdb)
if (x & 0x80000)
{
rom[x] = rom[x] ^ 0xff;
- rom[x] = bitswap<8>(rom[x], 2,7,5,4,1,0,3,6);
+ rom[x] = BITSWAP8(rom[x], 2,7,5,4,1,0,3,6);
}
else
{
- rom[x] = bitswap<8>(rom[x], 6,1,4,2,7,0,3,5);
+ rom[x] = BITSWAP8(rom[x], 6,1,4,2,7,0,3,5);
}
}
@@ -874,12 +874,12 @@ DRIVER_INIT_MEMBER(md_boot_state,srmdb)
for (int x = 0x00001; x < 0x40000; x += 2)
{
- rom[x] = bitswap<8>(rom[x] ^ 0xff, 5,1,6,2,4,3,7,0);
+ rom[x] = BITSWAP8(rom[x] ^ 0xff, 5,1,6,2,4,3,7,0);
}
for (int x = 0x40001; x < 0x80000; x += 2)
{
- rom[x] = bitswap<8>(rom[x] ^ 0x00, 2,6,1,5,0,7,3,4);
+ rom[x] = BITSWAP8(rom[x] ^ 0x00, 2,6,1,5,0,7,3,4);
}
// boot vectors don't seem to be valid, so they are patched...
diff --git a/src/mame/drivers/megasys1.cpp b/src/mame/drivers/megasys1.cpp
index 06828858c53..a86dc50fc0d 100644
--- a/src/mame/drivers/megasys1.cpp
+++ b/src/mame/drivers/megasys1.cpp
@@ -1106,49 +1106,6 @@ static INPUT_PORTS_START( kazan )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
INPUT_PORTS_END
-static INPUT_PORTS_START( inyourfa )
- PORT_INCLUDE( megasys1_generic )
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x0003, 0x0003, "Game Time" ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x0002, "00:50" )
- PORT_DIPSETTING( 0x0001, "01:00" )
- PORT_DIPSETTING( 0x0003, "01:10" )
- PORT_DIPSETTING( 0x0000, "01:20" )
- PORT_DIPUNKNOWN_DIPLOC( 0x0004, 0x0004, "SW1:3" )
- PORT_DIPUNKNOWN_DIPLOC( 0x0008, 0x0008, "SW1:4" )
- PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "SW1:5" )
- PORT_DIPUNKNOWN_DIPLOC( 0x0020, 0x0020, "SW1:6" )
- PORT_DIPUNKNOWN_DIPLOC( 0x0040, 0x0040, "SW1:7" )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3")
- PORT_DIPSETTING( 0x0400, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0500, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6")
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x1800, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x2800, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 1C_5C ) )
- PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPNAME( 0x8000, 0x8000, "Freeze Screen (Cheat)") PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
static INPUT_PORTS_START( jitsupro )
PORT_INCLUDE( hachoo )
@@ -3032,52 +2989,6 @@ ROM_START( iganinju )
ROM_LOAD( "iga.131", 0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) )
ROM_END
-ROM_START( inyourfa )
- ROM_REGION( 0x60000, "maincpu", 0 ) /* Main CPU Code */
- ROM_LOAD16_BYTE( "02.27C1001", 0x000000, 0x020000, CRC(ae77e5b7) SHA1(222e1f4c3d82cdedb88ec524ea11500145bc8c87) )
- ROM_LOAD16_BYTE( "01.27C1001", 0x000001, 0x020000, CRC(e5ea92ef) SHA1(0afcaa1451572aee7486b76c21bdd4617d2b25d2) )
- ROM_LOAD16_BYTE( "03.27C512", 0x040000, 0x010000, CRC(a1efe9be) SHA1(3f49c337f0cd8634d0049c80631e32ea887d8fef) )
- ROM_LOAD16_BYTE( "04.27C512", 0x040001, 0x010000, CRC(f786cf3e) SHA1(83de4e679e34bbd2bdad62f2c3b707cf032942b5) )
-
- ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound CPU Code */
- ROM_LOAD16_BYTE( "05.27C512", 0x000000, 0x010000, CRC(1737ed64) SHA1(20be59c43d7975fcc5048f1ee9ed5af893bdef85) )
- ROM_LOAD16_BYTE( "06.27C512", 0x000001, 0x010000, CRC(9f12bcb9) SHA1(7c5faf6a295b2124e16823f50e57b234b6127a38) )
-
- ROM_REGION( 0x1000, "mcu", 0 ) /* M50747 MCU Code */
- ROM_LOAD( "m50747", 0x0000, 0x1000, NO_DUMP )
-
- ROM_REGION( 0x080000, "scroll0", 0 ) /* Scroll 0 */
- ROM_LOAD( "11.27C1001", 0x000000, 0x020000, CRC(451a1428) SHA1(c017ef4dd3dffd26a93f5b926d80fd5e7bd7dea1) )
- ROM_LOAD( "12.27C1001", 0x020000, 0x020000, CRC(9ead7432) SHA1(0690b640ebe9d1461f44040a33236705a303dc7e) )
- ROM_LOAD( "13.27C1001", 0x040000, 0x020000, CRC(7e39842a) SHA1(00a4c86e8ef6e8e20d8f01eccd7d37f46be5f904) )
- ROM_LOAD( "14.27C1001", 0x060000, 0x020000, CRC(a91a3569) SHA1(0e530cdc0cf5ff0db589fb644c2181d35701fb2e) )
-
- ROM_REGION( 0x080000, "scroll1", 0 ) /* Scroll 1 */
- ROM_LOAD( "15.27C1001", 0x000000, 0x020000, CRC(420081b6) SHA1(02fedf7bc18a1b8f12b4e549a910801c0e315a32) )
- ROM_LOAD( "16.27C1001", 0x020000, 0x020000, CRC(87b1a582) SHA1(75a8762041cbd72fad821083ce9ea65474e4b2c8) )
- ROM_LOAD( "17.27C1001", 0x040000, 0x020000, CRC(00857146) SHA1(1a2e6ac6efbec4a825525933b92de933233ad3b2) )
- ROM_FILL ( 0x60000, 0x20000, 0xff )// 18? not populated?
-
- ROM_REGION( 0x020000, "scroll2", 0 ) /* Scroll 2 */
- ROM_LOAD( "19.27C1001", 0x000000, 0x020000, CRC(b82c94ec) SHA1(cf83355fb8941cf4332b764bb7de01d4c2aead21) )
-
- ROM_REGION( 0x080000, "sprites", 0 ) /* Sprites */
- ROM_LOAD( "20.27C1001", 0x000000, 0x020000, CRC(4a322d18) SHA1(17a514e50da13bbcbecfbe186bc99c5383eefd38) )
- ROM_LOAD( "21.27C1001", 0x020000, 0x020000, CRC(7bb4b35d) SHA1(001ef590a5245126182ab7af54bc1c56012ab218) )
- ROM_LOAD( "22.27C1001", 0x040000, 0x020000, CRC(1dc040d2) SHA1(bda3a441a20f253b67ca646d71d3703a8c59e210) )
- ROM_LOAD( "23.27C1001", 0x060000, 0x020000, CRC(50478530) SHA1(a17b8fdba4fbcbb2d0b715d5cfb2192edbf5a457) )
-
- ROM_REGION( 0x040000, "oki1", 0 ) /* Samples */
- ROM_LOAD( "09.27C1001", 0x000000, 0x020000, CRC(27f4bfb4) SHA1(36c8c8b73f26d812711403135a8210af520efb66) )
- ROM_LOAD( "10.27C1001", 0x020000, 0x020000, CRC(cf5430ff) SHA1(8d0b1ab9c25312a65fa534a758f7f3ab01b3b593) )
-
- ROM_REGION( 0x040000, "oki2", 0 ) /* Samples */
- ROM_LOAD( "07.27C1001", 0x000000, 0x020000, CRC(dc254c7c) SHA1(4daed57c5603bd021f9effb228a4d40b569f72d4) )
- ROM_LOAD( "08.27C1001", 0x020000, 0x020000, CRC(cadd4731) SHA1(1c4e7ea7064b9c6b2dfdf01fd64f37de6d50bdfa) ) // 11xxxxxxxxxxxxxxx = 0xFF
-
- ROM_REGION( 0x0200, "proms", 0 ) /* Priority PROM */
- ROM_LOAD( "kazan.14m", 0x0000, 0x0200, BAD_DUMP CRC(85b30ac4) SHA1(b03f577ceb0f26b67453ffa52ef61fea76a93184) ) // wasn't dumped, this is wrong, might need to be handcrafted
-ROM_END
/***************************************************************************
@@ -4329,7 +4240,7 @@ void megasys1_state::jitsupro_gfx_unmangle(const char *region)
/* data lines swap: 76543210 -> 43576210 */
for (i = 0;i < size;i++)
- rom[i] = bitswap<8>(rom[i],0x4,0x3,0x5,0x7,0x6,0x2,0x1,0x0);
+ rom[i] = BITSWAP8(rom[i],0x4,0x3,0x5,0x7,0x6,0x2,0x1,0x0);
std::vector<uint8_t> buffer(size);
@@ -4339,7 +4250,7 @@ void megasys1_state::jitsupro_gfx_unmangle(const char *region)
for (i = 0;i < size;i++)
{
int a = (i & ~0xffff) |
- bitswap<16>(i,0xf,0xe,0x8,0xc,0xb,0x3,0x9,0xd,0x7,0x6,0x5,0x4,0xa,0x2,0x1,0x0);
+ BITSWAP16(i,0xf,0xe,0x8,0xc,0xb,0x3,0x9,0xd,0x7,0x6,0x5,0x4,0xa,0x2,0x1,0x0);
rom[i] = buffer[a];
}
@@ -4353,7 +4264,7 @@ void megasys1_state::stdragona_gfx_unmangle(const char *region)
/* data lines swap: 76543210 -> 37564210 */
for (i = 0;i < size;i++)
- rom[i] = bitswap<8>(rom[i],3,7,5,6,4,2,1,0);
+ rom[i] = BITSWAP8(rom[i],3,7,5,6,4,2,1,0);
std::vector<uint8_t> buffer(size);
@@ -4363,7 +4274,7 @@ void megasys1_state::stdragona_gfx_unmangle(const char *region)
for (i = 0;i < size;i++)
{
int a = (i & ~0xffff) |
- bitswap<16>(i,0xf,0xe,0x3,0xc,0xb,0xd,0x9,0xa,0x7,0x6,0x5,0x4,0x8,0x2,0x1,0x0);
+ BITSWAP16(i,0xf,0xe,0x3,0xc,0xb,0xd,0x9,0xa,0x7,0x6,0x5,0x4,0x8,0x2,0x1,0x0);
rom[i] = buffer[a];
}
@@ -4823,7 +4734,6 @@ GAME( 1990, rittam, rodland, system_A, rodland, megasys1_state, rit
GAME( 1990, rodlandjb,rodland, system_A, rodland, megasys1_state, rodlandjb,ROT0, "bootleg","Rod-Land (Japan bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1990, phantasm, avspirit, system_A, phantasm, megasys1_state, phantasm, ROT0, "Jaleco", "Phantasm (Japan)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, edfp, edf, system_A, edfp, megasys1_state, edfp, ROT0, "Jaleco", "E.D.F. : Earth Defense Force (Japan, prototype)", MACHINE_SUPPORTS_SAVE )
-GAME( 1991, inyourfa, 0, system_A, inyourfa, megasys1_state, iganinju, ROT0, "Jaleco", "In Your Face (World, prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // priorities aren't correct
GAME( 1992, soldam, 0, system_A_soldam, soldam, megasys1_state, soldam, ROT0, "Jaleco", "Soldam", MACHINE_SUPPORTS_SAVE )
GAME( 1992, soldamj, soldam, system_A_soldam, soldam, megasys1_state, soldamj, ROT0, "Jaleco", "Soldam (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mephisto_montec.cpp b/src/mame/drivers/mephisto_montec.cpp
index c0db9fa5826..b01caadf534 100644
--- a/src/mame/drivers/mephisto_montec.cpp
+++ b/src/mame/drivers/mephisto_montec.cpp
@@ -162,8 +162,8 @@ WRITE8_MEMBER(mephisto_montec_state::montec_lcd_clk_w)
if (m_display.shift == 8)
{
- if (m_lcd_mux & 0x01) output().set_digit_value(0 + m_display.pos, bitswap<8>(m_display.data, 0,3,2,7,6,5,4,1));
- if (m_lcd_mux & 0x02) output().set_digit_value(4 + m_display.pos, bitswap<8>(m_display.data, 0,3,2,7,6,5,4,1));
+ if (m_lcd_mux & 0x01) output().set_digit_value(0 + m_display.pos, BITSWAP8(m_display.data, 0,3,2,7,6,5,4,1));
+ if (m_lcd_mux & 0x02) output().set_digit_value(4 + m_display.pos, BITSWAP8(m_display.data, 0,3,2,7,6,5,4,1));
m_display.shift = 0;
m_display.pos = (m_display.pos + 1) & 3;
diff --git a/src/mame/drivers/merit.cpp b/src/mame/drivers/merit.cpp
index 8195deb8cc1..e360fc2df53 100644
--- a/src/mame/drivers/merit.cpp
+++ b/src/mame/drivers/merit.cpp
@@ -204,20 +204,20 @@ READ8_MEMBER(merit_state::questions_r)
WRITE8_MEMBER(merit_state::low_offset_w)
{
offset = (offset & 0xf0) | ((offset - m_decryption_key) & 0x0f);
- offset = bitswap<8>(offset,7,6,5,4,0,1,2,3);
+ offset = BITSWAP8(offset,7,6,5,4,0,1,2,3);
m_question_address = (m_question_address & 0xffff00) | offset;
}
WRITE8_MEMBER(merit_state::med_offset_w)
{
offset = (offset & 0xf0) | ((offset - m_decryption_key) & 0x0f);
- offset = bitswap<8>(offset,7,6,5,4,0,1,2,3);
+ offset = BITSWAP8(offset,7,6,5,4,0,1,2,3);
m_question_address = (m_question_address & 0xff00ff) | (offset << 8);
}
WRITE8_MEMBER(merit_state::high_offset_w)
{
- offset = bitswap<8>(offset,7,6,5,4,0,1,2,3);
+ offset = BITSWAP8(offset,7,6,5,4,0,1,2,3);
m_question_address = (m_question_address & 0x00ffff) | (offset << 16);
}
diff --git a/src/mame/drivers/mermaid.cpp b/src/mame/drivers/mermaid.cpp
index dfc7754812d..2ab899f4d38 100644
--- a/src/mame/drivers/mermaid.cpp
+++ b/src/mame/drivers/mermaid.cpp
@@ -180,22 +180,21 @@ ADDRESS_MAP_END
WRITE_LINE_MEMBER(mermaid_state::rougien_sample_rom_lo_w)
{
m_adpcm_rom_sel = state | (m_adpcm_rom_sel & 2);
- m_adpcm_counter->set_rom_bank(m_adpcm_rom_sel);
}
WRITE_LINE_MEMBER(mermaid_state::rougien_sample_rom_hi_w)
{
m_adpcm_rom_sel = (state <<1) | (m_adpcm_rom_sel & 1);
- m_adpcm_counter->set_rom_bank(m_adpcm_rom_sel);
}
WRITE_LINE_MEMBER(mermaid_state::rougien_sample_playback_w)
{
if (state)
{
+ m_adpcm_pos = m_adpcm_rom_sel*0x1000;
+ m_adpcm_end = m_adpcm_pos+0x1000;
m_adpcm_idle = 0;
m_adpcm->reset_w(0);
- m_adpcm_counter->reset_w(0);
}
}
@@ -367,10 +366,13 @@ void mermaid_state::machine_start()
save_item(NAME(m_rougien_gfxbank2));
save_item(NAME(m_ay8910_enable));
+ save_item(NAME(m_adpcm_pos));
+ save_item(NAME(m_adpcm_end));
save_item(NAME(m_adpcm_idle));
save_item(NAME(m_adpcm_data));
save_item(NAME(m_adpcm_trigger));
save_item(NAME(m_adpcm_rom_sel));
+ save_item(NAME(m_adpcm_play_reg));
}
void mermaid_state::machine_reset()
@@ -383,37 +385,35 @@ void mermaid_state::machine_reset()
m_rougien_gfxbank1 = 0;
m_rougien_gfxbank2 = 0;
- if (m_adpcm.found())
- {
- m_adpcm_idle = 1;
- m_adpcm_rom_sel = 0;
- m_adpcm->reset_w(1);
- m_adpcm_counter->reset_w(1);
- m_adpcm_trigger = 0;
- m_adpcm_data = 0;
- }
+ m_adpcm_idle = 1;
+ m_adpcm_rom_sel = 0;
+ m_adpcm_play_reg = 0;
}
/* Similar to Jantotsu, apparently the HW has three ports that controls what kind of sample should be played. Every sample size is 0x1000. */
-WRITE8_MEMBER(mermaid_state::adpcm_data_w)
-{
- m_adpcm_data = data;
- m_adpcm->data_w(m_adpcm_trigger ? (data & 0x0f) : (data & 0xf0) >> 4);
-}
-
WRITE_LINE_MEMBER(mermaid_state::rougien_adpcm_int)
{
- if (!state)
- return;
+// popmessage("%08x",m_adpcm_pos);
- m_adpcm_trigger ^= 1;
- m_adpcm->data_w(m_adpcm_trigger ? (m_adpcm_data & 0x0f) : (m_adpcm_data & 0xf0) >> 4);
- m_adpcm_counter->clock_w(m_adpcm_trigger);
- if (m_adpcm_trigger == 0 && m_adpcm_counter->count() == 0)
+ if (m_adpcm_pos >= m_adpcm_end || m_adpcm_idle)
{
- m_adpcm_idle = 1;
+ //m_adpcm_idle = 1;
m_adpcm->reset_w(1);
- m_adpcm_counter->reset_w(1);
+ m_adpcm_trigger = 0;
+ }
+ else
+ {
+ uint8_t *ROM = memregion("adpcm")->base();
+
+ m_adpcm_data = ((m_adpcm_trigger ? (ROM[m_adpcm_pos] & 0x0f) : (ROM[m_adpcm_pos] & 0xf0) >> 4));
+ m_adpcm->data_w(m_adpcm_data & 0xf);
+ m_adpcm_trigger ^= 1;
+ if (m_adpcm_trigger == 0)
+ {
+ m_adpcm_pos++;
+ //if ((ROM[m_adpcm_pos] & 0xff) == 0x70)
+ // m_adpcm_idle = 1;
+ }
}
}
@@ -483,14 +483,9 @@ static MACHINE_CONFIG_DERIVED( rougien, mermaid )
MCFG_PALETTE_INIT_OWNER(mermaid_state,rougien)
MCFG_SOUND_ADD("adpcm", MSM5205, 384000)
- MCFG_MSM5205_VCK_CALLBACK(WRITELINE(mermaid_state, rougien_adpcm_int))
+ MCFG_MSM5205_VCLK_CB(WRITELINE(mermaid_state, rougien_adpcm_int)) /* interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
-
- MCFG_DEVICE_ADD("adpcm_counter", RIPPLE_COUNTER, 0)
- MCFG_DEVICE_ROM("adpcm")
- MCFG_RIPPLE_COUNTER_STAGES(12)
- MCFG_RIPPLE_COUNTER_ROM_OUT_CB(WRITE8(mermaid_state, adpcm_data_w))
MACHINE_CONFIG_END
/* ROMs */
diff --git a/src/mame/drivers/metlfrzr.cpp b/src/mame/drivers/metlfrzr.cpp
index f57c531e613..9a0acea3669 100644
--- a/src/mame/drivers/metlfrzr.cpp
+++ b/src/mame/drivers/metlfrzr.cpp
@@ -449,14 +449,14 @@ DRIVER_INIT_MEMBER(metlfrzr_state, metlfrzr)
m_decrypted_opcodes[A] ^= 0x02;
if (BIT(A,9) || !BIT(A,5) || BIT(A,3))
- m_decrypted_opcodes[A] = bitswap<8>(m_decrypted_opcodes[A],7,6,1,4,3,2,5,0);
+ m_decrypted_opcodes[A] = BITSWAP8(m_decrypted_opcodes[A],7,6,1,4,3,2,5,0);
/* decode the data */
if (BIT(A,5))
rom[A] ^= 0x40;
if (BIT(A,9) || !BIT(A,5))
- rom[A] = bitswap<8>(rom[A],7,6,1,4,3,2,5,0);
+ rom[A] = BITSWAP8(rom[A],7,6,1,4,3,2,5,0);
}
}
diff --git a/src/mame/drivers/metro.cpp b/src/mame/drivers/metro.cpp
index 0b1220e0ab8..87a6edb0c77 100644
--- a/src/mame/drivers/metro.cpp
+++ b/src/mame/drivers/metro.cpp
@@ -5535,7 +5535,7 @@ DRIVER_INIT_MEMBER(metro_state,balcube)
for (unsigned i = 0; i < len; i+=2)
{
- ROM[i] = bitswap<8>(ROM[i],0,1,2,3,4,5,6,7);
+ ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7);
}
metro_common();
@@ -5552,11 +5552,11 @@ DRIVER_INIT_MEMBER(metro_state,dharmak)
{
uint8_t dat;
dat = src[i + 1];
- dat = bitswap<8>(dat, 7,3,2,4, 5,6,1,0);
+ dat = BITSWAP8(dat, 7,3,2,4, 5,6,1,0);
src[i + 1] = dat;
dat = src[i + 3];
- dat = bitswap<8>(dat, 7,2,5,4, 3,6,1,0);
+ dat = BITSWAP8(dat, 7,2,5,4, 3,6,1,0);
src[i + 3] = dat;
}
diff --git a/src/mame/drivers/mgavegas.cpp b/src/mame/drivers/mgavegas.cpp
index 17025cb4b38..5f773e736b7 100644
--- a/src/mame/drivers/mgavegas.cpp
+++ b/src/mame/drivers/mgavegas.cpp
@@ -357,6 +357,7 @@ WRITE8_MEMBER(mgavegas_state::csoki_w)
WRITE8_MEMBER(mgavegas_state::cso1_w)
{
+ int hopper_data = 0x00;
if (LOG_CSO1)
logerror("write to CSO1 data = %02X\n",data);
@@ -371,7 +372,8 @@ WRITE8_MEMBER(mgavegas_state::cso1_w)
update_custom();
- m_ticket->motor_w(m_hop);
+ hopper_data=(m_hop&0x01)<<7;
+ m_ticket->write(machine().dummy_space(), 0, hopper_data);
}
WRITE8_MEMBER(mgavegas_state::cso2_w)
diff --git a/src/mame/drivers/microtan.cpp b/src/mame/drivers/microtan.cpp
index d8fcf1f9bab..6bb45857199 100644
--- a/src/mame/drivers/microtan.cpp
+++ b/src/mame/drivers/microtan.cpp
@@ -211,7 +211,7 @@ GFXDECODE_END
static MACHINE_CONFIG_START( microtan )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M6502, XTAL_6MHz / 8) // 750 kHz
+ MCFG_CPU_ADD("maincpu", M6502, 750000) // 750 kHz
MCFG_CPU_PROGRAM_MAP(microtan_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", microtan_state, microtan_interrupt)
@@ -250,7 +250,7 @@ static MACHINE_CONFIG_START( microtan )
MCFG_MOS6551_XTAL(XTAL_1_8432MHz)
/* via */
- MCFG_DEVICE_ADD("via6522_0", VIA6522, XTAL_6MHz / 8)
+ MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(microtan_state, via_0_in_a))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(microtan_state, via_0_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(microtan_state, via_0_out_b))
@@ -258,7 +258,7 @@ static MACHINE_CONFIG_START( microtan )
MCFG_VIA6522_CB2_HANDLER(WRITELINE(microtan_state, via_0_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(microtan_state, via_0_irq))
- MCFG_DEVICE_ADD("via6522_1", VIA6522, XTAL_6MHz / 8)
+ MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(microtan_state, via_1_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(microtan_state, via_1_out_b))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(microtan_state, via_1_out_ca2))
diff --git a/src/mame/drivers/midas.cpp b/src/mame/drivers/midas.cpp
index 983e233dfb2..bb4139bb056 100644
--- a/src/mame/drivers/midas.cpp
+++ b/src/mame/drivers/midas.cpp
@@ -72,8 +72,6 @@ public:
m_palette(*this, "palette"),
m_sprgen(*this, "spritegen"),
m_screen(*this, "screen"),
- m_prize(*this, "prize%u", 1),
- m_ticket(*this, "ticket"),
m_zoomram(*this, "zoomtable")
{ }
@@ -98,8 +96,6 @@ public:
required_device<palette_device> m_palette;
required_device<neosprite_midas_device> m_sprgen;
required_device<screen_device> m_screen;
- optional_device_array<ticket_dispenser_device, 2> m_prize;
- optional_device<ticket_dispenser_device> m_ticket;
required_shared_ptr<uint16_t> m_zoomram;
DECLARE_WRITE_LINE_MEMBER(screen_vblank_midas);
@@ -241,8 +237,8 @@ WRITE16_MEMBER(midas_state::hammer_coin_w)
{
if (ACCESSING_BITS_0_7)
{
- machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
- machine().bookkeeping().coin_counter_w(1, BIT(data, 1));
+ machine().bookkeeping().coin_counter_w(0, data & 0x0001);
+ machine().bookkeeping().coin_counter_w(1, data & 0x0002);
}
#ifdef MAME_DEBUG
// popmessage("coin %04X", data);
@@ -253,9 +249,9 @@ WRITE16_MEMBER(midas_state::hammer_motor_w)
{
if (ACCESSING_BITS_0_7)
{
- m_prize[0]->motor_w(BIT(data, 0));
- m_prize[1]->motor_w(BIT(data, 1));
- m_ticket->motor_w(BIT(data, 4));
+ machine().device<ticket_dispenser_device>("prize1")->write(space, 0, (data & 0x0001) << 7);
+ machine().device<ticket_dispenser_device>("prize2")->write(space, 0, (data & 0x0002) << 6);
+ machine().device<ticket_dispenser_device>("ticket")->write(space, 0, (data & 0x0010) << 3);
// data & 0x0080 ?
}
#ifdef MAME_DEBUG
diff --git a/src/mame/drivers/mikie.cpp b/src/mame/drivers/mikie.cpp
index 38118603465..d0974d3508e 100644
--- a/src/mame/drivers/mikie.cpp
+++ b/src/mame/drivers/mikie.cpp
@@ -259,7 +259,7 @@ INTERRUPT_GEN_MEMBER(mikie_state::vblank_irq)
static MACHINE_CONFIG_START( mikie )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, OSC/12) // 9A (surface scratched)
+ MCFG_CPU_ADD("maincpu", M6809, OSC/12) // 9A (surface scratched)
MCFG_CPU_PROGRAM_MAP(mikie_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", mikie_state, vblank_irq)
diff --git a/src/mame/drivers/milwaukee.cpp b/src/mame/drivers/milwaukee.cpp
index 457e500f4ce..8e29012b07f 100644
--- a/src/mame/drivers/milwaukee.cpp
+++ b/src/mame/drivers/milwaukee.cpp
@@ -7,7 +7,7 @@
Milwaukee Computer MC-1000 series (MC-1000/1100/1200/1300/1400) all the same except for disk options.
Chips: SY6502, 2x 6821, 2x MC6850P, 6852, INS8253
-Other: 2x 7-position rotary "dips" to select baud rates on each 6850 (19.2K, 9600, 4800, 2400, 1200, 600, 300).
+Other: 2x 7-position rotary "dips" to select baud rates on each 6850.
************************************************************************************************************************************/
@@ -50,21 +50,16 @@ static INPUT_PORTS_START( milwaukee )
INPUT_PORTS_END
static MACHINE_CONFIG_START( milwaukee )
- MCFG_CPU_ADD("maincpu", M6502, XTAL_16MHz / 16)
+ MCFG_CPU_ADD("maincpu", M6502, 1'000'000) // can't read crystal, but clock is correct
MCFG_CPU_PROGRAM_MAP(mem_map)
MCFG_DEVICE_ADD("pit", PIT8253, 0)
- MCFG_PIT8253_CLK0(XTAL_16MHz / 16 / 4) // 250 kHz
- MCFG_PIT8253_OUT0_HANDLER(DEVWRITELINE("pit", pit8253_device, write_gate0)) MCFG_DEVCB_INVERT
- MCFG_PIT8253_CLK1(double(XTAL_16MHz) / 2 / 13 / 2048 / 5) // 60.09 Hz?
- MCFG_PIT8253_OUT1_HANDLER(DEVWRITELINE("pit", pit8253_device, write_clk2)) MCFG_DEVCB_INVERT
-
MCFG_DEVICE_ADD("pia1", PIA6821, 0)
MCFG_DEVICE_ADD("pia2", PIA6821, 0)
MCFG_DEVICE_ADD("acia2", ACIA6850, 0)
MCFG_DEVICE_ADD("ssda", MC6852, 0)
- MCFG_DEVICE_ADD("acia_clock", CLOCK, XTAL_16MHz / 2 / 13 / 4)
+ MCFG_DEVICE_ADD("acia_clock", CLOCK, 153600)
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("acia1", acia6850_device, write_txc))
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("acia1", acia6850_device, write_rxc))
diff --git a/src/mame/drivers/minicom.cpp b/src/mame/drivers/minicom.cpp
index cdc3766b5d3..e094f8dffba 100644
--- a/src/mame/drivers/minicom.cpp
+++ b/src/mame/drivers/minicom.cpp
@@ -212,7 +212,7 @@ WRITE8_MEMBER(minicom_state::minicom_io_w)
if (BIT(changed,4) || BIT(changed,5))
{
- output().set_digit_value(m_digit_index, bitswap<16>(m_display_data, 9, 1, 3, 11, 12, 4, 2, 10, 14, 6, 7, 5, 0, 15, 13, 8) & 0x3FFF);
+ output().set_digit_value(m_digit_index, BITSWAP16(m_display_data, 9, 1, 3, 11, 12, 4, 2, 10, 14, 6, 7, 5, 0, 15, 13, 8) & 0x3FFF);
}
m_p[offset]=data;
}
diff --git a/src/mame/drivers/mirax.cpp b/src/mame/drivers/mirax.cpp
index dd359f388a5..8c110a8120b 100644
--- a/src/mame/drivers/mirax.cpp
+++ b/src/mame/drivers/mirax.cpp
@@ -583,13 +583,13 @@ DRIVER_INIT_MEMBER(mirax_state,mirax)
int i;
for(i=0x0000;i<0x4000;i++)
- ROM[bitswap<16>(i, 15,14,13,12,11,10,9, 5,7,6,8, 4,3,2,1,0)] = (bitswap<8>(DATA[i], 1, 3, 7, 0, 5, 6, 4, 2) ^ 0xff);
+ ROM[BITSWAP16(i, 15,14,13,12,11,10,9, 5,7,6,8, 4,3,2,1,0)] = (BITSWAP8(DATA[i], 1, 3, 7, 0, 5, 6, 4, 2) ^ 0xff);
for(i=0x4000;i<0x8000;i++)
- ROM[bitswap<16>(i, 15,14,13,12,11,10,9, 5,7,6,8, 4,3,2,1,0)] = (bitswap<8>(DATA[i], 2, 1, 0, 6, 7, 5, 3, 4) ^ 0xff);
+ ROM[BITSWAP16(i, 15,14,13,12,11,10,9, 5,7,6,8, 4,3,2,1,0)] = (BITSWAP8(DATA[i], 2, 1, 0, 6, 7, 5, 3, 4) ^ 0xff);
for(i=0x8000;i<0xc000;i++)
- ROM[bitswap<16>(i, 15,14,13,12,11,10,9, 5,7,6,8, 4,3,2,1,0)] = (bitswap<8>(DATA[i], 1, 3, 7, 0, 5, 6, 4, 2) ^ 0xff);
+ ROM[BITSWAP16(i, 15,14,13,12,11,10,9, 5,7,6,8, 4,3,2,1,0)] = (BITSWAP8(DATA[i], 1, 3, 7, 0, 5, 6, 4, 2) ^ 0xff);
}
GAME( 1985, mirax, 0, mirax, mirax, mirax_state, mirax, ROT90, "Current Technologies", "Mirax (set 1)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/missb2.cpp b/src/mame/drivers/missb2.cpp
index 32c7b6e5e1b..751ade7f286 100644
--- a/src/mame/drivers/missb2.cpp
+++ b/src/mame/drivers/missb2.cpp
@@ -164,12 +164,12 @@ WRITE8_MEMBER(missb2_state::missb2_bg_bank_w)
WRITE8_MEMBER(missb2_state::missb2_oki_w)
{
- m_oki->write_command(bitswap<8>(data, 7,5,6,4,3,1,2,0));
+ m_oki->write_command(BITSWAP8(data, 7,5,6,4,3,1,2,0));
}
READ8_MEMBER(missb2_state::missb2_oki_r)
{
- return bitswap<8>(m_oki->read_status(), 7,5,6,4,3,1,2,0);
+ return BITSWAP8(m_oki->read_status(), 7,5,6,4,3,1,2,0);
}
/* Memory Maps */
diff --git a/src/mame/drivers/missile.cpp b/src/mame/drivers/missile.cpp
index cf5cd3a8784..3b84b23e051 100644
--- a/src/mame/drivers/missile.cpp
+++ b/src/mame/drivers/missile.cpp
@@ -1466,8 +1466,8 @@ DRIVER_INIT_MEMBER(missile_state,missilem)
// decrypt rom and put in maincpu region (result looks correct, but is untested)
for (int i = 0; i < 0x10000; i++)
{
- int a = bitswap<16>(i, 15,2,3,0,8,9,7,5,1,4,6,14,13,12,10,11);
- int d = bitswap<8>(src[a], 3,2,4,5,6,1,7,0);
+ int a = BITSWAP16(i, 15,2,3,0,8,9,7,5,1,4,6,14,13,12,10,11);
+ int d = BITSWAP8(src[a], 3,2,4,5,6,1,7,0);
a = i;
a ^= (~a >> 1 & 0x400);
diff --git a/src/mame/drivers/mjsenpu.cpp b/src/mame/drivers/mjsenpu.cpp
index c8bd3515590..3e423d318cf 100644
--- a/src/mame/drivers/mjsenpu.cpp
+++ b/src/mame/drivers/mjsenpu.cpp
@@ -158,7 +158,7 @@ WRITE8_MEMBER(mjsenpu_state::control_w)
// bits 0x08 is used in the alt payout / hopper mode (see dipswitches)
// 0x04 seem to be hopper/ticket related? different ones get used depending on the dips
- m_hopper->motor_w(data & 0x04);
+ m_hopper->write(space, 0, data & 0x04);
// bit 0x02 could be coin counter?
machine().bookkeeping().coin_counter_w(0, data & 0x02 );
diff --git a/src/mame/drivers/mk1.cpp b/src/mame/drivers/mk1.cpp
index ccad87ff1c0..d2e41371c6f 100644
--- a/src/mame/drivers/mk1.cpp
+++ b/src/mame/drivers/mk1.cpp
@@ -99,10 +99,10 @@ WRITE8_MEMBER( mk1_state::mk1_f8_w )
/* 0 is high and allows also input */
m_f8[offset] = data;
- if ( ! ( m_f8[1] & 1 ) ) m_led[0] = bitswap<8>( m_f8[0],2,1,3,4,5,6,7,0 );
- if ( ! ( m_f8[1] & 2 ) ) m_led[1] = bitswap<8>( m_f8[0],2,1,3,4,5,6,7,0 );
- if ( ! ( m_f8[1] & 4 ) ) m_led[2] = bitswap<8>( m_f8[0],2,1,3,4,5,6,7,0 );
- if ( ! ( m_f8[1] & 8 ) ) m_led[3] = bitswap<8>( m_f8[0],2,1,3,4,5,6,7,0 );
+ if ( ! ( m_f8[1] & 1 ) ) m_led[0] = BITSWAP8( m_f8[0],2,1,3,4,5,6,7,0 );
+ if ( ! ( m_f8[1] & 2 ) ) m_led[1] = BITSWAP8( m_f8[0],2,1,3,4,5,6,7,0 );
+ if ( ! ( m_f8[1] & 4 ) ) m_led[2] = BITSWAP8( m_f8[0],2,1,3,4,5,6,7,0 );
+ if ( ! ( m_f8[1] & 8 ) ) m_led[3] = BITSWAP8( m_f8[0],2,1,3,4,5,6,7,0 );
}
static ADDRESS_MAP_START( mk1_mem, AS_PROGRAM, 8, mk1_state )
diff --git a/src/mame/drivers/mkit09.cpp b/src/mame/drivers/mkit09.cpp
index 949553467dc..b38fe364f34 100644
--- a/src/mame/drivers/mkit09.cpp
+++ b/src/mame/drivers/mkit09.cpp
@@ -173,7 +173,7 @@ WRITE8_MEMBER( mkit09_state::pa_w )
data ^= 0xff;
if (m_keydata > 3)
{
- output().set_digit_value(m_keydata, bitswap<8>(data, 7, 0, 5, 6, 4, 2, 1, 3));
+ output().set_digit_value(m_keydata, BITSWAP8(data, 7, 0, 5, 6, 4, 2, 1, 3));
m_keydata = 0;
}
@@ -191,7 +191,7 @@ WRITE8_MEMBER( mkit09_state::pb_w )
static MACHINE_CONFIG_START( mkit09 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_4MHz)
+ MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz)
MCFG_CPU_PROGRAM_MAP(mkit09_mem)
MCFG_CPU_IO_MAP(mkit09_io)
@@ -217,7 +217,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( mkit09a )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_4MHz)
+ MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz)
MCFG_CPU_PROGRAM_MAP(mkit09a_mem)
MCFG_CPU_IO_MAP(mkit09_io)
diff --git a/src/mame/drivers/model3.cpp b/src/mame/drivers/model3.cpp
index c361fd6ede7..a8ab703beb1 100644
--- a/src/mame/drivers/model3.cpp
+++ b/src/mame/drivers/model3.cpp
@@ -6428,7 +6428,7 @@ GAME( 1997, vs215, vs2, model3_15, model3, model3_state, vs215, ROT0
GAME( 1997, vs215o, vs2, model3_15, model3, model3_state, vs215, ROT0, "Sega", "Virtua Striker 2 (Step 1.5, older)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1997, lemans24, 0, model3_15, scud, model3_state, lemans24, ROT0, "Sega", "Le Mans 24 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1998, vs29815, vs298, model3_15, model3, model3_state, vs29815, ROT0, "Sega", "Virtua Striker 2 '98 (Step 1.5)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, vs29915, vs2v991, model3_15, model3, model3_state, vs215, ROT0, "Sega", "Virtua Striker 2 '99 (Step 1.5)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, vs29915, vs2v991, model3_15, model3, model3_state, vs215, ROT0, "Sega", "Virtua Striker 2 '99 (Step 1.5)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* Model 3 Step 2.0 */
GAME( 1997, vs2, 0, model3_20, model3, model3_state, vs2, ROT0, "Sega", "Virtua Striker 2 (Step 2.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
@@ -6444,10 +6444,10 @@ GAME( 1998, von2a, von2, model3_20_5881, von2, model3_state, von2,
GAME( 1998, von254g, von2, model3_20_5881, von2, model3_state, von2, ROT0, "Sega", "Virtual On 2: Oratorio Tangram (ver 5.4g)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1998, fvipers2, 0, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Fighting Vipers 2 (Japan, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1998, vs298, 0, model3_20_5881, model3, model3_state, vs298, ROT0, "Sega", "Virtua Striker 2 '98 (Step 2.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, vs2v991, 0, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99.1 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, vs299b, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, vs299a, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99 (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, vs299, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, vs2v991, 0, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99.1 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, vs299b, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, vs299a, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99 (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, vs299, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* Model 3 Step 2.1 */
GAME( 1998, daytona2, 0, model3_21_5881, daytona2, model3_state, daytona2, ROT0, "Sega", "Daytona USA 2 (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/monzagp.cpp b/src/mame/drivers/monzagp.cpp
index 2418948ce26..f3ad86581e9 100644
--- a/src/mame/drivers/monzagp.cpp
+++ b/src/mame/drivers/monzagp.cpp
@@ -235,7 +235,7 @@ uint32_t monzagp_state::screen_update_monzagp(screen_device &screen, bitmap_ind1
bitmap.pix16(y, x) = color;
// collisions
- uint8_t coll_prom_addr = bitswap<8>(tile_idx, 7, 6, 5, 4, 2, 0, 1, 3);
+ uint8_t coll_prom_addr = BITSWAP8(tile_idx, 7, 6, 5, 4, 2, 0, 1, 3);
uint8_t collisions = collisions_prom[((mycar && othercars) ? 0 : 0x80) | (inv ? 0x40 : 0) | (coll_prom_addr << 2) | (mycar ? 0 : 0x02) | (tile_color & 0x01)];
m_collisions_ff |= ((m_collisions_clk ^ collisions) & collisions);
m_collisions_clk = collisions;
@@ -299,7 +299,7 @@ READ8_MEMBER(monzagp_state::port_r)
}
if (!(m_p1 & 0x40)) // digits
{
- data = m_score_ram[bitswap<8>(offset, 3,2,1,0,7,6,5,4)];
+ data = m_score_ram[BITSWAP8(offset, 3,2,1,0,7,6,5,4)];
//printf("ext 6 r P1:%02x P2:%02x %02x\n", m_p1, m_p2, offset);
}
if (!(m_p1 & 0x80))
@@ -350,7 +350,7 @@ WRITE8_MEMBER(monzagp_state::port_w)
if (!(m_p1 & 0x40)) // digits
{
//printf("ext 6 w P1:%02x P2:%02x, %02x = %02x\n", m_p1, m_p2, offset, data);
- offs_t ram_offset = bitswap<8>(offset, 3,2,1,0,7,6,5,4);
+ offs_t ram_offset = BITSWAP8(offset, 3,2,1,0,7,6,5,4);
m_score_ram[ram_offset] = data & 0x0f;
if ((ram_offset & 0x07) == 0)
diff --git a/src/mame/drivers/mpf1.cpp b/src/mame/drivers/mpf1.cpp
index ca03e5a893c..44a610eeb74 100644
--- a/src/mame/drivers/mpf1.cpp
+++ b/src/mame/drivers/mpf1.cpp
@@ -276,7 +276,7 @@ READ8_MEMBER( mpf1_state::ppi_pa_r )
WRITE8_MEMBER( mpf1_state::ppi_pb_w )
{
/* swap bits around for the mame 7-segment emulation */
- uint8_t led_data = bitswap<8>(data, 6, 1, 2, 0, 7, 5, 4, 3);
+ uint8_t led_data = BITSWAP8(data, 6, 1, 2, 0, 7, 5, 4, 3);
/* timer to update segments */
m_led_refresh_timer->adjust(attotime::from_usec(70), led_data);
diff --git a/src/mame/drivers/mpu12wbk.cpp b/src/mame/drivers/mpu12wbk.cpp
index 21ebe65a1ca..1addccedda6 100644
--- a/src/mame/drivers/mpu12wbk.cpp
+++ b/src/mame/drivers/mpu12wbk.cpp
@@ -486,7 +486,7 @@ GFXDECODE_END
static MACHINE_CONFIG_START( mpu12wbk )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, MASTER_CLOCK)
+ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/2) /* guess */
MCFG_CPU_PROGRAM_MAP(mpu12wbk_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", mpu12wbk_state, nmi_line_pulse)
diff --git a/src/mame/drivers/multfish.cpp b/src/mame/drivers/multfish.cpp
index 2d17657197d..a19bcf08ce0 100644
--- a/src/mame/drivers/multfish.cpp
+++ b/src/mame/drivers/multfish.cpp
@@ -275,12 +275,12 @@ WRITE8_MEMBER(igrosoft_gamble_state::igrosoft_gamble_vid_w)
case 1:
coldat ^= m_xor_palette;
coldat ^= ((coldat&0x2) >>1) | ((coldat&0x80) >>3) ;
- coldat = bitswap<16>(coldat,10,15,5,13,8,12,11,2,0,4,7,14,9,3,1,6);
+ coldat = BITSWAP16(coldat,10,15,5,13,8,12,11,2,0,4,7,14,9,3,1,6);
break;
case 2:
coldat ^= m_xor_palette;
coldat ^= ((coldat&0x0001) <<1) ^ ((coldat&0x0010) <<1) ^ ((coldat&0x0010) <<2) ^ ((coldat&0x0020) <<1) ^ ((coldat&0x0080) >>1);
- coldat = bitswap<16>(coldat,4,10,13,14,8,11,15,12,2,6,5,0,7,3,1,9);
+ coldat = BITSWAP16(coldat,4,10,13,14,8,11,15,12,2,6,5,0,7,3,1,9);
break;
case 3:
// WRONG
@@ -463,7 +463,7 @@ A12 <-> A13
for (j = 0; j < (igrosoft_gamble_ROM_SIZE/0x40); j++)
{
- jscr = bitswap<16>(j,15,14,13,4,3,2,0,1,6,7,5,12,11,10,8,9);
+ jscr = BITSWAP16(j,15,14,13,4,3,2,0,1,6,7,5,12,11,10,8,9);
memcpy(&temprom[j*0x40],&igrosoft_gamble_gfx[romoffset+(jscr*0x40)],0x40);
}
@@ -477,7 +477,7 @@ static inline void rom_decodel(uint8_t *romptr, uint8_t *tmprom, uint8_t xor_dat
for (i = 0; i < igrosoft_gamble_ROM_SIZE; i++)
{
- jscr = bitswap<24>(i,23,22,21,20,19,17,14,18,16,15,12,13,11,9,6,10,8,7,4,5,3,2,1,0) ^ xor_add ^ 8;
+ jscr = BITSWAP24(i,23,22,21,20,19,17,14,18,16,15,12,13,11,9,6,10,8,7,4,5,3,2,1,0) ^ xor_add ^ 8;
tmprom[i] = romptr[jscr] ^ xor_data;
}
memcpy(romptr,tmprom,igrosoft_gamble_ROM_SIZE);
@@ -488,7 +488,7 @@ static inline void rom_decodeh(uint8_t *romptr, uint8_t *tmprom, uint8_t xor_dat
for (i = 0; i < igrosoft_gamble_ROM_SIZE; i++)
{
- jscr = bitswap<24>(i,23,22,21,20,19,17,14,18,16,15,12,13,11,9,6,10,8,7,4,5,2,3,1,0) ^ xor_add;
+ jscr = BITSWAP24(i,23,22,21,20,19,17,14,18,16,15,12,13,11,9,6,10,8,7,4,5,2,3,1,0) ^ xor_add;
tmprom[i] = romptr[jscr] ^ xor_data;
}
memcpy(romptr,tmprom,igrosoft_gamble_ROM_SIZE);
@@ -516,7 +516,7 @@ static inline void roment_decodel(uint8_t *romptr, uint8_t *tmprom, uint8_t xor_
for (i = 0; i < igrosoft_gamble_ROM_SIZE; i++)
{
- jscr = bitswap<24>(i,23,22,21,20,19,16,18,17,14,15,12,13,11,8,10,9,6,7,4,5,3,2,1,0) ^ xor_add ^ 8;
+ jscr = BITSWAP24(i,23,22,21,20,19,16,18,17,14,15,12,13,11,8,10,9,6,7,4,5,3,2,1,0) ^ xor_add ^ 8;
tmprom[i] = romptr[jscr] ^ xor_data;
}
memcpy(romptr,tmprom,igrosoft_gamble_ROM_SIZE);
@@ -527,7 +527,7 @@ static inline void roment_decodeh(uint8_t *romptr, uint8_t *tmprom, uint8_t xor_
for (i = 0; i < igrosoft_gamble_ROM_SIZE; i++)
{
- jscr = bitswap<24>(i,23,22,21,20,19,16,18,17,14,15,12,13,11,8,10,9,6,7,4,5,2,3,1,0) ^ xor_add;
+ jscr = BITSWAP24(i,23,22,21,20,19,16,18,17,14,15,12,13,11,8,10,9,6,7,4,5,2,3,1,0) ^ xor_add;
tmprom[i] = romptr[jscr] ^ xor_data;
}
memcpy(romptr,tmprom,igrosoft_gamble_ROM_SIZE);
diff --git a/src/mame/drivers/multi16.cpp b/src/mame/drivers/multi16.cpp
index 5fddd89b9a0..0e90f79d5da 100644
--- a/src/mame/drivers/multi16.cpp
+++ b/src/mame/drivers/multi16.cpp
@@ -76,7 +76,7 @@ uint32_t multi16_state::screen_update_multi16(screen_device &screen, bitmap_ind1
{
for(xi=0;xi<16;xi++)
{
- int dot = (bitswap<16>(m_p_vram[count],7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8) >> (15-xi)) & 0x1;
+ int dot = (BITSWAP16(m_p_vram[count],7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8) >> (15-xi)) & 0x1;
if(screen.visible_area().contains(x*16+xi, y))
bitmap.pix16(y, x*16+xi) = m_palette->pen(dot);
diff --git a/src/mame/drivers/multigam.cpp b/src/mame/drivers/multigam.cpp
index 34a36ab29f5..b157777e246 100644
--- a/src/mame/drivers/multigam.cpp
+++ b/src/mame/drivers/multigam.cpp
@@ -1433,7 +1433,7 @@ DRIVER_INIT_MEMBER(multigam_state,multigmt)
memcpy(&buf[0], rom, size);
for (i = 0; i < size; i++)
{
- addr = bitswap<24>(i,23,22,21,20,19,18,17,16,15,14,13,8,11,12,10,9,7,6,5,4,3,2,1,0);
+ addr = BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,8,11,12,10,9,7,6,5,4,3,2,1,0);
rom[i] = buf[addr];
}
@@ -1442,7 +1442,7 @@ DRIVER_INIT_MEMBER(multigam_state,multigmt)
memcpy(&buf[0], rom, size);
for (i = 0; i < size; i++)
{
- addr = bitswap<24>(i,23,22,21,20,19,18,17,16,15,14,13,8,11,12,10,9,7,6,5,4,3,2,1,0);
+ addr = BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,8,11,12,10,9,7,6,5,4,3,2,1,0);
rom[i] = buf[addr];
}
rom = memregion("gfx1")->base();
@@ -1450,8 +1450,8 @@ DRIVER_INIT_MEMBER(multigam_state,multigmt)
memcpy(&buf[0], rom, size);
for (i = 0; i < size; i++)
{
- addr = bitswap<24>(i,23,22,21,20,19,18,17,15,16,11,10,12,13,14,8,9,1,3,5,7,6,4,2,0);
- rom[i] = bitswap<8>(buf[addr], 4, 7, 3, 2, 5, 1, 6, 0);
+ addr = BITSWAP24(i,23,22,21,20,19,18,17,15,16,11,10,12,13,14,8,9,1,3,5,7,6,4,2,0);
+ rom[i] = BITSWAP8(buf[addr], 4, 7, 3, 2, 5, 1, 6, 0);
}
multigam_switch_prg_rom(space, 0x0, 0x01);
diff --git a/src/mame/drivers/murogmbl.cpp b/src/mame/drivers/murogmbl.cpp
index 6b5fd170e6a..931edbc6ae7 100644
--- a/src/mame/drivers/murogmbl.cpp
+++ b/src/mame/drivers/murogmbl.cpp
@@ -1,7 +1,6 @@
// license:BSD-3-Clause
// copyright-holders:Roberto Zandona'
-/* Unknown - Poker (morugem bootleg)
- Unknown - Slot
+/* Unknown - Poker (morugem
driver by Roberto Zandona'
thanks to Angelo Salese for some precious advice
@@ -66,27 +65,6 @@ public:
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
-class slotunbl_state : public driver_device
-{
-public:
- slotunbl_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette"),
- m_video(*this, "video") { }
-
- required_device<cpu_device> m_maincpu;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
-
- required_shared_ptr<uint8_t> m_video;
-
- virtual void video_start() override;
- DECLARE_PALETTE_INIT(slotunbl);
-
- uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-};
PALETTE_INIT_MEMBER(murogmbl_state, murogmbl)
{
@@ -114,32 +92,6 @@ PALETTE_INIT_MEMBER(murogmbl_state, murogmbl)
}
}
-PALETTE_INIT_MEMBER(slotunbl_state, slotunbl)
-{
- const uint8_t *color_prom = memregion("proms")->base();
- int bit0, bit1, bit2 , r, g, b;
- int i;
-
- for (i = 0; i < 0x20; ++i)
- {
- bit0 = (color_prom[0] >> 0) & 0x01;
- bit1 = (color_prom[0] >> 1) & 0x01;
- bit2 = (color_prom[0] >> 2) & 0x01;
- r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- bit0 = (color_prom[0] >> 3) & 0x01;
- bit1 = (color_prom[0] >> 4) & 0x01;
- bit2 = (color_prom[0] >> 5) & 0x01;
- g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- bit0 = 0;
- bit1 = (color_prom[0] >> 6) & 0x01;
- bit2 = (color_prom[0] >> 7) & 0x01;
- b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- palette.set_pen_color(i, rgb_t(r, g, b));
- color_prom++;
- }
-}
-
static ADDRESS_MAP_START( murogmbl_map, AS_PROGRAM, 8, murogmbl_state )
AM_RANGE(0x0000, 0x1fFf) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
@@ -152,26 +104,10 @@ static ADDRESS_MAP_START( murogmbl_map, AS_PROGRAM, 8, murogmbl_state )
AM_RANGE(0x7800, 0x7800) AM_READNOP AM_DEVWRITE("dac", dac_byte_interface, write) /* read is always discarded */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slotunbl_map, AS_PROGRAM, 8, slotunbl_state )
- AM_RANGE(0x0000, 0x1fFf) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_RAM
- AM_RANGE(0x4800, 0x4fff) AM_RAM
- AM_RANGE(0x5000, 0x53ff) AM_RAM AM_SHARE("video")
-// AM_RANGE(0x5400, 0x5fff) AM_RAM
- AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0")
- AM_RANGE(0x6800, 0x6800) AM_READ_PORT("DSW")
- AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN1")
- AM_RANGE(0x7800, 0x7800) AM_READNOP AM_DEVWRITE("dac", dac_byte_interface, write) /* read is always discarded */
-ADDRESS_MAP_END
-
void murogmbl_state::video_start()
{
}
-void slotunbl_state::video_start()
-{
-}
-
uint32_t murogmbl_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
gfx_element *gfx = m_gfxdecode->gfx(0);
@@ -192,26 +128,6 @@ uint32_t murogmbl_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
return 0;
}
-uint32_t slotunbl_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- gfx_element *gfx = m_gfxdecode->gfx(0);
- int count = 0;
-
- int y, x;
-
- for (y = 0; y < 32; y++)
- {
- for (x = 0; x < 32; x++)
- {
- int tile = m_video[count];
- gfx->opaque(bitmap,cliprect, tile, 0, 0, 0, x * 8, y * 8);
-
- count++;
- }
- }
- return 0;
-}
-
static INPUT_PORTS_START( murogmbl )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POKER_CANCEL ) PORT_NAME("Clear")
@@ -260,54 +176,6 @@ static INPUT_PORTS_START( murogmbl )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
-static INPUT_PORTS_START( slotunbl )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POKER_CANCEL ) PORT_NAME("Clear")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_GAMBLE_BET ) PORT_NAME("Replay")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_GAMBLE_DEAL )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_POKER_HOLD5 )
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Coin clear") PORT_CODE(KEYCODE_S)
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_NAME("Coin 1")
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_NAME("Coin 2")
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POKER_HOLD1 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_POKER_HOLD2 )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_POKER_HOLD3 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_POKER_HOLD4 )
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Coin_B ) )
- PORT_DIPSETTING( 0x08, "10 credits" )
- PORT_DIPSETTING( 0x00, "5 credits" )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
static const gfx_layout layout8x8x2 =
{
8,8,
@@ -325,10 +193,6 @@ static GFXDECODE_START( murogmbl )
GFXDECODE_ENTRY( "gfx1", 0, layout8x8x2, 0x0, 1 )
GFXDECODE_END
-static GFXDECODE_START( slotunbl )
- GFXDECODE_ENTRY( "gfx1", 0, layout8x8x2, 0x0, 1 )
-GFXDECODE_END
-
static MACHINE_CONFIG_START( murogmbl )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, 1000000) /* Z80? */
@@ -355,32 +219,8 @@ static MACHINE_CONFIG_START( murogmbl )
MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_START( slotunbl )
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", Z80, 1000000) /* Z80? */
- MCFG_CPU_PROGRAM_MAP(slotunbl_map)
-
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", slotunbl)
- /* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(slotunbl_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD("palette", 0x100)
- MCFG_PALETTE_INIT_OWNER(slotunbl_state, slotunbl)
-
- MCFG_SPEAKER_STANDARD_MONO("speaker")
- MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
-MACHINE_CONFIG_END
-
ROM_START(murogmbl)
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("2532.5e", 0x0000, 0x1000, CRC(093d4560) SHA1(d5401b5f7a2ebe5099fefc5b09f8710886e243b2) )
@@ -394,19 +234,4 @@ ROM_START(murogmbl)
ROM_LOAD( "74s288.a8", 0x0000, 0x0020, CRC(fc35201c) SHA1(4549e228c48992e0d10957f029b89a547392e72b) )
ROM_END
-ROM_START(slotunbl)
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("2532.e7", 0x0000, 0x1000, CRC(031929a7) SHA1(a140e1450b6196bbe9f130e7f3b7cfe2f876b86d) )
- ROM_LOAD("2532.e7", 0x1000, 0x1000, CRC(031929a7) SHA1(a140e1450b6196bbe9f130e7f3b7cfe2f876b86d) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD("2516.d3", 0x0000, 0x0800, CRC(708764d8) SHA1(f914ae3318558c2530f007a427ec98a529984bb4) )
- ROM_LOAD("2516.d4", 0x0800, 0x0800, CRC(2cffb600) SHA1(d7c8ea6395e9cba43b9fe0cb9ddf45b96c442544) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "74s288.a8", 0x0000, 0x0020, NO_DUMP )
-ROM_END
-
GAME( 1982, murogmbl, murogem, murogmbl, murogmbl, murogmbl_state, 0, ROT0, "bootleg?", "Muroge Monaco (bootleg?)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-
-GAME( 1982, slotunbl, 0, slotunbl, slotunbl, slotunbl_state, 0, ROT0, "bootleg?", "Slot (unknown bootleg?)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mustache.cpp b/src/mame/drivers/mustache.cpp
index 6caa21a1f7a..5e99fdc8072 100644
--- a/src/mame/drivers/mustache.cpp
+++ b/src/mame/drivers/mustache.cpp
@@ -280,10 +280,10 @@ DRIVER_INIT_MEMBER(mustache_state,mustache)
{
uint16_t w;
- buf[i] = bitswap<8>(gfx1[i], 0,5,2,6,4,1,7,3);
+ buf[i] = BITSWAP8(gfx1[i], 0,5,2,6,4,1,7,3);
w = (gfx1[i+G1] << 8) | gfx1[i+G1*2];
- w = bitswap<16>(w, 14,1,13,5,9,2,10,6, 3,8,4,15,0,11,12,7);
+ w = BITSWAP16(w, 14,1,13,5,9,2,10,6, 3,8,4,15,0,11,12,7);
buf[i+G1] = w >> 8;
buf[i+G1*2] = w & 0xff;
@@ -291,7 +291,7 @@ DRIVER_INIT_MEMBER(mustache_state,mustache)
/* BG address lines */
for (i = 0; i < 3*G1; i++)
- gfx1[i] = buf[bitswap<16>(i,15,14,13,2,1,0,12,11,10,9,8,7,6,5,4,3)];
+ gfx1[i] = buf[BITSWAP16(i,15,14,13,2,1,0,12,11,10,9,8,7,6,5,4,3)];
/* SPR data lines */
for (i=0;i<G2; i++)
@@ -299,7 +299,7 @@ DRIVER_INIT_MEMBER(mustache_state,mustache)
uint16_t w;
w = (gfx2[i] << 8) | gfx2[i+G2];
- w = bitswap<16>(w, 5,7,11,4,15,10,3,14, 9,2,13,8,1,12,0,6 );
+ w = BITSWAP16(w, 5,7,11,4,15,10,3,14, 9,2,13,8,1,12,0,6 );
buf[i] = w >> 8;
buf[i+G2] = w & 0xff;
@@ -307,7 +307,7 @@ DRIVER_INIT_MEMBER(mustache_state,mustache)
/* SPR address lines */
for (i = 0; i < 2*G2; i++)
- gfx2[i] = buf[bitswap<24>(i,23,22,21,20,19,18,17,16,15,12,11,10,9,8,7,6,5,4,13,14,3,2,1,0)];
+ gfx2[i] = buf[BITSWAP24(i,23,22,21,20,19,18,17,16,15,12,11,10,9,8,7,6,5,4,13,14,3,2,1,0)];
}
diff --git a/src/mame/drivers/mw8080bw.cpp b/src/mame/drivers/mw8080bw.cpp
index 75d8c8cf7b6..d39836e29ad 100644
--- a/src/mame/drivers/mw8080bw.cpp
+++ b/src/mame/drivers/mw8080bw.cpp
@@ -179,7 +179,7 @@ READ8_MEMBER(mw8080bw_state::mw8080bw_shift_result_rev_r)
{
uint8_t ret = m_mb14241->shift_result_r(space, 0);
- return bitswap<8>(ret,0,1,2,3,4,5,6,7);
+ return BITSWAP8(ret,0,1,2,3,4,5,6,7);
}
diff --git a/src/mame/drivers/n64.cpp b/src/mame/drivers/n64.cpp
index d2786cbb92e..3aac0f61e71 100644
--- a/src/mame/drivers/n64.cpp
+++ b/src/mame/drivers/n64.cpp
@@ -341,7 +341,7 @@ DEVICE_IMAGE_LOAD_MEMBER(n64_mess_state,n64_cart)
}
}
- periphs->m_nvram_image = &image.device();
+ periphs->m_nvram_image = image;
logerror("cart length = %d\n", length);
diff --git a/src/mame/drivers/namcona1.cpp b/src/mame/drivers/namcona1.cpp
index 617d6f880f3..43a5f1dcccb 100644
--- a/src/mame/drivers/namcona1.cpp
+++ b/src/mame/drivers/namcona1.cpp
@@ -268,7 +268,7 @@ READ16_MEMBER(namcona1_state::custom_key_r)
if( offset==3 )
{
uint16_t res;
- res = bitswap<16>(m_keyval, 22,26,31,23,18,20,16,30,24,21,25,19,17,29,28,27);
+ res = BITSWAP16(m_keyval, 22,26,31,23,18,20,16,30,24,21,25,19,17,29,28,27);
m_keyval >>= 1;
// printf("popcount(%08X) = %d\n", m_keyval & 0x58000c00, population_count_32(m_keyval & 0x58000c00));
diff --git a/src/mame/drivers/namcos1.cpp b/src/mame/drivers/namcos1.cpp
index e4669a3f24f..98c7e79c05c 100644
--- a/src/mame/drivers/namcos1.cpp
+++ b/src/mame/drivers/namcos1.cpp
@@ -1015,19 +1015,19 @@ GFXDECODE_END
static MACHINE_CONFIG_START( ns1 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_49_152MHz/32)
+ MCFG_CPU_ADD("maincpu", M6809,XTAL_49_152MHz/32)
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos1_state, irq0_line_assert)
- MCFG_CPU_ADD("subcpu", MC6809E, XTAL_49_152MHz/32)
+ MCFG_CPU_ADD("subcpu", M6809,XTAL_49_152MHz/32)
MCFG_CPU_PROGRAM_MAP(sub_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos1_state, irq0_line_assert)
- MCFG_CPU_ADD("audiocpu", MC6809E, XTAL_49_152MHz/32)
+ MCFG_CPU_ADD("audiocpu", M6809,XTAL_49_152MHz/32)
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos1_state, irq0_line_assert)
- MCFG_CPU_ADD("mcu", HD63701, XTAL_49_152MHz/8)
+ MCFG_CPU_ADD("mcu",HD63701,XTAL_49_152MHz/8)
MCFG_CPU_PROGRAM_MAP(mcu_map)
MCFG_CPU_IO_MAP(mcu_port_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos1_state, irq0_line_assert)
diff --git a/src/mame/drivers/namcos10.cpp b/src/mame/drivers/namcos10.cpp
index 4eae0f46de9..be218dfd3be 100644
--- a/src/mame/drivers/namcos10.cpp
+++ b/src/mame/drivers/namcos10.cpp
@@ -789,7 +789,7 @@ static void decrypt_bios( running_machine &machine, const char *regionName, int
for( int i = 0; i < len; i++ )
{
- BIOS[ i ] = bitswap<16>( BIOS[ i ] ^ 0xaaaa,
+ BIOS[ i ] = BITSWAP16( BIOS[ i ] ^ 0xaaaa,
b15, b14, b13, b12, b11, b10, b9, b8, b7, b6, b5, b4, b3, b2, b1, b0 );
}
}
diff --git a/src/mame/drivers/namcos11.cpp b/src/mame/drivers/namcos11.cpp
index ee1c195bd5f..86784874484 100644
--- a/src/mame/drivers/namcos11.cpp
+++ b/src/mame/drivers/namcos11.cpp
@@ -516,9 +516,9 @@ ADDRESS_MAP_END
READ16_MEMBER(namcos11_state::c76_speedup_r)
{
- if ((m_mcu->pc() == 0xc153) && (!(m_su_83 & 0xff00)))
+ if ((space.device().safe_pc() == 0xc153) && (!(m_su_83 & 0xff00)))
{
- m_mcu->spin_until_interrupt();
+ space.device().execute().spin_until_interrupt();
}
return m_su_83;
diff --git a/src/mame/drivers/namcos2.cpp b/src/mame/drivers/namcos2.cpp
index 043fe7c7bfc..0b1e3264f74 100644
--- a/src/mame/drivers/namcos2.cpp
+++ b/src/mame/drivers/namcos2.cpp
@@ -1721,7 +1721,7 @@ static MACHINE_CONFIG_START( default )
MCFG_CPU_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
MCFG_CPU_PROGRAM_MAP(slave_default_am)
- MCFG_CPU_ADD("audiocpu", MC6809E, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
+ MCFG_CPU_ADD("audiocpu", M6809, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
MCFG_CPU_PROGRAM_MAP(sound_default_am)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
@@ -1798,7 +1798,7 @@ static MACHINE_CONFIG_START( gollygho )
MCFG_CPU_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
MCFG_CPU_PROGRAM_MAP(slave_default_am)
- MCFG_CPU_ADD("audiocpu", MC6809E, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
+ MCFG_CPU_ADD("audiocpu", M6809, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
MCFG_CPU_PROGRAM_MAP(sound_default_am)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
@@ -1848,7 +1848,7 @@ static MACHINE_CONFIG_START( finallap )
MCFG_CPU_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
MCFG_CPU_PROGRAM_MAP(slave_finallap_am)
- MCFG_CPU_ADD("audiocpu", MC6809E, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
+ MCFG_CPU_ADD("audiocpu", M6809, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
MCFG_CPU_PROGRAM_MAP(sound_default_am)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
@@ -1903,7 +1903,7 @@ static MACHINE_CONFIG_START( sgunner )
MCFG_CPU_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
MCFG_CPU_PROGRAM_MAP(slave_sgunner_am)
- MCFG_CPU_ADD("audiocpu", MC6809E, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
+ MCFG_CPU_ADD("audiocpu", M6809, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
MCFG_CPU_PROGRAM_MAP(sound_default_am)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
@@ -1955,7 +1955,7 @@ static MACHINE_CONFIG_START( sgunner2 )
MCFG_CPU_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
MCFG_CPU_PROGRAM_MAP(slave_sgunner_am)
- MCFG_CPU_ADD("audiocpu", MC6809E, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
+ MCFG_CPU_ADD("audiocpu", M6809, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
MCFG_CPU_PROGRAM_MAP(sound_default_am)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
@@ -2012,7 +2012,7 @@ static MACHINE_CONFIG_START( luckywld )
MCFG_CPU_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
MCFG_CPU_PROGRAM_MAP(slave_luckywld_am)
- MCFG_CPU_ADD("audiocpu", MC6809E, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
+ MCFG_CPU_ADD("audiocpu", M6809, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
MCFG_CPU_PROGRAM_MAP(sound_default_am)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
@@ -2067,7 +2067,7 @@ static MACHINE_CONFIG_START( metlhawk )
MCFG_CPU_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
MCFG_CPU_PROGRAM_MAP(slave_metlhawk_am)
- MCFG_CPU_ADD("audiocpu", MC6809E, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
+ MCFG_CPU_ADD("audiocpu", M6809, M68B09_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - Sound handling */
MCFG_CPU_PROGRAM_MAP(sound_default_am)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
diff --git a/src/mame/drivers/namcos21.cpp b/src/mame/drivers/namcos21.cpp
index 234e436a57d..8c0e249eb63 100644
--- a/src/mame/drivers/namcos21.cpp
+++ b/src/mame/drivers/namcos21.cpp
@@ -1889,7 +1889,7 @@ static MACHINE_CONFIG_START( namcos21 )
MCFG_CPU_ADD("slave", M68000,12288000) /* Slave */
MCFG_CPU_PROGRAM_MAP(slave_map)
- MCFG_CPU_ADD("audiocpu", MC6809E, 3072000) /* Sound */
+ MCFG_CPU_ADD("audiocpu", M6809,3072000) /* Sound */
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos21_state, irq0_line_hold, 2*60)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos21_state, irq1_line_hold, 120)
@@ -1956,7 +1956,7 @@ static MACHINE_CONFIG_START( driveyes )
MCFG_CPU_ADD("slave", M68000,12288000) /* Slave */
MCFG_CPU_PROGRAM_MAP(driveyes_slave_map)
- MCFG_CPU_ADD("audiocpu", MC6809E, 3072000) /* Sound */
+ MCFG_CPU_ADD("audiocpu", M6809,3072000) /* Sound */
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos21_state, irq0_line_hold, 2*60)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos21_state, irq1_line_hold, 120)
@@ -2016,7 +2016,7 @@ static MACHINE_CONFIG_START( winrun )
MCFG_CPU_ADD("slave", M68000,12288000) /* Slave */
MCFG_CPU_PROGRAM_MAP(winrun_slave_map)
- MCFG_CPU_ADD("audiocpu", MC6809E, 3072000) /* Sound */
+ MCFG_CPU_ADD("audiocpu", M6809,3072000) /* Sound */
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos21_state, irq0_line_hold, 2*60)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos21_state, irq1_line_hold, 120)
diff --git a/src/mame/drivers/namcos22.cpp b/src/mame/drivers/namcos22.cpp
index 50ac0075e7c..5929f68d546 100644
--- a/src/mame/drivers/namcos22.cpp
+++ b/src/mame/drivers/namcos22.cpp
@@ -5444,9 +5444,9 @@ ROM_END
// for MCU BIOS v1.41
READ16_MEMBER(namcos22_state::mcu141_speedup_r)
{
- if ((m_mcu->pc() == 0xc12d) && (!(m_su_82 & 0xff00)))
+ if ((space.device().safe_pc() == 0xc12d) && (!(m_su_82 & 0xff00)))
{
- m_mcu->spin_until_interrupt();
+ space.device().execute().spin_until_interrupt();
}
return m_su_82;
@@ -5460,9 +5460,9 @@ WRITE16_MEMBER(namcos22_state::mcu_speedup_w)
// for MCU BIOS v1.20/v1.30
READ16_MEMBER(namcos22_state::mcu130_speedup_r)
{
- if ((m_mcu->pc() == 0xc12a) && (!(m_su_82 & 0xff00)))
+ if ((space.device().safe_pc() == 0xc12a) && (!(m_su_82 & 0xff00)))
{
- m_mcu->spin_until_interrupt();
+ space.device().execute().spin_until_interrupt();
}
return m_su_82;
@@ -5471,9 +5471,9 @@ READ16_MEMBER(namcos22_state::mcu130_speedup_r)
// for NSTX7702 v1.00 (C74)
READ16_MEMBER(namcos22_state::mcuc74_speedup_r)
{
- if (((m_mcu->pc() == 0xc0df) || (m_mcu->pc() == 0xc101)) && (!(m_su_82 & 0xff00)))
+ if (((space.device().safe_pc() == 0xc0df) || (space.device().safe_pc() == 0xc101)) && (!(m_su_82 & 0xff00)))
{
- m_mcu->spin_until_interrupt();
+ space.device().execute().spin_until_interrupt();
}
return m_su_82;
diff --git a/src/mame/drivers/namcos23.cpp b/src/mame/drivers/namcos23.cpp
index 66ebe564f04..035018d47cc 100644
--- a/src/mame/drivers/namcos23.cpp
+++ b/src/mame/drivers/namcos23.cpp
@@ -1997,7 +1997,7 @@ READ32_MEMBER(namcos23_state::c435_r)
return 1; // Busy flag
}
- logerror("c435_r %02x @ %08x (%08x, %08x)\n", offset, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ logerror("c435_r %02x @ %08x (%08x, %08x)\n", offset, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
return 0;
}
@@ -2015,7 +2015,7 @@ WRITE32_MEMBER(namcos23_state::c435_w)
c435_dma(space, m_c435_address, m_c435_size);
break;
default:
- logerror("c435_w %02x, %08x @ %08x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ logerror("c435_w %02x, %08x @ %08x (%08x, %08x)\n", offset, data, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
break;
}
}
@@ -2492,7 +2492,7 @@ READ16_MEMBER(namcos23_state::c417_r)
case 1:
return m_c417.adr;
case 4:
- //logerror("c417_r %04x = %04x (%08x, %08x)\n", c417.adr, c417.ram[c417.adr], m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ //logerror("c417_r %04x = %04x (%08x, %08x)\n", c417.adr, c417.ram[c417.adr], space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
return m_c417.ram[m_c417.adr];
case 5:
if(m_c417.pointrom_adr >= m_ptrom_limit)
@@ -2504,7 +2504,7 @@ READ16_MEMBER(namcos23_state::c417_r)
return m_ptrom[m_c417.pointrom_adr];
}
- logerror("c417_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ logerror("c417_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
return 0;
}
@@ -2524,7 +2524,7 @@ WRITE16_MEMBER(namcos23_state::c417_w)
m_c417.pointrom_adr = 0;
break;
case 4:
- //logerror("c417_w %04x = %04x (%08x, %08x)\n", m_c417.adr, data, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ //logerror("c417_w %04x = %04x (%08x, %08x)\n", m_c417.adr, data, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
COMBINE_DATA(m_c417.ram + m_c417.adr);
break;
case 7:
@@ -2532,7 +2532,7 @@ WRITE16_MEMBER(namcos23_state::c417_w)
update_main_interrupts(m_main_irqcause & ~MAIN_C435_IRQ);
break;
default:
- logerror("c417_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ logerror("c417_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
break;
}
}
@@ -2543,7 +2543,7 @@ WRITE16_MEMBER(namcos23_state::c417_w)
READ16_MEMBER(namcos23_state::c412_ram_r)
{
- // logerror("c412_ram_r %06x (%08x, %08x)\n", offset, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ // logerror("c412_ram_r %06x (%08x, %08x)\n", offset, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
if(offset < 0x100000)
return m_c412.sdram_a[offset & 0xfffff];
else if(offset < 0x200000)
@@ -2558,7 +2558,7 @@ READ16_MEMBER(namcos23_state::c412_ram_r)
WRITE16_MEMBER(namcos23_state::c412_ram_w)
{
- // logerror("c412_ram_w %06x = %04x (%08x, %08x)\n", offset, data, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ // logerror("c412_ram_w %06x = %04x (%08x, %08x)\n", offset, data, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
if(offset < 0x100000)
COMBINE_DATA(m_c412.sdram_a + (offset & 0xfffff));
else if(offset < 0x200000)
@@ -2587,7 +2587,7 @@ READ16_MEMBER(namcos23_state::c412_r)
return m_c412.status_c;
}
- logerror("c412_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ logerror("c412_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
return 0;
}
@@ -2609,7 +2609,7 @@ WRITE16_MEMBER(namcos23_state::c412_w)
m_c412.adr += 2;
break;
default:
- logerror("c412_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ logerror("c412_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
break;
}
}
@@ -2620,7 +2620,7 @@ WRITE16_MEMBER(namcos23_state::c412_w)
READ16_MEMBER(namcos23_state::c421_ram_r)
{
- // logerror("c421_ram_r %06x (%08x, %08x)\n", offset, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ // logerror("c421_ram_r %06x (%08x, %08x)\n", offset, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
if(offset < 0x40000)
return m_c421.dram_a[offset & 0x3ffff];
else if(offset < 0x80000)
@@ -2633,7 +2633,7 @@ READ16_MEMBER(namcos23_state::c421_ram_r)
WRITE16_MEMBER(namcos23_state::c421_ram_w)
{
- // logerror("c421_ram_w %06x = %04x (%08x, %08x)\n", offset, data, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ // logerror("c421_ram_w %06x = %04x (%08x, %08x)\n", offset, data, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
if(offset < 0x40000)
COMBINE_DATA(m_c421.dram_a + (offset & 0x3ffff));
else if(offset < 0x80000)
@@ -2654,7 +2654,7 @@ READ16_MEMBER(namcos23_state::c421_r)
return m_c421.adr;
}
- logerror("c421_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ logerror("c421_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
return 0;
}
@@ -2672,7 +2672,7 @@ WRITE16_MEMBER(namcos23_state::c421_w)
m_c421.adr = (data & mem_mask) | (m_c421.adr & (0xffffffff ^ mem_mask));
break;
default:
- logerror("c421_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ logerror("c421_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
break;
}
}
@@ -2743,7 +2743,7 @@ WRITE16_MEMBER(namcos23_state::c361_w)
break;
default:
- logerror("c361_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ logerror("c361_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
break;
}
}
@@ -2761,7 +2761,7 @@ READ16_MEMBER(namcos23_state::c361_r)
return m_screen->vblank() ? 1 : 0;
}
- logerror("c361_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ logerror("c361_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
return 0xffff;
}
@@ -2793,11 +2793,11 @@ WRITE16_MEMBER(namcos23_state::ctl_w)
case 6: // gmen wars spams this heavily with 0 prior to starting the GMEN board test
if(data != 0)
- logerror("ctl_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ logerror("ctl_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
break;
default:
- logerror("ctl_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ logerror("ctl_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
break;
}
}
@@ -2815,7 +2815,7 @@ READ16_MEMBER(namcos23_state::ctl_r)
}
}
- logerror("ctl_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
+ logerror("ctl_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31));
return 0xffff;
}
@@ -5270,8 +5270,8 @@ GAME( 1997, timecrs2v2b, timecrs2, timecrs2, timecrs2, namcos23_state, s23,
GAME( 1997, timecrs2v1b, timecrs2, timecrs2, timecrs2, namcos23_state, s23, ROT0, "Namco", "Time Crisis II (Japan, TSS1 Ver. B)", GAME_FLAGS )
GAME( 1997, timecrs2v4a, timecrs2, timecrs2v4a, timecrs2, namcos23_state, s23, ROT0, "Namco", "Time Crisis II (World, TSS4 Ver. A)", GAME_FLAGS )
GAME( 1997, timecrs2v5a, timecrs2, timecrs2v4a, timecrs2, namcos23_state, s23, ROT0, "Namco", "Time Crisis II (US, TSS5 Ver. A)", GAME_FLAGS )
-GAME( 1997, panicprk, 0, s23, s23, namcos23_state, s23, ROT0, "Namco", "Panic Park (World, PNP2 Ver. A)", GAME_FLAGS )
-GAME( 1997, panicprkj, panicprk, s23, s23, namcos23_state, s23, ROT0, "Namco", "Panic Park (Japan, PNP1 Ver. B)", GAME_FLAGS )
+GAME( 1998, panicprk, 0, s23, s23, namcos23_state, s23, ROT0, "Namco", "Panic Park (World, PNP2 Ver. A)", GAME_FLAGS )
+GAME( 1998, panicprkj, panicprk, s23, s23, namcos23_state, s23, ROT0, "Namco", "Panic Park (Japan, PNP1 Ver. B)", GAME_FLAGS )
GAME( 1998, gunwars, 0, gmen, s23, namcos23_state, s23, ROT0, "Namco", "Gunmen Wars (Japan, GM1 Ver. B)", GAME_FLAGS )
GAME( 1998, gunwarsa, gunwars, gmen, s23, namcos23_state, s23, ROT0, "Namco", "Gunmen Wars (Japan, GM1 Ver. A)", GAME_FLAGS )
GAME( 1998, raceon, 0, gmen, s23, namcos23_state, s23, ROT0, "Namco", "Race On! (World, RO2 Ver. A)", GAME_FLAGS )
diff --git a/src/mame/drivers/namcos86.cpp b/src/mame/drivers/namcos86.cpp
index c459f2af3bc..0f2f82b1b7d 100644
--- a/src/mame/drivers/namcos86.cpp
+++ b/src/mame/drivers/namcos86.cpp
@@ -1050,11 +1050,11 @@ GFXDECODE_END
static MACHINE_CONFIG_START( hopmappy )
/* basic machine hardware */
- MCFG_CPU_ADD("cpu1", MC6809E, XTAL_49_152MHz/32)
+ MCFG_CPU_ADD("cpu1", M6809, XTAL_49_152MHz/32)
MCFG_CPU_PROGRAM_MAP(cpu1_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos86_state, irq0_line_assert)
- MCFG_CPU_ADD("cpu2", MC6809E, XTAL_49_152MHz/32)
+ MCFG_CPU_ADD("cpu2", M6809, XTAL_49_152MHz/32)
MCFG_CPU_PROGRAM_MAP(hopmappy_cpu2_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos86_state, irq0_line_assert)
diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp
index 327f8292da0..75dbbca1870 100644
--- a/src/mame/drivers/naomi.cpp
+++ b/src/mame/drivers/naomi.cpp
@@ -387,7 +387,6 @@ Dead Or Alive 2 (Rev A) 841-0003C 22121A 21 (64Mb)
Dead Or Alive 2 841-0003C-01 22207 21 (64Mb) present 315-6213 317-5048-COM have unlocked Tag and Survival game modes, possible USA or international release
Dead Or Alive 2 Millennium 841-0003C DOA2 Ver.M 21 (64Mb) present 315-6213 317-5048-COM joystick + 3 buttons
Death Crimson OX 841-0016C 23524 10 (64Mb) present 315-6213 317-5066-COM
-Death Crimson OX 841-0016C 23524A 10 (64Mb) present 315-6213 317-5066-COM cart case had no revision label
Dengen Tenshi Taisen Janshi Shangri-La 841-0004C 22060 12 (64Mb) ? 315-6213 317-5050-JPN
Derby Owners Club (Japan) (Rev B) 840-0016C 22099B 14 (64Mb) ? 315-6213 317-0262-JPN touch panel + 2 buttons + card reader
Derby Owners Club 2000 Ver.2 (Japan) (Rev A) 840-0052C 22284A 16 (64Mb) present 315-6213 not present
@@ -3482,33 +3481,12 @@ EXP: DEATH CRIMSON OX
*/
-ROM_START( deathcoxo )
- NAOMI_BIOS
- NAOMI_DEFAULT_EEPROM
-
- ROM_REGION( 0x5800000, "rom_board", ROMREGION_ERASEFF)
- ROM_LOAD("epr-23524.ic22",0x0000000, 0x0400000, CRC(edc20e44) SHA1(6167ee86624f5b78b3ced0dd82259e83053f4f9d) )
- ROM_LOAD("mpr-23514.ic1", 0x0800000, 0x0800000, CRC(1f2b090e) SHA1(f2863d306512112cd3025c9ce3300ac0a396ee2d) )
- ROM_LOAD("mpr-23515.ic2", 0x1000000, 0x0800000, CRC(dc8557eb) SHA1(855bf4a8a7a7184a64a60d30efd505eb1181d8c6) )
- ROM_LOAD("mpr-23516.ic3", 0x1800000, 0x0800000, CRC(94494cbb) SHA1(fc977c77fa424541573c5cac28dac013d3354754) )
- ROM_LOAD("mpr-23517.ic4", 0x2000000, 0x0800000, CRC(69ba6a41) SHA1(1d5528f7d3f8721492db966ec041966192bebdf8) )
- ROM_LOAD("mpr-23518.ic5", 0x2800000, 0x0800000, CRC(49882766) SHA1(f6a7a7039dc251e02d69d4c95130102dfbb25fc9) )
- ROM_LOAD("mpr-23519.ic6", 0x3000000, 0x0800000, CRC(cdc82805) SHA1(947cdcdc16fc61ba4ca1258d170483b3decdacf2) )
- ROM_LOAD("mpr-23520.ic7", 0x3800000, 0x0800000, CRC(1a268360) SHA1(b35dab00e4e656f13fcad92bebd2c256c1965f54) )
- ROM_LOAD("mpr-23521.ic8", 0x4000000, 0x0800000, CRC(cf8674b8) SHA1(bdd2a0ef98138021707b3dd06b1d9855308ed3ec) )
- ROM_LOAD("mpr-23522.ic9", 0x4800000, 0x0800000, CRC(7ae6716e) SHA1(658b794ae6e3898885524582a207faa1076a65ca) )
- ROM_LOAD("mpr-23523.ic10",0x5000000, 0x0800000, CRC(c91efb67) SHA1(3d79870551310da7a641858ffec3840714e9cc22) )
-
- // 841-0016 2000 317-5066-COM Naomi
- ROM_PARAMETER( ":rom_board:segam2crypt:key", "000b64d0" )
-ROM_END
-
ROM_START( deathcox )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
ROM_REGION( 0x5800000, "rom_board", ROMREGION_ERASEFF)
- ROM_LOAD("epr-23524a.ic22",0x0000000, 0x0400000, CRC(b60e113e) SHA1(4d3a8dcd68addd0776ac9774974fb261a5fe76b8) )
+ ROM_LOAD("epr-23524.ic22",0x0000000, 0x0400000, CRC(edc20e44) SHA1(6167ee86624f5b78b3ced0dd82259e83053f4f9d) )
ROM_LOAD("mpr-23514.ic1", 0x0800000, 0x0800000, CRC(1f2b090e) SHA1(f2863d306512112cd3025c9ce3300ac0a396ee2d) )
ROM_LOAD("mpr-23515.ic2", 0x1000000, 0x0800000, CRC(dc8557eb) SHA1(855bf4a8a7a7184a64a60d30efd505eb1181d8c6) )
ROM_LOAD("mpr-23516.ic3", 0x1800000, 0x0800000, CRC(94494cbb) SHA1(fc977c77fa424541573c5cac28dac013d3354754) )
@@ -9518,14 +9496,14 @@ DRIVER_INIT_MEMBER(atomiswave_state,atomiswave)
READ64_MEMBER(atomiswave_state::xtrmhnt2_hack_r)
{
// disable ALL.Net board check
- if (m_maincpu->pc() == 0xc03cb30)
+ if (space.device().safe_pc() == 0xc03cb30)
{
dc_ram[0x357fe/8] |= (uint64_t)0x200 << 48;
dc_ram[0x358e2/8] |= (uint64_t)0x200 << 16;
dc_ram[0x38bb2/8] |= (uint64_t)0x200 << 16;
dc_ram[0x38bee/8] |= (uint64_t)0x200 << 48;
}
- if (m_maincpu->pc() == 0xc108240)
+ if (space.device().safe_pc() == 0xc108240)
dc_ram[0x9acc8/8] = (dc_ram[0x9acc8/8] & 0xffffffffffff0000U) | (uint64_t)0x0009;
return 0;
}
@@ -10289,36 +10267,35 @@ ROM_END
/* none */ GAME( 2003, clubk2kp, clubk2k3,naomi2m2, naomi, naomi2_state, naomi2, ROT0, "Sega", "Club Kart: European Session (2003, prototype)", GAME_FLAGS )
/* 841-xxxxx ("Licensed by Sega" Naomi cart games)*/
-/* 0001 */ GAME( 1999, pstone, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom", "Power Stone", GAME_FLAGS )
-/* 0002 */ GAME( 1999, suchie3, naomi, naomim2, suchie3, naomi_state,naomi_mp,ROT0, "Jaleco", "Idol Janshi Suchie-Pai 3 (Japan)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND )
-/* 0003 */ GAME( 1999, doa2a, doa2m, naomim2, naomi, naomi_state, naomi, ROT0, "Tecmo", "Dead or Alive 2 (Rev A)", GAME_FLAGS )
-/* 0003-01 */ GAME( 1999, doa2, doa2m, naomim2, naomi, naomi_state, naomi, ROT0, "Tecmo", "Dead or Alive 2", GAME_FLAGS )
-/* 0003 */ GAME( 2000, doa2m, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Tecmo", "Dead or Alive 2 Millennium", GAME_FLAGS )
-/* 0004 */ GAME( 1999, shangril, naomi, naomim2, naomi_mp,naomi_state,naomi_mp,ROT0, "Marvelous Ent.", "Dengen Tenshi Taisen Janshi Shangri-la", GAME_FLAGS ) // (Build 0728) version shown in service mode
-/* 0005 */ GAME( 1999, spawn, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Todd Mc Farlane / Capcom","Spawn In the Demon's Hand (Rev B)", GAME_FLAGS )
-/* 0006 */ GAME( 1999, puyoda, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Compile", "Puyo Puyo Da! (Japan)", GAME_FLAGS )
-/* 0007-01 */ GAME( 2000, mvsc2u, mvsc2, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom / Marvel", "Marvel Vs. Capcom 2 New Age of Heroes (USA, Rev A)", GAME_FLAGS)
-/* 0007-02 -03 */GAME( 2000, mvsc2, naomi, naomim1, naomi, naomi_state, naomi, ROT0, "Capcom / Marvel", "Marvel Vs. Capcom 2 New Age of Heroes (Export, Korea, Rev A)", GAME_FLAGS)
-/* 0008 */ GAME( 2000, pstone2, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom", "Power Stone 2", GAME_FLAGS )
-/* 0011 */ GAME( 2000, capsnk, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom / SNK", "Capcom Vs. SNK Millennium Fight 2000 (Rev C)", GAME_FLAGS )
-/* 0011 */ GAME( 2000, capsnka, capsnk, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom / SNK", "Capcom Vs. SNK Millennium Fight 2000 (Rev A)", GAME_FLAGS )
-/* 0011 */ GAME( 2000, capsnkb, capsnk, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom / SNK", "Capcom Vs. SNK Millennium Fight 2000", GAME_FLAGS )
-/* 0012 -01 */ GAME( 2000, cspike, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Psikyo / Capcom", "Cannon Spike / Gun Spike", GAME_FLAGS )
-/* 0013 */ GAME( 2000, ggx, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Arc System Works","Guilty Gear X", GAME_FLAGS )
-/* 0014 */ GAME( 2000, gwing2, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Takumi / Capcom", "Giga Wing 2", GAME_FLAGS )
-/* 0015 */ GAME( 2000, pjustic, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom", "Project Justice / Moero! Justice Gakuen (Rev A)", GAME_FLAGS )
-/* 0016 */ GAME( 2000, deathcoxo, deathcox, naomim2, naomi, naomi_state, naomi, ROT0, "Ecole Software", "Death Crimson OX", GAME_FLAGS )
-/* 0016 */ GAME( 2000, deathcox, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Ecole Software", "Death Crimson OX (Rev A)", GAME_FLAGS )
-/* 0017 */ GAME( 2001, gundmct, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Banpresto / Capcom","Mobile Suit Gundam: Federation Vs. Zeon", GAME_FLAGS )
-/* 0020 */ GAME( 2001, zerogu2, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Psikyo", "Zero Gunner 2", GAME_FLAGS )
-/* 0057 */ GAME( 2007, sl2007, naomi, naomim4, naomi, naomi_state, naomi, ROT270,"Triangle Service","Shooting Love 2007 (Japan)", GAME_FLAGS )
-/* 0058 */ GAME( 2008, ausfache, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Subtle Style", "Akatsuki Blitzkampf Ausf. Achse (Japan)", GAME_FLAGS )
-/* 0059 */ GAME( 2008, illvelo, naomi, naomim4, naomi, naomi_state, naomi, ROT270,"Milestone", "Illvelo (Illmatic Envelope) (Japan)", GAME_FLAGS )
-/* 0060 */ GAME( 2008, mamonoro, naomi, naomim4, naomi, naomi_state, naomi, ROT270,"G.Rev", "Mamoru-kun wa Norowarete Shimatta! (Japan)", GAME_FLAGS )
-/* 0061 */ GAME( 2008, mbaao, mbaa, naomim4, naomi, naomi_state, naomi, ROT0, "Type-Moon/Ecole", "Melty Blood Actress Again (Japan)", GAME_FLAGS )
-/* 0061 */ GAME( 2008, mbaa, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Type-Moon/Ecole", "Melty Blood Actress Again Version A (Japan, Rev A)", GAME_FLAGS )
-/* 0062 */ GAME( 2009, radirgyn, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Milestone/Lucky", "Radirgy Noa (Japan)", GAME_FLAGS )
-/* HMG016007 */ GAME( 2001, hmgeo, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom", "Heavy Metal Geomatrix (Rev B)", GAME_FLAGS )
+/* 0001 */ GAME( 1999, pstone, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom", "Power Stone", GAME_FLAGS )
+/* 0002 */ GAME( 1999, suchie3, naomi, naomim2, suchie3, naomi_state,naomi_mp,ROT0, "Jaleco", "Idol Janshi Suchie-Pai 3 (Japan)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND )
+/* 0003 */ GAME( 1999, doa2a, doa2m, naomim2, naomi, naomi_state, naomi, ROT0, "Tecmo", "Dead or Alive 2 (Rev A)", GAME_FLAGS )
+/* 0003-01 */ GAME( 1999, doa2, doa2m, naomim2, naomi, naomi_state, naomi, ROT0, "Tecmo", "Dead or Alive 2", GAME_FLAGS )
+/* 0003 */ GAME( 2000, doa2m, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Tecmo", "Dead or Alive 2 Millennium", GAME_FLAGS )
+/* 0004 */ GAME( 1999, shangril, naomi, naomim2, naomi_mp,naomi_state,naomi_mp,ROT0, "Marvelous Ent.", "Dengen Tenshi Taisen Janshi Shangri-la", GAME_FLAGS ) // (Build 0728) version shown in service mode
+/* 0005 */ GAME( 1999, spawn, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Todd Mc Farlane / Capcom","Spawn In the Demon's Hand (Rev B)", GAME_FLAGS )
+/* 0006 */ GAME( 1999, puyoda, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Compile", "Puyo Puyo Da! (Japan)", GAME_FLAGS )
+/* 0007-01 */ GAME( 2000, mvsc2u, mvsc2, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom / Marvel", "Marvel Vs. Capcom 2 New Age of Heroes (USA, Rev A)", GAME_FLAGS)
+/* 0007-02 -03 */GAME( 2000, mvsc2, naomi, naomim1, naomi, naomi_state, naomi, ROT0, "Capcom / Marvel", "Marvel Vs. Capcom 2 New Age of Heroes (Export, Korea, Rev A)", GAME_FLAGS)
+/* 0008 */ GAME( 2000, pstone2, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom", "Power Stone 2", GAME_FLAGS )
+/* 0011 */ GAME( 2000, capsnk, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom / SNK", "Capcom Vs. SNK Millennium Fight 2000 (Rev C)", GAME_FLAGS )
+/* 0011 */ GAME( 2000, capsnka, capsnk,naomim2, naomi, naomi_state, naomi, ROT0, "Capcom / SNK", "Capcom Vs. SNK Millennium Fight 2000 (Rev A)", GAME_FLAGS )
+/* 0011 */ GAME( 2000, capsnkb, capsnk,naomim2, naomi, naomi_state, naomi, ROT0, "Capcom / SNK", "Capcom Vs. SNK Millennium Fight 2000", GAME_FLAGS )
+/* 0012 -01 */ GAME( 2000, cspike, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Psikyo / Capcom", "Cannon Spike / Gun Spike", GAME_FLAGS )
+/* 0013 */ GAME( 2000, ggx, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Arc System Works","Guilty Gear X", GAME_FLAGS )
+/* 0014 */ GAME( 2000, gwing2, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Takumi / Capcom", "Giga Wing 2", GAME_FLAGS )
+/* 0015 */ GAME( 2000, pjustic, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom", "Project Justice / Moero! Justice Gakuen (Rev A)", GAME_FLAGS )
+/* 0016 */ GAME( 2000, deathcox, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Ecole Software", "Death Crimson OX", GAME_FLAGS )
+/* 0017 */ GAME( 2001, gundmct, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Banpresto / Capcom","Mobile Suit Gundam: Federation Vs. Zeon", GAME_FLAGS )
+/* 0020 */ GAME( 2001, zerogu2, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Psikyo", "Zero Gunner 2", GAME_FLAGS )
+/* 0057 */ GAME( 2007, sl2007, naomi, naomim4, naomi, naomi_state, naomi, ROT270,"Triangle Service","Shooting Love 2007 (Japan)", GAME_FLAGS )
+/* 0058 */ GAME( 2008, ausfache, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Subtle Style", "Akatsuki Blitzkampf Ausf. Achse (Japan)", GAME_FLAGS )
+/* 0059 */ GAME( 2008, illvelo, naomi, naomim4, naomi, naomi_state, naomi, ROT270,"Milestone", "Illvelo (Illmatic Envelope) (Japan)", GAME_FLAGS )
+/* 0060 */ GAME( 2008, mamonoro, naomi, naomim4, naomi, naomi_state, naomi, ROT270,"G.Rev", "Mamoru-kun wa Norowarete Shimatta! (Japan)", GAME_FLAGS )
+/* 0061 */ GAME( 2008, mbaao, mbaa, naomim4, naomi, naomi_state, naomi, ROT0, "Type-Moon/Ecole", "Melty Blood Actress Again (Japan)", GAME_FLAGS )
+/* 0061 */ GAME( 2008, mbaa, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Type-Moon/Ecole", "Melty Blood Actress Again Version A (Japan, Rev A)", GAME_FLAGS )
+/* 0062 */ GAME( 2009, radirgyn, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Milestone/Lucky", "Radirgy Noa (Japan)", GAME_FLAGS )
+/* HMG016007 */ GAME( 2001, hmgeo, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom", "Heavy Metal Geomatrix (Rev B)", GAME_FLAGS )
/* Cart games on Namco custom ROM board
for game descriptions below NAMCO region codes decoded as such (same as in older NAMCO hardware):
diff --git a/src/mame/drivers/nbmj8688.cpp b/src/mame/drivers/nbmj8688.cpp
index 16cd0b48db3..46b3a3736ed 100644
--- a/src/mame/drivers/nbmj8688.cpp
+++ b/src/mame/drivers/nbmj8688.cpp
@@ -59,7 +59,7 @@ DRIVER_INIT_MEMBER(nbmj8688_state,mjcamera)
the checksum. */
for (i = 0;i < 0x10000;i++)
{
- rom[i] = bitswap<8>(prot[i],1,6,0,4,2,3,5,7);
+ rom[i] = BITSWAP8(prot[i],1,6,0,4,2,3,5,7);
}
}
@@ -99,7 +99,7 @@ DRIVER_INIT_MEMBER(nbmj8688_state,idhimitu)
the checksum. */
for (i = 0;i < 0x10000;i++)
{
- rom[i] = bitswap<8>(prot[i + 0x10000],4,6,2,1,7,0,3,5);
+ rom[i] = BITSWAP8(prot[i + 0x10000],4,6,2,1,7,0,3,5);
}
}
@@ -116,7 +116,7 @@ DRIVER_INIT_MEMBER(nbmj8688_state,kaguya2)
the checksum. */
for (i = 0;i < 0x10000;i++)
{
- rom[i] = bitswap<8>(prot[i],1,6,0,4,2,3,5,7);
+ rom[i] = BITSWAP8(prot[i],1,6,0,4,2,3,5,7);
}
}
diff --git a/src/mame/drivers/nbmj8891.cpp b/src/mame/drivers/nbmj8891.cpp
index 6b7ddd3bdec..0addb1efefb 100644
--- a/src/mame/drivers/nbmj8891.cpp
+++ b/src/mame/drivers/nbmj8891.cpp
@@ -64,7 +64,7 @@ DRIVER_INIT_MEMBER(nbmj8891_state,gionbana)
the checksum. */
for (i = 0;i < 0x20000;i++)
{
- prot[i] = bitswap<8>(prot[i],2,7,3,5,0,6,4,1);
+ prot[i] = BITSWAP8(prot[i],2,7,3,5,0,6,4,1);
}
}
@@ -81,7 +81,7 @@ DRIVER_INIT_MEMBER(nbmj8891_state,omotesnd)
the checksum. */
for (i = 0;i < 0x20000;i++)
{
- prot[i] = bitswap<8>(prot[i],2,7,3,5,0,6,4,1);
+ prot[i] = BITSWAP8(prot[i],2,7,3,5,0,6,4,1);
}
#endif
@@ -114,7 +114,7 @@ DRIVER_INIT_MEMBER(nbmj8891_state,telmahjn)
the checksum. */
for (i = 0;i < 0x20000;i++)
{
- prot[i] = bitswap<8>(prot[i + 0x20000],7,0,4,1,5,2,6,3);
+ prot[i] = BITSWAP8(prot[i + 0x20000],7,0,4,1,5,2,6,3);
}
}
@@ -130,7 +130,7 @@ DRIVER_INIT_MEMBER(nbmj8891_state,mgmen89)
the checksum. */
for (i = 0;i < 0x20000;i++)
{
- prot[i] = bitswap<8>(prot[i],5,6,1,0,7,3,2,4);
+ prot[i] = BITSWAP8(prot[i],5,6,1,0,7,3,2,4);
}
}
@@ -150,7 +150,7 @@ DRIVER_INIT_MEMBER(nbmj8891_state,mjfocus)
the checksum. */
for (i = 0;i < 0x20000;i++)
{
- prot[i] = bitswap<8>(prot[i + 0x20000],7,0,4,1,5,2,6,3);
+ prot[i] = BITSWAP8(prot[i + 0x20000],7,0,4,1,5,2,6,3);
}
}
@@ -190,7 +190,7 @@ DRIVER_INIT_MEMBER(nbmj8891_state,mjnanpas)
the checksum. */
for (i = 0;i < 0x20000;i++)
{
- prot[i] = bitswap<8>(prot[i + 0x20000],0,5,2,3,6,7,1,4);
+ prot[i] = BITSWAP8(prot[i + 0x20000],0,5,2,3,6,7,1,4);
}
#endif
}
@@ -207,7 +207,7 @@ DRIVER_INIT_MEMBER(nbmj8891_state,pairsnb)
the checksum. */
for (i = 0;i < 0x20000;i++)
{
- prot[i] = bitswap<8>(prot[i],5,6,1,0,7,3,2,4);
+ prot[i] = BITSWAP8(prot[i],5,6,1,0,7,3,2,4);
}
}
@@ -223,7 +223,7 @@ DRIVER_INIT_MEMBER(nbmj8891_state,pairsten)
the checksum. */
for (i = 0;i < 0x20000;i++)
{
- prot[i] = bitswap<8>(prot[i + 0x20000],5,6,0,4,3,7,1,2);
+ prot[i] = BITSWAP8(prot[i + 0x20000],5,6,0,4,3,7,1,2);
}
}
diff --git a/src/mame/drivers/nbmj8900.cpp b/src/mame/drivers/nbmj8900.cpp
index 47604a51cb3..ae72ebbf2fb 100644
--- a/src/mame/drivers/nbmj8900.cpp
+++ b/src/mame/drivers/nbmj8900.cpp
@@ -49,7 +49,7 @@ DRIVER_INIT_MEMBER(nbmj8900_state,ohpaipee)
for (i = 0;i < 0x20000;i++)
{
- prot[i] = bitswap<8>(prot[i],2,7,3,5,0,6,4,1);
+ prot[i] = BITSWAP8(prot[i],2,7,3,5,0,6,4,1);
}
#else
unsigned char *ROM = memregion("maincpu")->base();
@@ -77,7 +77,7 @@ DRIVER_INIT_MEMBER(nbmj8900_state,togenkyo)
the checksum. */
for (i = 0;i < 0x20000;i++)
{
- prot[i] = bitswap<8>(prot[i],2,7,3,5,0,6,4,1);
+ prot[i] = BITSWAP8(prot[i],2,7,3,5,0,6,4,1);
}
#else
unsigned char *ROM = memregion("maincpu")->base();
diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp
index ffad1356e0c..7ff8212317e 100644
--- a/src/mame/drivers/neogeo.cpp
+++ b/src/mame/drivers/neogeo.cpp
@@ -3361,25 +3361,6 @@ ROM_START( bjourney ) /* MVS AND AES VERSION */
ROM_LOAD16_BYTE( "022-c4.c4", 0x200001, 0x080000, CRC(71bfd48a) SHA1(47288be69e6992d09ebef108b4de9ffab6293dc8) ) /* Plane 2,3 */ /* TC534200 */
ROM_END
-ROM_START( bjourneyh ) /* AES VERSION */
- ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
- ROM_LOAD16_WORD_SWAP( "022-hp1.p1", 0x000000, 0x100000, CRC(62cbe7b2) SHA1(f9a8fd98702c623ae793804ba50d09751e3fee4c) ) /* TC538200 */
-
- NEO_SFIX_128K( "022-s1.s1", CRC(843c3624) SHA1(dbdf86c193b7c1d795f8c21f2c103c1d3e18abbe) ) /* TC531000 */
-
- NEO_BIOS_AUDIO_128K( "022-m1.m1", CRC(8e1d4ab6) SHA1(deabc11ab81e7e68a3e041c03a127ae28d0d7264) ) /* TC531001 */
-
- ROM_REGION( 0x200000, "cslot1:ymsnd", 0 )
- ROM_LOAD( "022-v11.v11", 0x000000, 0x100000, CRC(2cb4ad91) SHA1(169ec7303c4275155a66a88cc08270c24132bb36) ) /* TC538200 */
- ROM_LOAD( "022-v22.v22", 0x100000, 0x100000, CRC(65a54d13) SHA1(a591fbcedca8f679dacbebcd554e3aa3fd163e92) ) /* TC538200 */
-
- ROM_REGION( 0x300000, "cslot1:sprites", 0 )
- ROM_LOAD16_BYTE( "022-c1.c1", 0x000000, 0x100000, CRC(4d47a48c) SHA1(6e282285be72583d828e7765b1c1695ecdc44777) ) /* Plane 0,1 */ /* TC538200 */
- ROM_LOAD16_BYTE( "022-c2.c2", 0x000001, 0x100000, CRC(e8c1491a) SHA1(c468d2556b3de095aaa05edd1bc16d71303e9478) ) /* Plane 2,3 */ /* TC538200 */
- ROM_LOAD16_BYTE( "022-c3.c3", 0x200000, 0x080000, CRC(66e69753) SHA1(974b823fc62236fbc23e727f25b61a805a707a9e) ) /* Plane 0,1 */ /* TC534200 */
- ROM_LOAD16_BYTE( "022-c4.c4", 0x200001, 0x080000, CRC(71bfd48a) SHA1(47288be69e6992d09ebef108b4de9ffab6293dc8) ) /* Plane 2,3 */ /* TC534200 */
-ROM_END
-
/****************************************
ID-0023
. NGM-023
@@ -10972,7 +10953,6 @@ GAME( 1990, maglordh, maglord, neobase, neogeo, neogeo_state, neogeo, R
GAME( 1990, ncombat, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGM-009)", MACHINE_SUPPORTS_SAVE )
GAME( 1990, ncombath, ncombat, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGH-009)", MACHINE_SUPPORTS_SAVE )
GAME( 1990, bjourney, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy (ALM-001 ~ ALH-001)", MACHINE_SUPPORTS_SAVE )
-GAME( 1990, bjourneyh, bjourney, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy (ALH-001)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, crsword, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Crossed Swords (ALM-002 ~ ALH-002)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, trally, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Thrash Rally (ALM-003 ~ ALH-003)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE )
GAME( 1992, ncommand, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Commando", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/neopcb.cpp b/src/mame/drivers/neopcb.cpp
index ca7c8a084b2..ae05d6209f0 100644
--- a/src/mame/drivers/neopcb.cpp
+++ b/src/mame/drivers/neopcb.cpp
@@ -250,7 +250,7 @@ void neopcb_state::svcpcb_gfx_decrypt()
for (int i = 0; i < rom_size; i += 4)
{
uint32_t rom32 = rom[i] | rom[i+1]<<8 | rom[i+2]<<16 | rom[i+3]<<24;
- rom32 = bitswap<32>(rom32, 0x09, 0x0d, 0x13, 0x00, 0x17, 0x0f, 0x03, 0x05, 0x04, 0x0c, 0x11, 0x1e, 0x12, 0x15, 0x0b, 0x06, 0x1b, 0x0a, 0x1a, 0x1c, 0x14, 0x02, 0x0e, 0x1d, 0x18, 0x08, 0x01, 0x10, 0x19, 0x1f, 0x07, 0x16);
+ rom32 = BITSWAP32(rom32, 0x09, 0x0d, 0x13, 0x00, 0x17, 0x0f, 0x03, 0x05, 0x04, 0x0c, 0x11, 0x1e, 0x12, 0x15, 0x0b, 0x06, 0x1b, 0x0a, 0x1a, 0x1c, 0x14, 0x02, 0x0e, 0x1d, 0x18, 0x08, 0x01, 0x10, 0x19, 0x1f, 0x07, 0x16);
buf[i] = rom32 & 0xff;
buf[i+1] = (rom32>>8) & 0xff;
buf[i+2] = (rom32>>16) & 0xff;
@@ -259,7 +259,7 @@ void neopcb_state::svcpcb_gfx_decrypt()
for (int i = 0; i < rom_size / 4; i++)
{
- int ofst = bitswap<24>((i & 0x1fffff), 0x17, 0x16, 0x15, 0x04, 0x0b, 0x0e, 0x08, 0x0c, 0x10, 0x00, 0x0a, 0x13, 0x03, 0x06, 0x02, 0x07, 0x0d, 0x01, 0x11, 0x09, 0x14, 0x0f, 0x12, 0x05);
+ int ofst = BITSWAP24((i & 0x1fffff), 0x17, 0x16, 0x15, 0x04, 0x0b, 0x0e, 0x08, 0x0c, 0x10, 0x00, 0x0a, 0x13, 0x03, 0x06, 0x02, 0x07, 0x0d, 0x01, 0x11, 0x09, 0x14, 0x0f, 0x12, 0x05);
ofst ^= 0x0c8923;
ofst += (i & 0xffe00000);
memcpy(&rom[i * 4], &buf[ofst * 4], 0x04);
@@ -274,7 +274,7 @@ void neopcb_state::svcpcb_s1data_decrypt()
size_t s1_size = memregion("fixed")->bytes();
for (int i = 0; i < s1_size; i++) // Decrypt S
- s1[i] = bitswap<8>(s1[i] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3);
+ s1[i] = BITSWAP8(s1[i] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3);
}
@@ -294,7 +294,7 @@ void neopcb_state::kf2k3pcb_gfx_decrypt()
for (int i = 0; i < rom_size; i +=4)
{
uint32_t rom32 = rom[i] | rom[i+1]<<8 | rom[i+2]<<16 | rom[i+3]<<24;
- rom32 = bitswap<32>(rom32, 0x09, 0x0d, 0x13, 0x00, 0x17, 0x0f, 0x03, 0x05, 0x04, 0x0c, 0x11, 0x1e, 0x12, 0x15, 0x0b, 0x06, 0x1b, 0x0a, 0x1a, 0x1c, 0x14, 0x02, 0x0e, 0x1d, 0x18, 0x08, 0x01, 0x10, 0x19, 0x1f, 0x07, 0x16);
+ rom32 = BITSWAP32(rom32, 0x09, 0x0d, 0x13, 0x00, 0x17, 0x0f, 0x03, 0x05, 0x04, 0x0c, 0x11, 0x1e, 0x12, 0x15, 0x0b, 0x06, 0x1b, 0x0a, 0x1a, 0x1c, 0x14, 0x02, 0x0e, 0x1d, 0x18, 0x08, 0x01, 0x10, 0x19, 0x1f, 0x07, 0x16);
buf[i] = rom32 & 0xff;
buf[i+1] = (rom32>>8) & 0xff;
buf[i+2] = (rom32>>16) & 0xff;
@@ -303,7 +303,7 @@ void neopcb_state::kf2k3pcb_gfx_decrypt()
for (int i = 0; i < rom_size; i+=4)
{
- int ofst = bitswap<24>((i & 0x7fffff), 0x17, 0x15, 0x0a, 0x14, 0x13, 0x16, 0x12, 0x11, 0x10, 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00);
+ int ofst = BITSWAP24((i & 0x7fffff), 0x17, 0x15, 0x0a, 0x14, 0x13, 0x16, 0x12, 0x11, 0x10, 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00);
ofst ^= 0x000000;
ofst += (i & 0xff800000);
memcpy(&rom[ofst], &buf[i], 0x04);
@@ -333,7 +333,7 @@ void neopcb_state::kf2k3pcb_decrypt_s1data()
dst = memregion("fixed")->base();
for (int i = 0; i < tx_size; i++)
- dst[i] = bitswap<8>(dst[i] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3);
+ dst[i] = BITSWAP8(dst[i] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3);
}
@@ -498,7 +498,7 @@ DRIVER_INIT_MEMBER(neopcb_state, kf2k3pcb)
// incorrect
uint8_t* rom = memregion("audiocpu")->base();
for (int i = 0; i < 0x90000; i++)
- rom[i] = bitswap<8>(rom[i], 5, 6, 1, 4, 3, 0, 7, 2);
+ rom[i] = BITSWAP8(rom[i], 5, 6, 1, 4, 3, 0, 7, 2);
kf2k3pcb_gfx_decrypt();
m_cmc_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
diff --git a/src/mame/drivers/newbrain.cpp b/src/mame/drivers/newbrain.cpp
index b70ad8c064b..c4ebd73867a 100644
--- a/src/mame/drivers/newbrain.cpp
+++ b/src/mame/drivers/newbrain.cpp
@@ -514,7 +514,7 @@ WRITE8_MEMBER( newbrain_state::cop_d_w )
// COP to VFD serial format, bits 15..0
// A B J I x H G2 C x F G1 E K L M D
- uint16_t value = bitswap<16>(m_402_q, 11, 7, 1, 13, 10, 3, 2, 12, 9, 5, 6, 4, 0, 8, 14, 15) & 0x3fff;
+ uint16_t value = BITSWAP16(m_402_q, 11, 7, 1, 13, 10, 3, 2, 12, 9, 5, 6, 4, 0, 8, 14, 15) & 0x3fff;
output().set_digit_value(m_405_q & 0x0f, value);
if (LOG_VFD) logerror("%s %s vfd segment %u 402.Q %04x data %04x\n", machine().time().as_string(), machine().describe_context(), m_405_q & 0x0f, m_402_q, value);
diff --git a/src/mame/drivers/niyanpai.cpp b/src/mame/drivers/niyanpai.cpp
index 214ff58b00b..043b83e347e 100644
--- a/src/mame/drivers/niyanpai.cpp
+++ b/src/mame/drivers/niyanpai.cpp
@@ -66,8 +66,8 @@ READ16_MEMBER(niyanpai_state::dipsw_r)
uint8_t dipsw_a = ioport("DSWA")->read();
uint8_t dipsw_b = ioport("DSWB")->read();
- dipsw_a = bitswap<8>(dipsw_a,0,1,2,3,4,5,6,7);
- dipsw_b = bitswap<8>(dipsw_b,0,1,2,3,4,5,6,7);
+ dipsw_a = BITSWAP8(dipsw_a,0,1,2,3,4,5,6,7);
+ dipsw_b = BITSWAP8(dipsw_b,0,1,2,3,4,5,6,7);
return ((dipsw_a << 8) | dipsw_b);
}
diff --git a/src/mame/drivers/nmk16.cpp b/src/mame/drivers/nmk16.cpp
index 17820f09700..21e6786440f 100644
--- a/src/mame/drivers/nmk16.cpp
+++ b/src/mame/drivers/nmk16.cpp
@@ -5383,7 +5383,7 @@ static void decryptcode( running_machine &machine, int a23, int a22, int a21, in
memcpy( &buffer[0], RAM, size );
for( i = 0; i < size; i++ )
{
- RAM[ i ] = buffer[ bitswap<24>( i, a23, a22, a21, a20, a19, a18, a17, a16, a15, a14, a13, a12,
+ RAM[ i ] = buffer[ BITSWAP24( i, a23, a22, a21, a20, a19, a18, a17, a16, a15, a14, a13, a12,
a11, a10, a9, a8, a7, a6, a5, a4, a3, a2, a1, a0 ) ];
}
}
diff --git a/src/mame/drivers/notetaker.cpp b/src/mame/drivers/notetaker.cpp
index 1a27b24b70e..ab50d57df1a 100644
--- a/src/mame/drivers/notetaker.cpp
+++ b/src/mame/drivers/notetaker.cpp
@@ -922,16 +922,16 @@ DRIVER_INIT_MEMBER(notetaker_state,notetakr)
uint16_t *temppointer;
uint16_t wordtemp;
uint16_t addrtemp;
- // leave the src pointer alone, since we've only used a 0x1000 long address space
- romdst += 0x7f800; // set the dest pointer to 0xff000 (>>1 because 16 bits data)
- for (int i = 0; i < 0x800; i++)
- {
- wordtemp = bitswap<16>(*romsrc, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); // data bus is completely reversed
- addrtemp = bitswap<11>(i, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // address bus is completely reversed; 11-15 should always be zero
- temppointer = romdst+(addrtemp&0x7FF);
- *temppointer = wordtemp;
- romsrc++;
- }
+ // leave the src pointer alone, since we've only used a 0x1000 long address space
+ romdst += 0x7f800; // set the dest pointer to 0xff000 (>>1 because 16 bits data)
+ for (int i = 0; i < 0x800; i++)
+ {
+ wordtemp = BITSWAP16(*romsrc, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); // data bus is completely reversed
+ addrtemp = BITSWAP16(i, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // address bus is completely reversed; 11-15 should always be zero
+ temppointer = romdst+(addrtemp&0x7FF);
+ *temppointer = wordtemp;
+ romsrc++;
+ }
}
/* ROM definition */
diff --git a/src/mame/drivers/novag6502.cpp b/src/mame/drivers/novag6502.cpp
index 03957ed2d1e..a1a82d1286a 100644
--- a/src/mame/drivers/novag6502.cpp
+++ b/src/mame/drivers/novag6502.cpp
@@ -349,7 +349,7 @@ WRITE64_MEMBER(novag6502_state::cforte_lcd_output_w)
for (int i = 0; i < 4; i++)
m_display_state[dig+3] |= ((rowdata[i] >> (2*dig) & 3) << (2*i));
- m_display_state[dig+3] = bitswap<8>(m_display_state[dig+3],7,2,0,4,6,5,3,1);
+ m_display_state[dig+3] = BITSWAP8(m_display_state[dig+3],7,2,0,4,6,5,3,1);
}
cforte_prepare_display();
diff --git a/src/mame/drivers/nsg6809.cpp b/src/mame/drivers/nsg6809.cpp
deleted file mode 100644
index 8c35fe32daa..00000000000
--- a/src/mame/drivers/nsg6809.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:AJR
-/***************************************************************************
-
- Skeleton driver for National Sports Games' 6809-based mechanical games:
-
- * Pitch Hitter
- * Super Shot (undumped)
-
- Memory map for "Universal Game PCB" in Super Shot schematics:
-
- 2K SRAM 8K SRAM
- JP5-A JP6-B JP7-B JP5-B JP6-A JP7-A
-
- *AUX3 $6000-$7FFF $6000-$7FFF
- *AUX2 $2000-$3FFF $2000-$27FF
- *AUX1 $4000-$5FFF $4000-$5FFF
- *ASIC $1000-$17FF $3000-$37FF
- *VIA $0800-$0FFF $2800-$2FFF
- *SRAM $0000-$07FF $0000-$1FFF
- DEADMAN $1E00-$1FFF $3E00-$3FFF
- *IN-D $1E00-$1FFF $3E00-$3FFF
- *OUT-C $1C00-$1DFF $3C00-$3DFF
- *IN-C $1C00-$1DFF $3C00-$3DFF
- *OUT-B $1A00-$1BFF $3A00-$3BFF
- *IN-B $1A00-$1BFF $3A00-$3BFF
- *OUT-A $1800-$19FF $3800-$39FF
- *IN-A $1800-$19FF $3800-$39FF
-
- "ASIC" is a rather odd thing to call a 6551...
-
-***************************************************************************/
-
-#include "emu.h"
-#include "cpu/m6809/m6809.h"
-#include "machine/6522via.h"
-#include "machine/input_merger.h"
-#include "machine/mos6551.h"
-#include "machine/watchdog.h"
-
-
-class nsg6809_state : public driver_device
-{
-public:
- nsg6809_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu") {}
-
- required_device<cpu_device> m_maincpu;
-};
-
-
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, nsg6809_state )
- AM_RANGE(0x0000, 0x1fff) AM_RAM
- AM_RANGE(0x2800, 0x280f) AM_DEVREADWRITE("via", via6522_device, read, write)
- AM_RANGE(0x3000, 0x3003) AM_DEVREADWRITE("acia", mos6551_device, read, write)
- AM_RANGE(0x3e00, 0x3e00) AM_DEVWRITE("deadman", watchdog_timer_device, reset_w)
- AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("maincpu", 0)
-ADDRESS_MAP_END
-
-static INPUT_PORTS_START( pitchhit )
-INPUT_PORTS_END
-
-static MACHINE_CONFIG_START( pitchhit )
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_4MHz) // clock buffered through 74HC4060
- MCFG_CPU_PROGRAM_MAP(main_map)
-
- MCFG_DEVICE_ADD("via", VIA6522, XTAL_4MHz / 4)
- MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("mainirq", input_merger_device, in_w<0>))
-
- MCFG_DEVICE_ADD("acia", MOS6551, 0)
- MCFG_MOS6551_XTAL(XTAL_1_8432MHz)
- MCFG_MOS6551_IRQ_HANDLER(DEVWRITELINE("mainirq", input_merger_device, in_w<1>))
-
- MCFG_WATCHDOG_ADD("deadman")
-
- MCFG_INPUT_MERGER_ANY_HIGH("mainirq")
- MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", M6809_IRQ_LINE))
-MACHINE_CONFIG_END
-
-
-/*
-
-Pitch Hitter Eprom 27c256 by National Sports Games (aka Skeeball)
-location U-14
-
-IC label "PH101C" and "CK# $A790"
-
-*/
-
-ROM_START( pitchhit )
- ROM_REGION( 0x8000, "maincpu", 0 )
- ROM_LOAD( "PH101C__CK_A790.U14", 0x0000, 0x8000, CRC(1d306ab7) SHA1(13faf7c6dca8e5482672b2d09a99616896c4ae55) )
-ROM_END
-
-
-GAME(1993, pitchhit, 0, pitchhit, pitchhit, nsg6809_state, 0, ROT0, "National Sports Games", "Pitch Hitter - Baseball Challenge", MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mame/drivers/nsm.cpp b/src/mame/drivers/nsm.cpp
index cdf8cba7645..bda6dae5913 100644
--- a/src/mame/drivers/nsm.cpp
+++ b/src/mame/drivers/nsm.cpp
@@ -106,7 +106,7 @@ WRITE8_MEMBER( nsm_state::cru_w )
for (j = 0; j < 5; j++)
{
segments = m_cru_data[8-j]^0xff;
- output().set_digit_value(j * 10 + i, bitswap<16>(segments, 8, 8, 8, 8, 8, 8, 0, 0, 1, 1, 2, 3, 4, 5, 6, 7));
+ output().set_digit_value(j * 10 + i, BITSWAP16(segments, 8, 8, 8, 8, 8, 8, 0, 0, 1, 1, 2, 3, 4, 5, 6, 7));
}
}
}
diff --git a/src/mame/drivers/nss.cpp b/src/mame/drivers/nss.cpp
index 57ce1816ca7..b96ed39cc6e 100644
--- a/src/mame/drivers/nss.cpp
+++ b/src/mame/drivers/nss.cpp
@@ -1064,7 +1064,7 @@ DRIVER_INIT_MEMBER(nss_state,nss)
uint8_t *PROM = memregion("rp5h01")->base();
for (int i = 0; i < 0x10; i++)
- PROM[i] = bitswap<8>(PROM[i],0,1,2,3,4,5,6,7) ^ 0xff;
+ PROM[i] = BITSWAP8(PROM[i],0,1,2,3,4,5,6,7) ^ 0xff;
DRIVER_INIT_CALL(snes);
}
diff --git a/src/mame/drivers/nycaptor.cpp b/src/mame/drivers/nycaptor.cpp
index e285499589b..4a54583ab07 100644
--- a/src/mame/drivers/nycaptor.cpp
+++ b/src/mame/drivers/nycaptor.cpp
@@ -1287,7 +1287,7 @@ DRIVER_INIT_MEMBER(nycaptor_state,bronx)
uint8_t *rom = memregion("maincpu")->base();
for (i = 0; i < 0x20000; i++)
- rom[i] = bitswap<8>(rom[i], 0, 1, 2, 3, 4, 5, 6, 7);
+ rom[i] = BITSWAP8(rom[i], 0, 1, 2, 3, 4, 5, 6, 7);
m_gametype = 1;
}
@@ -1298,7 +1298,7 @@ DRIVER_INIT_MEMBER(nycaptor_state,colt)
uint8_t *rom = memregion("maincpu")->base();
for (i = 0; i < 0x20000; i++)
- rom[i] = bitswap<8>(rom[i], 0, 1, 2, 3, 4, 5, 6, 7);
+ rom[i] = BITSWAP8(rom[i], 0, 1, 2, 3, 4, 5, 6, 7);
m_gametype = 2;
}
diff --git a/src/mame/drivers/ojankohs.cpp b/src/mame/drivers/ojankohs.cpp
index c3b5be359e3..389e43d64c3 100644
--- a/src/mame/drivers/ojankohs.cpp
+++ b/src/mame/drivers/ojankohs.cpp
@@ -604,13 +604,13 @@ READ8_MEMBER( ojankohs_state::ojankoc_keymatrix_p2_r )
READ8_MEMBER( ojankohs_state::ojankohs_dipsw1_r )
{
uint8_t data = m_dsw1->read();
- return bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7);
+ return BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7);
}
READ8_MEMBER( ojankohs_state::ojankohs_dipsw2_r )
{
uint8_t data = m_dsw2->read();
- return bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7);
+ return BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7);
}
READ8_MEMBER( ojankohs_state::ccasino_dipsw3_r )
diff --git a/src/mame/drivers/omegrace.cpp b/src/mame/drivers/omegrace.cpp
index 5236b4059d5..14377dd571d 100644
--- a/src/mame/drivers/omegrace.cpp
+++ b/src/mame/drivers/omegrace.cpp
@@ -620,7 +620,7 @@ DRIVER_INIT_MEMBER(omegrace_state,omegrace)
* in a consistent way to the decoder, we swap the bits
* here. */
for (i=0; i<len; i++)
- prom[i] = bitswap<8>(prom[i],7,6,5,4,1,0,3,2);
+ prom[i] = BITSWAP8(prom[i],7,6,5,4,1,0,3,2);
}
diff --git a/src/mame/drivers/overdriv.cpp b/src/mame/drivers/overdriv.cpp
index 094afd7b69f..29d8c152187 100644
--- a/src/mame/drivers/overdriv.cpp
+++ b/src/mame/drivers/overdriv.cpp
@@ -332,7 +332,7 @@ static MACHINE_CONFIG_START( overdriv )
/* IRQ 5 and 6 are generated by the main CPU. */
/* IRQ 5 is used only in test mode, to request the checksums of the gfx ROMs. */
- MCFG_CPU_ADD("audiocpu", MC6809E, XTAL_3_579545MHz) /* 1.789 MHz?? This might be the right speed, but ROM testing */
+ MCFG_CPU_ADD("audiocpu", M6809, XTAL_3_579545MHz) /* 1.789 MHz?? This might be the right speed, but ROM testing */
MCFG_CPU_PROGRAM_MAP(overdriv_sound_map) /* takes a little too much (the counter wraps from 0000 to 9999). */
/* This might just mean that the video refresh rate is less than */
/* 60 fps, that's how I fixed it for now. */
diff --git a/src/mame/drivers/pacland.cpp b/src/mame/drivers/pacland.cpp
index 92d77f5738e..acd5b3ed015 100644
--- a/src/mame/drivers/pacland.cpp
+++ b/src/mame/drivers/pacland.cpp
@@ -429,7 +429,7 @@ INTERRUPT_GEN_MEMBER(pacland_state::mcu_vblank_irq)
static MACHINE_CONFIG_START( pacland )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_49_152MHz/32) /* 1.536 MHz */
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_49_152MHz/32) /* 1.536 MHz */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", pacland_state, main_vblank_irq)
diff --git a/src/mame/drivers/pacman.cpp b/src/mame/drivers/pacman.cpp
index c5968040644..4475c90fecd 100644
--- a/src/mame/drivers/pacman.cpp
+++ b/src/mame/drivers/pacman.cpp
@@ -6914,12 +6914,12 @@ void pacman_state::eyes_decode(uint8_t *data)
for (j = 0; j < 8; j++)
{
- swapbuffer[j] = data[bitswap<16>(j,15,14,13,12,11,10,9,8,7,6,5,4,3,0,1,2)];
+ swapbuffer[j] = data[BITSWAP16(j,15,14,13,12,11,10,9,8,7,6,5,4,3,0,1,2)];
}
for (j = 0; j < 8; j++)
{
- data[j] = bitswap<8>(swapbuffer[j],7,4,5,6,3,2,1,0);
+ data[j] = BITSWAP8(swapbuffer[j],7,4,5,6,3,2,1,0);
}
}
@@ -6934,7 +6934,7 @@ DRIVER_INIT_MEMBER(pacman_state,eyes)
RAM = memregion("maincpu")->base();
for (i = 0; i < 0x4000; i++)
{
- RAM[i] = bitswap<8>(RAM[i],7,6,3,4,5,2,1,0);
+ RAM[i] = BITSWAP8(RAM[i],7,6,3,4,5,2,1,0);
}
@@ -6949,10 +6949,10 @@ DRIVER_INIT_MEMBER(pacman_state,eyes)
#define BITSWAP12(val,B11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0) \
- bitswap<16>(val,15,14,13,12,B11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0)
+ BITSWAP16(val,15,14,13,12,B11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0)
#define BITSWAP11(val,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0) \
- bitswap<16>(val,15,14,13,12,11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0)
+ BITSWAP16(val,15,14,13,12,11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0)
void pacman_state::mspacman_install_patches(uint8_t *ROM)
{
@@ -7025,13 +7025,13 @@ DRIVER_INIT_MEMBER(pacman_state,mspacman)
DROM[0x0000+i] = ROM[0x0000+i]; /* pacman.6e */
DROM[0x1000+i] = ROM[0x1000+i]; /* pacman.6f */
DROM[0x2000+i] = ROM[0x2000+i]; /* pacman.6h */
- DROM[0x3000+i] = bitswap<8>(ROM[0xb000+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt u7 */
+ DROM[0x3000+i] = BITSWAP8(ROM[0xb000+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt u7 */
}
for (i = 0; i < 0x800; i++)
{
- DROM[0x8000+i] = bitswap<8>(ROM[0x8000+BITSWAP11(i, 8,7,5,9,10,6,3,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt u5 */
- DROM[0x8800+i] = bitswap<8>(ROM[0x9800+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt half of u6 */
- DROM[0x9000+i] = bitswap<8>(ROM[0x9000+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt half of u6 */
+ DROM[0x8000+i] = BITSWAP8(ROM[0x8000+BITSWAP11(i, 8,7,5,9,10,6,3,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt u5 */
+ DROM[0x8800+i] = BITSWAP8(ROM[0x9800+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt half of u6 */
+ DROM[0x9000+i] = BITSWAP8(ROM[0x9000+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt half of u6 */
DROM[0x9800+i] = ROM[0x1800+i]; /* mirror of pacman.6f high */
}
for (i = 0; i < 0x1000; i++)
@@ -7102,7 +7102,7 @@ DRIVER_INIT_MEMBER(pacman_state,8bpm)
/* Data lines D0 and D6 swapped */
for( i = 0; i < 0x8000; i++ )
{
- ROM[i] = bitswap<8>(ROM[i],7,0,5,4,3,2,1,6);
+ ROM[i] = BITSWAP8(ROM[i],7,0,5,4,3,2,1,6);
}
membank("bank1")->set_base(&ROM[0 * 0x2000]);
@@ -7119,7 +7119,7 @@ DRIVER_INIT_MEMBER(pacman_state,porky)
/* Data lines D0 and D4 swapped */
for(i = 0; i < 0x10000; i++)
{
- ROM[i] = bitswap<8>(ROM[i],7,6,5,0,3,2,1,4);
+ ROM[i] = BITSWAP8(ROM[i],7,6,5,0,3,2,1,4);
}
membank("bank1")->configure_entries(0, 2, &ROM[0 * 0x2000], 0x8000);
@@ -7185,7 +7185,7 @@ DRIVER_INIT_MEMBER(pacman_state,superabc)
// descramble gfx
for (int i = 0; i < 0x10000; i++)
- dest[i] = src[bitswap<24>(i,23,22,21,20,19,18,17, 12,13,14,16,15, 11,10,9,8,7,6,5,4,3,2,1,0)];
+ dest[i] = src[BITSWAP24(i,23,22,21,20,19,18,17, 12,13,14,16,15, 11,10,9,8,7,6,5,4,3,2,1,0)];
}
READ8_MEMBER(pacman_state::cannonbp_protection_r)
@@ -7324,7 +7324,7 @@ GAME( 1981, crush5, crush, crush4, crush4, pacman_state, 0, ROT
GAME( 1981, maketrax, crush, maketrax, maketrax, pacman_state, maketrax, ROT270, "Alpha Denshi Co. / Kural (Williams license)", "Make Trax (US set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, maketrxb, crush, maketrax, maketrax, pacman_state, maketrax, ROT270, "Alpha Denshi Co. / Kural (Williams license)", "Make Trax (US set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, korosuke, crush, maketrax, korosuke, pacman_state, korosuke, ROT90, "Alpha Denshi Co. / Kural Electric, Ltd.", "Korosuke Roller (Japan)", MACHINE_SUPPORTS_SAVE ) // ADK considers it a sequel?
-GAME( 1981, crushrlf, crush, pacman, maketrax, pacman_state, 0, ROT90, "bootleg", "Crush Roller (Famare SA PCB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, crushrlf, crush, pacman, maketrax, pacman_state, 0, ROT90, "bootleg", "Crush Roller (Famaresa PCB)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, crushbl, crush, pacman, maketrax, pacman_state, 0, ROT90, "bootleg", "Crush Roller (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, crushbl2, crush, maketrax, mbrush, pacman_state, maketrax, ROT90, "bootleg", "Crush Roller (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, crushbl3, crush, maketrax, mbrush, pacman_state, maketrax, ROT90, "bootleg", "Crush Roller (bootleg set 3)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/pandoras.cpp b/src/mame/drivers/pandoras.cpp
index 6ce65d76df4..8a9fc121dfa 100644
--- a/src/mame/drivers/pandoras.cpp
+++ b/src/mame/drivers/pandoras.cpp
@@ -308,11 +308,11 @@ READ8_MEMBER(pandoras_state::pandoras_portB_r)
static MACHINE_CONFIG_START( pandoras )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MASTER_CLOCK/6) /* CPU A */
+ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/6) /* CPU A */
MCFG_CPU_PROGRAM_MAP(pandoras_master_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", pandoras_state, pandoras_master_interrupt)
- MCFG_CPU_ADD("sub", MC6809E, MASTER_CLOCK/6) /* CPU B */
+ MCFG_CPU_ADD("sub", M6809, MASTER_CLOCK/6) /* CPU B */
MCFG_CPU_PROGRAM_MAP(pandoras_slave_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", pandoras_state, pandoras_slave_interrupt)
diff --git a/src/mame/drivers/panicr.cpp b/src/mame/drivers/panicr.cpp
index c78b3511522..a3558fc91c3 100644
--- a/src/mame/drivers/panicr.cpp
+++ b/src/mame/drivers/panicr.cpp
@@ -733,7 +733,7 @@ DRIVER_INIT_MEMBER(panicr_state,panicr)
w1 = (rom[i + 0*size/2] << 8) + rom[i + 1*size/2];
- w1 = bitswap<16>(w1, 9,12,7,3, 8,13,6,2, 11,14,1,5, 10,15,4,0);
+ w1 = BITSWAP16(w1, 9,12,7,3, 8,13,6,2, 11,14,1,5, 10,15,4,0);
buf[i + 0*size/2] = w1 >> 8;
buf[i + 1*size/2] = w1 & 0xff;
@@ -742,7 +742,7 @@ DRIVER_INIT_MEMBER(panicr_state,panicr)
// text address lines
for (i = 0;i < size;i++)
{
- rom[i] = buf[bitswap<24>(i,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6, 2,3,1,0,5,4)];
+ rom[i] = buf[BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6, 2,3,1,0,5,4)];
}
@@ -757,8 +757,8 @@ DRIVER_INIT_MEMBER(panicr_state,panicr)
w1 = (rom[i + 0*size/4] << 8) + rom[i + 3*size/4];
w2 = (rom[i + 1*size/4] << 8) + rom[i + 2*size/4];
- w1 = bitswap<16>(w1, 14,12,11,9, 3,2,1,0, 10,15,13,8, 7,6,5,4);
- w2 = bitswap<16>(w2, 3,13,15,4, 12,2,5,11, 14,6,1,10, 8,7,9,0);
+ w1 = BITSWAP16(w1, 14,12,11,9, 3,2,1,0, 10,15,13,8, 7,6,5,4);
+ w2 = BITSWAP16(w2, 3,13,15,4, 12,2,5,11, 14,6,1,10, 8,7,9,0);
buf[i + 0*size/4] = w1 >> 8;
buf[i + 1*size/4] = w1 & 0xff;
@@ -769,7 +769,7 @@ DRIVER_INIT_MEMBER(panicr_state,panicr)
// tiles address lines
for (i = 0;i < size;i++)
{
- rom[i] = buf[bitswap<24>(i,23,22,21,20,19,18,17,16,15,14,13,12, 5,4,3,2, 11,10,9,8,7,6, 0,1)];
+ rom[i] = buf[BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,12, 5,4,3,2, 11,10,9,8,7,6, 0,1)];
}
@@ -784,7 +784,7 @@ DRIVER_INIT_MEMBER(panicr_state,panicr)
w1 = (rom[i + 0*size/2] << 8) + rom[i + 1*size/2];
- w1 = bitswap<16>(w1, 11,5,7,12, 4,10,13,3, 6,14,9,2, 0,15,1,8);
+ w1 = BITSWAP16(w1, 11,5,7,12, 4,10,13,3, 6,14,9,2, 0,15,1,8);
buf[i + 0*size/2] = w1 >> 8;
diff --git a/src/mame/drivers/pbaction.cpp b/src/mame/drivers/pbaction.cpp
index 20e3944aff3..37416270468 100644
--- a/src/mame/drivers/pbaction.cpp
+++ b/src/mame/drivers/pbaction.cpp
@@ -494,7 +494,7 @@ DRIVER_INIT_MEMBER(pbaction_state,pbactio3)
/* first of all, do a simple bitswap */
for (i = 0; i < 0xc000; i++)
{
- rom[i] = bitswap<8>(rom[i], 7,6,5,4,1,2,3,0);
+ rom[i] = BITSWAP8(rom[i], 7,6,5,4,1,2,3,0);
}
/* install a protection (?) workaround */
diff --git a/src/mame/drivers/pc88va.cpp b/src/mame/drivers/pc88va.cpp
index fc941af9405..57d5ebe0795 100644
--- a/src/mame/drivers/pc88va.cpp
+++ b/src/mame/drivers/pc88va.cpp
@@ -254,7 +254,7 @@ void pc88va_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
for(x_s=0;x_s<16;x_s++)
{
- pen = (bitswap<16>(tvram[(spda+spr_count) / 2],7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8) >> (15-x_s)) & 1;
+ pen = (BITSWAP16(tvram[(spda+spr_count) / 2],7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8) >> (15-x_s)) & 1;
pen = pen & 1 ? fg_col : (bc) ? 8 : -1;
@@ -281,7 +281,7 @@ void pc88va_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
for(x_s=0;x_s<2;x_s++)
{
- pen = (bitswap<16>(tvram[(spda+spr_count) / 2],7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8)) >> (16-(x_s*8)) & 0xf;
+ pen = (BITSWAP16(tvram[(spda+spr_count) / 2],7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8)) >> (16-(x_s*8)) & 0xf;
//if(bc != -1) //transparent pen
bitmap.pix32(yp+y_i, xp+x_i+(x_s)) = m_palette->pen(pen);
diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp
index 124824bfe0e..036cccbd006 100644
--- a/src/mame/drivers/pc9801.cpp
+++ b/src/mame/drivers/pc9801.cpp
@@ -855,7 +855,7 @@ WRITE8_MEMBER(pc9801_state::grcg_w)
else if(offset == 7)
{
// logerror("%02x GRCG TILE %02x\n",data,m_grcg.tile_index);
- m_grcg.tile[m_grcg.tile_index] = bitswap<8>(data,0,1,2,3,4,5,6,7);
+ m_grcg.tile[m_grcg.tile_index] = BITSWAP8(data,0,1,2,3,4,5,6,7);
m_grcg.tile_index ++;
m_grcg.tile_index &= 3;
return;
@@ -1061,24 +1061,24 @@ WRITE8_MEMBER(pc9801_state::pic_w)
READ16_MEMBER(pc9801_state::grcg_gvram_r)
{
uint16_t ret = upd7220_grcg_r(space, (offset + 0x4000) | (m_vram_bank << 16), mem_mask);
- return bitswap<16>(ret,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7);
+ return BITSWAP16(ret,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7);
}
WRITE16_MEMBER(pc9801_state::grcg_gvram_w)
{
- data = bitswap<16>(data,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7);
+ data = BITSWAP16(data,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7);
upd7220_grcg_w(space, (offset + 0x4000) | (m_vram_bank << 16), data, mem_mask);
}
READ16_MEMBER(pc9801_state::grcg_gvram0_r)
{
uint16_t ret = upd7220_grcg_r(space, offset | (m_vram_bank << 16), mem_mask);
- return bitswap<16>(ret,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7);
+ return BITSWAP16(ret,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7);
}
WRITE16_MEMBER(pc9801_state::grcg_gvram0_w)
{
- data = bitswap<16>(data,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7);
+ data = BITSWAP16(data,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7);
upd7220_grcg_w(space, offset | (m_vram_bank << 16), data, mem_mask);
}
@@ -2889,7 +2889,7 @@ DRIVER_INIT_MEMBER(pc9801_state,pc9801_kanji)
{
for(j=0;j<0x20;j++)
{
- pcg_tile = bitswap<16>(i,15,14,13,12,11,7,6,5,10,9,8,4,3,2,1,0) << 5;
+ pcg_tile = BITSWAP16(i,15,14,13,12,11,7,6,5,10,9,8,4,3,2,1,0) << 5;
kanji[j+(i << 5)] = raw_kanji[j+pcg_tile];
}
}
diff --git a/src/mame/drivers/pegasus.cpp b/src/mame/drivers/pegasus.cpp
index 1e214f8375f..4d767d9e4b9 100644
--- a/src/mame/drivers/pegasus.cpp
+++ b/src/mame/drivers/pegasus.cpp
@@ -405,8 +405,8 @@ void pegasus_state::pegasus_decrypt_rom(uint8_t *ROM)
for (int i = 0; i < 0x1000; i++)
{
b = ROM[i];
- j = bitswap<16>(i, 15, 14, 13, 12, 11, 10, 9, 8, 0, 1, 2, 3, 4, 5, 6, 7);
- b = bitswap<8>(b, 3, 2, 1, 0, 7, 6, 5, 4);
+ j = BITSWAP16(i, 15, 14, 13, 12, 11, 10, 9, 8, 0, 1, 2, 3, 4, 5, 6, 7);
+ b = BITSWAP8(b, 3, 2, 1, 0, 7, 6, 5, 4);
temp_copy[j & 0xfff] = b;
}
memcpy(ROM, &temp_copy[0], 0x1000);
@@ -480,7 +480,7 @@ DRIVER_INIT_MEMBER(pegasus_state, pegasus)
static MACHINE_CONFIG_START( pegasus )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_4MHz) // actually a 6809C - 4MHZ clock coming in, 1MHZ internally
+ MCFG_CPU_ADD("maincpu", M6809E, XTAL_4MHz) // actually a 6809C - 4MHZ clock coming in, 1MHZ internally
MCFG_CPU_PROGRAM_MAP(pegasus_mem)
MCFG_TIMER_DRIVER_ADD_PERIODIC("pegasus_firq", pegasus_state, pegasus_firq, attotime::from_hz(400))
diff --git a/src/mame/drivers/pengadvb.cpp b/src/mame/drivers/pengadvb.cpp
index f24999f4e7a..f10f8c72359 100644
--- a/src/mame/drivers/pengadvb.cpp
+++ b/src/mame/drivers/pengadvb.cpp
@@ -293,7 +293,7 @@ void pengadvb_state::pengadvb_decrypt(const char* region)
// data lines swap
for (int i = 0; i < memsize; i++)
{
- mem[i] = bitswap<8>(mem[i],7,6,5,3,4,2,1,0);
+ mem[i] = BITSWAP8(mem[i],7,6,5,3,4,2,1,0);
}
// address line swap
@@ -301,7 +301,7 @@ void pengadvb_state::pengadvb_decrypt(const char* region)
memcpy(&buf[0], mem, memsize);
for (int i = 0; i < memsize; i++)
{
- mem[i] = buf[bitswap<24>(i,23,22,21,20,19,18,17,16,15,14,13,5,11,10,9,8,7,6,12,4,3,2,1,0)];
+ mem[i] = buf[BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,5,11,10,9,8,7,6,12,4,3,2,1,0)];
}
}
diff --git a/src/mame/drivers/pet.cpp b/src/mame/drivers/pet.cpp
index 8e2bed8698c..85824fd066f 100644
--- a/src/mame/drivers/pet.cpp
+++ b/src/mame/drivers/pet.cpp
@@ -482,10 +482,7 @@ READ8_MEMBER( pet_state::read )
break;
case SEL8:
- if (!(offset & 0x800))
- {
- data = m_video_ram[offset & (m_video_ram_size - 1)];
- }
+ data = m_video_ram[offset & (m_video_ram_size - 1)];
break;
case SEL9:
@@ -578,10 +575,7 @@ WRITE8_MEMBER( pet_state::write )
break;
case SEL8:
- if (!(offset & 0x800))
- {
- m_video_ram[offset & (m_video_ram_size - 1)] = data;
- }
+ m_video_ram[offset & (m_video_ram_size - 1)] = data;
break;
case SELE:
@@ -641,10 +635,10 @@ void cbm8296_state::read_pla1_eprom(offs_t offset, int phi2, int brw, int noscre
// PLA-EPROM adapter by Joachim Nemetz (Jogi)
uint32_t input = (offset & 0xff00) | phi2 << 7 | brw << 6 | noscreen << 5 | noio << 4 | ramsela << 3 | ramsel9 << 2 | ramon << 1 | norom;
- input = bitswap<16>(input,13,8,9,7,12,14,11,10,6,5,4,3,2,1,0,15);
+ input = BITSWAP16(input,13,8,9,7,12,14,11,10,6,5,4,3,2,1,0,15);
uint8_t data = m_ue6_rom->base()[input];
- data = bitswap<8>(data,7,0,1,2,3,4,5,6);
+ data = BITSWAP8(data,7,0,1,2,3,4,5,6);
cswff = BIT(data, 0);
cs9 = BIT(data, 1);
@@ -663,7 +657,7 @@ void cbm8296_state::read_pla1_eprom(offs_t offset, int phi2, int brw, int noscre
void cbm8296_state::read_pla2(offs_t offset, int phi2, int brw, int casena1, int &endra, int &noscreen, int &casena2, int &fa15)
{
- uint32_t input = bitswap<8>(m_cr, 0,1,2,3,4,5,6,7) << 8 | ((offset >> 8) & 0xf8) | brw << 2 | phi2 << 1 | casena1;
+ uint32_t input = BITSWAP8(m_cr, 0,1,2,3,4,5,6,7) << 8 | ((offset >> 8) & 0xf8) | brw << 2 | phi2 << 1 | casena1;
uint32_t data = m_pla2->read(input);
endra = BIT(data, 4);
@@ -676,11 +670,11 @@ void cbm8296_state::read_pla2_eprom(offs_t offset, int phi2, int brw, int casena
{
// PLA-EPROM adapter by Joachim Nemetz (Jogi)
- uint32_t input = bitswap<8>(m_cr, 0,1,2,3,4,5,6,7) << 8 | ((offset >> 8) & 0xf8) | brw << 2 | phi2 << 1 | casena1;
- input = bitswap<16>(input,13,8,9,7,12,14,11,10,6,5,4,3,2,1,0,15);
+ uint32_t input = BITSWAP8(m_cr, 0,1,2,3,4,5,6,7) << 8 | ((offset >> 8) & 0xf8) | brw << 2 | phi2 << 1 | casena1;
+ input = BITSWAP16(input,13,8,9,7,12,14,11,10,6,5,4,3,2,1,0,15);
uint8_t data = m_ue5_rom->base()[input];
- data = bitswap<8>(data,7,0,1,2,3,4,5,6);
+ data = BITSWAP8(data,7,0,1,2,3,4,5,6);
endra = BIT(data, 4);
noscreen = BIT(data, 5);
diff --git a/src/mame/drivers/pgm2.cpp b/src/mame/drivers/pgm2.cpp
index 39c334423b5..ea1b2206695 100644
--- a/src/mame/drivers/pgm2.cpp
+++ b/src/mame/drivers/pgm2.cpp
@@ -45,48 +45,14 @@
Support remaining games (need IGS036 dumps)
Identify which regions each game was released in and either dump alt. internal ROMs for each region, or
create them until that can be done.
- properly implement RTC (integrated into the CPU)
+ RTC (integrated into the CPU with the SRAM?)
+ Memory Card system (there's an MCU on the motherboard that will need simulating or dumping somehow)
Verify Sprite Zoom (check exactly which pixels are doubled / missed on hardware for flipped , non-flipped cases etc.)
+ Simplify IGS036 encryption based on tables in internal roms
+ Fix ARM? bug that means Oriental Legend 2 needs a patch (might also be that it needs the card reader, and is running a
+ codepath that would not exist in a real environment at the moment)
Fix Save States (is this a driver problem or an ARM core problem, they don't work unless you get through the startup tests)
- Debug features (require DIP SW1:8 On and SW1:1 Off):
- - QC TEST mode: hold P1 A+B during boot
- - Debug/Cheat mode: hold P1 B+C during boot, when ingame pressing P1 Start skips to next location, where might be more unknown debug features.
- works for both currently dumped games (orleg2, kov2nl)
-
-
- Holographic Stickers
-
- The IGS036 CPUs have holographic stickers on them, there is a number printed on each sticker but it doesn't seem connected to the
- game code / revision contained within, it might just be to mark the date the board was produced as it seems to coincide with the
- design of the hologram. For reference the ones being used for dumping are
-
- Dodonpachi Daioujou Tamashi (China) - W10
- King of Fighter 98 UMH (China) - C11
- Knights of Valour 2 (China) - V21
- Knights of Valour 3 (China) - V21
- Oriental Legend 2 (Oversea) - V21
- Oriental Legend 2 (China) - A8
-
- GPU registers, located at 301200xx, 16bit access.
- 00 - bg scroll x
- 02 - bg scroll y
- 04 - zoom something, 0F-7F, default 1F
- 06 - zoom something, 0F-7F, default 1F
- 08 - fg scroll x
- 0a - fg scroll y
- 0e - resolution, 0 - low (kof98), 1 - high (rest of games)
- 10 - ? orleg2 - 0x13, kov2nl, kof - 0x14 at init (sprite related?)
- 14 - sprite enable ? set to 0 before spriteram update, to 1 after
- 16 - enable access to vrams/palettes/etc ? (bitmask)
- 18 - vblank ack
- 1a - ? 0 at init
- 1c - ? orleg2 - 5, kov2nl, kof - 7 at init (sprite related?)
- 1e - ? 2 at init (sprite related?)
- 32 - shared RAM bank
- 34, 36 - ? 0 at init, some unused xor feature ?
- 38, 3a - sprite mask xor key
-
*/
#include "includes/pgm2.h"
@@ -98,261 +64,31 @@ READ32_MEMBER(pgm2_state::unk_startup_r)
return 0x00000180;
}
-READ32_MEMBER(pgm2_state::rtc_r)
-{
- // write to FFFFFD20 if bit 18 set (0x40000) probably reset this RTC timer
- // TODO: somehow hook here current time/date, which is a bit complicated because value is relative, later to it added "base time" stored in SRAM
- return machine().time().seconds();
-}
-
-READ8_MEMBER(pgm2_state::encryption_r)
-{
- return m_encryption_table[offset];
-}
-
-WRITE8_MEMBER(pgm2_state::encryption_w)
-{
- m_encryption_table[offset] = data;
-}
-
-WRITE32_MEMBER(pgm2_state::sprite_encryption_w)
-{
- COMBINE_DATA(&m_spritekey);
-
- if (!m_sprite_predecrypted)
- m_realspritekey = bitswap<32>(m_spritekey ^ 0x90055555, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31);
-}
-
-WRITE32_MEMBER(pgm2_state::encryption_do_w)
-{
- if (m_has_decrypted == 0)
- {
- igs036_decryptor decrypter(m_encryption_table);
- decrypter.decrypter_rom(memregion("user1"));
- m_has_decrypted = 1;
- }
-}
-
-
INTERRUPT_GEN_MEMBER(pgm2_state::igs_interrupt)
{
m_arm_aic->set_irq(0x47);
}
-WRITE16_MEMBER(pgm2_state::share_bank_w)
-{
- COMBINE_DATA(&m_share_bank);
-}
-
-READ8_MEMBER(pgm2_state::shareram_r)
-{
- return m_shareram[offset + (m_share_bank & 1) * 128];
-}
-WRITE8_MEMBER(pgm2_state::shareram_w)
-{
- m_shareram[offset + (m_share_bank & 1) * 128] = data;
-}
-
-
TIMER_DEVICE_CALLBACK_MEMBER(pgm2_state::igs_interrupt2)
{
- m_arm_aic->set_irq(0x46);
-}
-
-// "MPU" MCU HLE starts here
-// command delays are far from correct, might not work in other games
-// command results probably incorrect (except for explicit checked bytes)
-void pgm2_state::mcu_command(address_space &space, bool is_command)
-{
- uint8_t cmd = m_mcu_regs[0] & 0xff;
- // if (is_command && cmd != 0xf6)
- // logerror("MCU command %08x %08x\n", m_mcu_regs[0], m_mcu_regs[1]);
-
- if (is_command)
- {
- m_mcu_last_cmd = cmd;
- uint8_t status = 0xf7; // "command accepted" status
- int delay = 1;
-
- uint8_t arg1 = m_mcu_regs[0] >> 8;
- uint8_t arg2 = m_mcu_regs[0] >> 16;
- uint8_t arg3 = m_mcu_regs[0] >> 24;
- switch (cmd)
- {
- case 0xf6: // get result
- m_mcu_regs[3] = m_mcu_result0;
- m_mcu_regs[4] = m_mcu_result1;
- m_mcu_last_cmd = 0;
- break;
- case 0xe0: // command port test
- m_mcu_result0 = m_mcu_regs[0];
- m_mcu_result1 = m_mcu_regs[1];
- delay = 30; // such quite long delay is needed for debug codes check routine
- break;
- case 0xe1: // shared ram access (unimplemented)
- {
- // MCU access to RAM shared at 0x30100000, 2x banks, in the same time CPU and MCU access different banks
- uint8_t mode = m_mcu_regs[0] >> 16; // 0 - ???, 1 - read, 2 - write
- uint8_t data = m_mcu_regs[0] >> 24;
- if (mode == 2)
- {
- // where is offset ? so far assume this command fill whole page
- memset(&m_shareram[(~m_share_bank & 1) * 128], data, 128);
- }
- m_mcu_result0 = cmd;
- m_mcu_result1 = 0;
- }
- break;
- // C0-C9 commands is IC Card RW comms
- case 0xc0: // insert card or/and check card presence. result: F7 - ok, F4 - no card
- if (m_memcard[arg1 & 3]->present() == -1)
- status = 0xf4;
- m_mcu_result0 = cmd;
- break;
- case 0xc1: // check ready/busy ?
- if (m_memcard[arg1 & 3]->present() == -1)
- status = 0xf4;
- m_mcu_result0 = cmd;
- break;
- case 0xc2: // read data to shared ram
- for (int i = 0; i < arg3; i++)
- {
- if (m_memcard[arg1 & 3]->present() != -1)
- m_shareram[i + (~m_share_bank & 1) * 128] = m_memcard[arg1 & 3]->read(space, arg2 + i);
- else
- status = 0xf4;
- }
- m_mcu_result0 = cmd;
- break;
- case 0xc3: // save data from shared ram
- for (int i = 0; i < arg3; i++)
- {
- if (m_memcard[arg1 & 3]->present() != -1)
- m_memcard[arg1 & 3]->write(space, arg2 + i, m_shareram[i + (~m_share_bank & 1) * 128]);
- else
- status = 0xf4;
- }
- m_mcu_result0 = cmd;
- break;
- case 0xc4: // presumable read security mem (password only?)
- if (m_memcard[arg1 & 3]->present() != -1)
- {
- m_mcu_result1 = m_memcard[arg1 & 3]->read_sec(space, 1) |
- (m_memcard[arg1 & 3]->read_sec(space, 2) << 8) |
- (m_memcard[arg1 & 3]->read_sec(space, 3) << 16);
- }
- else
- status = 0xf4;
- m_mcu_result0 = cmd;
- break;
- case 0xc5: // write security mem
- if (m_memcard[arg1 & 3]->present() != -1)
- m_memcard[arg1 & 3]->write_sec(space, arg2 & 3, arg3);
- else
- status = 0xf4;
- m_mcu_result0 = cmd;
- break;
- case 0xc6: // presumable write protection mem
- if (m_memcard[arg1 & 3]->present() != -1)
- m_memcard[arg1 & 3]->write_prot(space, arg2 & 3, arg3);
- else
- status = 0xf4;
- m_mcu_result0 = cmd;
- break;
- case 0xc7: // read protection mem
- if (m_memcard[arg1 & 3]->present() != -1)
- {
- m_mcu_result1 = m_memcard[arg1 & 3]->read_prot(space, 0) |
- (m_memcard[arg1 & 3]->read_prot(space, 1) << 8) |
- (m_memcard[arg1 & 3]->read_prot(space, 2) << 16) |
- (m_memcard[arg1 & 3]->read_prot(space, 3) << 24);
- }
- else
- status = 0xf4;
- m_mcu_result0 = cmd;
- break;
- case 0xc8: // write data mem
- if (m_memcard[arg1 & 3]->present() != -1)
- m_memcard[arg1 & 3]->write(space, arg2, arg3);
- else
- status = 0xf4;
- m_mcu_result0 = cmd;
- break;
- case 0xc9: // card authentication
- if (m_memcard[arg1 & 3]->present() != -1)
- m_memcard[arg1 & 3]->auth(arg2, arg3, m_mcu_regs[1] & 0xff);
- else
- status = 0xf4;
- m_mcu_result0 = cmd;
- break;
- default:
- logerror("MCU unknown command %08x %08x\n", m_mcu_regs[0], m_mcu_regs[1]);
- status = 0xf4; // error
- break;
- }
- m_mcu_regs[3] = (m_mcu_regs[3] & 0xff00ffff) | (status << 16);
- m_mcu_timer->adjust(attotime::from_msec(delay));
- }
- else // next step
- {
- if (m_mcu_last_cmd)
- {
- m_mcu_regs[3] = (m_mcu_regs[3] & 0xff00ffff) | 0x00F20000; // set "command done and return data" status
- m_mcu_timer->adjust(attotime::from_usec(100));
- m_mcu_last_cmd = 0;
- }
- }
-}
-
-READ32_MEMBER(pgm2_state::mcu_r)
-{
- return m_mcu_regs[(offset >> 15) & 7];
-}
+ int scanline = param;
-WRITE32_MEMBER(pgm2_state::mcu_w)
-{
- int reg = (offset >> 15) & 7;
- COMBINE_DATA(&m_mcu_regs[reg]);
-
- if (reg == 2 && m_mcu_regs[2]) // irq to mcu
- mcu_command(space, true);
- if (reg == 5 && m_mcu_regs[5]) // ack to mcu (written at the end of irq handler routine)
- mcu_command(space, false);
+ if(scanline == 0)
+ m_arm_aic->set_irq(0x46);
}
-WRITE16_MEMBER(pgm2_state::unk30120014_w)
-{
- if (offset == 0)
- {
- // 0/1 toggles (maybe sprite dma triggers?)
- }
- else
- {
- // interesting data
- //printf("unk30120014_w %d %04x\n", offset, data);
- }
-}
-
-WRITE16_MEMBER(pgm2_state::unk30120018_w)
-{
- if (offset == 0)
- {
- // writes 1 (maybe sprite enable)
- }
- else
- {
- // writes 0 (rarely)
- //printf("unk30120018_w %d %04x\n", offset, data);
- }
-}
-
-
static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32, pgm2_state )
AM_RANGE(0x00000000, 0x00003fff) AM_ROM //AM_REGION("user1", 0x00000) // internal ROM
AM_RANGE(0x02000000, 0x0200ffff) AM_RAM AM_SHARE("sram") // 'battery ram' (in CPU?)
- AM_RANGE(0x03600000, 0x036bffff) AM_READWRITE(mcu_r, mcu_w)
+ // could be the card reader, looks a bit like a standard IGS MCU comms protocol going on here
+ AM_RANGE(0x03600000, 0x03600003) AM_WRITENOP
+ AM_RANGE(0x03620000, 0x03620003) AM_WRITENOP
+ AM_RANGE(0x03640000, 0x03640003) AM_WRITENOP
+ AM_RANGE(0x03660000, 0x03660003) AM_READ_PORT("UNK1")
+ AM_RANGE(0x03680000, 0x03680003) AM_READ_PORT("UNK2")
+ AM_RANGE(0x036a0000, 0x036a0003) AM_WRITENOP
AM_RANGE(0x03900000, 0x03900003) AM_READ_PORT("INPUTS0")
AM_RANGE(0x03a00000, 0x03a00003) AM_READ_PORT("INPUTS1")
@@ -379,35 +115,37 @@ static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32, pgm2_state )
what is the real size? */
AM_RANGE(0x300e0000, 0x300e03ff) AM_RAM AM_SHARE("lineram") AM_MIRROR(0x000fc00)
- AM_RANGE(0x30100000, 0x301000ff) AM_READWRITE8(shareram_r, shareram_w, 0x00ff00ff)
+ AM_RANGE(0x30100000, 0x301000ff) AM_RAM // unknown mask 00ff00ff, seems to be banked with 0x30120030 too?
AM_RANGE(0x30120000, 0x30120003) AM_RAM AM_SHARE("bgscroll") // scroll
- AM_RANGE(0x30120008, 0x3012000b) AM_RAM AM_SHARE("fgscroll")
- AM_RANGE(0x3012000c, 0x3012000f) AM_RAM AM_SHARE("vidmode")
- AM_RANGE(0x30120014, 0x30120017) AM_WRITE16(unk30120014_w, 0xffffffff)
- AM_RANGE(0x30120018, 0x3012001b) AM_WRITE16(unk30120018_w, 0xffffffff)
- AM_RANGE(0x30120030, 0x30120033) AM_WRITE16(share_bank_w, 0xffff0000)
- AM_RANGE(0x30120038, 0x3012003b) AM_WRITE(sprite_encryption_w)
// there are other 0x301200xx regs
AM_RANGE(0x40000000, 0x40000003) AM_DEVREADWRITE8("ymz774", ymz774_device, read, write, 0xffffffff)
// internal to IGS036? - various other writes down here on startup too - could be other standard ATMEL peripherals like the ARM_AIC mixed with custom bits
AM_RANGE(0xffffec00, 0xffffec5f) AM_RAM
- AM_RANGE(0xfffffc00, 0xfffffcff) AM_READWRITE8(encryption_r,encryption_w, 0xffffffff) // confirmed as encryption table for main program rom (see code at 3950)
+ AM_RANGE(0xfffffc00, 0xfffffcff) AM_RAM // confirmed as encryption table for main program rom (see code at 3950)
AM_RANGE(0xfffff000, 0xfffff14b) AM_DEVICE("arm_aic", arm_aic_device, regs_map)
AM_RANGE(0xfffff430, 0xfffff433) AM_WRITENOP // often
AM_RANGE(0xfffff434, 0xfffff437) AM_WRITENOP // often
- AM_RANGE(0xfffffd28, 0xfffffd2b) AM_READ(rtc_r)
+ AM_RANGE(0xfffffd28, 0xfffffd2b) AM_READNOP // often
- AM_RANGE(0xfffffa08, 0xfffffa0b) AM_WRITE(encryption_do_w) // after uploading encryption? table might actually send it or enable external ROM? when read bits0-1 is ROM board status (0 if OK)
+// AM_RANGE(0xfffffa08, 0xfffffa0b) AM_WRITE(table_done_w) // after uploading encryption? table might actually send it or enable external ROM?
AM_RANGE(0xfffffa0c, 0xfffffa0f) AM_READ(unk_startup_r)
ADDRESS_MAP_END
static INPUT_PORTS_START( pgm2 )
+// probably not inputs
+ PORT_START("UNK1")
+ PORT_BIT( 0xffffffff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+// probably not inputs
+ PORT_START("UNK2")
+ PORT_BIT( 0xffffffff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
PORT_START("INPUTS0")
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
@@ -487,7 +225,7 @@ static INPUT_PORTS_START( pgm2 )
PORT_DIPNAME( 0x40000000, 0x40000000, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:7")
PORT_DIPSETTING( 0x40000000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
- PORT_DIPNAME( 0x80000000, 0x80000000, "Debug" ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPNAME( 0x80000000, 0x80000000, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:8")
PORT_DIPSETTING( 0x80000000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
INPUT_PORTS_END
@@ -502,24 +240,10 @@ WRITE_LINE_MEMBER(pgm2_state::irq)
void pgm2_state::machine_start()
{
- save_item(NAME(m_encryption_table));
- save_item(NAME(m_has_decrypted));
- save_item(NAME(m_spritekey));
- save_item(NAME(m_realspritekey));
- save_item(NAME(m_mcu_regs));
- save_item(NAME(m_mcu_result0));
- save_item(NAME(m_mcu_result1));
- save_item(NAME(m_mcu_last_cmd));
- save_item(NAME(m_shareram));
- save_item(NAME(m_share_bank));
}
void pgm2_state::machine_reset()
{
- m_spritekey = 0;
- m_realspritekey = 0;
- m_mcu_last_cmd = 0;
- m_share_bank = 0;
}
static const gfx_layout tiles8x8_layout =
@@ -562,7 +286,7 @@ static MACHINE_CONFIG_START( pgm2 )
MCFG_CPU_PROGRAM_MAP(pgm2_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", pgm2_state, igs_interrupt)
- MCFG_TIMER_DRIVER_ADD("mcu_timer", pgm2_state, igs_interrupt2)
+ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", pgm2_state, igs_interrupt2, "screen", 0, 1)
MCFG_ARM_AIC_ADD("arm_aic")
MCFG_IRQ_LINE_CB(WRITELINE(pgm2_state, irq))
@@ -595,20 +319,8 @@ static MACHINE_CONFIG_START( pgm2 )
MCFG_YMZ774_ADD("ymz774", 16384000) // is clock correct ?
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-
- MCFG_PGM2_MEMCARD_ADD("memcard_p1")
- MCFG_PGM2_MEMCARD_ADD("memcard_p2")
- MCFG_PGM2_MEMCARD_ADD("memcard_p3")
- MCFG_PGM2_MEMCARD_ADD("memcard_p4")
-MACHINE_CONFIG_END
-
-// not strictly needed as the video code supports changing on the fly, but makes recording easier etc.
-static MACHINE_CONFIG_DERIVED( pgm2_lores, pgm2 )
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
MACHINE_CONFIG_END
-
/* using macros for the video / sound roms because the locations never change between sets, and
we're going to have a LOT of clones to cover all the internal rom regions and external rom revision
combinations, so it keeps things readable */
@@ -637,79 +349,38 @@ MACHINE_CONFIG_END
ROM_REGION( 0x10000, "sram", 0 ) \
ROM_LOAD( "xyj2_nvram", 0x00000000, 0x10000, CRC(ccccc71c) SHA1(585b5ccbf89dd28d8532da785d7c8af12f31c6d6) )
-/*
- External program revisions are CONFIRMED to be the same between regions, even if the label changes (localized game title + country specific extension code)
-
- Confirmed country codes used on labels
- FA = Oversea
- CN = China
- JP = Japan
- TW = Taiwan
-
-*/
-
-#define ORLEG2_PROGRAM_104(prefix, extension) \
+#define ORLEG2_PROGRAM_104 \
ROM_REGION( 0x1000000, "user1", 0 ) \
- ROM_LOAD( #prefix "_v104" #extension ".u7", 0x000000, 0x800000, CRC(7c24a4f5) SHA1(3cd9f9264ef2aad0869afdf096e88eb8d74b2570) )
+ ROM_LOAD( "xyj2_v104cn.u7", 0x00000000, 0x0800000, CRC(7c24a4f5) SHA1(3cd9f9264ef2aad0869afdf096e88eb8d74b2570) )
-#define ORLEG2_PROGRAM_103(prefix, extension) \
+#define ORLEG2_PROGRAM_103 \
ROM_REGION( 0x1000000, "user1", 0 ) \
- ROM_LOAD( #prefix "_v103" #extension ".u7", 0x000000, 0x800000, CRC(21c1fae8) SHA1(36eeb7a5e8dc8ee7c834f3ff1173c28cf6c2f1a3) )
+ ROM_LOAD( "xyj2_v103cn.u7", 0x000000, 0x800000, CRC(21c1fae8) SHA1(36eeb7a5e8dc8ee7c834f3ff1173c28cf6c2f1a3) )
-#define ORLEG2_PROGRAM_101(prefix, extension) \
+#define ORLEG2_PROGRAM_101 \
ROM_REGION( 0x1000000, "user1", 0 ) \
- ROM_LOAD( #prefix "_v101" #extension ".u7", 0x000000, 0x800000, CRC(45805b53) SHA1(f2a8399c821b75fadc53e914f6f318707e70787c) )
-
-/*
- Internal ROMs for CHINA and OVERSEA are confirmed to differ by just the region byte, other regions not yet verified.
- label is a localized version of the game title and the country code (see above)
- For OVERSEA this is "O/L2", but we omit the / due to naming rules
- For the CHINA version this uses the Chinese characters
-*/
+ ROM_LOAD( "xyj2_v101cn.u7", 0x000000, 0x800000, CRC(45805b53) SHA1(f2a8399c821b75fadc53e914f6f318707e70787c) )
#define ORLEG2_INTERNAL_CHINA \
ROM_REGION( 0x04000, "maincpu", 0 ) \
- ROM_LOAD( "xyj2_cn.igs036", 0x00000000, 0x0004000, CRC(bcce7641) SHA1(c3b5cf6e9f6eae09b6785314777a52b34c3c7657) ) \
- ROM_REGION( 0x108, "default_card", 0 ) \
- ROM_LOAD( "blank_orleg2_china_card.pg2", 0x000, 0x108, CRC(dc29556f) SHA1(2335cc7af25d4dd9763c6944d3f0eb50276de80a) )
-
-#define ORLEG2_INTERNAL_OVERSEAS \
- ROM_REGION( 0x04000, "maincpu", 0 ) \
- ROM_LOAD( "ol2_fa.igs036", 0x00000000, 0x0004000, CRC(cc4d398a) SHA1(c50bcc81f02cd5aa8ad157d73209dc53bdedc023) )
+ /* Offset 3cb8 of the internal rom controls the region, however only China is dumped at the moment. Overseas (English) external ROM is confirmed to match (with FA rom label extensions) but th Internal rom might differ by more than the region byte so needs dumping */ \
+ ROM_LOAD( "xyj2_igs036_china.rom", 0x00000000, 0x0004000, CRC(bcce7641) SHA1(c3b5cf6e9f6eae09b6785314777a52b34c3c7657) )
ROM_START( orleg2 )
- ORLEG2_INTERNAL_OVERSEAS
- ORLEG2_PROGRAM_104(ol2,fa)
- ORLEG2_VIDEO_SOUND_ROMS
-ROM_END
-
-ROM_START( orleg2_103 )
- ORLEG2_INTERNAL_OVERSEAS
- ORLEG2_PROGRAM_103(ol2,fa)
- ORLEG2_VIDEO_SOUND_ROMS
-ROM_END
-
-ROM_START( orleg2_101 )
- ORLEG2_INTERNAL_OVERSEAS
- ORLEG2_PROGRAM_101(ol2,fa)
- ORLEG2_VIDEO_SOUND_ROMS
-ROM_END
-
-ROM_START( orleg2_104cn )
ORLEG2_INTERNAL_CHINA
- ORLEG2_PROGRAM_104(xyj2,cn)
+ ORLEG2_PROGRAM_104
ORLEG2_VIDEO_SOUND_ROMS
ROM_END
-ROM_START( orleg2_103cn )
+ROM_START( orleg2_103 )
ORLEG2_INTERNAL_CHINA
- ORLEG2_PROGRAM_103(xyj2,cn)
+ ORLEG2_PROGRAM_103
ORLEG2_VIDEO_SOUND_ROMS
ROM_END
-ROM_START( orleg2_101cn )
+ROM_START( orleg2_101 )
ORLEG2_INTERNAL_CHINA
- ORLEG2_PROGRAM_101(xyj2,cn)
+ ORLEG2_PROGRAM_101
ORLEG2_VIDEO_SOUND_ROMS
ROM_END
@@ -751,10 +422,7 @@ ROM_END
#define KOV2NL_INTERNAL_CHINA \
ROM_REGION( 0x04000, "maincpu", 0 ) \
- ROM_LOAD( "gsyx_igs036_china.rom", 0x00000000, 0x0004000, CRC(e09fe4ce) SHA1(c0cac64ef8727cbe79d503ec4df66ddb6f2c925e) ) \
- ROM_REGION( 0x108, "default_card", 0 ) \
- ROM_LOAD( "blank_kov2nl_china_card.pg2", 0x000, 0x108, CRC(02842ae8) SHA1(a6cda633b09a706039a79b73db2c258094826f85) )
-
+ ROM_LOAD( "gsyx_igs036_china.rom", 0x00000000, 0x0004000, CRC(e09fe4ce) SHA1(c0cac64ef8727cbe79d503ec4df66ddb6f2c925e) )
ROM_START( kov2nl )
KOV2NL_INTERNAL_CHINA
@@ -837,9 +505,6 @@ ROM_START( kov3 )
ROM_REGION( 0x04000, "maincpu", 0 )
ROM_LOAD( "kov3_igs036.rom", 0x00000000, 0x0004000, NO_DUMP ) // CRC(c7d33764) SHA1(5cd48f876e637d60391d39ac6e40bf243300cc75)
- ROM_REGION( 0x108, "default_card", 0 )
- ROM_LOAD( "blank_kov3_china_card.pg2", 0x000, 0x108, CRC(bd5a968f) SHA1(b9045eb70e02afda7810431c592208053d863980) )
-
ROM_REGION( 0x1000000, "user1", 0 )
ROM_LOAD( "kov3_v104cn_raw.bin", 0x00000000, 0x0800000, CRC(1b5cbd24) SHA1(6471d4842a08f404420dea2bd1c8b88798c80fd5) )
@@ -880,7 +545,7 @@ all others: SPANSION S99-50070
ROM_REGION( 0x200000, "tiles", ROMREGION_ERASEFF ) \
ROM_LOAD( "ig-d3_text.u1", 0x00000000, 0x0200000, CRC(9a0ea82e) SHA1(7844fd7e46c3fbb2164060f160da528254fd177e) ) \
\
- ROM_REGION( 0x2000000, "bgtile", ROMREGION_ERASE00 ) \
+ ROM_REGION( 0x2000000, "bgtile", ROMREGION_ERASEFF ) \
/* bgl/bgh unpopulated (no background tilemap) */ \
\
ROM_REGION( 0x08000000, "sprites_mask", 0 ) /* 1bpp sprite mask data */ \
@@ -897,15 +562,11 @@ all others: SPANSION S99-50070
\
ROM_REGION( 0x08000000, "ymz774", ROMREGION_ERASEFF ) /* ymz770 */ \
ROM_LOAD16_WORD_SWAP( "ig-d3_wave0.u12", 0x00000000, 0x4000000, CRC(edf2332d) SHA1(7e01c7e03e515814d7de117c265c3668d32842fa) ) \
- ROM_LOAD16_WORD_SWAP( "ig-d3_wave1.u11", 0x04000000, 0x4000000, CRC(62321b20) SHA1(a388c8a2489430fbe92fb26b3ef81c66ce97f318) ) \
- \
- ROM_REGION( 0x10000, "sram", 0 ) \
- ROM_LOAD( "kof98umh_sram", 0x00000000, 0x10000, CRC(60460ed9) SHA1(55cd8de37cee04ff7ad940fb52f8fb8db042c26e) )
-
+ ROM_LOAD16_WORD_SWAP( "ig-d3_wave1.u11", 0x04000000, 0x4000000, CRC(62321b20) SHA1(a388c8a2489430fbe92fb26b3ef81c66ce97f318) )
ROM_START( kof98umh )
ROM_REGION( 0x04000, "maincpu", 0 )
- ROM_LOAD( "kof98umh_internal_rom.bin", 0x00000000, 0x0004000, CRC(3ed2e50f) SHA1(35310045d375d9dda36c325e35257123a7b5b8c7) )
+ ROM_LOAD( "kof98uhm_igs036.rom", 0x00000000, 0x0004000, NO_DUMP ) // CRC(3ed2e50f) SHA1(35310045d375d9dda36c325e35257123a7b5b8c7)
ROM_REGION( 0x1000000, "user1", 0 )
ROM_LOAD( "kof98umh_v100cn.u4", 0x00000000, 0x1000000, CRC(2ea91e3b) SHA1(5a586bb99cc4f1b02e0db462d5aff721512e0640) )
@@ -934,7 +595,7 @@ static void iga_u16_decode(uint16_t *rom, int len, int ixor)
if ( (i>>1) & 0x000400) x ^= 0x8000;
rom[i] ^= x;
- rom[i] = bitswap<16>(rom[i], 8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7);
+ rom[i] = BITSWAP16(rom[i], 8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7);
}
}
@@ -959,7 +620,7 @@ static void iga_u12_decode(uint16_t* rom, int len, int ixor)
if ( (i>>1) & 0x000400) x ^= 0x0000;
rom[i] ^= x;
- rom[i] = bitswap<16>(rom[i], 8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7);
+ rom[i] = BITSWAP16(rom[i], 8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7);
}
}
@@ -969,7 +630,7 @@ static void sprite_colour_decode(uint16_t* rom, int len)
for (i = 0; i < len / 2; i++)
{
- rom[i] = bitswap<16>(rom[i], 15, 14, /* unused - 6bpp */
+ rom[i] = BITSWAP16(rom[i], 15, 14, /* unused - 6bpp */
13, 12, 11,
5, 4, 3,
7, 6, /* unused - 6bpp */
@@ -1013,50 +674,69 @@ READ32_MEMBER(pgm2_state::kov2nl_speedup_r)
return m_mainram[0x20470 / 4];
}
-READ32_MEMBER(pgm2_state::kof98umh_speedup_r)
+
+
+DRIVER_INIT_MEMBER(pgm2_state,orleg2)
{
- int pc = space.device().safe_pc();
+ uint16_t *src = (uint16_t *)memregion("sprites_mask")->base();
+
+ iga_u12_decode(src, 0x2000000, 0x4761);
+ iga_u16_decode(src, 0x2000000, 0xc79f);
+
+ src = (uint16_t *)memregion("sprites_colour")->base();
+ sprite_colour_decode(src, 0x4000000);
+
+ igs036_decryptor decrypter(orleg2_key);
+ decrypter.decrypter_rom(memregion("user1"));
+
+ machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x20020114, 0x20020117, read32_delegate(FUNC(pgm2_state::orleg2_speedup_r),this));
+
+ /* HACK!
+ patch out an ingame assert that ends up being triggered after the 5 element / fire chariot boss due to an invalid value in R3
+ todo: why does this happen? ARM core bug? is patching out the assert actually safe? game continues as normal like this, but there could be memory corruption.
+ */
+ uint16_t* rom;
+ rom = (uint16_t*)memregion("user1")->base();
+ int hackaddress = -1;
- if (pc == 0x100028f6)
+ if (rom[0x12620 / 2] == 0xd301) // 104 / 103
{
- if ((m_mainram[0x00060 / 4] == 0x00) && (m_mainram[0x00064 / 4] == 0x00))
- space.device().execute().spin_until_interrupt();
+ hackaddress = 0x12620; // RAM: 10012620
+ }
+ else if (rom[0x1257C / 2] == 0xd301) // 101
+ {
+ hackaddress = 0x1257C;
+ }
+
+ if (hackaddress != -1)
+ {
+ rom[(hackaddress + 2) / 2] = 0x2300;
+ rom[(hackaddress + 4) / 2] = 0x2300;
+ rom = (uint16_t*)memregion("maincpu")->base(); // BEQ -> BNE for checksum
+ rom[0x39f2 / 2] = 0x1a00;
+
+ // set a breakpoint on 0x10000000 + hackaddress to see when it triggers
}
- /*
else
{
- printf("pc is %08x\n", pc);
+ fatalerror("no patch for this set \n");
}
- */
- return m_mainram[0x00060 / 4];
}
-
-// for games with the internal ROMs fully dumped that provide the sprite key and program rom key at runtime
-void pgm2_state::common_encryption_init()
+DRIVER_INIT_MEMBER(pgm2_state,kov2nl)
{
uint16_t *src = (uint16_t *)memregion("sprites_mask")->base();
- iga_u12_decode(src, memregion("sprites_mask")->bytes(), 0x0000);
- iga_u16_decode(src, memregion("sprites_mask")->bytes(), 0x0000);
- m_sprite_predecrypted = 0;
+ iga_u12_decode(src, 0x2000000, 0xa193);
+ iga_u16_decode(src, 0x2000000, 0xb780);
src = (uint16_t *)memregion("sprites_colour")->base();
- sprite_colour_decode(src, memregion("sprites_colour")->bytes());
+ sprite_colour_decode(src, 0x4000000);
- m_has_decrypted = 0;
-}
-
-DRIVER_INIT_MEMBER(pgm2_state,orleg2)
-{
- common_encryption_init();
- machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x20020114, 0x20020117, read32_delegate(FUNC(pgm2_state::orleg2_speedup_r),this));
-}
+ igs036_decryptor decrypter(kov2_key);
+ decrypter.decrypter_rom(memregion("user1"));
-DRIVER_INIT_MEMBER(pgm2_state,kov2nl)
-{
- common_encryption_init();
machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x20020470, 0x20020473, read32_delegate(FUNC(pgm2_state::kov2nl_speedup_r), this));
}
@@ -1066,14 +746,12 @@ DRIVER_INIT_MEMBER(pgm2_state,ddpdojh)
iga_u12_decode(src, 0x1000000, 0x1e96);
iga_u16_decode(src, 0x1000000, 0x869c);
- m_sprite_predecrypted = 1;
src = (uint16_t *)memregion("sprites_colour")->base();
sprite_colour_decode(src, 0x2000000);
igs036_decryptor decrypter(ddpdoj_key);
decrypter.decrypter_rom(memregion("user1"));
- m_has_decrypted = 1;
}
DRIVER_INIT_MEMBER(pgm2_state,kov3)
@@ -1082,14 +760,12 @@ DRIVER_INIT_MEMBER(pgm2_state,kov3)
iga_u12_decode(src, 0x4000000, 0x956d);
iga_u16_decode(src, 0x4000000, 0x3d17);
- m_sprite_predecrypted = 1;
src = (uint16_t *)memregion("sprites_colour")->base();
sprite_colour_decode(src, 0x8000000);
igs036_decryptor decrypter(kov3_key);
decrypter.decrypter_rom(memregion("user1"));
- m_has_decrypted = 1;
}
void pgm2_state::decrypt_kov3_module(uint32_t addrxor, uint16_t dataxor)
@@ -1125,29 +801,29 @@ DRIVER_INIT_MEMBER(pgm2_state, kov3_100)
DRIVER_INIT_MEMBER(pgm2_state,kof98umh)
{
- common_encryption_init();
- machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x20000060, 0x20000063, read32_delegate(FUNC(pgm2_state::kof98umh_speedup_r),this));
-}
-
+ uint16_t *src = (uint16_t *)memregion("sprites_mask")->base();
+ iga_u12_decode(src, 0x08000000, 0x1e96); // wrong
+ iga_u16_decode(src, 0x08000000, 0x869c); // wrong
+ src = (uint16_t *)memregion("sprites_colour")->base();
+ sprite_colour_decode(src, 0x20000000);
+ igs036_decryptor decrypter(kof98umh_key);
+ decrypter.decrypter_rom(memregion("user1"));
+}
/* PGM2 */
// Oriental Legend 2 - should be a V102 and V100 too
-GAME( 2007, orleg2, 0, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V104, Oversea)", 0 ) /* Overseas sets of OL2 do not use the card reader */
-GAME( 2007, orleg2_103, orleg2, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V103, Oversea)", 0 )
-GAME( 2007, orleg2_101, orleg2, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V101, Oversea)", 0 )
-
-GAME( 2007, orleg2_104cn, orleg2, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V104, China)", 0 )
-GAME( 2007, orleg2_103cn, orleg2, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V103, China)", 0 )
-GAME( 2007, orleg2_101cn, orleg2, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V101, China)", 0 )
+GAME( 2007, orleg2, 0, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V104, China)", MACHINE_NOT_WORKING )
+GAME( 2007, orleg2_103, orleg2, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V103, China)", MACHINE_NOT_WORKING )
+GAME( 2007, orleg2_101, orleg2, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V101, China)", MACHINE_NOT_WORKING )
// Knights of Valour 2 New Legend
-GAME( 2008, kov2nl, 0, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V302, China)", 0 )
-GAME( 2008, kov2nl_301, kov2nl, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V301, China)", 0 )
-GAME( 2008, kov2nl_300, kov2nl, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V300, China)", 0 ) // was dumped from a Taiwan board tho
+GAME( 2008, kov2nl, 0, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V302, China)", MACHINE_NOT_WORKING )
+GAME( 2008, kov2nl_301, kov2nl, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V301, China)", MACHINE_NOT_WORKING )
+GAME( 2008, kov2nl_300, kov2nl, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V300, China)", MACHINE_NOT_WORKING ) // was dumped from a Taiwan board tho
// Dodonpachi Daioujou Tamashii - should be a V200 too
GAME( 2010, ddpdojh, 0, pgm2, pgm2, pgm2_state, ddpdojh, ROT270, "IGS", "Dodonpachi Daioujou Tamashii (V201, China)", MACHINE_NOT_WORKING )
@@ -1158,7 +834,7 @@ GAME( 2011, kov3_102, kov3, pgm2, pgm2, pgm2_state, kov3_102, ROT0,
GAME( 2011, kov3_100, kov3, pgm2, pgm2, pgm2_state, kov3_100, ROT0, "IGS", "Knights of Valour 3 (V100, China)", MACHINE_NOT_WORKING )
// King of Fighters '98: Ultimate Match Hero
-GAME( 2009, kof98umh, 0, pgm2_lores, pgm2, pgm2_state, kof98umh, ROT0, "IGS / SNK Playmore / New Channel", "The King of Fighters '98: Ultimate Match HERO (China, V100, 09-08-23)", 0 )
+GAME( 2009, kof98umh, 0, pgm2, pgm2, pgm2_state, kof98umh, ROT0, "IGS / SNK Playmore / NewChannel", "The King of Fighters '98: Ultimate Match HERO (China, V100, 09-08-23)", MACHINE_NOT_WORKING )
// Jigsaw World Arena
diff --git a/src/mame/drivers/piggypas.cpp b/src/mame/drivers/piggypas.cpp
index ff2468638ba..121150f25a7 100644
--- a/src/mame/drivers/piggypas.cpp
+++ b/src/mame/drivers/piggypas.cpp
@@ -59,7 +59,7 @@ WRITE8_MEMBER(piggypas_state::ctrl_w)
WRITE8_MEMBER(piggypas_state::mcs51_tx_callback)
{
// Serial output driver is UCN5833A
- output().set_digit_value(m_digit_idx++, bitswap<8>(data,7,6,4,3,2,1,0,5) & 0x7f);
+ output().set_digit_value(m_digit_idx++, BITSWAP8(data,7,6,4,3,2,1,0,5) & 0x7f);
}
static ADDRESS_MAP_START( piggypas_map, AS_PROGRAM, 8, piggypas_state )
diff --git a/src/mame/drivers/pingpong.cpp b/src/mame/drivers/pingpong.cpp
index 0393f1f0105..d8e1ee47aea 100644
--- a/src/mame/drivers/pingpong.cpp
+++ b/src/mame/drivers/pingpong.cpp
@@ -568,7 +568,7 @@ DRIVER_INIT_MEMBER(pingpong_state,merlinmm)
/* decrypt program code */
for( i = 0; i < 0x4000; i++ )
- ROM[i] = bitswap<8>(ROM[i],0,1,2,3,4,5,6,7);
+ ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7);
}
DRIVER_INIT_MEMBER(pingpong_state,cashquiz)
@@ -579,12 +579,12 @@ DRIVER_INIT_MEMBER(pingpong_state,cashquiz)
/* decrypt program code */
ROM = memregion("maincpu")->base();
for( i = 0; i < 0x4000; i++ )
- ROM[i] = bitswap<8>(ROM[i],0,1,2,3,4,5,6,7);
+ ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7);
/* decrypt questions */
ROM = memregion("user1")->base();
for( i = 0; i < 0x40000; i++ )
- ROM[i] = bitswap<8>(ROM[i],0,1,2,3,4,5,6,7);
+ ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7);
/* questions banking handlers */
m_maincpu->space(AS_PROGRAM).install_write_handler(0x4000, 0x4000, write8_delegate(FUNC(pingpong_state::cashquiz_question_bank_high_w),this));
diff --git a/src/mame/drivers/pirates.cpp b/src/mame/drivers/pirates.cpp
index 0fa3ca0d9fe..54f83d68175 100644
--- a/src/mame/drivers/pirates.cpp
+++ b/src/mame/drivers/pirates.cpp
@@ -365,11 +365,11 @@ void pirates_state::decrypt_68k()
int adrl, adrr;
uint8_t vl, vr;
- adrl = bitswap<24>(i,23,22,21,20,19,18,4,8,3,14,2,15,17,0,9,13,10,5,16,7,12,6,1,11);
- vl = bitswap<8>(buf[adrl], 4,2,7,1,6,5,0,3);
+ adrl = BITSWAP24(i,23,22,21,20,19,18,4,8,3,14,2,15,17,0,9,13,10,5,16,7,12,6,1,11);
+ vl = BITSWAP8(buf[adrl], 4,2,7,1,6,5,0,3);
- adrr = bitswap<24>(i,23,22,21,20,19,18,4,10,1,11,12,5,9,17,14,0,13,6,15,8,3,16,7,2);
- vr = bitswap<8>(buf[adrr]>>8, 1,4,7,0,3,5,6,2);
+ adrr = BITSWAP24(i,23,22,21,20,19,18,4,10,1,11,12,5,9,17,14,0,13,6,15,8,3,16,7,2);
+ vr = BITSWAP8(buf[adrr]>>8, 1,4,7,0,3,5,6,2);
rom[i] = (vr<<8) | vl;
}
@@ -390,11 +390,11 @@ void pirates_state::decrypt_p()
for (i=0; i<rom_size/4; i++)
{
- int adr = bitswap<24>(i,23,22,21,20,19,18,10,2,5,9,7,13,16,14,11,4,1,6,12,17,3,0,15,8);
- rom[adr+0*(rom_size/4)] = bitswap<8>(buf[i+0*(rom_size/4)], 2,3,4,0,7,5,1,6);
- rom[adr+1*(rom_size/4)] = bitswap<8>(buf[i+1*(rom_size/4)], 4,2,7,1,6,5,0,3);
- rom[adr+2*(rom_size/4)] = bitswap<8>(buf[i+2*(rom_size/4)], 1,4,7,0,3,5,6,2);
- rom[adr+3*(rom_size/4)] = bitswap<8>(buf[i+3*(rom_size/4)], 2,3,4,0,7,5,1,6);
+ int adr = BITSWAP24(i,23,22,21,20,19,18,10,2,5,9,7,13,16,14,11,4,1,6,12,17,3,0,15,8);
+ rom[adr+0*(rom_size/4)] = BITSWAP8(buf[i+0*(rom_size/4)], 2,3,4,0,7,5,1,6);
+ rom[adr+1*(rom_size/4)] = BITSWAP8(buf[i+1*(rom_size/4)], 4,2,7,1,6,5,0,3);
+ rom[adr+2*(rom_size/4)] = BITSWAP8(buf[i+2*(rom_size/4)], 1,4,7,0,3,5,6,2);
+ rom[adr+3*(rom_size/4)] = BITSWAP8(buf[i+3*(rom_size/4)], 2,3,4,0,7,5,1,6);
}
}
@@ -413,11 +413,11 @@ void pirates_state::decrypt_s()
for (i=0; i<rom_size/4; i++)
{
- int adr = bitswap<24>(i,23,22,21,20,19,18,17,5,12,14,8,3,0,7,9,16,4,2,6,11,13,1,10,15);
- rom[adr+0*(rom_size/4)] = bitswap<8>(buf[i+0*(rom_size/4)], 4,2,7,1,6,5,0,3);
- rom[adr+1*(rom_size/4)] = bitswap<8>(buf[i+1*(rom_size/4)], 1,4,7,0,3,5,6,2);
- rom[adr+2*(rom_size/4)] = bitswap<8>(buf[i+2*(rom_size/4)], 2,3,4,0,7,5,1,6);
- rom[adr+3*(rom_size/4)] = bitswap<8>(buf[i+3*(rom_size/4)], 4,2,7,1,6,5,0,3);
+ int adr = BITSWAP24(i,23,22,21,20,19,18,17,5,12,14,8,3,0,7,9,16,4,2,6,11,13,1,10,15);
+ rom[adr+0*(rom_size/4)] = BITSWAP8(buf[i+0*(rom_size/4)], 4,2,7,1,6,5,0,3);
+ rom[adr+1*(rom_size/4)] = BITSWAP8(buf[i+1*(rom_size/4)], 1,4,7,0,3,5,6,2);
+ rom[adr+2*(rom_size/4)] = BITSWAP8(buf[i+2*(rom_size/4)], 2,3,4,0,7,5,1,6);
+ rom[adr+3*(rom_size/4)] = BITSWAP8(buf[i+3*(rom_size/4)], 4,2,7,1,6,5,0,3);
}
}
@@ -437,8 +437,8 @@ void pirates_state::decrypt_oki()
for (i=0; i<rom_size; i++)
{
- int adr = bitswap<24>(i,23,22,21,20,19,10,16,13,8,4,7,11,14,17,12,6,2,0,5,18,15,3,1,9);
- rom[adr] = bitswap<8>(buf[i], 2,3,4,0,7,5,1,6);
+ int adr = BITSWAP24(i,23,22,21,20,19,10,16,13,8,4,7,11,14,17,12,6,2,0,5,18,15,3,1,9);
+ rom[adr] = BITSWAP8(buf[i], 2,3,4,0,7,5,1,6);
}
}
diff --git a/src/mame/drivers/play_2.cpp b/src/mame/drivers/play_2.cpp
index a63f90002aa..e89ca5063db 100644
--- a/src/mame/drivers/play_2.cpp
+++ b/src/mame/drivers/play_2.cpp
@@ -474,8 +474,8 @@ ROM_START(zira)
ROM_LOAD("zira_u8.bin", 0x0000, 0x0800, CRC(53f8bf17) SHA1(5eb74f27bc65374a85dd44bbc8f6142488c226a2))
ROM_LOAD("zira_u9.bin", 0x0800, 0x0800, CRC(d50a2419) SHA1(81b157f579a433389506817b1b6e02afaa2cf0d5))
- ROM_REGION(0x800, "cop402", 0) // according to the schematic this is a 2716 with a size of 0x800; according to PinMAME it contains the same code twice
- ROM_LOAD("zira.snd", 0x0000, 0x0800, CRC(008cb743) SHA1(8e9677f08189638d669b265bb6943275a08ec8b4))
+ ROM_REGION(0x800, "cop402", 0) // according to the schematic this is a 2716 with a size of 0x800
+ ROM_LOAD("zira.snd", 0x0000, 0x0400, CRC(c8a54854) SHA1(6c0367dcb2a11f0478c44b4e2115c1cb1e8052f3))
ROM_END
/*-------------------------------------------------------------------
diff --git a/src/mame/drivers/playch10.cpp b/src/mame/drivers/playch10.cpp
index 3d7ae0183b1..2116729f35b 100644
--- a/src/mame/drivers/playch10.cpp
+++ b/src/mame/drivers/playch10.cpp
@@ -1677,7 +1677,7 @@ DRIVER_INIT_MEMBER(playch10_state,virus)
uint32_t len = memregion("rp5h01")->bytes();
for (int i = 0; i < len; i++)
{
- ROM[i] = bitswap<8>(ROM[i],0,1,2,3,4,5,6,7);
+ ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7);
ROM[i] ^= 0xff;
}
@@ -1691,7 +1691,7 @@ DRIVER_INIT_MEMBER(playch10_state,ttoon)
uint32_t len = memregion("rp5h01")->bytes();
for (int i = 0; i < len; i++)
{
- ROM[i] = bitswap<8>(ROM[i],0,1,2,3,4,5,6,7);
+ ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7);
ROM[i] ^= 0xff;
}
diff --git a/src/mame/drivers/playmark.cpp b/src/mame/drivers/playmark.cpp
index 7055e563d39..567965d00d1 100644
--- a/src/mame/drivers/playmark.cpp
+++ b/src/mame/drivers/playmark.cpp
@@ -65,8 +65,11 @@ TODO:
#include "cpu/m68000/m68000.h"
#include "cpu/pic16c5x/pic16c5x.h"
+#include "machine/eepromser.h"
#include "machine/nvram.h"
+#include "machine/ticket.h"
#include "screen.h"
+#include "sound/okim6295.h"
#include "speaker.h"
@@ -115,14 +118,14 @@ WRITE16_MEMBER(playmark_state::hotmind_coin_eeprom_w)
if ((m_dispenser_latch & 0x80) == 0) m_dispenser_latch = 0;
if (data & 0x10) {
m_dispenser_latch |= ((data & 0x10) | 0x80);
- m_token->motor_w(1);
+ machine().device<ticket_dispenser_device>("token")->write(space, 0, 0x80);
}
}
else {
m_dispenser_latch &= 0x7f;
- m_token->motor_w(BIT(m_dispenser_latch, 4));
+ machine().device<ticket_dispenser_device>("token")->write(space, 0, (m_dispenser_latch & 0x10) ? 0x80 : 0);
}
- m_ticket->motor_w(BIT(data, 3));
+ machine().device<ticket_dispenser_device>("ticket")->write(space, 0, (data & 0x08) ? 0x80 : 0);
machine().bookkeeping().coin_counter_w(0, data & 0x20); /* Coin In counter - transistor driven */
machine().bookkeeping().coin_counter_w(1, data & 0x40); /* Token/Ticket Out counter - transistor driven */
@@ -143,14 +146,14 @@ WRITE16_MEMBER(playmark_state::luckboomh_dispenser_w)
if ((m_dispenser_latch & 0x80) == 0) m_dispenser_latch = 0;
if (data & 0x10) {
m_dispenser_latch |= ((data & 0x10) | 0x80);
- m_token->motor_w(1);
+ machine().device<ticket_dispenser_device>("token")->write(space, 0, 0x80);
}
}
else {
m_dispenser_latch &= 0x7f;
- m_token->motor_w(BIT(m_dispenser_latch, 4));
+ machine().device<ticket_dispenser_device>("token")->write(space, 0, (m_dispenser_latch & 0x10) ? 0x80 : 0);
}
- m_ticket->motor_w(BIT(data, 3));
+ machine().device<ticket_dispenser_device>("ticket")->write(space, 0, (data & 0x08) ? 0x80 : 0);
machine().bookkeeping().coin_counter_w(0, data & 0x20); /* Coin In counter - transistor driven */
machine().bookkeeping().coin_counter_w(1, data & 0x40); /* Token/Ticket Out counter - transistor driven */
diff --git a/src/mame/drivers/pntnpuzl.cpp b/src/mame/drivers/pntnpuzl.cpp
index aaf8177a95a..a58618a2326 100644
--- a/src/mame/drivers/pntnpuzl.cpp
+++ b/src/mame/drivers/pntnpuzl.cpp
@@ -220,8 +220,8 @@ READ16_MEMBER(pntnpuzl_state::pntnpuzl_280014_r)
if (ioport("IN0")->read() & 0x10)
{
m_touchscr[0] = 0x1b;
- m_touchscr[2] = bitswap<8>(ioport("TOUCHX")->read(),0,1,2,3,4,5,6,7);
- m_touchscr[4] = bitswap<8>(ioport("TOUCHY")->read(),0,1,2,3,4,5,6,7);
+ m_touchscr[2] = BITSWAP8(ioport("TOUCHX")->read(),0,1,2,3,4,5,6,7);
+ m_touchscr[4] = BITSWAP8(ioport("TOUCHY")->read(),0,1,2,3,4,5,6,7);
}
else
m_touchscr[0] = 0;
diff --git a/src/mame/drivers/poly.cpp b/src/mame/drivers/poly.cpp
index 6a8adcc1bb5..eed42548906 100644
--- a/src/mame/drivers/poly.cpp
+++ b/src/mame/drivers/poly.cpp
@@ -152,7 +152,7 @@ WRITE8_MEMBER(poly_state::baud_rate_w)
static MACHINE_CONFIG_START( poly )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_12_0576MHz / 3) // nominally 4 MHz
+ MCFG_CPU_ADD("maincpu", M6809E, XTAL_12_0576MHz / 3)
MCFG_CPU_PROGRAM_MAP(poly_mem)
/* video hardware */
diff --git a/src/mame/drivers/poly880.cpp b/src/mame/drivers/poly880.cpp
index cddaf752477..d3297d0cd15 100644
--- a/src/mame/drivers/poly880.cpp
+++ b/src/mame/drivers/poly880.cpp
@@ -160,7 +160,7 @@ WRITE8_MEMBER( poly880_state::pio1_pa_w )
*/
- m_segment = bitswap<8>(data, 3, 4, 6, 0, 1, 2, 7, 5);
+ m_segment = BITSWAP8(data, 3, 4, 6, 0, 1, 2, 7, 5);
update_display();
}
diff --git a/src/mame/drivers/popeye.cpp b/src/mame/drivers/popeye.cpp
index cdbd3c35bf7..7b1acd6a166 100644
--- a/src/mame/drivers/popeye.cpp
+++ b/src/mame/drivers/popeye.cpp
@@ -760,7 +760,7 @@ DRIVER_INIT_MEMBER(popeye_state,skyskipr)
std::vector<uint8_t> buffer(len);
int i;
for (i = 0;i < len; i++)
- buffer[i] = bitswap<8>(rom[bitswap<16>(i,15,14,13,12,11,10,8,7,0,1,2,4,5,9,3,6) ^ 0xfc],3,4,2,5,1,6,0,7);
+ buffer[i] = BITSWAP8(rom[BITSWAP16(i,15,14,13,12,11,10,8,7,0,1,2,4,5,9,3,6) ^ 0xfc],3,4,2,5,1,6,0,7);
memcpy(rom,&buffer[0],len);
}
@@ -779,7 +779,7 @@ DRIVER_INIT_MEMBER(popeye_state,popeye)
std::vector<uint8_t> buffer(len);
int i;
for (i = 0;i < len; i++)
- buffer[i] = bitswap<8>(rom[bitswap<16>(i,15,14,13,12,11,10,8,7,6,3,9,5,4,2,1,0) ^ 0x3f],3,4,2,5,1,6,0,7);
+ buffer[i] = BITSWAP8(rom[BITSWAP16(i,15,14,13,12,11,10,8,7,6,3,9,5,4,2,1,0) ^ 0x3f],3,4,2,5,1,6,0,7);
memcpy(rom,&buffer[0],len);
}
diff --git a/src/mame/drivers/popobear.cpp b/src/mame/drivers/popobear.cpp
index 27983bdc3fa..ab897bf5ee7 100644
--- a/src/mame/drivers/popobear.cpp
+++ b/src/mame/drivers/popobear.cpp
@@ -139,7 +139,7 @@ WRITE16_MEMBER(popobear_state::vram_w)
COMBINE_DATA(&m_vram[offset]);
// the graphic data for the tiles is in a strange order, rearrange it so that we can use it as tiles..
- int swapped_offset = bitswap<32>(offset, /* unused bits */ 31,30,29,28,27,26,25,24,23,22,21,20,19, /* end unused bits */
+ int swapped_offset = BITSWAP32(offset, /* unused bits */ 31,30,29,28,27,26,25,24,23,22,21,20,19, /* end unused bits */
18,17,16,15,14,13,12,
diff --git a/src/mame/drivers/prodigy.cpp b/src/mame/drivers/prodigy.cpp
index 4658540ad4c..1b0c2e46808 100644
--- a/src/mame/drivers/prodigy.cpp
+++ b/src/mame/drivers/prodigy.cpp
@@ -11,6 +11,7 @@
- Sound
- Row/column LEDs
- Chess board sensors
+ - Support for SVG/CSS based browser UI
+-------------------------------------------------------------------------------------+
|LEDS--------------------------------------------+ +-----------------+ |
@@ -67,25 +68,12 @@
*******************************************************************************************/
#include "emu.h"
-#include "emuopts.h"
#include "cpu/m6502/m6502.h"
#include "machine/74145.h"
#include "machine/netlist.h"
#include "machine/nl_prodigy.h"
#include "machine/6522via.h"
-// TODO: Move all HTTPUI stuff global and generic
-#define HTTPUI 1
-
-#if HTTPUI
-#include <zlib.h>
-#include <iostream>
-#include <fstream>
-#include "rapidjson/include/rapidjson/document.h"
-#include "rapidjson/include/rapidjson/stringbuffer.h"
-#include "rapidjson/include/rapidjson/writer.h"
-#endif
-
// Generated artwork includes
#include "prodigy.lh"
@@ -96,10 +84,8 @@
#define LOG_CLK (1U << 5)
#define LOG_KBD (1U << 6)
#define LOG_AW (1U << 7)
-#define LOG_HTTP (1U << 8)
-#define LOG_XML (1U << 9)
-//#define VERBOSE (LOG_HTTP|LOG_AW) // (LOG_BCD|LOG_NETLIST|LOG_SETUP)
+//#define VERBOSE (LOG_KBD|LOG_AW) // (LOG_BCD|LOG_NETLIST|LOG_SETUP)
//#define LOG_OUTPUT_STREAM std::cout
#include "logmacro.h"
@@ -111,8 +97,6 @@
#define LOGCLK(...) LOGMASKED(LOG_CLK, __VA_ARGS__)
#define LOGKBD(...) LOGMASKED(LOG_KBD, __VA_ARGS__)
#define LOGAW(...) LOGMASKED(LOG_AW, __VA_ARGS__)
-#define LOGHTTP(...) LOGMASKED(LOG_HTTP, __VA_ARGS__)
-#define LOGXML(...) LOGMASKED(LOG_XML, __VA_ARGS__)
#ifdef _MSC_VER
#define FUNCNAME __func__
@@ -130,21 +114,12 @@ public:
, m_maincpu(*this, "maincpu")
, m_74145(*this, "io_74145")
, m_segments(0)
- , m_digit_cache{0xff, 0xff, 0xff, 0xff}
, m_via(*this, "via")
, m_bcd(*this, NETLIST_TAG)
, m_cb1(*this, "bcd:cb1")
, m_cb2(*this, "bcd:cb2")
, m_digit(0.0)
, m_io_line(*this, "LINE%u", 0)
-#if HTTPUI
- , m_connection(NULL)
- , m_web_line0(0)
- , m_web_line1(0)
- , m_web_line2(0)
- , m_web_line3(0)
- , m_web_line4(0)
-#endif
{ }
NETDEV_LOGIC_CALLBACK_MEMBER(bcd_bit0_cb);
@@ -168,7 +143,6 @@ private:
required_device<cpu_device> m_maincpu;
required_device<ttl74145_device> m_74145;
uint8_t m_segments;
- uint8_t m_digit_cache[4];
required_device<via6522_device> m_via;
required_device<netlist_mame_device> m_bcd;
required_device<netlist_mame_logic_input_device> m_cb1;
@@ -179,24 +153,6 @@ private:
virtual void device_start() override;
required_ioport_array<5> m_io_line;
uint16_t m_line[5];
-
-#if HTTPUI
- http_manager *m_server;
- void on_update(http_manager::http_request_ptr request, http_manager::http_response_ptr response);
- const std::string decompress_layout_data(const internal_layout *layout_data);
- void on_open(http_manager::websocket_connection_ptr connection);
- void on_message(http_manager::websocket_connection_ptr connection, const std::string &payload, int opcode);
- void on_close(http_manager::websocket_connection_ptr connection, int status, const std::string& reason);
- void on_error(http_manager::websocket_connection_ptr connection, const std::error_code& error_code);
- void update_web_bcd(uint8_t digit_nbr, uint8_t m_segments);
-
- http_manager::websocket_connection_ptr m_connection;
- uint16_t m_web_line0;
- uint16_t m_web_line1;
- uint16_t m_web_line2;
- uint16_t m_web_line3;
- uint16_t m_web_line4;
-#endif
};
NETDEV_LOGIC_CALLBACK_MEMBER(prodigy_state::bcd_bit0_cb) { if (data != 0) m_digit |= 0x01; else m_digit &= ~(0x01); LOGBCD("%s: %d m_digit: %02x\n", FUNCNAME, data, m_digit); }
@@ -211,219 +167,8 @@ NETDEV_LOGIC_CALLBACK_MEMBER(prodigy_state::bcd_bit7_cb) { if (data != 0) m_digi
void prodigy_state::device_start()
{
memset(m_line, 0, sizeof(m_line));
-#if HTTPUI
- m_server = machine().manager().http();
- if (m_server->is_active())
- {
- using namespace std::placeholders;
- m_server->add_http_handler("/layout*", std::bind(&prodigy_state::on_update, this, _1, _2));
- m_server->add_endpoint("/socket",
- std::bind(&prodigy_state::on_open, this, _1),
- std::bind(&prodigy_state::on_message, this, _1, _2, _3),
- std::bind(&prodigy_state::on_close, this, _1, _2, _3),
- std::bind(&prodigy_state::on_error, this, _1, _2)
- );
- }
-#endif
-}
-
-#if HTTPUI
-const std::string prodigy_state::decompress_layout_data(const internal_layout *layout_data)
-{
- // +1 to ensure data is terminated for XML parser
- std::unique_ptr<u8> tempout(new u8(layout_data->decompressed_size + 1));
- std::string fail("");
- z_stream stream;
- int zerr;
-
- /* initialize the stream */
- memset(&stream, 0, sizeof(stream));
- stream.next_out = tempout.get();
- stream.avail_out = layout_data->decompressed_size;
-
- zerr = inflateInit(&stream);
- if (zerr != Z_OK)
- {
- fatalerror("could not inflateInit");
- return fail; // return empty buffer
- }
-
- /* decompress this chunk */
- stream.next_in = (unsigned char*)layout_data->data;
- stream.avail_in = layout_data->compressed_size;
- zerr = inflate(&stream, Z_NO_FLUSH);
-
- /* stop at the end of the stream */
- if (zerr == Z_STREAM_END)
- {
- // OK
- }
- else if (zerr != Z_OK)
- {
- fatalerror("decompression error\n");
- return fail; // return empty buffer
- }
-
- /* clean up */
- zerr = inflateEnd(&stream);
- if (zerr != Z_OK)
- {
- fatalerror("inflateEnd error\n");
- return fail; // return empty buffer
- }
-
- return std::string((const char *)tempout.get(), layout_data->decompressed_size + 1);
-}
-
-
-void prodigy_state::on_update(http_manager::http_request_ptr request, http_manager::http_response_ptr response)
-{
- LOG("%s\n", FUNCNAME);
-
- LOGHTTP("Full request: %s\n", request->get_resource());
- LOGHTTP("Path: %s\n", request->get_path());
- LOGHTTP("Query: %s\n", request->get_query());
- LOGHTTP("Artpath: %s\n", this->machine().options().art_path());
- LOGHTTP("System: %s\n", machine().system().name);
-
- response->set_status(200);
- response->set_content_type("text/xml");
-
- if (std::string("/layout/layout.xsl") == request->get_path())
- {
- std::string path;
- osd_get_full_path(path, ".");
- LOGHTTP("Serving XSL document %s\n", path + "/web/layout.xsl");
-#if 0
- m_server->serve_document(request, response, "layout.xls"); // Doesn't work, how do I make the webserver serve a file?
-#else
- std::ifstream xslfile (path + "/web/layout.xsl");
- if (xslfile.is_open())
- {
- std::string buf;
- std::string outstr;
- while ( std::getline (xslfile, buf) )
- {
- outstr += buf + "\n";
- }
- xslfile.close();
- response->set_body(outstr);
- LOGXML("%s", outstr);
- }
- else
- {
- response->set_status(500); // Or 404...?
- logerror("Unable to open file %s", path + "web/layout.xsl");
- LOGHTTP("Unable to open file %s", path + "web/layout.xsl");
- }
-#endif
- }
- else
- {
- z_stream stream;
- int zerr;
- char buf[1024 * 10];
- std::string outstr;
- memset(&stream, 0, sizeof(stream));
- stream.next_in = (Bytef *)(layout_prodigy.data);
- stream.avail_in = layout_prodigy.compressed_size;
- if ((zerr = inflateInit(&stream)) == Z_OK)
- {
- do
- {
- stream.next_out = (Bytef*)(&buf[0]);
- stream.avail_out = sizeof(buf);
- zerr = inflate(&stream, 0);
- if (zerr == Z_OK || zerr == Z_STREAM_END)
- {
- outstr.append(&buf[0], stream.total_out - outstr.size());
- LOGXML("appending %s\n", buf);
- }
- else
- {
- LOGHTTP("Append Error %d\n", zerr);
- }
- }while (zerr == Z_OK);
- if ((zerr = inflateEnd(&stream)) != Z_OK)
- {
- response->set_status(500); // Or 404...?
- fatalerror("Zlib decompression error\n");
- }
- else
- {
- outstr.insert(std::string("<?xml version=\"1.0\"?>").size(), "<?xml-stylesheet type=\"text/xml\" href=\"layout.xsl\"?>");
- response->set_body(outstr);
- }
- }
- else
- {
- response->set_status(500); // Or 404...?
- LOGHTTP("Init Error %d\n", zerr);
- }
- }
-}
-
-void prodigy_state::on_open(http_manager::websocket_connection_ptr connection)
-{
- logerror("websocket connection opened\n");
- LOGHTTP("%s\n", FUNCNAME);
- m_connection = connection;
- for (int i = 0; i < 4; i++)
- {
- update_web_bcd(i, m_digit_cache[i]);
- }
-}
-
-void prodigy_state::on_message(http_manager::websocket_connection_ptr connection, const std::string &payload, int opcode)
-{
- LOGHTTP("%s: %d - %s\n", FUNCNAME, opcode, payload);
- using namespace rapidjson;
- Document document;
- document.Parse(payload.c_str());
- LOGHTTP("%s - %04x: %s\n", document["inputtag"].GetString(), document["inputmask"].GetInt(), document["event"].GetInt() == 0 ? "mouse Down" : "mouse Up");
-
- // TODO: Reduce number of LINE%u and match mouse up to last mouse down so that mouse clicks don't stick "forever" when gliding out of click down boundary
- if (std::string(document["inputtag"].GetString()).compare("LINE0") == 0)
- {
- if (document["event"].GetInt() == 0) m_web_line0 |= document["inputmask"].GetInt(); else m_web_line0 &= ~(document["inputmask"].GetInt());
- LOGAW("-WEBLINE0: %02x\n", m_web_line0);
- }
- else if (std::string(document["inputtag"].GetString()).compare("LINE1") == 0)
- {
- if (document["event"].GetInt() == 0) m_web_line1 |= document["inputmask"].GetInt(); else m_web_line1 &= ~(document["inputmask"].GetInt());
- LOGAW("-WEBLINE1: %02x\n", m_web_line1);
- }
- else if (std::string(document["inputtag"].GetString()).compare("LINE2") == 0)
- {
- if (document["event"].GetInt() == 0) m_web_line2 |= document["inputmask"].GetInt(); else m_web_line2 &= ~(document["inputmask"].GetInt());
- LOGAW("-WEBLINE2: %02x\n", m_web_line2);
- }
- else if (std::string(document["inputtag"].GetString()).compare("LINE3") == 0)
- {
- if (document["event"].GetInt() == 0) m_web_line3 |= document["inputmask"].GetInt(); else m_web_line3 &= ~(document["inputmask"].GetInt());
- LOGAW("-WEBLINE3: %02x\n", m_web_line3);
- }
- else if (std::string(document["inputtag"].GetString()).compare("LINE4") == 0)
- {
- if (document["event"].GetInt() == 0) m_web_line4 |= document["inputmask"].GetInt(); else m_web_line4 &= ~(document["inputmask"].GetInt());
- LOGAW("-WEBLINE4: %02x\n", m_web_line4);
- }
}
-void prodigy_state::on_close(http_manager::websocket_connection_ptr connection, int status, const std::string& reason)
-{
- logerror("websocket connection closed: %d - %s\n", status, reason);
- LOGHTTP("%s: %d - %s\n", FUNCNAME, status, reason);
-}
-
-void prodigy_state::on_error(http_manager::websocket_connection_ptr connection, const std::error_code& error_code)
-{
- logerror("websocket connection error: %d\n", error_code);
- LOGHTTP("%s: %d\n", FUNCNAME, error_code);
-}
-
-#endif
-
WRITE_LINE_MEMBER(prodigy_state::via_cb1_w)
{
LOGCLK("%s: %d\n", FUNCNAME, state);
@@ -456,13 +201,9 @@ READ8_MEMBER( prodigy_state::via_pa_r )
uint16_t ttl74145_data = m_74145->read();
LOGKBD(" - 74145: %03x\n", ttl74145_data);
-#if HTTPUI
- if (ttl74145_data & 0x100) return ((m_line[0] & ~m_web_line0) | (m_line[1] & ~m_web_line1));
- if (ttl74145_data & 0x200) return ((m_line[4] & ~m_web_line4) | (m_line[3] & ~m_web_line3));
-#else
if (ttl74145_data & 0x100) return (m_line[0] | m_line[1]);
if (ttl74145_data & 0x200) return (m_line[4] | m_line[3]);
-#endif
+
return 0xff;
}
@@ -470,14 +211,8 @@ READ8_MEMBER( prodigy_state::via_pb_r )
{
LOGKBD("%s: Port B <- %02x\n", FUNCNAME, 0);
uint16_t ttl74145_data = m_74145->read();
-
-#if HTTPUI
- if (ttl74145_data & 0x100) return ((((m_line[2] & ~m_web_line2) >> 8) & 3) << 4);
- if (ttl74145_data & 0x200) return ((((m_line[2] & ~m_web_line2) >> 10) & 3) << 4);
-#else
if (ttl74145_data & 0x100) return (((m_line[2] >> 8) & 3) << 4);
if (ttl74145_data & 0x200) return (((m_line[2] >> 10) & 3) << 4);
-#endif
return 0xff;
}
@@ -506,28 +241,6 @@ WRITE8_MEMBER( prodigy_state::via_pb_w )
}
}
-#if HTTPUI
-void prodigy_state::update_web_bcd(uint8_t digit_nbr, uint8_t m_segments)
-{
- using namespace rapidjson;
- Document d;
- d.SetObject();
- Document::AllocatorType& allocator = d.GetAllocator();
- // Add data to JSON document
- d.AddMember("name", "digit", allocator);
- d.AddMember("number", digit_nbr, allocator);
- d.AddMember("segments", m_segments, allocator);
- // Convert JSON document to string
- StringBuffer buf;
- Writer<StringBuffer> writer(buf);
- d.Accept(writer);
- if (m_connection != NULL)
- {
- m_connection->send_message(buf.GetString(), 1);// 1 == Text 2 == binary
- }
-}
-#endif
-
void prodigy_state::update_bcd()
{
LOGBCD("%s\n", FUNCNAME);
@@ -552,14 +265,7 @@ void prodigy_state::update_bcd()
LOGBCD(" - segments: %02x -> ", m_digit);
m_segments = m_digit;
LOGBCD("%02x\n", m_segments);
- if (m_digit_cache[digit_nbr] != m_segments)
- {
- output().set_digit_value( digit_nbr, m_segments);
- m_digit_cache[digit_nbr] = m_segments;
-#if HTTPUI
- update_web_bcd(digit_nbr, m_segments);
-#endif
- }
+ output().set_digit_value( digit_nbr, m_segments);
}
}
diff --git a/src/mame/drivers/puckpkmn.cpp b/src/mame/drivers/puckpkmn.cpp
index 3fe426789bc..28d46aa27b0 100644
--- a/src/mame/drivers/puckpkmn.cpp
+++ b/src/mame/drivers/puckpkmn.cpp
@@ -382,7 +382,7 @@ DRIVER_INIT_MEMBER(md_boot_state,puckpkmn)
int i;
for (i = 0; i < len; i++)
- rom[i] = bitswap<8>(rom[i],1,4,2,0,7,5,3,6);
+ rom[i] = BITSWAP8(rom[i],1,4,2,0,7,5,3,6);
DRIVER_INIT_CALL(megadriv);
}
diff --git a/src/mame/drivers/pve500.cpp b/src/mame/drivers/pve500.cpp
index 08b28bd9f70..5979c5f7b89 100644
--- a/src/mame/drivers/pve500.cpp
+++ b/src/mame/drivers/pve500.cpp
@@ -325,7 +325,7 @@ WRITE8_MEMBER(pve500_state::io_sel_w)
io_SEL = data;
for (int i=0; i<4; i++){
if (BIT(io_SEL, i)){
- LD_data[i] = 0x7F & bitswap<8>(io_LD ^ 0xFF, 7, 0, 1, 2, 3, 4, 5, 6);
+ LD_data[i] = 0x7F & BITSWAP8(io_LD ^ 0xFF, 7, 0, 1, 2, 3, 4, 5, 6);
}
}
}
diff --git a/src/mame/drivers/qix.cpp b/src/mame/drivers/qix.cpp
index eea7cf401aa..28dbbf459e8 100644
--- a/src/mame/drivers/qix.cpp
+++ b/src/mame/drivers/qix.cpp
@@ -601,7 +601,7 @@ INPUT_PORTS_END
static MACHINE_CONFIG_START( qix_base )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MAIN_CLOCK_OSC/4/4) /* 1.25 MHz */
+ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK_OSC/4/4) /* 1.25 MHz */
MCFG_CPU_PROGRAM_MAP(main_map)
/* high interleave needed to ensure correct text in service mode */
@@ -632,9 +632,9 @@ static MACHINE_CONFIG_DERIVED( qix, qix_base )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( kram3, qix )
- MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_REPLACE("maincpu", M6809E, MAIN_CLOCK_OSC/4) /* 1.25 MHz */
MCFG_CPU_PROGRAM_MAP(kram3_main_map)
- MCFG_MC6809E_LIC_CB(WRITELINE(qix_state, kram3_lic_maincpu_changed))
+ MCFG_M6809E_LIC_CB(WRITELINE(qix_state,kram3_lic_maincpu_changed))
MCFG_FRAGMENT_ADD(kram3_video)
MACHINE_CONFIG_END
@@ -1312,10 +1312,10 @@ int qix_state::kram3_permut1(int idx, int value)
switch (idx)
{
default:
- case 0: return bitswap<8>(value, 7,6,5,4, 3,2,1,0);
- case 1: return bitswap<8>(value, 7,6,5,4, 0,3,2,1);
- case 2: return bitswap<8>(value, 7,6,5,4, 1,0,3,2);
- case 3: return bitswap<8>(value, 7,6,5,4, 2,3,0,1);
+ case 0: return BITSWAP8(value, 7,6,5,4, 3,2,1,0);
+ case 1: return BITSWAP8(value, 7,6,5,4, 0,3,2,1);
+ case 2: return BITSWAP8(value, 7,6,5,4, 1,0,3,2);
+ case 3: return BITSWAP8(value, 7,6,5,4, 2,3,0,1);
}
}
@@ -1335,7 +1335,7 @@ int qix_state::kram3_permut2(int tbl_index, int idx, const uint8_t *xor_table)
xorval ^= 0x02;
if (idx == 3)
- xorval = bitswap<8>(xorval, 7,6,5,4, 0,2,3,1);
+ xorval = BITSWAP8(xorval, 7,6,5,4, 0,2,3,1);
return xorval;
}
diff --git a/src/mame/drivers/r2dx_v33.cpp b/src/mame/drivers/r2dx_v33.cpp
index 4370adbd99e..4c22095739c 100644
--- a/src/mame/drivers/r2dx_v33.cpp
+++ b/src/mame/drivers/r2dx_v33.cpp
@@ -903,7 +903,7 @@ DRIVER_INIT_MEMBER(r2dx_v33_state,zerotm2k)
std::vector<uint8_t> buffer(len);
int i;
for (i = 0; i < len; i ++)
- buffer[i] = src[bitswap<32>(i,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,5,6,4,3,2,1,0)];
+ buffer[i] = src[BITSWAP32(i,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,5,6,4,3,2,1,0)];
memcpy(src, &buffer[0], len);
}
diff --git a/src/mame/drivers/r9751.cpp b/src/mame/drivers/r9751.cpp
index 5edb895b736..69940540938 100644
--- a/src/mame/drivers/r9751.cpp
+++ b/src/mame/drivers/r9751.cpp
@@ -152,17 +152,17 @@ uint32_t r9751_state::swap_uint32( uint32_t val )
uint32_t r9751_state::debug_a6()
{
- return m_maincpu->space(AS_PROGRAM).read_dword(ptr_m68000->state_int(M68K_A6) + 4);
+ return m_maincpu->space(AS_PROGRAM).read_dword(ptr_m68000->dar[14] + 4);
}
uint32_t r9751_state::debug_a5()
{
- return m_maincpu->space(AS_PROGRAM).read_dword(ptr_m68000->state_int(M68K_A5));
+ return m_maincpu->space(AS_PROGRAM).read_dword(ptr_m68000->dar[13]);
}
uint32_t r9751_state::debug_a5_20()
{
- return m_maincpu->space(AS_PROGRAM).read_dword(ptr_m68000->state_int(M68K_A5) + 0x20);
+ return m_maincpu->space(AS_PROGRAM).read_dword(ptr_m68000->dar[13] + 0x20);
}
READ8_MEMBER(r9751_state::pdc_dma_r)
@@ -396,7 +396,7 @@ WRITE32_MEMBER( r9751_state::r9751_mmio_5ff_w )
m_pdc->reg_p5 = 0;
/* Send FDD SCSI command location address to PDC 0x2, 0x3 */
- if(TRACE_FDC) logerror("--- FDD command address: %08X PC: %08X Register: %08X (A6+4): %08X A4: %08X (A5): %08X (A5+20): %08X\n", (fdd_dma_bank & 0x7FFFF800) + ((data << 1)&0x3FFFF), space.machine().firstcpu->pc(), offset << 2 | 0x5FF00000, debug_a6(), ptr_m68000->state_int(M68K_A4), debug_a5(), debug_a5_20());
+ if(TRACE_FDC) logerror("--- FDD command address: %08X PC: %08X Register: %08X (A6+4): %08X A4: %08X (A5): %08X (A5+20): %08X\n", (fdd_dma_bank & 0x7FFFF800) + ((data << 1)&0x3FFFF), space.machine().firstcpu->pc(), offset << 2 | 0x5FF00000, debug_a6(), ptr_m68000->dar[12], debug_a5(), debug_a5_20());
data_b0 = data & 0xFF;
data_b1 = (data & 0xFF00) >> 8;
m_pdc->reg_p2 = data_b0;
diff --git a/src/mame/drivers/raiden.cpp b/src/mame/drivers/raiden.cpp
index 88196786470..e775b8d73a7 100644
--- a/src/mame/drivers/raiden.cpp
+++ b/src/mame/drivers/raiden.cpp
@@ -741,7 +741,7 @@ void raiden_state::common_decrypt()
static const uint16_t xor_table[] = { 0x200e,0x0006,0x000a,0x0002,0x240e,0x000e,0x04c2,0x00c2,0x008c,0x0004,0x0088,0x0000,0x048c,0x000c,0x04c0,0x00c0 };
uint16_t data = RAM[0xc0000/2 + i];
data ^= xor_table[i & 0x0f];
- data = bitswap<16>(data, 15,14,10,12,11,13,9,8,3,2,5,4,7,1,6,0);
+ data = BITSWAP16(data, 15,14,10,12,11,13,9,8,3,2,5,4,7,1,6,0);
RAM[0xc0000/2 + i] = data;
}
@@ -752,7 +752,7 @@ void raiden_state::common_decrypt()
static const uint16_t xor_table[] = { 0x0080,0x0080,0x0244,0x0288,0x0288,0x0288,0x1041,0x1009 };
uint16_t data = RAM[0xc0000/2 + i];
data ^= xor_table[i & 0x07];
- data = bitswap<16>(data, 15,14,13,9,11,10,12,8,2,0,5,4,7,3,1,6);
+ data = BITSWAP16(data, 15,14,13,9,11,10,12,8,2,0,5,4,7,3,1,6);
RAM[0xc0000/2 + i] = data;
}
}
diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp
index 2ee85a262c3..b8f94aaafcf 100644
--- a/src/mame/drivers/rainbow.cpp
+++ b/src/mame/drivers/rainbow.cpp
@@ -2863,7 +2863,7 @@ WRITE16_MEMBER(rainbow_state::vram_w)
if(m_GDC_MODE_REGISTER & GDC_MODE_VECTOR) // VT240 : if(SELECT_VECTOR_PATTERN_REGISTER)
{
- chr = bitswap<8>(m_vpat, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx);
+ chr = BITSWAP8(m_vpat, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx);
chr |= (chr << 8);
if(m_patcnt-- == 0)
{
@@ -3121,7 +3121,7 @@ WRITE8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_w)
// -------------------- WRITE BUFFER USED IN WORD MODE ONLY !
// "OUTPUT WRITE BUFFER IS THE INVERSE OF THE INPUT" (quote from 4-3 of the PDF)
// BITSWAP SEEMS NECESSARY (see digits in DOODLE)... !
- m_GDC_WRITE_BUFFER[m_GDC_write_buffer_index++] = ~bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7);
+ m_GDC_WRITE_BUFFER[m_GDC_write_buffer_index++] = ~BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7);
m_GDC_write_buffer_index &= 0xf; // write up to 16 bytes to port 52h.
break;
@@ -3149,10 +3149,10 @@ WRITE8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_w)
// There is no specific order for the WRITE_MASK (according to txt/code samples in DEC's PDF).
// NOTE: LOW <-> HI JUXTAPOSITION!
case 4: // 54h Write Mask LOW
- m_GDC_WRITE_MASK = ( bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7) << 8 ) | ( m_GDC_WRITE_MASK & 0x00FF );
+ m_GDC_WRITE_MASK = ( BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7) << 8 ) | ( m_GDC_WRITE_MASK & 0x00FF );
break;
case 5: // 55h Write Mask HIGH
- m_GDC_WRITE_MASK = ( m_GDC_WRITE_MASK & 0xFF00 ) | bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7);
+ m_GDC_WRITE_MASK = ( m_GDC_WRITE_MASK & 0xFF00 ) | BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7);
break;
} // switch
diff --git a/src/mame/drivers/risc2500.cpp b/src/mame/drivers/risc2500.cpp
index 2a8ca42b5db..56049cf2147 100644
--- a/src/mame/drivers/risc2500.cpp
+++ b/src/mame/drivers/risc2500.cpp
@@ -77,7 +77,7 @@ uint32_t risc2500_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
// 12 characters 5 x 7
for(int x=0; x<5; x++)
{
- uint8_t gfx = bitswap<8>(m_vram[c*5 + x], 6,5,0,1,2,3,4,7);
+ uint8_t gfx = BITSWAP8(m_vram[c*5 + x], 6,5,0,1,2,3,4,7);
for(int y=0; y<7; y++)
bitmap.pix16(y, 71 - (c*6 + x)) = (gfx >> (y + 1)) & 1;
@@ -86,7 +86,7 @@ uint32_t risc2500_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
// LCD digits and symbols
int data_addr = 0x40 + c * 5;
uint16_t data = ((m_vram[data_addr + 1] & 0x3) << 5) | ((m_vram[data_addr + 2] & 0x7) << 2) | (m_vram[data_addr + 4] & 0x3);
- data = bitswap<8>(data, 7,3,0,1,4,6,5,2) | ((m_vram[data_addr - 1] & 0x04) ? 0x80 : 0);
+ data = BITSWAP8(data, 7,3,0,1,4,6,5,2) | ((m_vram[data_addr - 1] & 0x04) ? 0x80 : 0);
output().set_digit_value(c, data);
output().set_indexed_value("sym", c, BIT(m_vram[data_addr + 1], 2));
diff --git a/src/mame/drivers/rmhaihai.cpp b/src/mame/drivers/rmhaihai.cpp
index 58cb32a4c0e..082123d23df 100644
--- a/src/mame/drivers/rmhaihai.cpp
+++ b/src/mame/drivers/rmhaihai.cpp
@@ -123,8 +123,8 @@ READ8_MEMBER(rmhaihai_state::keyboard_r)
{
static const char *const keynames[] = { "KEY0", "KEY1" };
- logerror("%04x: keyboard_r\n",m_maincpu->pc());
- switch(m_maincpu->pc())
+ logerror("%04x: keyboard_r\n",space.device().safe_pc());
+ switch(space.device().safe_pc())
{
/* read keyboard */
case 0x0280:
@@ -173,7 +173,7 @@ READ8_MEMBER(rmhaihai_state::keyboard_r)
WRITE8_MEMBER(rmhaihai_state::keyboard_w)
{
-logerror("%04x: keyboard_w %02x\n",m_maincpu->pc(),data);
+logerror("%04x: keyboard_w %02x\n",space.device().safe_pc(),data);
m_keyboard_cmd = data;
}
diff --git a/src/mame/drivers/rohga.cpp b/src/mame/drivers/rohga.cpp
index b58023bcf38..84389cc6c94 100644
--- a/src/mame/drivers/rohga.cpp
+++ b/src/mame/drivers/rohga.cpp
@@ -171,7 +171,7 @@ ADDRESS_MAP_END
READ16_MEMBER( rohga_state::wf_protection_region_0_104_r )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco104->read_data( deco146_addr, mem_mask, cs );
return data;
@@ -180,7 +180,7 @@ READ16_MEMBER( rohga_state::wf_protection_region_0_104_r )
WRITE16_MEMBER( rohga_state::wf_protection_region_0_104_w )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco104->write_data( space, deco146_addr, data, mem_mask, cs );
}
@@ -221,7 +221,7 @@ ADDRESS_MAP_END
READ16_MEMBER( rohga_state::nb_protection_region_0_146_r )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco146->read_data( deco146_addr, mem_mask, cs );
return data;
@@ -230,7 +230,7 @@ READ16_MEMBER( rohga_state::nb_protection_region_0_146_r )
WRITE16_MEMBER( rohga_state::nb_protection_region_0_146_w )
{
int real_address = 0 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco146->write_data( space, deco146_addr, data, mem_mask, cs );
}
diff --git a/src/mame/drivers/route16.cpp b/src/mame/drivers/route16.cpp
index f461e476323..cf174755a4f 100644
--- a/src/mame/drivers/route16.cpp
+++ b/src/mame/drivers/route16.cpp
@@ -147,7 +147,7 @@ WRITE8_MEMBER(route16_state::ttmahjng_input_port_matrix_w)
}
-READ8_MEMBER(route16_state::ttmahjng_p1_matrix_r)
+READ8_MEMBER(route16_state::ttmahjng_input_port_matrix_r)
{
uint8_t ret = 0;
@@ -163,21 +163,6 @@ READ8_MEMBER(route16_state::ttmahjng_p1_matrix_r)
return ret;
}
-READ8_MEMBER(route16_state::ttmahjng_p2_matrix_r)
-{
- uint8_t ret = 0;
-
- switch (m_ttmahjng_port_select)
- {
- case 1: ret = ioport("KEY4")->read(); break;
- case 2: ret = ioport("KEY5")->read(); break;
- case 4: ret = ioport("KEY6")->read(); break;
- case 8: ret = ioport("KEY7")->read(); break;
- default: break;
- }
-
- return ret;
-}
/***************************************************************************
@@ -264,8 +249,8 @@ static ADDRESS_MAP_START( ttmahjng_cpu1_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("sharedram")
AM_RANGE(0x4800, 0x4800) AM_READ_PORT("DSW") AM_WRITE(out0_w)
- AM_RANGE(0x5000, 0x5000) AM_READ(ttmahjng_p2_matrix_r) AM_WRITE(out1_w)
- AM_RANGE(0x5800, 0x5800) AM_READWRITE(ttmahjng_p1_matrix_r, ttmahjng_input_port_matrix_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0") AM_WRITE(out1_w)
+ AM_RANGE(0x5800, 0x5800) AM_READWRITE(ttmahjng_input_port_matrix_r, ttmahjng_input_port_matrix_w)
AM_RANGE(0x6800, 0x6800) AM_DEVWRITE("ay8910", ay8910_device, data_w)
AM_RANGE(0x6900, 0x6900) AM_DEVWRITE("ay8910", ay8910_device, address_w)
AM_RANGE(0x8000, 0xbfff) AM_RAM AM_SHARE("videoram1")
@@ -507,27 +492,37 @@ static INPUT_PORTS_START( ttmahjng )
PORT_DIPSETTING( 0x00, "00" )
PORT_DIPSETTING( 0x80, "80" )
- PORT_START("KEY0")
+ PORT_START("IN0") /* IN1 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
+
+ PORT_START("KEY0") /* IN2 */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) // START2?
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("KEY1")
+ PORT_START("KEY1") /* IN3 */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) // START1?
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("KEY2")
+ PORT_START("KEY2") /* IN4 */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K )
@@ -537,7 +532,7 @@ static INPUT_PORTS_START( ttmahjng )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("KEY3")
+ PORT_START("KEY3") /* IN5 */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L )
@@ -546,46 +541,6 @@ static INPUT_PORTS_START( ttmahjng )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY5")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY6")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY7")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
INPUT_PORTS_END
MACHINE_START_MEMBER(route16_state, speakres)
diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp
index 684b97e21e7..f78d744dc00 100644
--- a/src/mame/drivers/royalmah.cpp
+++ b/src/mame/drivers/royalmah.cpp
@@ -312,9 +312,9 @@ PALETTE_INIT_MEMBER(royalmah_state,mjderngr)
uint16_t data = (prom[i] << 8) | prom[i + 0x200];
/* the bits are in reverse order */
- uint8_t r = bitswap<8>((data >> 0) & 0x1f,7,6,5,0,1,2,3,4 );
- uint8_t g = bitswap<8>((data >> 5) & 0x1f,7,6,5,0,1,2,3,4 );
- uint8_t b = bitswap<8>((data >> 10) & 0x1f,7,6,5,0,1,2,3,4 );
+ uint8_t r = BITSWAP8((data >> 0) & 0x1f,7,6,5,0,1,2,3,4 );
+ uint8_t g = BITSWAP8((data >> 5) & 0x1f,7,6,5,0,1,2,3,4 );
+ uint8_t b = BITSWAP8((data >> 10) & 0x1f,7,6,5,0,1,2,3,4 );
palette.set_pen_color(i, pal5bit(r), pal5bit(g), pal5bit(b));
}
diff --git a/src/mame/drivers/s11.cpp b/src/mame/drivers/s11.cpp
index 0f9948eff13..f574e3b9c71 100644
--- a/src/mame/drivers/s11.cpp
+++ b/src/mame/drivers/s11.cpp
@@ -242,7 +242,7 @@ WRITE8_MEMBER( s11_state::dig1_w )
m_segment2 |= 0x20000;
if ((m_segment2 & 0x70000) == 0x30000)
{
- output().set_digit_value(m_strobe+16, bitswap<16>(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(m_strobe+16, BITSWAP16(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
m_segment2 |= 0x40000;
}
}
@@ -266,7 +266,7 @@ WRITE8_MEMBER( s11_state::pia2c_pa_w )
m_segment1 |= 0x10000;
if ((m_segment1 & 0x70000) == 0x30000)
{
- output().set_digit_value(m_strobe, bitswap<16>(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(m_strobe, BITSWAP16(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
m_segment1 |= 0x40000;
}
}
@@ -277,7 +277,7 @@ WRITE8_MEMBER( s11_state::pia2c_pb_w )
m_segment1 |= 0x20000;
if ((m_segment1 & 0x70000) == 0x30000)
{
- output().set_digit_value(m_strobe, bitswap<16>(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(m_strobe, BITSWAP16(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
m_segment1 |= 0x40000;
}
}
@@ -300,7 +300,7 @@ WRITE8_MEMBER( s11_state::pia34_pa_w )
m_segment2 |= 0x10000;
if ((m_segment2 & 0x70000) == 0x30000)
{
- output().set_digit_value(m_strobe+16, bitswap<16>(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(m_strobe+16, BITSWAP16(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
m_segment2 |= 0x40000;
}
}
@@ -463,7 +463,7 @@ static MACHINE_CONFIG_START( s11 )
MCFG_PIA_IRQB_HANDLER(INPUTLINE("audiocpu", M6808_IRQ_LINE))
/* Add the background music card */
- MCFG_CPU_ADD("bgcpu", MC6809E, 8000000 / 4) // MC68B09E
+ MCFG_CPU_ADD("bgcpu", M6809E, 8000000) // MC68B09E
MCFG_CPU_PROGRAM_MAP(s11_bg_map)
MCFG_SPEAKER_STANDARD_MONO("bg")
diff --git a/src/mame/drivers/s11a.cpp b/src/mame/drivers/s11a.cpp
index 3d761646231..48ba3c9d55b 100644
--- a/src/mame/drivers/s11a.cpp
+++ b/src/mame/drivers/s11a.cpp
@@ -254,11 +254,11 @@ static MACHINE_CONFIG_START( s11a )
MCFG_PIA_IRQB_HANDLER(INPUTLINE("audiocpu", M6802_IRQ_LINE))
/* Add the background music card */
- MCFG_CPU_ADD("bgcpu", MC6809E, XTAL_8MHz / 4) // MC68B09E
+ MCFG_CPU_ADD("bgcpu", M6809E, 8000000) // MC68B09E
MCFG_CPU_PROGRAM_MAP(s11a_bg_map)
MCFG_SPEAKER_STANDARD_MONO("bg")
- MCFG_YM2151_ADD("ym2151", XTAL_3_579545MHz)
+ MCFG_YM2151_ADD("ym2151", 3580000)
MCFG_YM2151_IRQ_HANDLER(WRITELINE(s11a_state, ym2151_irq_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50)
diff --git a/src/mame/drivers/s11b.cpp b/src/mame/drivers/s11b.cpp
index 08e8fe0d2ba..c2807788671 100644
--- a/src/mame/drivers/s11b.cpp
+++ b/src/mame/drivers/s11b.cpp
@@ -177,9 +177,9 @@ WRITE8_MEMBER( s11b_state::dig1_w )
if((seg & 0x70000) == 0x30000)
{
if(m_invert)
- output().set_digit_value(get_strobe()+16, bitswap<16>(~seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(get_strobe()+16, BITSWAP16(~seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
else
- output().set_digit_value(get_strobe()+16, bitswap<16>(seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(get_strobe()+16, BITSWAP16(seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
seg |= 0x40000;
}
set_segment2(seg);
@@ -193,9 +193,9 @@ WRITE8_MEMBER( s11b_state::pia2c_pa_w )
if((seg & 0x70000) == 0x30000)
{
if(m_invert)
- output().set_digit_value(get_strobe(), bitswap<16>(~seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(get_strobe(), BITSWAP16(~seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
else
- output().set_digit_value(get_strobe(), bitswap<16>(seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(get_strobe(), BITSWAP16(seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
seg |= 0x40000;
}
set_segment1(seg);
@@ -209,9 +209,9 @@ WRITE8_MEMBER( s11b_state::pia2c_pb_w )
if((seg & 0x70000) == 0x30000)
{
if(m_invert)
- output().set_digit_value(get_strobe(), bitswap<16>(~seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(get_strobe(), BITSWAP16(~seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
else
- output().set_digit_value(get_strobe(), bitswap<16>(seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(get_strobe(), BITSWAP16(seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
seg |= 0x40000;
}
set_segment1(seg);
@@ -225,9 +225,9 @@ WRITE8_MEMBER( s11b_state::pia34_pa_w )
if((seg & 0x70000) == 0x30000)
{
if(m_invert)
- output().set_digit_value(get_strobe()+16, bitswap<16>(~seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(get_strobe()+16, BITSWAP16(~seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
else
- output().set_digit_value(get_strobe()+16, bitswap<16>(seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(get_strobe()+16, BITSWAP16(seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
seg |= 0x40000;
}
set_segment2(seg);
@@ -329,7 +329,7 @@ static MACHINE_CONFIG_START( s11b )
MCFG_PIA_IRQB_HANDLER(INPUTLINE("audiocpu", M6802_IRQ_LINE))
/* Add the background music card */
- MCFG_CPU_ADD("bgcpu", MC6809E, XTAL_8MHz / 4) // MC68B09E
+ MCFG_CPU_ADD("bgcpu", M6809E, XTAL_8MHz) // MC68B09E (note: schematics show this as 8mhz/2, but games crash very quickly with that speed?)
MCFG_CPU_PROGRAM_MAP(s11b_bg_map)
MCFG_QUANTUM_TIME(attotime::from_hz(50))
diff --git a/src/mame/drivers/sc1.cpp b/src/mame/drivers/sc1.cpp
index 2e92685917f..223c6329c18 100644
--- a/src/mame/drivers/sc1.cpp
+++ b/src/mame/drivers/sc1.cpp
@@ -72,7 +72,7 @@ public:
WRITE8_MEMBER( sc1_state::pio_port_a_w )
{
- uint8_t digit = bitswap<8>( data,3,4,6,0,1,2,7,5 );
+ uint8_t digit = BITSWAP8( data,3,4,6,0,1,2,7,5 );
if (m_matrix & 0x04)
output().set_digit_value(3, digit & 0x7f);
diff --git a/src/mame/drivers/sc2.cpp b/src/mame/drivers/sc2.cpp
index 0bbff5767da..0dc458c6bff 100644
--- a/src/mame/drivers/sc2.cpp
+++ b/src/mame/drivers/sc2.cpp
@@ -118,7 +118,7 @@ void sc2_state::machine_reset()
void sc2_state::sc2_update_display()
{
- uint8_t digit_data = bitswap<8>( m_digit_data,7,0,1,2,3,4,5,6 ) & 0x7f;
+ uint8_t digit_data = BITSWAP8( m_digit_data,7,0,1,2,3,4,5,6 ) & 0x7f;
if (!BIT(m_led_selected, 0))
{
diff --git a/src/mame/drivers/scobra.cpp b/src/mame/drivers/scobra.cpp
index 0c6ad0a433b..4b872b0432a 100644
--- a/src/mame/drivers/scobra.cpp
+++ b/src/mame/drivers/scobra.cpp
@@ -4,7 +4,7 @@
Super Cobra hardware
-NOTE: Eventually to be merged into galaxian.cpp
+NOTE: Eventually to be merged into GALAXIAN.C
TODO:
----
@@ -30,7 +30,7 @@ Notes/Tidbits:
differences are the title, copyright removed, different encryptions or
no encryption, plus hustlerb has a different memory map.
-- In Tazmania and clones, when set to Upright mode, player 2 left skips the current
+- In Tazmania, when set to Upright mode, player 2 left skips the current
level
***************************************************************************/
@@ -52,6 +52,7 @@ public:
: scramble_state(mconfig, type, tag),
m_soundram(*this, "soundram") { }
+ optional_shared_ptr<uint8_t> m_soundram;
DECLARE_READ8_MEMBER(scobra_soundram_r);
DECLARE_WRITE8_MEMBER(scobra_soundram_w);
DECLARE_READ8_MEMBER(scobra_type2_ppi8255_0_r);
@@ -63,9 +64,6 @@ public:
DECLARE_WRITE8_MEMBER(hustler_ppi8255_0_w);
DECLARE_WRITE8_MEMBER(hustler_ppi8255_1_w);
DECLARE_CUSTOM_INPUT_MEMBER(stratgyx_coinage_r);
-
-private:
- optional_shared_ptr<uint8_t> m_soundram;
};
@@ -150,26 +148,6 @@ static ADDRESS_MAP_START( type2_map, AS_PROGRAM, 8, scobra_state )
AM_RANGE(0xb00e, 0xb00e) AM_WRITE(galaxold_flip_screen_x_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tazmani3_map, AS_PROGRAM, 8, scobra_state )
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x8800, 0x883f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
- AM_RANGE(0x8840, 0x885f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x8860, 0x887f) AM_RAM AM_SHARE("bulletsram")
- AM_RANGE(0x8880, 0x88ff) AM_RAM
- AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x9400, 0x97ff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) /* mirror */
- AM_RANGE(0x9800, 0x9800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
- AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
- AM_RANGE(0xa800, 0xa803) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
- AM_RANGE(0xb000, 0xb000) AM_WRITE(galaxold_stars_enable_w)
- AM_RANGE(0xb001, 0xb001) AM_WRITE(galaxold_nmi_enable_w)
- AM_RANGE(0xb006, 0xb006) AM_WRITE(galaxold_coin_counter_0_w)
- AM_RANGE(0xb008, 0xb008) AM_WRITE(galaxold_coin_counter_1_w)
- AM_RANGE(0xb00c, 0xb00c) AM_WRITE(galaxold_flip_screen_y_w)
- AM_RANGE(0xb00e, 0xb00e) AM_WRITE(galaxold_flip_screen_x_w)
-ADDRESS_MAP_END
-
static ADDRESS_MAP_START( hustler_map, AS_PROGRAM, 8, scobra_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
@@ -471,7 +449,7 @@ static INPUT_PORTS_START( darkplnt )
PORT_BIT( 0xfc, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) /* scrambled dial */
INPUT_PORTS_END
-static INPUT_PORTS_START( tazmani2 )
+static INPUT_PORTS_START( tazmania )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
@@ -519,49 +497,6 @@ static INPUT_PORTS_START( tazmani2 )
INPUT_PORTS_END
-static INPUT_PORTS_START( tazmani3 )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
-
- PORT_START("IN1")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x01, "3" )
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
- PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x00, "Coin A 1/2 Coin B 2/1" )
- PORT_DIPSETTING( 0x04, "Coin A 1/3 Coin B 3/1" )
- PORT_DIPSETTING( 0x06, "Coin A 1/4 Coin B 4/1" )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
/* cocktail mode is N/A */
static INPUT_PORTS_START( rescue )
PORT_START("IN0")
@@ -956,13 +891,6 @@ static MACHINE_CONFIG_DERIVED( type2, type1 )
MCFG_CPU_PROGRAM_MAP(type2_map)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( tazmani3, type2 )
-
- /* basic machine hardware */
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_PROGRAM_MAP(tazmani3_map)
-MACHINE_CONFIG_END
-
static MACHINE_CONFIG_DERIVED( stratgyx, type2 )
@@ -1195,7 +1123,6 @@ ROM_START( tazmani2 )
ROM_LOAD( "colr6f.cpu", 0x0000, 0x0020, CRC(fce333c7) SHA1(f63a214dc47c5e7c80db000b0b6a261ca8da6629) )
ROM_END
-// PCBs: RODMAR 6920-00-01 P1 and 6920-01-01 P1 but Arfyc copyright
ROM_START( tazmani3 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "2ck.cpu", 0x0000, 0x1000, CRC(e8b6f9c3) SHA1(121f83274b3fdb4b2cb4bd0160d61886825c8793) ) // sldh
@@ -1697,8 +1624,8 @@ GAME( 1982, strongx, stratgyx, stratgyx, stratgyx, scobra_state, stratgyx,
GAME( 1982, darkplnt, 0, darkplnt, darkplnt, scobra_state, darkplnt, ROT180, "Stern Electronics", "Dark Planet", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, tazmani2, tazmania, type2, tazmani2, scobra_state, tazmani2, ROT90, "Stern Electronics", "Tazz-Mania (set 2, alt hardware)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, tazmani3, tazmania, tazmani3, tazmani3, scobra_state, 0, ROT90, "bootleg (Arfyc / Rodmar)", "Tazz-Mania (Arfyc / Rodmar bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, tazmani2, tazmania, type2, tazmania, scobra_state, tazmani2, ROT90, "Stern Electronics", "Tazz-Mania (set 2, alt hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, tazmani3, tazmania, type2, tazmania, scobra_state, tazmani2, ROT90, "bootleg (Rodmar)", "Tazz-Mania (Rodmar bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // different i8255 hook up
GAME( 1982, rescue, 0, rescue, rescue, scobra_state, rescue, ROT90, "Stern Electronics", "Rescue", MACHINE_SUPPORTS_SAVE )
GAME( 1982, rescueb, rescue, rescueb, rescue, scobra_state, rescue, ROT90, "bootleg (Videl Games)", "Tuono Blu (bootleg of Rescue)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/scregg.cpp b/src/mame/drivers/scregg.cpp
index 30e7c0a6275..778c6cbf639 100644
--- a/src/mame/drivers/scregg.cpp
+++ b/src/mame/drivers/scregg.cpp
@@ -419,7 +419,7 @@ DRIVER_INIT_MEMBER(scregg_state,rockduck)
for (x = 0x2000; x < 0x6000; x++)
{
- src[x] = bitswap<8>(src[x],2,0,3,6,1,4,7,5);
+ src[x] = BITSWAP8(src[x],2,0,3,6,1,4,7,5);
}
}
diff --git a/src/mame/drivers/sdk85.cpp b/src/mame/drivers/sdk85.cpp
index 9c1f4948bd7..8c89e634075 100644
--- a/src/mame/drivers/sdk85.cpp
+++ b/src/mame/drivers/sdk85.cpp
@@ -132,7 +132,7 @@ WRITE8_MEMBER( sdk85_state::scanlines_w )
WRITE8_MEMBER( sdk85_state::digit_w )
{
if (m_digit < 6)
- output().set_digit_value(m_digit, bitswap<8>(data, 3, 2, 1, 0, 7, 6, 5, 4)^0xff);
+ output().set_digit_value(m_digit, BITSWAP8(data, 3, 2, 1, 0, 7, 6, 5, 4)^0xff);
}
READ8_MEMBER( sdk85_state::kbd_r )
diff --git a/src/mame/drivers/sdk86.cpp b/src/mame/drivers/sdk86.cpp
index 510a819db78..0ca083a2898 100644
--- a/src/mame/drivers/sdk86.cpp
+++ b/src/mame/drivers/sdk86.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Miodrag Milanovic, Jonathan Gevaryahu, Robbbert
/***************************************************************************
- Intel MCS-86 System Design Kit (SDK-86)
+ Intel SDK-86
12/05/2009 Skeleton driver by Micko
29/11/2009 Some fleshing out by Lord Nightmare
@@ -31,7 +31,6 @@ ToDo:
#include "cpu/i86/i86.h"
#include "machine/clock.h"
#include "machine/i8251.h"
-#include "machine/i8255.h"
#include "machine/i8279.h"
#include "sdk86.lh"
@@ -66,8 +65,8 @@ static ADDRESS_MAP_START(sdk86_io, AS_IO, 16, sdk86_state)
AM_RANGE(0xfff0, 0xfff1) AM_MIRROR(4) AM_DEVREADWRITE8(I8251_TAG, i8251_device, data_r, data_w, 0xff)
AM_RANGE(0xfff2, 0xfff3) AM_MIRROR(4) AM_DEVREADWRITE8(I8251_TAG, i8251_device, status_r, control_w, 0xff)
AM_RANGE(0xffe8, 0xffeb) AM_MIRROR(4) AM_DEVREADWRITE8("i8279", i8279_device, read, write, 0xff)
- AM_RANGE(0xfff8, 0xffff) AM_DEVREADWRITE8("port1", i8255_device, read, write, 0xff00)
- AM_RANGE(0xfff8, 0xffff) AM_DEVREADWRITE8("port2", i8255_device, read, write, 0x00ff)
+ // FFF8-FFFF = 2 x 8255A i/o chips. chip 1 uses the odd addresses, chip 2 uses the even addresses.
+ // ports are A,B,C,control in that order.
ADDRESS_MAP_END
/* Input ports */
@@ -156,7 +155,7 @@ static MACHINE_CONFIG_START( sdk86 )
MCFG_RS232_DSR_HANDLER(DEVWRITELINE(I8251_TAG, i8251_device, write_dsr))
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
- MCFG_DEVICE_ADD("usart_clock", CLOCK, XTAL_14_7456MHz/3/16)
+ MCFG_DEVICE_ADD("usart_clock", CLOCK, 307200)
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE(I8251_TAG, i8251_device, write_txc))
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE(I8251_TAG, i8251_device, write_rxc))
@@ -167,8 +166,6 @@ static MACHINE_CONFIG_START( sdk86 )
MCFG_I8279_IN_SHIFT_CB(GND) // Shift key
MCFG_I8279_IN_CTRL_CB(GND)
- MCFG_DEVICE_ADD("port1", I8255A, 0)
- MCFG_DEVICE_ADD("port2", I8255A, 0)
MACHINE_CONFIG_END
/* ROM definition */
@@ -212,4 +209,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */
-COMP( 1979, sdk86, 0, 0, sdk86, sdk86, sdk86_state, 0, "Intel", "MCS-86 System Design Kit", MACHINE_NO_SOUND_HW)
+COMP( 1979, sdk86, 0, 0, sdk86, sdk86, sdk86_state, 0, "Intel", "SDK-86", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/seattle.cpp b/src/mame/drivers/seattle.cpp
index 48ad4959f39..8fcb6b77a22 100644
--- a/src/mame/drivers/seattle.cpp
+++ b/src/mame/drivers/seattle.cpp
@@ -279,8 +279,7 @@ public:
m_cage(*this, "cage"),
m_dcs(*this, "dcs"),
m_ethernet(*this, "ethernet"),
- m_ioasic(*this, "ioasic"),
- m_io_analog(*this, "AN%u", 0)
+ m_ioasic(*this, "ioasic")
{}
required_device<nvram_device> m_nvram;
@@ -289,7 +288,6 @@ public:
optional_device<dcs_audio_device> m_dcs;
optional_device<smc91c94_device> m_ethernet;
required_device<midway_ioasic_device> m_ioasic;
- optional_ioport_array<8> m_io_analog;
widget_data m_widget;
uint32_t m_interrupt_enable;
@@ -308,9 +306,6 @@ public:
uint32_t m_output;
uint8_t m_output_mode;
uint32_t m_gear;
- int8_t m_wheel_force;
- int m_wheel_offset;
- bool m_wheel_calibrated;
DECLARE_READ32_MEMBER(interrupt_state_r);
DECLARE_READ32_MEMBER(interrupt_state2_r);
DECLARE_READ32_MEMBER(interrupt_config_r);
@@ -404,7 +399,6 @@ void seattle_state::machine_start()
save_item(NAME(m_output));
save_item(NAME(m_output_mode));
save_item(NAME(m_gear));
- save_item(NAME(m_wheel_calibrated));
}
@@ -415,9 +409,6 @@ void seattle_state::machine_reset()
m_interrupt_config = 0;
m_interrupt_enable = 0;
m_gear = 1;
- m_wheel_force = 0;
- m_wheel_offset = 0;
- m_wheel_calibrated = false;
/* reset either the DCS2 board or the CAGE board */
if (machine().device("dcs") != nullptr)
{
@@ -496,7 +487,6 @@ WRITE32_MEMBER(seattle_state::interrupt_config_w)
{
int irq;
COMBINE_DATA(&m_interrupt_config);
- //logerror("interrupt_config_w: m_interrupt_config=%08x\n", m_interrupt_config);
/* VBLANK: clear anything pending on the old IRQ */
if (m_vblank_irq_num != 0)
@@ -612,31 +602,11 @@ READ32_MEMBER(seattle_state::analog_port_r)
WRITE32_MEMBER(seattle_state::analog_port_w)
{
+ static const char *const portnames[] = { "AN0", "AN1", "AN2", "AN3", "AN4", "AN5", "AN6", "AN7" };
+
if (data < 8 || data > 15)
logerror("%08X:Unexpected analog port select = %08X\n", space.device().safe_pc(), data);
- int index = data & 7;
- uint8_t currValue = m_io_analog[index].read_safe(0);
- if (!m_wheel_calibrated && ((m_wheel_force > 20) || (m_wheel_force < -20))) {
- if (m_wheel_force > 0 && m_wheel_offset < 128)
- m_wheel_offset++;
- else if (m_wheel_offset > -128)
- m_wheel_offset--;
- int tmpVal = int(currValue) + m_wheel_offset;
- if (tmpVal < m_io_analog[index]->field(0xff)->minval())
- m_pending_analog_read = m_io_analog[index]->field(0xff)->minval();
- else if (tmpVal > m_io_analog[index]->field(0xff)->maxval())
- m_pending_analog_read = m_io_analog[index]->field(0xff)->maxval();
- else
- m_pending_analog_read = tmpVal;
- }
- else {
- m_pending_analog_read = currValue;
- }
- // Declare calibration finished as soon as non-middle value is detected, ie the user has turned the wheel
- if (!m_wheel_calibrated && currValue != 0 && (currValue > (0x80 + 0x10) || currValue < (0x80 - 0x10))) {
- m_wheel_calibrated = true;
- //osd_printf_info("wheel calibration comlete wheel: %02x\n", currValue);
- }
+ m_pending_analog_read = ioport(portnames[data & 7])->read();
}
/*************************************
@@ -658,8 +628,6 @@ WRITE32_MEMBER(seattle_state::wheel_board_w)
{
case 0x0:
machine().output().set_value("wheel", arg); // target wheel angle. signed byte.
- m_wheel_force = int8_t(arg);
- //logerror("wheel_board_w: data = %08x op: %02x arg: %02x\n", data, op, arg);
break;
case 0x4:
@@ -757,19 +725,15 @@ WRITE32_MEMBER(seattle_state::carnevil_gun_w)
READ32_MEMBER(seattle_state::ethernet_r)
{
- uint32_t data = 0;
if (!(offset & 8))
- data = m_ethernet->read(space, offset & 7, mem_mask & 0xffff);
+ return m_ethernet->read(space, offset & 7, mem_mask & 0xffff);
else
- data = m_ethernet->read(space, offset & 7, mem_mask & 0x00ff);
- //logerror("ethernet_r: @%08x=%08x mask: %08x\n", offset, data, mem_mask);
- return data;
+ return m_ethernet->read(space, offset & 7, mem_mask & 0x00ff);
}
WRITE32_MEMBER(seattle_state::ethernet_w)
{
- //logerror("ethernet_w: @%08x=%08x mask: %08x\n", offset, data, mem_mask);
if (!(offset & 8))
m_ethernet->write(space, offset & 7, data & 0xffff, mem_mask | 0xffff);
else
@@ -834,8 +798,6 @@ WRITE32_MEMBER(seattle_state::output_w)
case 0x04:
output().set_value("wheel", arg); // wheel motor delta. signed byte.
- m_wheel_force = int8_t(~arg);
- //logerror("wheel_board_w: data = %08x op: %02x arg: %02x\n", data, op, arg);
break;
case 0x05:
@@ -1296,18 +1258,15 @@ static INPUT_PORTS_START( sfrush )
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON14 ) PORT_NAME("Track 2") PORT_PLAYER(1) /* track 2 */
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON15 ) PORT_NAME("Track 3") PORT_PLAYER(1) /* track 3 */
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON16 ) PORT_NAME("Track 4") PORT_PLAYER(1) /* track 4 */
- PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, seattle_state, gearshift_r, "GEAR" )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("1st Gear") PORT_PLAYER(1) /* 1st gear */
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("2nd Gear") PORT_PLAYER(1) /* 2nd gear */
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("3rd Gear") PORT_PLAYER(1) /* 3rd gear */
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("4th Gear") PORT_PLAYER(1) /* 4th gear */
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_DOWN )
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_VOLUME_UP )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("GEAR")
- PORT_BIT( 0x1, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("1st Gear") PORT_PLAYER(1) /* 1st gear */
- PORT_BIT( 0x2, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("2nd Gear") PORT_PLAYER(1) /* 2nd gear */
- PORT_BIT( 0x4, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("3rd Gear") PORT_PLAYER(1) /* 3rd gear */
- PORT_BIT( 0x8, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("4th Gear") PORT_PLAYER(1) /* 4th gear */
-
PORT_MODIFY("IN2")
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
@@ -2636,7 +2595,7 @@ GAME( 1996, mace, 0, mace, mace, seattle_state, mace,
GAME( 1997, macea, mace, mace, mace, seattle_state, mace, ROT0, "Atari Games", "Mace: The Dark Age (HDD 1.0a)", MACHINE_SUPPORTS_SAVE )
GAMEL( 1996, sfrush, 0, sfrush, sfrush, seattle_state, sfrush, ROT0, "Atari Games", "San Francisco Rush (boot rom L 1.0)", MACHINE_SUPPORTS_SAVE, layout_sfrush )
GAMEL( 1996, sfrusha, sfrush, sfrush, sfrush, seattle_state, sfrush, ROT0, "Atari Games", "San Francisco Rush (boot rom L 1.06A)", MACHINE_SUPPORTS_SAVE, layout_sfrush )
-GAMEL( 1996, sfrushrk, 0, sfrushrk, sfrushrk, seattle_state, sfrushrk, ROT0, "Atari Games", "San Francisco Rush: The Rock (boot rom L 1.0, GUTS Oct 6 1997 / MAIN Oct 16 1997)", MACHINE_SUPPORTS_SAVE, layout_sfrush )
+GAMEL( 1996, sfrushrk, 0, sfrushrk, sfrushrk, seattle_state, sfrushrk, ROT0, "Atari Games", "San Francisco Rush: The Rock (boot rom L 1.0, GUTS Oct 6 1997 / MAIN Oct 16 1997)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_sfrush )
GAMEL( 1996, sfrushrkw, sfrushrk, sfrushrkw, sfrush, seattle_state, sfrushrk, ROT0, "Atari Games", "San Francisco Rush: The Rock (Wavenet, boot rom L 1.38, GUTS Aug 19 1997 / MAIN Aug 19 1997)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_sfrush )
GAMEL( 1996, sfrushrkwo, sfrushrk, sfrushrkw, sfrush, seattle_state, sfrushrk, ROT0, "Atari Games", "San Francisco Rush: The Rock (Wavenet, boot rom L 1.38, GUTS Aug 6 1997 / MAIN Aug 5 1997)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_sfrush )
GAMEL( 1998, calspeed, 0, calspeed, calspeed, seattle_state, calspeed, ROT0, "Atari Games", "California Speed (Version 2.1a Apr 17 1998, GUTS 1.25 Apr 17 1998 / MAIN Apr 17 1998)", MACHINE_SUPPORTS_SAVE, layout_calspeed )
diff --git a/src/mame/drivers/segae.cpp b/src/mame/drivers/segae.cpp
index ded71eba870..49531ea7d5c 100644
--- a/src/mame/drivers/segae.cpp
+++ b/src/mame/drivers/segae.cpp
@@ -200,7 +200,7 @@ ROMs:
Game IC2 IC3 IC4 IC5 IC7
---------------------------------------------------------------------------------
Megumi Rescue* IC-2 IC-3 IC-4 IC-5 IC-7
-Hang-On Jr. EPR-7261 EPR-7260 EPR-7259 EPR-7258 EPR-7257B
+Hang-On Jr. EPR-? EPR-? EPR-? EPR-? EPR-? Hello, Sega Part Numbers....!?
Transformer EPR-7350 EPR-7606 EPR-7348 EPR-7347 EPR-7605
/Astro Flash EPR-7350 EPR-7349 EPR-7348 EPR-7347 EPR-7723
Slap Shooter EPR-7355 EPR-7354 EPR-7353 EPR-7352 EPR-7751
@@ -267,9 +267,9 @@ GND 8A 8B GND
Game Notes:
Riddle of Pythagoras is interesting, it looks like Sega might have planned it
- as a two player game, there is preliminary code for 2 player support which
- never gets executed, see code around 0x0E95. There's also quite a bit of
- pointless code here and there. Some Interesting Memory Locations
+ as a two player game, there is prelimiary code for 2 player support which
+ never gets executed, see code around 0x0E95. Theres also quite a bit of
+ pointless code here and there. Some Interesting Memory Locations
C000 : level - value (00-0x32)
C001 : level - display (00-0x50, BCD coded)
@@ -339,9 +339,6 @@ public:
DECLARE_DRIVER_INIT( opaopa );
DECLARE_DRIVER_INIT( fantzn2 );
- uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
-
-private:
// Devices
required_device<cpu_device> m_maincpu;
required_device<sega315_5124_device> m_vdp1;
@@ -358,6 +355,8 @@ private:
// Video RAM
uint8_t m_vram[2][0x4000 * 2];
+
+ uint32_t screen_update_systeme(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -837,7 +836,7 @@ static INPUT_PORTS_START( ridleofp ) /* Used By Riddle Of Pythagoras */
INPUT_PORTS_END
-uint32_t systeme_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+uint32_t systeme_state::screen_update_systeme(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
bitmap_rgb32 &vdp1_bitmap = m_vdp1->get_bitmap();
bitmap_rgb32 &vdp2_bitmap = m_vdp2->get_bitmap();
@@ -873,7 +872,7 @@ static MACHINE_CONFIG_START( systeme )
MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \
sega315_5124_device::WIDTH , sega315_5124_device::LBORDER_START + sega315_5124_device::LBORDER_WIDTH, sega315_5124_device::LBORDER_START + sega315_5124_device::LBORDER_WIDTH + 256, \
sega315_5124_device::HEIGHT_NTSC, sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_192_TBORDER_HEIGHT, sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_192_TBORDER_HEIGHT + 192)
- MCFG_SCREEN_UPDATE_DRIVER(systeme_state, screen_update)
+ MCFG_SCREEN_UPDATE_DRIVER(systeme_state, screen_update_systeme)
MCFG_DEVICE_ADD("vdp1", SEGA315_5124, 0)
MCFG_SEGA315_5124_IS_PAL(false)
@@ -897,8 +896,8 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( hangonjr, systeme )
MCFG_DEVICE_MODIFY("ppi")
MCFG_I8255_IN_PORTA_CB(READ8(systeme_state, hangonjr_port_f8_read))
- MCFG_I8255_IN_PORTC_CB(CONSTANT(0)) // bit 4 must be the ADC0804 /INTR signal
- MCFG_I8255_OUT_PORTC_CB(WRITE8(systeme_state, hangonjr_port_fa_write)) // CD4051 selector input
+ MCFG_I8255_IN_PORTC_CB(CONSTANT(0)) // bit 4 ought to be ADC /INTR signal
+ MCFG_I8255_OUT_PORTC_CB(WRITE8(systeme_state, hangonjr_port_fa_write))
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( ridleofp, systeme )
@@ -972,21 +971,16 @@ ROM_END
//*************************************************************************************************************************
// Hang-On Jr., Sega System E
-// Game ID# 833-5911 HANG ON JR. REV.
-// ROM BD # 834-5910 REV.B
-//
-// Analog control board: 834-5805 (required for game to boot)
-// ICs on this board are LS244 (IC1), ADC0804 (IC2), LS367 (IC3) and CD4051 (IC4).
//
ROM_START( hangonjr )
ROM_REGION( 0x30000, "maincpu", 0 )
- ROM_LOAD( "epr-7257b.ic7", 0x00000, 0x08000, CRC(d63925a7) SHA1(699f222d9712fa42651c753fe75d7b60e016d3ad) ) /* Fixed Code */
+ ROM_LOAD( "rom5.ic7", 0x00000, 0x08000, CRC(d63925a7) SHA1(699f222d9712fa42651c753fe75d7b60e016d3ad) ) /* Fixed Code */
/* The following are 8 0x4000 banks that get mapped to reads from 0x8000 - 0xbfff */
- ROM_LOAD( "epr-7258.ic5", 0x10000, 0x08000, CRC(ee3caab3) SHA1(f583cf92c579d1ca235e8b300e256ba58a04dc90) )
- ROM_LOAD( "epr-7259.ic4", 0x18000, 0x08000, CRC(d2ba9bc9) SHA1(85cf2a801883bf69f78134fc4d5075134f47dc03) )
- ROM_LOAD( "epr-7260.ic3", 0x20000, 0x08000, CRC(e14da070) SHA1(f8781f65be5246a23c1f492905409775bbf82ea8) )
- ROM_LOAD( "epr-7261.ic2", 0x28000, 0x08000, CRC(3810cbf5) SHA1(c8d5032522c0c903ab3d138f62406a66e14a5c69) )
+ ROM_LOAD( "rom4.ic5", 0x10000, 0x08000, CRC(ee3caab3) SHA1(f583cf92c579d1ca235e8b300e256ba58a04dc90) )
+ ROM_LOAD( "rom3.ic4", 0x18000, 0x08000, CRC(d2ba9bc9) SHA1(85cf2a801883bf69f78134fc4d5075134f47dc03) )
+ ROM_LOAD( "rom2.ic3", 0x20000, 0x08000, CRC(e14da070) SHA1(f8781f65be5246a23c1f492905409775bbf82ea8) )
+ ROM_LOAD( "rom1.ic2", 0x28000, 0x08000, CRC(3810cbf5) SHA1(c8d5032522c0c903ab3d138f62406a66e14a5c69) )
ROM_END
//*************************************************************************************************************************
@@ -1084,7 +1078,7 @@ ROM_END
// YEAR, NAME, PARENT, MACHINE, INPUT, STATE INIT, MONITOR,COMPANY,FULLNAME,FLAGS
-GAME( 1985, hangonjr, 0, hangonjr, hangonjr, systeme_state, 0, ROT0, "Sega", "Hang-On Jr. (Rev. B)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, hangonjr, 0, hangonjr, hangonjr, systeme_state, 0, ROT0, "Sega", "Hang-On Jr.", MACHINE_SUPPORTS_SAVE )
GAME( 1986, slapshtr, 0, systeme, slapshtr, systeme_state, 0, ROT0, "Sega", "Slap Shooter", MACHINE_SUPPORTS_SAVE) // 1986 date from flyer
GAME( 1986, transfrm, 0, systeme, transfrm, systeme_state, 0, ROT0, "Sega", "Transformer", MACHINE_SUPPORTS_SAVE )
GAME( 1986, astrofl, transfrm, systemex_315_5177, transfrm, systeme_state, 0, ROT0, "Sega", "Astro Flash (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/segag80r.cpp b/src/mame/drivers/segag80r.cpp
index 079a86fa008..5622b9e2bcd 100644
--- a/src/mame/drivers/segag80r.cpp
+++ b/src/mame/drivers/segag80r.cpp
@@ -317,11 +317,11 @@ WRITE8_MEMBER(segag80r_state::sindbadm_misc_w)
/* the data lines are flipped */
WRITE8_MEMBER(segag80r_state::sindbadm_sn1_SN76496_w)
{
- m_sn1->write(space, offset, bitswap<8>(data, 0,1,2,3,4,5,6,7));
+ m_sn1->write(space, offset, BITSWAP8(data, 0,1,2,3,4,5,6,7));
}
WRITE8_MEMBER(segag80r_state::sindbadm_sn2_SN76496_w)
{
- m_sn2->write(space, offset, bitswap<8>(data, 0,1,2,3,4,5,6,7));
+ m_sn2->write(space, offset, BITSWAP8(data, 0,1,2,3,4,5,6,7));
}
diff --git a/src/mame/drivers/segaorun.cpp b/src/mame/drivers/segaorun.cpp
index f6a59e4a640..fcd8de73381 100644
--- a/src/mame/drivers/segaorun.cpp
+++ b/src/mame/drivers/segaorun.cpp
@@ -2964,13 +2964,13 @@ DRIVER_INIT_MEMBER(segaorun_state,outrunb)
uint16_t *word = (uint16_t *)memregion("maincpu")->base();
uint32_t length = memregion("maincpu")->bytes() / 2;
for (uint32_t i = 0; i < length; i++)
- word[i] = bitswap<16>(word[i], 15,14,11,12,13,10,9,8,6,7,5,4,3,2,1,0);
+ word[i] = BITSWAP16(word[i], 15,14,11,12,13,10,9,8,6,7,5,4,3,2,1,0);
// sub CPU: swap bits 14,15 and 2,3
word = (uint16_t *)memregion("subcpu")->base();
length = memregion("subcpu")->bytes() / 2;
for (uint32_t i = 0; i < length; i++)
- word[i] = bitswap<16>(word[i], 14,15,13,12,11,10,9,8,7,6,5,4,2,3,1,0);
+ word[i] = BITSWAP16(word[i], 14,15,13,12,11,10,9,8,7,6,5,4,2,3,1,0);
// road gfx
// rom a-2.bin: swap bits 6,7
@@ -2979,15 +2979,15 @@ DRIVER_INIT_MEMBER(segaorun_state,outrunb)
length = memregion("gfx3")->bytes() / 2;
for (uint32_t i = 0; i < length; i++)
{
- byte[i] = bitswap<8>(byte[i], 6,7,5,4,3,2,1,0);
- byte[i+length] = bitswap<8>(byte[i+length], 7,5,6,4,3,2,1,0);
+ byte[i] = BITSWAP8(byte[i], 6,7,5,4,3,2,1,0);
+ byte[i+length] = BITSWAP8(byte[i+length], 7,5,6,4,3,2,1,0);
}
// Z80 code: swap bits 5,6
byte = memregion("soundcpu")->base();
length = memregion("soundcpu")->bytes();
for (uint32_t i = 0; i < length; i++)
- byte[i] = bitswap<8>(byte[i], 7,5,6,4,3,2,1,0);
+ byte[i] = BITSWAP8(byte[i], 7,5,6,4,3,2,1,0);
}
DRIVER_INIT_MEMBER(segaorun_state,shangon)
diff --git a/src/mame/drivers/segas16a.cpp b/src/mame/drivers/segas16a.cpp
index 3514bb5aa4b..6650af776f7 100644
--- a/src/mame/drivers/segas16a.cpp
+++ b/src/mame/drivers/segas16a.cpp
@@ -2308,7 +2308,7 @@ ROM_START( afighterc )
ROM_LOAD( "epr-10284.12", 0x00000, 0x8000, CRC(8ff09116) SHA1(8b99b6d2499897cfbd037a7e7cf5bc53bce8a63a) )
ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
- ROM_LOAD( "317-unknown.key", 0x0000, 0x2000, CRC(fee04be8) SHA1(c58d78299ef4cede517be823a8a8a90e46c6ba0d) )
+ ROM_LOAD( "317-unknown.key", 0x0000, 0x2000, NO_DUMP )
ROM_END
ROM_START( afighterd )
@@ -2339,7 +2339,7 @@ ROM_START( afighterd )
ROM_LOAD( "epr-10284.12", 0x00000, 0x8000, CRC(8ff09116) SHA1(8b99b6d2499897cfbd037a7e7cf5bc53bce8a63a) )
ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
- ROM_LOAD( "317-unknown.key", 0x0000, 0x2000, CRC(fee04be8) SHA1(c58d78299ef4cede517be823a8a8a90e46c6ba0d) )
+ ROM_LOAD( "317-unknown.key", 0x0000, 0x2000, NO_DUMP )
ROM_END
//*************************************************************************************************************************
@@ -3933,8 +3933,8 @@ GAME( 1988, aceattaca, aceattac, aceattaca_fd1094, aceattaca, segas16a
GAME( 1986, afighter, 0, system16a_fd1089a_no7751, afighter, segas16a_state, generic, ROT270, "Sega", "Action Fighter (FD1089A 317-0018)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, afightera, afighter, system16a_no7751, afighter, segas16a_state, generic, ROT270, "Sega", "Action Fighter (unprotected)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, afighterb, afighter, system16a_no7751, afighter_analog, afighter_16a_analog_state,generic, ROT270, "Sega", "Action Fighter (unprotected, analog controls)", MACHINE_SUPPORTS_SAVE )
-GAME( 1986, afighterc, afighter, system16a_fd1089b_no7751, afighter, segas16a_state, generic, ROT270, "Sega", "Action Fighter (FD1089B 317-unknown)", MACHINE_SUPPORTS_SAVE ) // encrypted version of afightera (maybe 317-0017)
-GAME( 1986, afighterd, afighter, system16a_fd1089b_no7751, afighter_analog, afighter_16a_analog_state,generic, ROT270, "Sega", "Action Fighter (FD1089B 317-unknown, analog controls)", MACHINE_SUPPORTS_SAVE ) // encrypted version of afighterb
+GAME( 1986, afighterc, afighter, system16a_fd1089a_no7751, afighter, segas16a_state, generic, ROT270, "Sega", "Action Fighter (FD1089A 317-unknown)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // encrypted version of afightera
+GAME( 1986, afighterd, afighter, system16a_fd1089a_no7751, afighter_analog, afighter_16a_analog_state,generic, ROT270, "Sega", "Action Fighter (FD1089A 317-unknown, analog controls)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // encrypted version of afighterb
GAME( 1986, alexkidd, 0, system16a, alexkidd, segas16a_state,generic, ROT0, "Sega", "Alex Kidd: The Lost Stars (set 2, unprotected)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, alexkidd1, alexkidd, system16a_fd1089a, alexkidd, segas16a_state,generic, ROT0, "Sega", "Alex Kidd: The Lost Stars (set 1, FD1089A 317-0021)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp
index 4e0ec52c7f7..8cea6b979a7 100644
--- a/src/mame/drivers/segas16b.cpp
+++ b/src/mame/drivers/segas16b.cpp
@@ -3829,7 +3829,7 @@ void segas16b_state::tilemap_16b_fpointbl_fill_latch(int i, uint16_t* latched_pa
else if (i == 1)
{
// 6661 vs 1666
- latched_pageselect[i] = bitswap<16>(m_bootleg_page[3] ,3, 2, 1, 0 , 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 ) ;
+ latched_pageselect[i] = BITSWAP16(m_bootleg_page[3] ,3, 2, 1, 0 , 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 ) ;
latched_yscroll[i] = m_bootleg_scroll[0x10/2]+2;
latched_xscroll[i] = -m_bootleg_scroll[0x18/2]-1;
}
@@ -4226,11 +4226,11 @@ ROM_START( afighterf )
ROM_LOAD( "epr10039.bin", 0x00000, 0x8000, CRC(b04757b0) SHA1(24bface5a23ed658675f414c9937bf9d7f7ed5ec) )
ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
- ROM_LOAD( "317-unknown.key", 0x0000, 0x2000, CRC(fee04be8) SHA1(c58d78299ef4cede517be823a8a8a90e46c6ba0d) )
+ ROM_LOAD( "317-unknown.key", 0x0000, 0x2000, NO_DUMP )
ROM_END
-ROM_START( afighterg )
+ROM_START( afighterg ) // could be 16A
ROM_REGION( 0x30000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr10160.bin", 0x00001, 0x08000, CRC(86f020da) SHA1(e7ac4b70dc375d9e2491f1a90ae154699e7627a2) ) // == encrypted 10169 (not perfect match) (same rev as 10354)
ROM_LOAD16_BYTE( "epr10163.bin", 0x00000, 0x08000, CRC(6d62eccd) SHA1(a400850f717a71a3e0059173d77f0bd067f1b520) )
@@ -4258,11 +4258,11 @@ ROM_START( afighterg )
ROM_LOAD( "epr10039.bin", 0x00000, 0x8000, CRC(b04757b0) SHA1(24bface5a23ed658675f414c9937bf9d7f7ed5ec) )
ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
- ROM_LOAD( "317-unknown.key", 0x0000, 0x2000, CRC(fee04be8) SHA1(c58d78299ef4cede517be823a8a8a90e46c6ba0d) )
+ ROM_LOAD( "317-unknown.key", 0x0000, 0x2000, NO_DUMP )
ROM_END
-ROM_START( afighterh )
+ROM_START( afighterh ) // could be 16A
ROM_REGION( 0x30000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr10354.bin", 0x00001, 0x08000, CRC(6dad6dd1) SHA1(8cdd1c10d60cda09f888b2f03b7d4c76100b4ad0) ) // == encrypted 10169 (not perfect match) (same rev as 10160)
ROM_LOAD16_BYTE( "epr10357.bin", 0x00000, 0x08000, CRC(69777a15) SHA1(26fcca4b5476596cec9a59f5445f0b24c9373a8b) )
@@ -4290,7 +4290,7 @@ ROM_START( afighterh )
ROM_LOAD( "epr10039.bin", 0x00000, 0x8000, CRC(b04757b0) SHA1(24bface5a23ed658675f414c9937bf9d7f7ed5ec) )
ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
- ROM_LOAD( "317-0018.key", 0x0000, 0x2000, CRC(fee04be8) SHA1(c58d78299ef4cede517be823a8a8a90e46c6ba0d) )
+ ROM_LOAD( "317-unknown.key", 0x0000, 0x2000, NO_DUMP )
ROM_END
@@ -9021,7 +9021,7 @@ DRIVER_INIT_MEMBER(segas16b_state, fpointbla)
for (int i = 0;i < 0x10000;i++)
{
- m_decrypted_opcodes[i] = bitswap<16>(rom[i], 8,9,10,11,12,13,14,15, 0, 1, 2, 3, 4, 5, 6, 7);
+ m_decrypted_opcodes[i] = BITSWAP16(rom[i], 8,9,10,11,12,13,14,15, 0, 1, 2, 3, 4, 5, 6, 7);
}
}
@@ -9089,10 +9089,10 @@ GAME( 1987, aliensyn7, aliensyn, system16b_mc8123, aliensyn, segas16b_state,
GAME( 1987, aliensyn3, aliensyn, system16b_fd1089a, aliensyn, segas16b_state,generic_5358_small, ROT0, "Sega", "Alien Syndrome (set 3, System 16B, FD1089A 317-0033)", 0 )
GAME( 1987, aliensynj, aliensyn, system16b_fd1089a, aliensynj,segas16b_state,generic_5358_small, ROT0, "Sega", "Alien Syndrome (set 6, Japan, new, System 16B, FD1089A 317-0033)", 0 )
-GAME( 1986, afightere, afighter, system16b, afighter_analog,afighter_16b_analog_state,generic_5358_small, ROT270, "Sega", "Action Fighter (System 16B, unprotected, analog controls)", 0 )
-GAME( 1986, afighterf, afighter, system16b_fd1089b, afighter_analog,afighter_16b_analog_state,generic_5358_small, ROT270, "Sega", "Action Fighter (System 16B, FD1089B 317-unknown, analog controls)", 0 ) // encrypted version of afightere
-GAME( 1986, afighterg, afighter, system16b_fd1089b, afighter, segas16b_state, generic_5358_small, ROT270, "Sega", "Action Fighter (System 16B, FD1089B 317-unknown)", 0 ) // same encryption as afighterf
-GAME( 1986, afighterh, afighter, system16b_fd1089a, afighter, segas16b_state, generic_5358_small, ROT270, "Sega", "Action Fighter (System 16B, FD1089A 317-0018)", 0 ) // same rev as afighterg
+GAME( 1987, afightere, afighter, system16b, afighter_analog,afighter_16b_analog_state,generic_5358_small, ROT270, "Sega", "Action Fighter (System 16B, unprotected, analog controls)", 0 )
+GAME( 1987, afighterf, afighter, system16b_fd1089a, afighter_analog,afighter_16b_analog_state,generic_5358_small, ROT270, "Sega", "Action Fighter (System 16B, FD1089A 317-unknown, analog controls)", MACHINE_NOT_WORKING ) // encrypted version of afightere
+GAME( 1987, afighterg, afighter, system16b_fd1089a, afighter, segas16b_state, generic_5358_small, ROT270, "Sega", "Action Fighter (System 16B, FD1089A 317-unknown, set 1)", MACHINE_NOT_WORKING ) // same encryption as afighterf
+GAME( 1987, afighterh, afighter, system16b_fd1089a, afighter, segas16b_state, generic_5358_small, ROT270, "Sega", "Action Fighter (System 16B, FD1089A 317-unknown, set 2)", MACHINE_NOT_WORKING ) // different encryption, same rev as afighterg
GAME( 1988, altbeast, 0, system16b_i8751, altbeast, segas16b_state,generic_5521, ROT0, "Sega", "Altered Beast (set 8) (8751 317-0078)", 0 )
GAME( 1988, altbeastj, altbeast, system16b_i8751, altbeast, segas16b_state,altbeasj_5521, ROT0, "Sega", "Juuouki (set 7, Japan) (8751 317-0077)", 0 )
@@ -9372,14 +9372,14 @@ WRITE16_MEMBER( isgsm_state::data_w )
// 8-bit rotation - used by bloxeed
switch (m_data_type & 0xe0)
{
- case 0x00: data = bitswap<8>(data,0,7,6,5,4,3,2,1); break;
- case 0x20: data = bitswap<8>(data,7,6,5,4,3,2,1,0); break;
- case 0x40: data = bitswap<8>(data,6,5,4,3,2,1,0,7); break;
- case 0x60: data = bitswap<8>(data,5,4,3,2,1,0,7,6); break;
- case 0x80: data = bitswap<8>(data,4,3,2,1,0,7,6,5); break;
- case 0xa0: data = bitswap<8>(data,3,2,1,0,7,6,5,4); break;
- case 0xc0: data = bitswap<8>(data,2,1,0,7,6,5,4,3); break;
- case 0xe0: data = bitswap<8>(data,1,0,7,6,5,4,3,2); break;
+ case 0x00: data = BITSWAP8(data,0,7,6,5,4,3,2,1); break;
+ case 0x20: data = BITSWAP8(data,7,6,5,4,3,2,1,0); break;
+ case 0x40: data = BITSWAP8(data,6,5,4,3,2,1,0,7); break;
+ case 0x60: data = BITSWAP8(data,5,4,3,2,1,0,7,6); break;
+ case 0x80: data = BITSWAP8(data,4,3,2,1,0,7,6,5); break;
+ case 0xa0: data = BITSWAP8(data,3,2,1,0,7,6,5,4); break;
+ case 0xc0: data = BITSWAP8(data,2,1,0,7,6,5,4,3); break;
+ case 0xe0: data = BITSWAP8(data,1,0,7,6,5,4,3,2); break;
}
}
@@ -9455,14 +9455,14 @@ WRITE16_MEMBER( isgsm_state::data_w )
// 8-bit rotation - used by tetris
switch (m_data_type & 0xe0)
{
- case 0x00: byte = bitswap<8>(byte,0,7,6,5,4,3,2,1); break;
- case 0x20: byte = bitswap<8>(byte,7,6,5,4,3,2,1,0); break;
- case 0x40: byte = bitswap<8>(byte,6,5,4,3,2,1,0,7); break;
- case 0x60: byte = bitswap<8>(byte,5,4,3,2,1,0,7,6); break;
- case 0x80: byte = bitswap<8>(byte,4,3,2,1,0,7,6,5); break;
- case 0xa0: byte = bitswap<8>(byte,3,2,1,0,7,6,5,4); break;
- case 0xc0: byte = bitswap<8>(byte,2,1,0,7,6,5,4,3); break;
- case 0xe0: byte = bitswap<8>(byte,1,0,7,6,5,4,3,2); break;
+ case 0x00: byte = BITSWAP8(byte,0,7,6,5,4,3,2,1); break;
+ case 0x20: byte = BITSWAP8(byte,7,6,5,4,3,2,1,0); break;
+ case 0x40: byte = BITSWAP8(byte,6,5,4,3,2,1,0,7); break;
+ case 0x60: byte = BITSWAP8(byte,5,4,3,2,1,0,7,6); break;
+ case 0x80: byte = BITSWAP8(byte,4,3,2,1,0,7,6,5); break;
+ case 0xa0: byte = BITSWAP8(byte,3,2,1,0,7,6,5,4); break;
+ case 0xc0: byte = BITSWAP8(byte,2,1,0,7,6,5,4,3); break;
+ case 0xe0: byte = BITSWAP8(byte,1,0,7,6,5,4,3,2); break;
}
}
@@ -9510,7 +9510,7 @@ WRITE16_MEMBER( isgsm_state::cart_security_high_w )
uint32_t isgsm_state::shinfz_security(uint32_t input)
{
- return bitswap<32>(input, 19, 20, 25, 26, 15, 0, 16, 2, 8, 9, 13, 14, 31, 21, 7, 18, 11, 30, 22, 17, 3, 4, 12, 28, 29, 5, 27, 10, 23, 24, 1, 6);
+ return BITSWAP32(input, 19, 20, 25, 26, 15, 0, 16, 2, 8, 9, 13, 14, 31, 21, 7, 18, 11, 30, 22, 17, 3, 4, 12, 28, 29, 5, 27, 10, 23, 24, 1, 6);
}
uint32_t isgsm_state::tetrbx_security(uint32_t input)
@@ -9734,7 +9734,7 @@ DRIVER_INIT_MEMBER(isgsm_state,isgsm)
std::vector<uint16_t> temp(0x20000/2);
uint16_t *rom = (uint16_t *)memregion("bios")->base();
for (int addr = 0; addr < 0x20000/2; addr++)
- temp[addr ^ 0x4127] = bitswap<16>(rom[addr], 6, 14, 4, 2, 12, 10, 8, 0, 1, 9, 11, 13, 3, 5, 7, 15);
+ temp[addr ^ 0x4127] = BITSWAP16(rom[addr], 6, 14, 4, 2, 12, 10, 8, 0, 1, 9, 11, 13, 3, 5, 7, 15);
memcpy(rom, &temp[0], 0x20000);
}
@@ -9745,7 +9745,7 @@ DRIVER_INIT_MEMBER(isgsm_state,shinfz)
std::vector<uint16_t> temp(0x200000/2);
uint16_t *rom = (uint16_t *)memregion("gamecart_rgn")->base();
for (int addr = 0; addr < 0x200000/2; addr++)
- temp[addr ^ 0x68956] = bitswap<16>(rom[addr], 8, 4, 12, 3, 6, 7, 1, 0, 15, 11, 5, 14, 10, 2, 9, 13);
+ temp[addr ^ 0x68956] = BITSWAP16(rom[addr], 8, 4, 12, 3, 6, 7, 1, 0, 15, 11, 5, 14, 10, 2, 9, 13);
memcpy(rom, &temp[0], 0x200000);
m_read_xor = 0x66;
@@ -9759,7 +9759,7 @@ DRIVER_INIT_MEMBER(isgsm_state,tetrbx)
std::vector<uint16_t> temp(0x80000/2);
uint16_t *rom = (uint16_t *)memregion("gamecart_rgn")->base();
for (int addr = 0; addr < 0x80000/2; addr++)
- temp[addr ^ 0x2A6E6] = bitswap<16>(rom[addr], 4, 0, 12, 5, 7, 3, 1, 14, 10, 11, 9, 6, 15, 2, 13, 8);
+ temp[addr ^ 0x2A6E6] = BITSWAP16(rom[addr], 4, 0, 12, 5, 7, 3, 1, 14, 10, 11, 9, 6, 15, 2, 13, 8);
memcpy(rom, &temp[0], 0x80000);
m_read_xor = 0x73;
diff --git a/src/mame/drivers/segaufo.cpp b/src/mame/drivers/segaufo.cpp
index 5d421cc57d2..f88c656f852 100644
--- a/src/mame/drivers/segaufo.cpp
+++ b/src/mame/drivers/segaufo.cpp
@@ -375,7 +375,7 @@ WRITE8_MEMBER(ufo_state::ex_stepper_w)
{
// stepper motor sequence is: 6 c 9 3 6 c 9 3..
// which means d0 and d3 are swapped when compared with UFO board hardware
- stepper_w(space, offset, bitswap<8>(data,4,6,5,7,0,2,1,3));
+ stepper_w(space, offset, BITSWAP8(data,4,6,5,7,0,2,1,3));
}
WRITE8_MEMBER(ufo_state::ex_cp_lamps_w)
diff --git a/src/mame/drivers/seicross.cpp b/src/mame/drivers/seicross.cpp
index a6caf035189..9090f174012 100644
--- a/src/mame/drivers/seicross.cpp
+++ b/src/mame/drivers/seicross.cpp
@@ -628,7 +628,7 @@ DRIVER_INIT_MEMBER(seicross_state,friskytb)
// this code is in ROM 6.3h, maps to MCU at dxxx
for (int i = 0; i < 0x7800; i++)
{
- m_decrypted_opcodes[i] = bitswap<8>(ROM[i], 6, 7, 5, 4, 3, 2, 0, 1);
+ m_decrypted_opcodes[i] = BITSWAP8(ROM[i], 6, 7, 5, 4, 3, 2, 0, 1);
}
}
diff --git a/src/mame/drivers/selz80.cpp b/src/mame/drivers/selz80.cpp
index 86443fed04d..2016a75db8e 100644
--- a/src/mame/drivers/selz80.cpp
+++ b/src/mame/drivers/selz80.cpp
@@ -185,7 +185,7 @@ WRITE8_MEMBER( selz80_state::scanlines_w )
WRITE8_MEMBER( selz80_state::digit_w )
{
- output().set_digit_value(m_digit, bitswap<8>(data, 3, 2, 1, 0, 7, 6, 5, 4));
+ output().set_digit_value(m_digit, BITSWAP8(data, 3, 2, 1, 0, 7, 6, 5, 4));
}
READ8_MEMBER( selz80_state::kbd_r )
diff --git a/src/mame/drivers/seta.cpp b/src/mame/drivers/seta.cpp
index 3cab3c0194e..a18d62feeb3 100644
--- a/src/mame/drivers/seta.cpp
+++ b/src/mame/drivers/seta.cpp
@@ -2445,7 +2445,7 @@ WRITE8_MEMBER(setaroul_state::pay_w)
machine().bookkeeping().coin_counter_w(1, data & 0x20); // note in (meter 1 in input test, touch '2')
// data & 0x40 // hopper lock-out (lock.o in input test, touch '8')
// data & 0x80 // hopper motor (hop.h in input test, touch '0')
- m_hopper->motor_w((!(data & 0x40) && (data & 0x80)) ? 1 : 0);
+ m_hopper->write(space, 0,(!(data & 0x40) && (data & 0x80)) ? 0x80 : 0x00);
show_outputs();
}
diff --git a/src/mame/drivers/seta2.cpp b/src/mame/drivers/seta2.cpp
index 855c83de125..9bab6a5eaab 100644
--- a/src/mame/drivers/seta2.cpp
+++ b/src/mame/drivers/seta2.cpp
@@ -28,13 +28,12 @@ Ordered by Board Year Game By
-------------------------------------------------------------------------------------------
P-FG01-1 1995 Guardians / Denjin Makai II Banpresto
P0-113A 1994 Mobile Suit Gundam EX Revue Banpresto
-P0-121A ; 2MP1-E00 (Ss) 1996 TelePachi Fever Lion Sunsoft
P0-123A 1996 Wakakusamonogatari Mahjong Yonshimai Maboroshi Ware
P0-125A ; KE (Namco) 1996 Kosodate Quiz My Angel Namco
P0-130B ; M-133 (Namco) 1997 Star Audition Namco
P0-136A ; KL (Namco) 1997 Kosodate Quiz My Angel 2 Namco
P-FG-02 1997 Reel'N Quake <unknown>
-P-FG-03 ???? Endless Riches E.N.Tiger
+P-FG-03 <unknown> Endless Riches E.N.Tiger
P0-140B 2000 Funcube Namco
P0-140B 2000 Namco Stars Namco
P0-142A 1999 Puzzle De Bowling MOSS / Nihon System
@@ -425,7 +424,7 @@ WRITE16_MEMBER(seta2_state::reelquak_leds_w)
}
if (ACCESSING_BITS_8_15)
{
- m_dispenser->motor_w(BIT(data, 8)); // ticket dispenser
+ machine().device<ticket_dispenser_device>("ticket")->write(space, 0, (data & 0x0100) >> 1); // ticket dispenser
}
// popmessage("LED %04X", data);
@@ -627,79 +626,6 @@ ADDRESS_MAP_END
/***************************************************************************
- TelePachi Fever Lion
-***************************************************************************/
-
-WRITE16_MEMBER(seta2_state::telpacfl_lamp1_w)
-{
- if (ACCESSING_BITS_0_7)
- {
- output().set_lamp_value(0, data & 0x0001 ); //
- output().set_lamp_value(1, data & 0x0002 ); //
- output().set_lamp_value(2, data & 0x0004 ); //
- output().set_lamp_value(3, data & 0x0008 ); //
- output().set_lamp_value(4, data & 0x0010 ); //
- output().set_lamp_value(5, data & 0x0020 ); //
- output().set_lamp_value(6, data & 0x0040 ); //
- output().set_lamp_value(7, data & 0x0080 ); //
- }
-
-// popmessage("LAMP1 %04X", data);
-}
-
-WRITE16_MEMBER(seta2_state::telpacfl_lamp2_w)
-{
- if (ACCESSING_BITS_0_7)
- {
- output().set_lamp_value( 8, data & 0x0001 ); // on/off lamp (throughout)
- output().set_lamp_value( 9, data & 0x0002 ); // bet lamp
- output().set_lamp_value(10, data & 0x0004 ); // payout lamp
- m_dispenser->motor_w( data & 0x0008 ); // coin out motor
- machine().bookkeeping().coin_counter_w(0, data & 0x0010); // coin out counter
- // data & 0x0020 ); // on credit increase
- }
-
-// popmessage("LAMP2 %04X", data);
-}
-
-WRITE16_MEMBER(seta2_state::telpacfl_lockout_w)
-{
- if (ACCESSING_BITS_0_7)
- {
- machine().bookkeeping().coin_counter_w(1, data & 0x0002); // 100yen in
- machine().bookkeeping().coin_lockout_w(0, ~data & 0x0004); // coin blocker
- machine().bookkeeping().coin_lockout_w(1, ~data & 0x0008); // 100yen blocker
- // bits 0x30 ?
- }
-
-// popmessage("LOCK %04X", data);
-}
-
-static ADDRESS_MAP_START( telpacfl_map, AS_PROGRAM, 16, seta2_state )
- AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
- AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
- AM_RANGE(0x300000, 0x303fff) AM_RAM AM_SHARE("nvram") // NVRAM (Battery Backed)
- AM_RANGE(0x600000, 0x600001) AM_READ_PORT("DSW1") // DSW 1
- AM_RANGE(0x600002, 0x600003) AM_READ_PORT("DSW2") // DSW 2
- AM_RANGE(0x700000, 0x700001) AM_READ_PORT("COIN") // Coin
- AM_RANGE(0x700002, 0x700003) AM_READ_PORT("P1") // P1 + Dispenser
- AM_RANGE(0x700004, 0x700005) AM_READ_PORT("SERVICE") // Service
- AM_RANGE(0x700006, 0x700007) AM_READ_PORT("UNKNOWN") // (unused?)
- AM_RANGE(0x700008, 0x700009) AM_WRITE(telpacfl_lamp1_w) // Lamps
- AM_RANGE(0x70000c, 0x70000d) AM_WRITE(telpacfl_lamp2_w) // ""
- AM_RANGE(0x800000, 0x800001) AM_WRITE(telpacfl_lockout_w) // Coin Blockers
- AM_RANGE(0x900000, 0x903fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
- AM_RANGE(0xb00000, 0xb3ffff) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE(0xb40000, 0xb4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
- AM_RANGE(0xb60000, 0xb6003f) AM_WRITE(vregs_w) AM_SHARE("vregs") // Video Registers
- AM_RANGE(0xd00006, 0xd00007) AM_DEVREAD("watchdog", watchdog_timer_device, reset16_r)
-// AM_RANGE(0xe00000, 0xe00001) AM_WRITE
- AM_RANGE(0xe00010, 0xe0001f) AM_WRITE(sound_bank_w) // Samples Banks
- AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
-ADDRESS_MAP_END
-
-
-/***************************************************************************
Funcube series
***************************************************************************/
@@ -1781,7 +1707,7 @@ static INPUT_PORTS_START( reelquak )
PORT_DIPSETTING( 0x0040, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x0000, "1 Coin/10 Credits" )
- PORT_START("DSW2") // $400302.w
+ PORT_START("DSW2") // $400302.w PORT_START("DSW2") // $400302.w
PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1") // used
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
@@ -1818,7 +1744,7 @@ static INPUT_PORTS_START( reelquak )
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("TICKET") // $400003.b
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("dispenser", ticket_dispenser_device, line_r) // ticket sensor
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("ticket", ticket_dispenser_device, line_r) // ticket sensor
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_NAME("Knock Down") // knock down
@@ -2108,113 +2034,6 @@ INPUT_PORTS_END
/***************************************************************************
- TelePachi Fever Lion
-***************************************************************************/
-
-static INPUT_PORTS_START( telpacfl )
- PORT_START("DSW1") // $600001.b ($200020.b)
- PORT_DIPNAME( 0x0001, 0x0001, "Clear NVRAM" ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, "Use Medal Sensor" ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") // used
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:5") // read but unsed?
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:6")
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, "Force Hopper?" ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "Freeze Screen" ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_START("DSW2") // $600003.b ($200021.b)
- PORT_DIPNAME( 0x000f, 0x000f, "Bonus Multiplier? (Low Hex Digit)" ) PORT_DIPLOCATION("SW2:1,2,3,4")
- PORT_DIPSETTING( 0x000f, "0" )
- PORT_DIPSETTING( 0x000e, "1" )
- PORT_DIPSETTING( 0x000d, "2" )
- PORT_DIPSETTING( 0x000c, "3" )
- PORT_DIPSETTING( 0x000b, "4" )
- PORT_DIPSETTING( 0x000a, "5" )
- PORT_DIPSETTING( 0x0009, "6" )
- PORT_DIPSETTING( 0x0008, "7" )
- PORT_DIPSETTING( 0x0007, "8" )
- PORT_DIPSETTING( 0x0006, "9" )
- PORT_DIPSETTING( 0x0005, "A" )
- PORT_DIPSETTING( 0x0004, "B" )
- PORT_DIPSETTING( 0x0003, "C" )
- PORT_DIPSETTING( 0x0002, "D" )
- PORT_DIPSETTING( 0x0001, "E" )
- PORT_DIPSETTING( 0x0000, "F" )
- PORT_DIPNAME( 0x0070, 0x0070, "Bonus Multiplier? (High Hex Digit)" ) PORT_DIPLOCATION("SW2:5,6,7")
- PORT_DIPSETTING( 0x0070, "0" )
- PORT_DIPSETTING( 0x0060, "1" )
- PORT_DIPSETTING( 0x0050, "2" )
- PORT_DIPSETTING( 0x0040, "3" )
- PORT_DIPSETTING( 0x0030, "4" )
- PORT_DIPSETTING( 0x0020, "5" )
- PORT_DIPSETTING( 0x0010, "6" )
- PORT_DIPSETTING( 0x0000, "7" )
- PORT_DIPNAME( 0x0080, 0x0080, "Use Bonus Multiplier?" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
-
- PORT_START("COIN") // $700000.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_OTHER ) // coin1 connection
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Reset") // reset switch (clear errors, play sound in sound test)
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH,IPT_OTHER ) // empty switch (out of medals error when low i.e. メダル切れ)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_OTHER ) // coin2 connection
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_OTHER ) // coin3 connection
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_OTHER ) // coin4 connection
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay out switch
-
- PORT_START("P1") // $700002.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Bet") // bet switch (converts credits into balls)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_GAMBLE_DOOR ) // door switch
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("dispenser", ticket_dispenser_device, line_r) // coin out switch (medals jam error when stuck i.e. メダルづまり)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0080, IP_ACTIVE_HIGH,IPT_BUTTON2 ) PORT_NAME("Stop") // stop switch (active high)
-
- PORT_START("SERVICE") // $700004.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) // coin in switch
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) // 100yen in switch
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service switch (next item in service mode)
- PORT_SERVICE_NO_TOGGLE(0x0008, IP_ACTIVE_LOW ) // test switch
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_OTHER ) // (freezes the game if high, eventually triggering the watchdog)
-
- PORT_START("UNKNOWN") // $700006.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) // -
-
- PORT_START("KNOB") // $fffd0a (parallel port read)
- PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(15) PORT_KEYDELTA(15) PORT_CENTERDELTA(0) PORT_CODE_DEC(KEYCODE_LEFT) PORT_CODE_INC(KEYCODE_RIGHT)
-INPUT_PORTS_END
-
-
-/***************************************************************************
Funcube series
***************************************************************************/
@@ -2625,7 +2444,7 @@ static MACHINE_CONFIG_DERIVED( reelquak, seta2 )
MCFG_TMP68301_OUT_PARALLEL_CB(WRITE16(seta2_state, reelquak_leds_w))
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_TICKET_DISPENSER_ADD("dispenser", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
+ MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
// video hardware
MCFG_SCREEN_MODIFY("screen")
@@ -2667,25 +2486,6 @@ static MACHINE_CONFIG_DERIVED( staraudi, seta2 )
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( telpacfl, seta2 )
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_PROGRAM_MAP(telpacfl_map)
-
- MCFG_DEVICE_MODIFY("tmp68301")
- MCFG_TMP68301_IN_PARALLEL_CB(IOPORT("KNOB"))
-
- MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") // not hooked up, seems unused
-
- MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_HOPPER_ADD("dispenser", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
-
- // video hardware
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0x0, 0x180-1, 0xff, 0x1ef-1)
- MCFG_VIDEO_START_OVERRIDE(seta2_state,xoffset1)
-MACHINE_CONFIG_END
-
-
/***************************************************************************
Funcube series
***************************************************************************/
@@ -3598,8 +3398,8 @@ Reel'N Quake! is also known to be available on the P-FG-03 PCB which is
ROM_START( reelquak )
ROM_REGION( 0x100000, "maincpu", 0 ) // TMP68301 Code
- ROM_LOAD16_BYTE( "rq_ver1.05.u2", 0x00000, 0x80000, CRC(7740d7a4) SHA1(21c28db5d4d7eea5a2506cb51b58533eba28c2cb) ) // Should be KF00x002, x = revision
- ROM_LOAD16_BYTE( "rq_ver1.05.u3", 0x00001, 0x80000, CRC(8c78889e) SHA1(584ba123e9caafdbddc96a4d9b2b6f6994fa84b0) ) // Should be KF00x004, x = revision
+ ROM_LOAD16_BYTE( "rq_ver1.05.u2", 0x00000, 0x80000, CRC(7740d7a4) SHA1(21c28db5d4d7eea5a2506cb51b58533eba28c2cb) ) /* Should be KF00x002, x = revision */
+ ROM_LOAD16_BYTE( "rq_ver1.05.u3", 0x00001, 0x80000, CRC(8c78889e) SHA1(584ba123e9caafdbddc96a4d9b2b6f6994fa84b0) ) /* Should be KF00x004, x = revision */
ROM_REGION( 0x800000, "sprites", 0 ) // Sprites
ROM_LOAD( "kf-001-005_t42.u16", 0x000000, 0x200000, CRC(25e07d5c) SHA1(dd0818611f39be25dc6f0c737da4e79c6c0f9659) )
@@ -4079,78 +3879,32 @@ ROM_START( trophyh ) /* V1.0 is currently the only known version */
ROM_LOAD( "as1105m01.u18", 0x100000, 0x400000, CRC(633d0df8) SHA1(3401c424f5c207ef438a9269e0c0e7d482771fed) )
ROM_END
-/***************************************************************************
-
- TelePachi Fever Lion
- (C) 1996 Sunsoft
-
- PCB: Sunsoft 2MP1-E00 (P0-121A, serial 0503), similar to Reel'N Quake.
-
- CPU: Toshiba TMP68301AF-16 (100 Pin PQFP @ U1)
- Video: Allumer X1-020 9426HK003 (@ U9 - Same as DX-101?)
- NEC DX-102 (52 Pin PQFP @ U8)
- Allumer X1-007 505100 (SDIP42 @ U110 - Feeds RGB DACs)
- Sound: X1-010 (Mitsubishi M60016 Gate Array, 80 Pin PQFP @ U26)
-Inputs: Allumer X1-004 546100 (SDIP52)
- OSC: 50.0000 MHz (@ X1) & 32.5304 MHz (@ X2)
- Other: 8 Position Dipswitch x 2 (@ DSW1, DSW2)
- Push Button
- Battery (@ BT1)
- 93C46 EEPROM (@ U101)
- Jamma Connector
- GALs - labeled "KC-001C", "KC-002C" (@ U51, U52)
-
-***************************************************************************/
-
-ROM_START( telpacfl )
- ROM_REGION( 0x100000, "maincpu", 0 ) // TMP68301 Code
- ROM_LOAD16_BYTE( "mp3_prgeven__u2_v1.0.u2", 0x000000, 0x080000, CRC(9ab450c5) SHA1(57d9118df8a444e295cbda453a7c3238bd672ddd) )
- ROM_LOAD16_BYTE( "mp3_prgodd__u3_v1.0.u3", 0x000001, 0x080000, CRC(2a324139) SHA1(1812a7a8a2c4e222a1e5c7cb6d39cf7bf7f037db) )
- // Empty sockets: 27C4001 TBL EVEN (@ U4) & 27C4001 TBL ODD (@ U5)
-
- ROM_REGION( 0x800000, "sprites", ROMREGION_ERASE00 ) // Sprites
- ROM_LOAD( "mp3_cg-0__u16_v1.0.u16", 0x000000, 0x200000, CRC(9d8453ba) SHA1(d97240ce68d6e64527930e919710764a7b669cdf) )
- ROM_LOAD( "mp3_cg-1__u15_v1.0.u15", 0x200000, 0x200000, CRC(8ab83f38) SHA1(5ebc682b80d0d97025a97824a899946712e7acd4) )
- ROM_LOAD( "mp3_cg-2__u21_v1.0.u21", 0x400000, 0x200000, BAD_DUMP CRC(54dc430b) SHA1(a2e55866249d01f6f2f2dd998421baf9fe0c6972) ) // physically damaged eprom
- ROM_FILL ( 0x400000, 0x200000, 0 ) // wipe out the bad rom
- // Empty sockets: 23C16000 (@ U17-20, U22-23)
-
- ROM_REGION( 0x200000, "x1snd", 0 ) // Samples
- // Leave 1MB empty (addressable by the chip)
- ROM_LOAD( "mp3_sound0__u111_v1.0.u111", 0x100000, 0x080000, CRC(711c915e) SHA1(d654a0c158cf54aab5faca913583c5620388aa46) )
- ROM_LOAD( "mp3_sound1__u112_v1.0.u112", 0x180000, 0x080000, CRC(27fd83cd) SHA1(d0261b2c5354ea17061e71bcea747d70efc18a49) )
-
- ROM_REGION( 0x117 * 2, "plds", 0 )
- ROM_LOAD( "kc-001c.u51", 0x000, 0x117, NO_DUMP )
- ROM_LOAD( "kc-002c.u52", 0x117, 0x117, NO_DUMP )
-ROM_END
-GAME( 1994, gundamex, 0, gundamex, gundamex, seta2_state, 0, ROT0, "Banpresto", "Mobile Suit Gundam EX Revue", 0 )
-GAME( 1995, grdians, 0, grdians, grdians, seta2_state, 0, ROT0, "Winkysoft (Banpresto license)", "Guardians / Denjin Makai II", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1996, mj4simai, 0, mj4simai, mj4simai, seta2_state, 0, ROT0, "Maboroshi Ware", "Wakakusamonogatari Mahjong Yonshimai (Japan)", MACHINE_NO_COCKTAIL )
-GAME( 1996, myangel, 0, myangel, myangel, seta2_state, 0, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1997, myangel2, 0, myangel2, myangel2, seta2_state, 0, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel 2 (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1996, telpacfl, 0, telpacfl, telpacfl, seta2_state, 0, ROT270, "Sunsoft", "TelePachi Fever Lion (V1.0)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1997, reelquak, 0, reelquak, reelquak, seta2_state, 0, ROT0, "<unknown>", "Reel'N Quake! (Version 1.05)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 199?, endrichs, 0, reelquak, endrichs, seta2_state, 0, ROT0, "E.N.Tiger", "Endless Riches (Ver 1.20)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1997, staraudi, 0, staraudi, staraudi, staraudi_state, 0, ROT0, "Namco", "Star Audition", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1999, pzlbowl, 0, pzlbowl, pzlbowl, seta2_state, 0, ROT0, "MOSS / Nihon System", "Puzzle De Bowling (Japan)", MACHINE_NO_COCKTAIL )
-GAME( 2000, penbros, 0, penbros, penbros, seta2_state, 0, ROT0, "Subsino", "Penguin Brothers (Japan)", MACHINE_NO_COCKTAIL )
-GAME( 2000, penbrosk, penbros, penbrosk, penbros, seta2_state, 0, ROT0, "bootleg", "Penguin Brothers (Japan, bootleg)", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING )
-GAME( 2000, namcostr, 0, namcostr, funcube, seta2_state, 0, ROT0, "Namco", "Namco Stars", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING )
-GAME( 2000, deerhunt, 0, samshoot, deerhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.3", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhunta, deerhunt, samshoot, deerhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.2", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhuntb, deerhunt, samshoot, deerhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhuntc, deerhunt, samshoot, deerhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V3", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhuntd, deerhunt, samshoot, deerhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V2", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhunte, deerhunt, samshoot, deerhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V1", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2001, turkhunt, 0, samshoot, turkhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Turkey Hunting USA V1.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2001, wschamp, 0, samshoot, wschamp, seta2_state, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V2.00", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2001, wschampa, wschamp, samshoot, wschamp, seta2_state, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V1.01", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2001, wschampb, wschamp, samshoot, wschamp, seta2_state, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V1.00", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2002, trophyh, 0, samshoot, trophyh, seta2_state, 0, ROT0, "Sammy USA Corporation", "Trophy Hunting - Bear & Moose V1.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2000, funcube, 0, funcube, funcube, seta2_state, funcube, ROT0, "Namco", "Funcube (v1.5)", MACHINE_NO_COCKTAIL )
-GAME( 2001, funcube2, 0, funcube2, funcube, seta2_state, funcube2, ROT0, "Namco", "Funcube 2 (v1.1)", MACHINE_NO_COCKTAIL )
-GAME( 2001, funcube3, 0, funcube3, funcube, seta2_state, funcube3, ROT0, "Namco", "Funcube 3 (v1.1)", MACHINE_NO_COCKTAIL )
-GAME( 2001, funcube4, 0, funcube2, funcube, seta2_state, funcube2, ROT0, "Namco", "Funcube 4 (v1.0)", MACHINE_NO_COCKTAIL )
-GAME( 2002, funcube5, 0, funcube2, funcube, seta2_state, funcube2, ROT0, "Namco", "Funcube 5 (v1.0)", MACHINE_NO_COCKTAIL )
+GAME( 1994, gundamex, 0, gundamex, gundamex, seta2_state, 0, ROT0, "Banpresto", "Mobile Suit Gundam EX Revue", 0 )
+GAME( 1995, grdians, 0, grdians, grdians, seta2_state, 0, ROT0, "Winkysoft (Banpresto license)", "Guardians / Denjin Makai II", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, mj4simai, 0, mj4simai, mj4simai, seta2_state, 0, ROT0, "Maboroshi Ware", "Wakakusamonogatari Mahjong Yonshimai (Japan)", MACHINE_NO_COCKTAIL )
+GAME( 1996, myangel, 0, myangel, myangel, seta2_state, 0, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, myangel2, 0, myangel2, myangel2, seta2_state, 0, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel 2 (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, reelquak, 0, reelquak, reelquak, seta2_state, 0, ROT0, "<unknown>", "Reel'N Quake! (Version 1.05)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 199?, endrichs, 0, reelquak, endrichs, seta2_state, 0, ROT0, "E.N.Tiger", "Endless Riches (Ver 1.20)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, staraudi, 0, staraudi, staraudi, staraudi_state, 0, ROT0, "Namco", "Star Audition", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, pzlbowl, 0, pzlbowl, pzlbowl, seta2_state, 0, ROT0, "MOSS / Nihon System", "Puzzle De Bowling (Japan)", MACHINE_NO_COCKTAIL )
+GAME( 2000, penbros, 0, penbros, penbros, seta2_state, 0, ROT0, "Subsino", "Penguin Brothers (Japan)", MACHINE_NO_COCKTAIL )
+GAME( 2000, penbrosk, penbros, penbrosk, penbros, seta2_state, 0, ROT0, "bootleg", "Penguin Brothers (Japan, bootleg)", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING )
+GAME( 2000, namcostr, 0, namcostr, funcube, seta2_state, 0, ROT0, "Namco", "Namco Stars", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING )
+GAME( 2000, deerhunt, 0, samshoot, deerhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.3", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, deerhunta, deerhunt, samshoot, deerhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.2", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, deerhuntb, deerhunt, samshoot, deerhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, deerhuntc, deerhunt, samshoot, deerhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V3", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, deerhuntd, deerhunt, samshoot, deerhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V2", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, deerhunte, deerhunt, samshoot, deerhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V1", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2001, turkhunt, 0, samshoot, turkhunt, seta2_state, 0, ROT0, "Sammy USA Corporation", "Turkey Hunting USA V1.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2001, wschamp, 0, samshoot, wschamp, seta2_state, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V2.00", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2001, wschampa, wschamp, samshoot, wschamp, seta2_state, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V1.01", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2001, wschampb, wschamp, samshoot, wschamp, seta2_state, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V1.00", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2002, trophyh, 0, samshoot, trophyh, seta2_state, 0, ROT0, "Sammy USA Corporation", "Trophy Hunting - Bear & Moose V1.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, funcube, 0, funcube, funcube, seta2_state, funcube, ROT0, "Namco", "Funcube (v1.5)", MACHINE_NO_COCKTAIL )
+GAME( 2001, funcube2, 0, funcube2, funcube, seta2_state, funcube2, ROT0, "Namco", "Funcube 2 (v1.1)", MACHINE_NO_COCKTAIL )
+GAME( 2001, funcube3, 0, funcube3, funcube, seta2_state, funcube3, ROT0, "Namco", "Funcube 3 (v1.1)", MACHINE_NO_COCKTAIL )
+GAME( 2001, funcube4, 0, funcube2, funcube, seta2_state, funcube2, ROT0, "Namco", "Funcube 4 (v1.0)", MACHINE_NO_COCKTAIL )
+GAME( 2002, funcube5, 0, funcube2, funcube, seta2_state, funcube2, ROT0, "Namco", "Funcube 5 (v1.0)", MACHINE_NO_COCKTAIL )
diff --git a/src/mame/drivers/sfbonus.cpp b/src/mame/drivers/sfbonus.cpp
index f0f6854c677..0ae11cd1b0e 100644
--- a/src/mame/drivers/sfbonus.cpp
+++ b/src/mame/drivers/sfbonus.cpp
@@ -5896,14 +5896,14 @@ void sfbonus_state::sfbonus_bitswap(
switch(i & 7)
{
- case 0: x = bitswap<8>(x^xor0, b00,b01,b02,b03,b04,b05,b06,b07); break;
- case 1: x = bitswap<8>(x^xor1, b10,b11,b12,b13,b14,b15,b16,b17); break;
- case 2: x = bitswap<8>(x^xor2, b20,b21,b22,b23,b24,b25,b26,b27); break;
- case 3: x = bitswap<8>(x^xor3, b30,b31,b32,b33,b34,b35,b36,b37); break;
- case 4: x = bitswap<8>(x^xor4, b40,b41,b42,b43,b44,b45,b46,b47); break;
- case 5: x = bitswap<8>(x^xor5, b50,b51,b52,b53,b54,b55,b56,b57); break;
- case 6: x = bitswap<8>(x^xor6, b60,b61,b62,b63,b64,b65,b66,b67); break;
- case 7: x = bitswap<8>(x^xor7, b70,b71,b72,b73,b74,b75,b76,b77); break;
+ case 0: x = BITSWAP8(x^xor0, b00,b01,b02,b03,b04,b05,b06,b07); break;
+ case 1: x = BITSWAP8(x^xor1, b10,b11,b12,b13,b14,b15,b16,b17); break;
+ case 2: x = BITSWAP8(x^xor2, b20,b21,b22,b23,b24,b25,b26,b27); break;
+ case 3: x = BITSWAP8(x^xor3, b30,b31,b32,b33,b34,b35,b36,b37); break;
+ case 4: x = BITSWAP8(x^xor4, b40,b41,b42,b43,b44,b45,b46,b47); break;
+ case 5: x = BITSWAP8(x^xor5, b50,b51,b52,b53,b54,b55,b56,b57); break;
+ case 6: x = BITSWAP8(x^xor6, b60,b61,b62,b63,b64,b65,b66,b67); break;
+ case 7: x = BITSWAP8(x^xor7, b70,b71,b72,b73,b74,b75,b76,b77); break;
}
ROM[i] = x;
diff --git a/src/mame/drivers/sfkick.cpp b/src/mame/drivers/sfkick.cpp
index fda6f6bd190..26e12a70051 100644
--- a/src/mame/drivers/sfkick.cpp
+++ b/src/mame/drivers/sfkick.cpp
@@ -237,7 +237,7 @@ READ8_MEMBER(sfkick_state::ppi_port_b_r)
{
case 0: return m_in0->read();
case 1: return m_in1->read();
- case 2: return bitswap<8>(m_dial->read(),4,5,6,7,3,2,1,0);
+ case 2: return BITSWAP8(m_dial->read(),4,5,6,7,3,2,1,0);
case 3: return m_dsw1->read();
case 4: return m_dsw2->read();
}
diff --git a/src/mame/drivers/sigmab52.cpp b/src/mame/drivers/sigmab52.cpp
index 521cb260376..f3a3cf3c69d 100644
--- a/src/mame/drivers/sigmab52.cpp
+++ b/src/mame/drivers/sigmab52.cpp
@@ -23,7 +23,7 @@
CPU:
- - 2x MC68B09P ; 6809 CPU @ 2 MHz, from Motorola.
+ - 2x MC68B09CP ; 6809 CPU @ 2 MHz, from Motorola.
- 1x HD63484P8 @ 8MHz ; Advanced CRT controller (ACRTC), from Hitachi Semiconductor.
RAM devices:
@@ -110,7 +110,6 @@
TODO:
- - Verify clocks.
- Improve memory map.
- Layout.
- Bill validator.
@@ -133,6 +132,10 @@
#include "sigmab52.lh"
+#define MAIN_CLOCK XTAL_18MHz
+#define SEC_CLOCK XTAL_8MHz
+#define AUX_CLOCK XTAL_3_579545MHz
+
class sigmab52_state : public driver_device
{
public:
@@ -575,16 +578,16 @@ void sigmab52_state::machine_reset()
static MACHINE_CONFIG_START( jwildb52 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_8MHz)
+ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK/9) /* 2 MHz */
MCFG_CPU_PROGRAM_MAP(jwildb52_map)
- MCFG_CPU_ADD("audiocpu", MC6809, XTAL_8MHz)
+ MCFG_CPU_ADD("audiocpu", M6809, MAIN_CLOCK/9) /* 2 MHz */
MCFG_CPU_PROGRAM_MAP(sound_prog_map)
- MCFG_DEVICE_ADD("6840ptm_1", PTM6840, XTAL_8MHz/4) // FIXME
+ MCFG_DEVICE_ADD("6840ptm_1", PTM6840, MAIN_CLOCK/9) // FIXME
MCFG_PTM6840_IRQ_CB(INPUTLINE("maincpu", M6809_IRQ_LINE))
- MCFG_DEVICE_ADD("6840ptm_2", PTM6840, XTAL_8MHz/8) // FIXME
+ MCFG_DEVICE_ADD("6840ptm_2", PTM6840, MAIN_CLOCK/18) // FIXME
MCFG_PTM6840_IRQ_CB(WRITELINE(sigmab52_state, ptm2_irq))
MCFG_NVRAM_ADD_NO_FILL("nvram")
@@ -597,7 +600,7 @@ static MACHINE_CONFIG_START( jwildb52 )
MCFG_SCREEN_UPDATE_DEVICE("hd63484", hd63484_device, update_screen)
MCFG_SCREEN_PALETTE("palette")
- MCFG_HD63484_ADD("hd63484", XTAL_8MHz, jwildb52_hd63484_map)
+ MCFG_HD63484_ADD("hd63484", SEC_CLOCK, jwildb52_hd63484_map)
MCFG_PALETTE_ADD("palette", 16)
@@ -606,7 +609,7 @@ static MACHINE_CONFIG_START( jwildb52 )
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
- MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_3_579545MHz)
+ MCFG_SOUND_ADD("ymsnd", YM3812, AUX_CLOCK)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/sigmab98.cpp b/src/mame/drivers/sigmab98.cpp
index 5f8259a8c2e..c26dcf49347 100644
--- a/src/mame/drivers/sigmab98.cpp
+++ b/src/mame/drivers/sigmab98.cpp
@@ -139,10 +139,7 @@ public:
m_eeprom(*this, "eeprom"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
- m_palette(*this, "palette"),
- m_hopper(*this, "hopper"),
- m_hopper_small(*this, "hopper_small"),
- m_hopper_large(*this, "hopper_large")
+ m_palette(*this, "palette")
{ }
required_device<cpu_device> m_maincpu;
@@ -157,9 +154,6 @@ public:
std::vector<uint8_t> m_paletteram;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
- optional_device<ticket_dispenser_device> m_hopper;
- optional_device<ticket_dispenser_device> m_hopper_small;
- optional_device<ticket_dispenser_device> m_hopper_large;
std::unique_ptr<bitmap_ind16> m_sprite_bitmap;
@@ -907,7 +901,7 @@ WRITE8_MEMBER(sigmab98_state::c6_w)
// 02 hopper motor on (active low)?
WRITE8_MEMBER(sigmab98_state::c8_w)
{
- m_hopper->motor_w((!(data & 0x02) && (data & 0x01)) ? 0 : 1);
+ machine().device<ticket_dispenser_device>("hopper")->write(space, 0, (!(data & 0x02) && (data & 0x01)) ? 0x00 : 0x80);
m_c8 = data;
show_outputs();
@@ -1222,7 +1216,7 @@ WRITE8_MEMBER(sigmab98_state::sammymdl_leds_w)
// 01 hopper motor on (active low)?
WRITE8_MEMBER(sigmab98_state::sammymdl_hopper_w)
{
- m_hopper->motor_w((!(data & 0x01) && (data & 0x02)) ? 0 : 1);
+ machine().device<ticket_dispenser_device>("hopper")->write(space, 0, (!(data & 0x01) && (data & 0x02)) ? 0x00 : 0x80);
m_out[2] = data;
show_3_outputs();
@@ -1232,7 +1226,7 @@ READ8_MEMBER(sigmab98_state::sammymdl_coin_hopper_r)
{
uint8_t ret = ioport("COIN")->read();
-// if ( !m_hopper->read(0) )
+// if ( !machine().device<ticket_dispenser_device>("hopper")->read(0) )
// ret &= ~0x01;
return ret;
@@ -1547,8 +1541,8 @@ WRITE8_MEMBER(sigmab98_state::gocowboy_leds_w)
// 10 hopper enable?
// 20 hopper motor on (active low)?
- m_hopper_small->motor_w((!(data & 0x20) && (data & 0x10)) ? 0 : 1);
- m_hopper_large->motor_w((!(data & 0x80) && (data & 0x40)) ? 0 : 1);
+ machine().device<ticket_dispenser_device>("hopper_small")->write(space, 0, (!(data & 0x20) && (data & 0x10)) ? 0x00 : 0x80);
+ machine().device<ticket_dispenser_device>("hopper_large")->write(space, 0, (!(data & 0x80) && (data & 0x40)) ? 0x00 : 0x80);
m_out[1] = data;
show_3_outputs();
diff --git a/src/mame/drivers/simpl156.cpp b/src/mame/drivers/simpl156.cpp
index 4abff40457a..b8229342162 100644
--- a/src/mame/drivers/simpl156.cpp
+++ b/src/mame/drivers/simpl156.cpp
@@ -1048,7 +1048,7 @@ DRIVER_INIT_MEMBER(simpl156_state,simpl156)
{
uint32_t addr;
- addr = bitswap<24> (x,23,22,21,0, 20,
+ addr = BITSWAP24 (x,23,22,21,0, 20,
19,18,17,16,
15,14,13,12,
11,10,9, 8,
diff --git a/src/mame/drivers/skimaxx.cpp b/src/mame/drivers/skimaxx.cpp
index 89cdd79900f..3c621dc4329 100644
--- a/src/mame/drivers/skimaxx.cpp
+++ b/src/mame/drivers/skimaxx.cpp
@@ -296,7 +296,7 @@ WRITE32_MEMBER(skimaxx_state::skimaxx_sub_ctrl_w)
*/
READ32_MEMBER(skimaxx_state::skimaxx_analog_r)
{
- return bitswap<8>(ioport(offset ? "Y" : "X")->read(), 0,1,2,3,4,5,6,7);
+ return BITSWAP8(ioport(offset ? "Y" : "X")->read(), 0,1,2,3,4,5,6,7);
}
/*************************************
diff --git a/src/mame/drivers/skyarmy.cpp b/src/mame/drivers/skyarmy.cpp
index 0f73cb76649..fa494e4b695 100644
--- a/src/mame/drivers/skyarmy.cpp
+++ b/src/mame/drivers/skyarmy.cpp
@@ -93,7 +93,7 @@ WRITE_LINE_MEMBER(skyarmy_state::flip_screen_y_w)
TILE_GET_INFO_MEMBER(skyarmy_state::get_tile_info)
{
int code = m_videoram[tile_index];
- int attr = bitswap<8>(m_colorram[tile_index], 7, 6, 5, 4, 3, 0, 1, 2) & 7;
+ int attr = BITSWAP8(m_colorram[tile_index], 7, 6, 5, 4, 3, 0, 1, 2) & 7;
SET_TILE_INFO_MEMBER(0, code, attr, 0);
}
@@ -158,7 +158,7 @@ uint32_t skyarmy_state::screen_update(screen_device &screen, bitmap_ind16 &bitma
for (offs = 0 ; offs < 0x40; offs+=4)
{
- pal = bitswap<8>(m_spriteram[offs+2], 7, 6, 5, 4, 3, 0, 1, 2) & 7;
+ pal = BITSWAP8(m_spriteram[offs+2], 7, 6, 5, 4, 3, 0, 1, 2) & 7;
sx = m_spriteram[offs+3];
sy = 240-(m_spriteram[offs]+1);
diff --git a/src/mame/drivers/skykid.cpp b/src/mame/drivers/skykid.cpp
index 6f28a46a259..5373dd50605 100644
--- a/src/mame/drivers/skykid.cpp
+++ b/src/mame/drivers/skykid.cpp
@@ -438,11 +438,11 @@ INTERRUPT_GEN_MEMBER(skykid_state::mcu_vblank_irq)
static MACHINE_CONFIG_START( skykid )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_49_152MHz/32)
+ MCFG_CPU_ADD("maincpu", M6809,49152000/32)
MCFG_CPU_PROGRAM_MAP(skykid_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", skykid_state, main_vblank_irq)
- MCFG_CPU_ADD("mcu", HD63701, XTAL_49_152MHz/8) /* or compatible 6808 with extra instructions */
+ MCFG_CPU_ADD("mcu", HD63701,49152000/8) /* or compatible 6808 with extra instructions */
MCFG_CPU_PROGRAM_MAP(mcu_map)
MCFG_CPU_IO_MAP(mcu_port_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", skykid_state, mcu_vblank_irq)
diff --git a/src/mame/drivers/smsmcorp.cpp b/src/mame/drivers/smsmcorp.cpp
index e081df52254..7eb2ced7cb8 100644
--- a/src/mame/drivers/smsmcorp.cpp
+++ b/src/mame/drivers/smsmcorp.cpp
@@ -846,35 +846,6 @@ ROM_START( trvhanga )
ROM_LOAD( "dmpal14h4nc.145.bin", 0x000000, 0x00003c, CRC(ab2af8de) SHA1(775495d47435c23eecf3defba15f5ca890836354) )
ROM_END
-
-ROM_START( sms4in1 )
- ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD( "set4_u19_2764.bin", 0xf8000, 0x02000, CRC(6f6116b9) SHA1(f91412ca9b911e2a822dab91c96e5f655e7ebb1b) )
- ROM_LOAD( "set4_u18_2764.bin", 0xfa000, 0x02000, CRC(cc13a404) SHA1(1c00d173706c5e88cee69f9c52efa64dbdf4c15b) )
- ROM_LOAD( "set4_u17_2764.bin", 0xfc000, 0x02000, CRC(fee0f422) SHA1(56ffafce78cf96c0b91b44a8408909b06499c960) )
- ROM_LOAD( "set4_u16_2764.bin", 0xfe000, 0x02000, CRC(87ed2873) SHA1(daa13f20cac4a41335d972be6772dff5d7555c10) )
- ROM_COPY( "maincpu", 0xf8000, 0x08000, 0x8000 )
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "set4_u26_73184_2732.bin", 0x0000, 0x1000, CRC(e04bb922) SHA1(1df90720f11a5b736273f43272d7727b3020f848) )
- ROM_RELOAD( 0x1000, 0x1000 )
-ROM_END
-
-
-ROM_START( smsjoker )
- ROM_REGION( 0x100000, "maincpu", 0 )
- // U19 was not populated
- ROM_LOAD( "set3_u18_hl_dlxe_080585.bin", 0xfa000, 0x02000, CRC(70614c00) SHA1(90c53e892ece4ceca0476be3653f160a49fd4bc9) )
- ROM_LOAD( "set3_u17_hl_dlxe_080585.bin", 0xfc000, 0x02000, CRC(872fb1c4) SHA1(a23d093b26c42aa66279d6dfa6d59789f5862d96) )
- ROM_LOAD( "set3_u16_hl_dlxe_080585.bin", 0xfe000, 0x02000, CRC(786c0792) SHA1(a7eea01c79b0d8baecdbda06ddbca40b39d8513a) )
- ROM_COPY( "maincpu", 0xf8000, 0x08000, 0x8000 )
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "set3_u26_26_73184_2732.bin", 0x0000, 0x1000, CRC(e04bb922) SHA1(1df90720f11a5b736273f43272d7727b3020f848) )
- ROM_RELOAD( 0x1000, 0x1000 )
-ROM_END
-
-
ROM_START( sureshot )
ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD( "u-19 hldly s.shot 020687.u19.a12.bin", 0xf8000, 0x02000, CRC(028bdb61) SHA1(e39c27cc6dec12de5a5e60d544f35448e49baee1) )
@@ -938,9 +909,7 @@ ROM_START( secondch )
ROM_RELOAD( 0x1000, 0x1000 )
ROM_END
-GAME( 1984, trvhang, 0, sms, sms, smsmfg_state, 0, ROT0, "SMS Manufacturing Corp.", "Trivia Hangup (question set 1)", MACHINE_SUPPORTS_SAVE ) /* Version Trivia-1-050185 */
-GAME( 1984, trvhanga, 0, sms, sms, smsmfg_state, 0, ROT0, "SMS Manufacturing Corp.", "Trivia Hangup (question set 2)", MACHINE_NOT_WORKING ) /* Version Trivia-2-011586 */
-GAME( 1984, sms4in1, 0, sureshot, sms, smsmfg_state, 0, ROT0, "SMS Manufacturing Corp.", "4-in-1", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, smsjoker, 0, sureshot, sms, smsmfg_state, 0, ROT0, "SMS Manufacturing Corp.", "Joker Poker With Hi-Lo Double-Up", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, sureshot, 0, sureshot, sms, smsmfg_state, 0, ROT0, "SMS Manufacturing Corp.", "Sure Shot", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, secondch, 0, sureshot, sms, smsmfg_state, 0, ROT0, "SMS Manufacturing Corp.", "Second Chance", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, trvhang, 0, sms, sms, smsmfg_state, 0, ROT0, "SMS Manufacturing Corp.", "Trivia Hangup (question set 1)", MACHINE_SUPPORTS_SAVE ) /* Version Trivia-1-050185 */
+GAME( 1984, trvhanga, 0, sms, sms, smsmfg_state, 0, ROT0, "SMS Manufacturing Corp.", "Trivia Hangup (question set 2)", MACHINE_NOT_WORKING ) /* Version Trivia-2-011586 */
+GAME( 1985, sureshot, 0, sureshot, sms, smsmfg_state, 0, ROT0, "SMS Manufacturing Corp.", "Sure Shot", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, secondch, 0, sureshot, sms, smsmfg_state, 0, ROT0, "SMS Manufacturing Corp.", "Second Chance", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/snesb.cpp b/src/mame/drivers/snesb.cpp
index 5b5461421cd..22957062134 100644
--- a/src/mame/drivers/snesb.cpp
+++ b/src/mame/drivers/snesb.cpp
@@ -745,7 +745,7 @@ DRIVER_INIT_MEMBER(snesb_state,kinstb)
for (i = 0; i < 0x400000; i++)
{
- rom[i] = bitswap<8>(rom[i], 5, 0, 6, 1, 7, 4, 3, 2);
+ rom[i] = BITSWAP8(rom[i], 5, 0, 6, 1, 7, 4, 3, 2);
}
m_shared_ram = std::make_unique<int8_t[]>(0x100);
@@ -775,23 +775,23 @@ DRIVER_INIT_MEMBER(snesb_state,ffight2b)
if (i < 0x10000) /* 0x00000 - 0x0ffff */
{
- rom[i] = bitswap<8>(rom[i],3,1,6,4,7,0,2,5);
+ rom[i] = BITSWAP8(rom[i],3,1,6,4,7,0,2,5);
}
else if (i < 0x20000) /* 0x10000 - 0x1ffff */
{
- rom[i] = bitswap<8>(rom[i],3,7,0,5,1,6,2,4);
+ rom[i] = BITSWAP8(rom[i],3,7,0,5,1,6,2,4);
}
else if (i < 0x30000) /* 0x20000 - 0x2ffff */
{
- rom[i] = bitswap<8>(rom[i],1,7,6,4,5,2,3,0);
+ rom[i] = BITSWAP8(rom[i],1,7,6,4,5,2,3,0);
}
else if (i < 0x40000) /* 0x30000 - 0x3ffff */
{
- rom[i] = bitswap<8>(rom[i],0,3,2,5,4,6,7,1);
+ rom[i] = BITSWAP8(rom[i],0,3,2,5,4,6,7,1);
}
else if (i < 0x150000)
{
- rom[i] = bitswap<8>(rom[i],6,4,0,5,1,3,2,7);
+ rom[i] = BITSWAP8(rom[i],6,4,0,5,1,3,2,7);
}
}
@@ -816,11 +816,11 @@ DRIVER_INIT_MEMBER(snesb_state,iron)
{
if(i < 0x80000)
{
- rom[i] = bitswap<8>(rom[i]^0xff,2,7,1,6,3,0,5,4);
+ rom[i] = BITSWAP8(rom[i]^0xff,2,7,1,6,3,0,5,4);
}
else
{
- rom[i] = bitswap<8>(rom[i],6,3,0,5,1,4,7,2);
+ rom[i] = BITSWAP8(rom[i],6,3,0,5,1,4,7,2);
}
}
@@ -842,12 +842,12 @@ DRIVER_INIT_MEMBER(snesb_state,denseib)
rom[i] = rom[i] ^ 0xff;
switch (i >> 16)
{
- case 0x00: rom[i] = bitswap<8>(rom[i],1,7,0,6,3,4,5,2); break;
- case 0x01: rom[i] = bitswap<8>(rom[i],3,4,7,2,0,6,5,1); break;
- case 0x02: rom[i] = bitswap<8>(rom[i],5,4,2,1,7,0,6,3); break;
- case 0x03: rom[i] = bitswap<8>(rom[i],0,1,3,7,2,6,5,4); break;
+ case 0x00: rom[i] = BITSWAP8(rom[i],1,7,0,6,3,4,5,2); break;
+ case 0x01: rom[i] = BITSWAP8(rom[i],3,4,7,2,0,6,5,1); break;
+ case 0x02: rom[i] = BITSWAP8(rom[i],5,4,2,1,7,0,6,3); break;
+ case 0x03: rom[i] = BITSWAP8(rom[i],0,1,3,7,2,6,5,4); break;
- default: rom[i] = bitswap<8>(rom[i],4,5,1,0,2,3,7,6); break;
+ default: rom[i] = BITSWAP8(rom[i],4,5,1,0,2,3,7,6); break;
}
}
@@ -872,15 +872,15 @@ DRIVER_INIT_MEMBER(snesb_state,legendsb)
u8 val = rom[i] ^ 0xff;
if (i < 0x10000)
- rom[i] = bitswap<8>(val,6,5,4,2,1,0,3,7); // 0x00000 - 0x0ffff
+ rom[i] = BITSWAP8(val,6,5,4,2,1,0,3,7); // 0x00000 - 0x0ffff
else if (i < 0x20000)
- rom[i] = bitswap<8>(val,6,1,3,5,2,0,7,4); // 0x10000 - 0x1ffff
+ rom[i] = BITSWAP8(val,6,1,3,5,2,0,7,4); // 0x10000 - 0x1ffff
else if (i < 0x30000)
- rom[i] = bitswap<8>(val,2,6,3,0,4,5,7,1); // 0x20000 - 0x2ffff
+ rom[i] = BITSWAP8(val,2,6,3,0,4,5,7,1); // 0x20000 - 0x2ffff
else if (i < 0x40000)
- rom[i] = bitswap<8>(val,5,4,2,7,0,3,6,1); // 0x30000 - 0x3ffff
+ rom[i] = BITSWAP8(val,5,4,2,7,0,3,6,1); // 0x30000 - 0x3ffff
else
- rom[i] = bitswap<8>(val,3,6,0,5,1,4,7,2); // 0x40000 - 0xfffff
+ rom[i] = BITSWAP8(val,3,6,0,5,1,4,7,2); // 0x40000 - 0xfffff
}
// boot vector
@@ -926,19 +926,19 @@ DRIVER_INIT_MEMBER(snesb_state,sblast2b)
if (newAddress < 0x10000)
{
- plainText = bitswap<8>(plainText, 6,3,5,4,2,0,7,1) ^ 0xff;
+ plainText = BITSWAP8(plainText, 6,3,5,4,2,0,7,1) ^ 0xff;
}
else if (newAddress < 0x20000)
{
- plainText = bitswap<8>(plainText, 4,0,7,6,3,1,2,5) ^ 0xff;
+ plainText = BITSWAP8(plainText, 4,0,7,6,3,1,2,5) ^ 0xff;
}
else if (newAddress < 0x30000)
{
- plainText = bitswap<8>(plainText, 5,7,6,1,4,3,0,2);
+ plainText = BITSWAP8(plainText, 5,7,6,1,4,3,0,2);
}
else if (newAddress < 0x40000)
{
- plainText = bitswap<8>(plainText, 3,1,2,0,5,6,4,7) ^ 0xff;
+ plainText = BITSWAP8(plainText, 3,1,2,0,5,6,4,7) ^ 0xff;
}
dst[newAddress] = plainText;
}
@@ -996,19 +996,19 @@ DRIVER_INIT_MEMBER(snesb_state,endless)
dst[i] = data_high[src[j]>>4] | data_low[src[j]&0xf];
if (i >= 0x00000 && i < 0x10000) {
- dst[i] = bitswap<8>(dst[i],2,3,4,1,7,0,6,5);
+ dst[i] = BITSWAP8(dst[i],2,3,4,1,7,0,6,5);
}
if (i >= 0x10000 && i < 0x20000) {
- dst[i] = bitswap<8>(dst[i],1,5,6,0,2,4,7,3) ^ 0xff;
+ dst[i] = BITSWAP8(dst[i],1,5,6,0,2,4,7,3) ^ 0xff;
}
if (i >= 0x20000 && i < 0x30000) {
- dst[i] = bitswap<8>(dst[i],3,0,1,6,4,5,2,7);
+ dst[i] = BITSWAP8(dst[i],3,0,1,6,4,5,2,7);
}
if (i >= 0x30000 && i < 0x40000) {
- dst[i] = bitswap<8>(dst[i],0,4,2,3,5,6,7,1) ^ 0xff;
+ dst[i] = BITSWAP8(dst[i],0,4,2,3,5,6,7,1) ^ 0xff;
}
}
diff --git a/src/mame/drivers/snk6502.cpp b/src/mame/drivers/snk6502.cpp
index 2ae1ce7a377..4482b4a1e7d 100644
--- a/src/mame/drivers/snk6502.cpp
+++ b/src/mame/drivers/snk6502.cpp
@@ -1392,40 +1392,6 @@ ROM_START( fantasyg )
ROM_LOAD( "fs_f_11.bin", 0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) )
ROM_END
-// SK-7A and SK-6 PCBs
-ROM_START( fantasyg2 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "ts5.bin", 0x3000, 0x1000, CRC(6edca14e) SHA1(d9152e212f2b3cdb6e7968e4e7638454ea02c4a5) )
- ROM_LOAD( "fs1.bin", 0x4000, 0x1000, CRC(d99656e8) SHA1(6f5febaeca2ec167523f48361ae2395772bcef53) )
- ROM_LOAD( "ts2.bin", 0x5000, 0x1000, CRC(2db6ce28) SHA1(18cced543f27664b3eaddf103a41580a905ffae1) )
- ROM_LOAD( "ts3.bin", 0x6000, 0x1000, CRC(1a0aa7c5) SHA1(c8f34618ffc98c73db7067851de24f245b8988ad) )
- ROM_LOAD( "fs4.bin", 0x7000, 0x1000, CRC(c02ad442) SHA1(a90b2d04fc2e8b2dda634c18eafb88007eaedc67) )
- ROM_LOAD( "fs6.bin", 0x8000, 0x1000, CRC(e5b91bc2) SHA1(85515eb57c8040fc95a9c62706e1a504e6749f66) )
- ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
- ROM_LOAD( "fs7.bin", 0x9000, 0x1000, CRC(cc18428e) SHA1(c7c0a031434cf9ce3c450b0c5dc2b154b08d19cf) )
- ROM_LOAD( "fs8.bin", 0xa000, 0x1000, CRC(371129fe) SHA1(c21759222aebcc9ea1292e367a41ac43a4dd3554) )
- ROM_LOAD( "fs9.bin", 0xb000, 0x1000, CRC(49574d4a) SHA1(37cae0df7e8705c300f684b3351b5bdba5e44ea2) )
-
- ROM_REGION( 0x2000, "gfx1", 0 )
- ROM_LOAD( "fs10.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) )
- ROM_LOAD( "fs11.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) )
-
- ROM_REGION( 0x0040, "proms", 0 )
- ROM_LOAD( "fantasy.ic7", 0x0000, 0x0020, CRC(361a5e99) SHA1(b9777ce658549c03971bd476482d5cc0be27d3a9) ) /* foreground colors */
- ROM_LOAD( "fantasy.ic6", 0x0020, 0x0020, CRC(33d974f7) SHA1(a6f6a531dec3f454b477bfdda8e213e9cad42748) ) /* background colors */
-
- ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */
- ROM_LOAD( "fs_b_51.bin", 0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) )
- ROM_LOAD( "fs_a_52.bin", 0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) )
- ROM_LOAD( "fs_c_53.bin", 0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) )
-
- ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */
- //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */
- ROM_LOAD( "fs_d_7.bin", 0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) )
- ROM_LOAD( "fs_e_8.bin", 0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) )
- ROM_LOAD( "fs_f_11.bin", 0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) )
-ROM_END
-
ROM_START( fantasyj )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "fs5jic12.bin", 0x3000, 0x1000, CRC(dd1eac89) SHA1(d63078d4666e3c6db0c9b3f8b45ef81606ed5a4f) )
@@ -1707,9 +1673,8 @@ GAME( 1981, satansatind, satansat, satansat, satansat, snk6502_state, 0, ROT90,
GAME( 1981, vanguard, 0, vanguard, vanguard, snk6502_state, 0, ROT90, "SNK", "Vanguard (SNK)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1981, vanguardc, vanguard, vanguard, vanguard, snk6502_state, 0, ROT90, "SNK (Centuri license)", "Vanguard (Centuri)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1981, vanguardj, vanguard, vanguard, vanguard, snk6502_state, 0, ROT90, "SNK", "Vanguard (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, fantasyg, fantasyu, fantasy, fantasy, snk6502_state, 0, ROT90, "SNK", "Fantasy (Germany)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // bootleg?
GAME( 1981, fantasyu, 0, fantasy, fantasyu, snk6502_state, 0, ROT90, "SNK (Rock-Ola license)", "Fantasy (US)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, fantasyg, fantasyu, fantasy, fantasy, snk6502_state, 0, ROT90, "SNK", "Fantasy (Germany, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // bootleg?
-GAME( 1981, fantasyg2, fantasyu, fantasy, fantasy, snk6502_state, 0, ROT90, "SNK", "Fantasy (Germany, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // bootleg?
GAME( 1981, fantasyj, fantasyu, fantasy, fantasyu, snk6502_state, 0, ROT90, "SNK", "Fantasy (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1982, pballoon, 0, pballoon, pballoon, snk6502_state, 0, ROT90, "SNK", "Pioneer Balloon", MACHINE_SUPPORTS_SAVE )
GAME( 1982, pballoonr, pballoon, pballoon, pballoon, snk6502_state, 0, ROT90, "SNK (Rock-Ola license)", "Pioneer Balloon (Rock-Ola license)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/snookr10.cpp b/src/mame/drivers/snookr10.cpp
index 44e618fef70..64a44c3dc01 100644
--- a/src/mame/drivers/snookr10.cpp
+++ b/src/mame/drivers/snookr10.cpp
@@ -209,7 +209,7 @@
digit #3
+-------+ swapped digits 1 & 2
| | +-------+------+
- tile_offset = bitswap<16>((tile_offset & 0xfff),15,14,13,12, 8,9,10,11, 0,1,2,3, 4,5,6,7)
+ tile_offset = BITSWAP16((tile_offset & 0xfff),15,14,13,12, 8,9,10,11, 0,1,2,3, 4,5,6,7)
| | | | | | | | || | | |
inverted inverted|inverted
bitorder bitorder|bitorder
@@ -243,7 +243,7 @@
1st nibble
inverted bitorder
| | | |
- color_index = bitswap<8>(color_index,4,5,6,7,2,3,0,1)
+ color_index = BITSWAP8(color_index,4,5,6,7,2,3,0,1)
<-> <->
2nd nibble
swappeed pairs
@@ -437,7 +437,7 @@
So, the algorithm to properly decrypt the color codes is the following one:
- color_index = bitswap<8>(color_index,7,5,6,4,3,2,1,0)
+ color_index = BITSWAP8(color_index,7,5,6,4,3,2,1,0)
| |
swapped
diff --git a/src/mame/drivers/snowbros.cpp b/src/mame/drivers/snowbros.cpp
index 464800fad8f..e5e65171cbb 100644
--- a/src/mame/drivers/snowbros.cpp
+++ b/src/mame/drivers/snowbros.cpp
@@ -2782,7 +2782,7 @@ DRIVER_INIT_MEMBER(snowbros_state,4in1boot)
std::vector<uint8_t> buffer(len);
int i;
for (i = 0;i < len; i++)
- if (i&1) buffer[i] = bitswap<8>(src[i],6,7,5,4,3,2,1,0);
+ if (i&1) buffer[i] = BITSWAP8(src[i],6,7,5,4,3,2,1,0);
else buffer[i] = src[i];
memcpy(src,&buffer[0],len);
@@ -2812,7 +2812,7 @@ DRIVER_INIT_MEMBER(snowbros_state,snowbro3)
std::vector<uint8_t> buffer(len);
int i;
for (i = 0;i < len; i++)
- buffer[i] = src[bitswap<24>(i,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,3,4,1,2,0)];
+ buffer[i] = src[BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,3,4,1,2,0)];
memcpy(src,&buffer[0],len);
}
@@ -2856,7 +2856,7 @@ DRIVER_INIT_MEMBER(snowbros_state,toto)
for (int i = 0; i < len; i++)
{
- src[i] = bitswap<8>(src[i], 7, 6, 5, 3, 4, 2, 1, 0);
+ src[i] = BITSWAP8(src[i], 7, 6, 5, 3, 4, 2, 1, 0);
}
src = memregion("gfx1")->base();
@@ -2864,7 +2864,7 @@ DRIVER_INIT_MEMBER(snowbros_state,toto)
for (int i = 0; i < len; i++)
{
- src[i] = bitswap<8>(src[i], 7, 6, 5, 3, 4, 2, 1, 0);
+ src[i] = BITSWAP8(src[i], 7, 6, 5, 3, 4, 2, 1, 0);
}
src = memregion("soundcpu")->base();
@@ -2872,7 +2872,7 @@ DRIVER_INIT_MEMBER(snowbros_state,toto)
for (int i = 0; i < len; i++)
{
- src[i] = bitswap<8>(src[i], 7, 6, 5, 3, 4, 2, 1, 0);
+ src[i] = BITSWAP8(src[i], 7, 6, 5, 3, 4, 2, 1, 0);
}
// protection? (just return 0x07)
diff --git a/src/mame/drivers/sonson.cpp b/src/mame/drivers/sonson.cpp
index f7cc802a1c2..9c35e66cd07 100644
--- a/src/mame/drivers/sonson.cpp
+++ b/src/mame/drivers/sonson.cpp
@@ -226,11 +226,11 @@ GFXDECODE_END
static MACHINE_CONFIG_START( sonson )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_12MHz/2) // HD68B09P (/4 internally)
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_12MHz/8) /* 1.5 MHz */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", sonson_state, irq0_line_hold)
- MCFG_CPU_ADD("audiocpu", MC6809, XTAL_12MHz/2) // HD68B09P (/4 internally)
+ MCFG_CPU_ADD("audiocpu", M6809, XTAL_12MHz/8) /* 1.5 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT_DRIVER(sonson_state, irq0_line_hold, 4*60) /* FIRQs are triggered by the main CPU */
diff --git a/src/mame/drivers/sothello.cpp b/src/mame/drivers/sothello.cpp
index 28d1e676f80..ff48bcdb680 100644
--- a/src/mame/drivers/sothello.cpp
+++ b/src/mame/drivers/sothello.cpp
@@ -30,7 +30,7 @@
| |
+---------------------------------------------------------------------------------+
-CPU : Z80A(x2) HD68B09P
+CPU : Z80A(x2) 68B09
Sound: YM2203?(surface scratched) + M5205
OSC : 8.0000MHz(X1) 21.477 MHz(X2) 384kHz(X3)
@@ -97,7 +97,12 @@ private:
#define VDP_MEM 0x40000
-
+#define MAIN_CLOCK (XTAL_21_4772MHz)
+#define MAINCPU_CLOCK (XTAL_21_4772MHz/6)
+#define SOUNDCPU_CLOCK (XTAL_21_4772MHz/6)
+#define YM_CLOCK (XTAL_21_4772MHz/12)
+#define MSM_CLOCK (XTAL_384kHz)
+#define SUBCPU_CLOCK (XTAL_8MHz/4)
/* main Z80 */
@@ -193,7 +198,7 @@ WRITE8_MEMBER(sothello_state::msm_cfg_w)
bit 2 = S2 1
bit 3 = S1 2
*/
- m_msm->playmode_w(bitswap<8>((data>>1), 7,6,5,4,3,0,1,2));
+ m_msm->playmode_w(BITSWAP8((data>>1), 7,6,5,4,3,0,1,2));
m_msm->reset_w(data & 1);
}
@@ -347,30 +352,30 @@ void sothello_state::machine_reset()
static MACHINE_CONFIG_START( sothello )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", Z80, XTAL_21_4772MHz / 6)
+ MCFG_CPU_ADD("maincpu", Z80, MAINCPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(maincpu_mem_map)
MCFG_CPU_IO_MAP(maincpu_io_map)
- MCFG_CPU_ADD("soundcpu", Z80, XTAL_21_4772MHz / 6)
+ MCFG_CPU_ADD("soundcpu", Z80, SOUNDCPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(soundcpu_mem_map)
MCFG_CPU_IO_MAP(soundcpu_io_map)
- MCFG_CPU_ADD("subcpu", MC6809, XTAL_8MHz) // divided by 4 internally
+ MCFG_CPU_ADD("subcpu", M6809, SUBCPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(subcpu_mem_map)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
/* video hardware */
- MCFG_V9938_ADD("v9938", "screen", VDP_MEM, XTAL_21_4772MHz)
+ MCFG_V9938_ADD("v9938", "screen", VDP_MEM, MAIN_CLOCK)
MCFG_V99X8_INTERRUPT_CALLBACK(INPUTLINE("maincpu", 0))
- MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9938", XTAL_21_4772MHz)
+ MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9938", MAIN_CLOCK)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
- MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_21_4772MHz / 12)
+ MCFG_SOUND_ADD("ymsnd", YM2203, YM_CLOCK)
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("subcpu", 0))
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
@@ -381,7 +386,7 @@ static MACHINE_CONFIG_START( sothello )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
- MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz)
+ MCFG_SOUND_ADD("msm", MSM5205, MSM_CLOCK)
MCFG_MSM5205_VCLK_CB(WRITELINE(sothello_state, adpcm_int)) /* interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* changed on the fly */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
diff --git a/src/mame/drivers/spdodgeb.cpp b/src/mame/drivers/spdodgeb.cpp
index a4591ce96a7..3190bdc168d 100644
--- a/src/mame/drivers/spdodgeb.cpp
+++ b/src/mame/drivers/spdodgeb.cpp
@@ -410,7 +410,7 @@ static MACHINE_CONFIG_START( spdodgeb )
MCFG_CPU_PROGRAM_MAP(spdodgeb_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", spdodgeb_state, interrupt, "screen", 0, 1) /* 1 IRQ every 8 visible scanlines, plus NMI for vblank */
- MCFG_CPU_ADD("audiocpu", MC6809, XTAL_12MHz/2) // HD68A09P (1.5MHz internally)
+ MCFG_CPU_ADD("audiocpu", M6809, XTAL_12MHz/6) /* 2MHz ? */
MCFG_CPU_PROGRAM_MAP(spdodgeb_sound_map)
/* video hardware */
diff --git a/src/mame/drivers/speedbal.cpp b/src/mame/drivers/speedbal.cpp
index c20cfe8dbac..cc4d2c493ae 100644
--- a/src/mame/drivers/speedbal.cpp
+++ b/src/mame/drivers/speedbal.cpp
@@ -301,7 +301,7 @@ DRIVER_INIT_MEMBER(speedbal_state,speedbal)
for (int i=0;i<0x200;i++)
{
- int j = bitswap<16>(i, 15,14,13,12,11,10,9,8,0,1,2,3,4,5,6,7);
+ int j = BITSWAP16(i, 15,14,13,12,11,10,9,8,0,1,2,3,4,5,6,7);
memcpy(&temp[i*128], rom+j*128, 128);
}
@@ -380,7 +380,7 @@ DRIVER_INIT_MEMBER(speedbal_state,musicbal)
int bswIdx = xorMask & 3; // ... and the bitswap
// only bits #0, #1, #2 & #7 are affected
- rom[i] = bitswap<8>(rom[i], swapTable[bswIdx][3], 6,5,4,3, swapTable[bswIdx][2], swapTable[bswIdx][1], swapTable[bswIdx][0]) ^ xorTable[addIdx];
+ rom[i] = BITSWAP8(rom[i], swapTable[bswIdx][3], 6,5,4,3, swapTable[bswIdx][2], swapTable[bswIdx][1], swapTable[bswIdx][0]) ^ xorTable[addIdx];
}
DRIVER_INIT_CALL(speedbal);
diff --git a/src/mame/drivers/spiders.cpp b/src/mame/drivers/spiders.cpp
index 617c3afc1f8..c28978e00fe 100644
--- a/src/mame/drivers/spiders.cpp
+++ b/src/mame/drivers/spiders.cpp
@@ -539,7 +539,7 @@ INPUT_PORTS_END
static MACHINE_CONFIG_START( spiders )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, 2800000)
+ MCFG_CPU_ADD("maincpu", M6809, 2800000)
MCFG_CPU_PROGRAM_MAP(spiders_main_map)
MCFG_CPU_PERIODIC_INT_DRIVER(spiders_state, update_pia_1, 25)
diff --git a/src/mame/drivers/spy.cpp b/src/mame/drivers/spy.cpp
index fccb56cd6dc..87e27afd992 100644
--- a/src/mame/drivers/spy.cpp
+++ b/src/mame/drivers/spy.cpp
@@ -495,11 +495,11 @@ void spy_state::machine_reset()
static MACHINE_CONFIG_START( spy )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_24MHz / 8) // 3 MHz? (divided by 051961)
+ MCFG_CPU_ADD("maincpu", M6809, 3000000) /* ? */
MCFG_CPU_PROGRAM_MAP(spy_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", spy_state, spy_interrupt)
- MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz)
+ MCFG_CPU_ADD("audiocpu", Z80, 3579545)
MCFG_CPU_PROGRAM_MAP(spy_sound_map) /* nmi by the sound chip */
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/squale.cpp b/src/mame/drivers/squale.cpp
index 3e37cfceb16..76b2028ba34 100644
--- a/src/mame/drivers/squale.cpp
+++ b/src/mame/drivers/squale.cpp
@@ -780,7 +780,7 @@ void squale_state::machine_reset()
static MACHINE_CONFIG_START( squale )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, CPU_CLOCK)
+ MCFG_CPU_ADD("maincpu",M6809E, CPU_CLOCK) // 12/2015 : Should be set to M6809 but it actually have the wrong clock divisor (1 instead of 4) and working 4 times too fast...
MCFG_CPU_PROGRAM_MAP(squale_mem)
MCFG_CPU_IO_MAP(squale_io)
diff --git a/src/mame/drivers/srumbler.cpp b/src/mame/drivers/srumbler.cpp
index 8a8eff46f4d..b1350b3cfa9 100644
--- a/src/mame/drivers/srumbler.cpp
+++ b/src/mame/drivers/srumbler.cpp
@@ -246,7 +246,7 @@ GFXDECODE_END
static MACHINE_CONFIG_START( srumbler )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, 6000000) /* HD68B09P at 6 MHz (?) */
+ MCFG_CPU_ADD("maincpu", M6809, 1500000) /* 1.5 MHz (?) */
MCFG_CPU_PROGRAM_MAP(srumbler_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", srumbler_state, interrupt, "screen", 0, 1)
diff --git a/src/mame/drivers/sshangha.cpp b/src/mame/drivers/sshangha.cpp
index 82079a606b6..cf3769b8aa9 100644
--- a/src/mame/drivers/sshangha.cpp
+++ b/src/mame/drivers/sshangha.cpp
@@ -136,7 +136,7 @@ WRITE16_MEMBER(sshangha_state::paletteram16_xbgr_word_be_tilehigh_w)
READ16_MEMBER( sshangha_state::sshangha_protection_region_d_146_r )
{
int real_address = 0x3f4000 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco146->read_data( deco146_addr, mem_mask, cs );
return data;
@@ -145,7 +145,7 @@ READ16_MEMBER( sshangha_state::sshangha_protection_region_d_146_r )
WRITE16_MEMBER( sshangha_state::sshangha_protection_region_d_146_w )
{
int real_address = 0x3f4000 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco146->write_data( space, deco146_addr, data, mem_mask, cs );
}
@@ -153,7 +153,7 @@ WRITE16_MEMBER( sshangha_state::sshangha_protection_region_d_146_w )
READ16_MEMBER( sshangha_state::sshangha_protection_region_8_146_r )
{
int real_address = 0x3e0000 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco146->read_data( deco146_addr, mem_mask, cs );
return data;
@@ -162,7 +162,7 @@ READ16_MEMBER( sshangha_state::sshangha_protection_region_8_146_r )
WRITE16_MEMBER( sshangha_state::sshangha_protection_region_8_146_w )
{
int real_address = 0x3e0000 + (offset *2);
- int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
+ int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco146->write_data( space, deco146_addr, data, mem_mask, cs );
}
diff --git a/src/mame/drivers/ssystem3.cpp b/src/mame/drivers/ssystem3.cpp
index f1f2a91409b..ad655d8bd01 100644
--- a/src/mame/drivers/ssystem3.cpp
+++ b/src/mame/drivers/ssystem3.cpp
@@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( ssystem3 )
MCFG_PALETTE_INIT_OWNER(ssystem3_state, ssystem3)
/* via */
- MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
+ MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(ssystem3_state,ssystem3_via_read_a))
MCFG_VIA6522_READPB_HANDLER(READ8(ssystem3_state,ssystem3_via_read_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(ssystem3_state,ssystem3_via_write_a))
diff --git a/src/mame/drivers/starwars.cpp b/src/mame/drivers/starwars.cpp
index 3166c409202..67ce17a2358 100644
--- a/src/mame/drivers/starwars.cpp
+++ b/src/mame/drivers/starwars.cpp
@@ -302,14 +302,14 @@ INPUT_PORTS_END
static MACHINE_CONFIG_START( starwars )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MASTER_CLOCK / 8)
+ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK / 8)
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_PERIODIC_INT_DRIVER(starwars_state, irq0_line_assert, CLOCK_3KHZ / 12)
MCFG_WATCHDOG_ADD("watchdog")
MCFG_WATCHDOG_TIME_INIT(attotime::from_hz(CLOCK_3KHZ / 128))
- MCFG_CPU_ADD("audiocpu", MC6809E, MASTER_CLOCK / 8)
+ MCFG_CPU_ADD("audiocpu", M6809, MASTER_CLOCK / 8)
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_DEVICE_ADD("riot", RIOT6532, MASTER_CLOCK / 8)
diff --git a/src/mame/drivers/statriv2.cpp b/src/mame/drivers/statriv2.cpp
index fb8ac5c9188..01d9fb118a3 100644
--- a/src/mame/drivers/statriv2.cpp
+++ b/src/mame/drivers/statriv2.cpp
@@ -1576,7 +1576,7 @@ DRIVER_INIT_MEMBER(statriv2_state, addr_lmhe)
uint32_t address;
for (address = 0; address < length; address++)
- qrom[address] ^= bitswap<8>(address, 4,3,3,2,2,1,1,0);
+ qrom[address] ^= BITSWAP8(address, 4,3,3,2,2,1,1,0);
DRIVER_INIT_CALL(addr_lmh);
}
diff --git a/src/mame/drivers/stlforce.cpp b/src/mame/drivers/stlforce.cpp
index 418bdd09607..a4ecdfe30d6 100644
--- a/src/mame/drivers/stlforce.cpp
+++ b/src/mame/drivers/stlforce.cpp
@@ -224,13 +224,12 @@ static MACHINE_CONFIG_DERIVED( twinbrat, stlforce )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_CLOCK(XTAL_14_7456MHz)
+ MCFG_CPU_CLOCK(14745600)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(3*8, 45*8-1, 0*8, 30*8-1)
MCFG_DEVICE_MODIFY("oki")
- MCFG_DEVICE_CLOCK(XTAL_30MHz / 32) // verified on 2 PCBs
MCFG_DEVICE_ADDRESS_MAP(0, twinbrat_oki_map)
MACHINE_CONFIG_END
@@ -301,30 +300,6 @@ Notes:
ROM_START( twinbrat )
ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "12.u105", 0x00000, 0x20000, CRC(552529b1) SHA1(bf23680335e1c5b05b80ab139609bee9f239b910) ) /* higher numbers are newer?? */
- ROM_LOAD16_BYTE( "13.u104", 0x00001, 0x20000, CRC(9805ba90) SHA1(cdc188fa38220d18c60c9f438520ee574e6ce0f7) ) /* higher numbers are newer?? */
-
- ROM_REGION( 0x200000, "gfx1", 0 )
- ROM_LOAD16_BYTE( "6.bin", 0x000000, 0x80000, CRC(af10ddfd) SHA1(e5e83044f20d6cbbc1b4ef1812ac57b6dc958a8a) )
- ROM_LOAD16_BYTE( "7.bin", 0x000001, 0x80000, CRC(3696345a) SHA1(ea38be3586757527b2a1aad2e22b83937f8602da) )
- ROM_LOAD16_BYTE( "4.bin", 0x100000, 0x80000, CRC(1ae8a751) SHA1(5f30306580c6ab4af0ddbdc4519eb4e0ab9bd23a) )
- ROM_LOAD16_BYTE( "5.bin", 0x100001, 0x80000, CRC(cf235eeb) SHA1(d067e2dd4f28a8986dd76ec0eba90e1adbf5787c) )
-
- ROM_REGION( 0x100000, "gfx2", 0 )
- ROM_LOAD( "11.bin", 0x000000, 0x40000, CRC(00eecb03) SHA1(5913da4d2ad97c1ce5e8e601a22b499cd93af744) )
- ROM_LOAD( "10.bin", 0x040000, 0x40000, CRC(7556bee9) SHA1(3fe99c7e9378791b79c43b04f5d0a36404448beb) )
- ROM_LOAD( "9.bin", 0x080000, 0x40000, CRC(13194d89) SHA1(95c35b6012f98a64630abb40fd55b24ff8a5e031) )
- ROM_LOAD( "8.bin", 0x0c0000, 0x40000, CRC(79f14528) SHA1(9c07d9a9e59f69a525bbaec05d74eb8d21bb9563) )
-
- ROM_REGION( 0x080000, "oki", 0 ) /* Samples, 0x00000 - 0x20000 fixed, 0x20000 - 0x40000 banked */
- ROM_LOAD( "1.bin", 0x00000, 0x80000, CRC(76296578) SHA1(04eca78abe60b283269464c0d12815579126ac08) )
-
- ROM_REGION16_BE( 0x80, "eeprom", 0 )
- ROM_LOAD( "eeprom-twinbrat.bin", 0x0000, 0x0080, CRC(9366263d) SHA1(ff5155498ed0b349ecc1ce98a39566b642201cf2) )
-ROM_END
-
-ROM_START( twinbrata )
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 Code */
ROM_LOAD16_BYTE( "2.u105", 0x00000, 0x20000, CRC(33a9bb82) SHA1(0f54239397c93e264b9b211f67bf626acf1246a9) )
ROM_LOAD16_BYTE( "3.u104", 0x00001, 0x20000, CRC(b1186a67) SHA1(502074063101885874db76ae707db1082313efcf) )
@@ -347,7 +322,7 @@ ROM_START( twinbrata )
ROM_LOAD( "eeprom-twinbrat.bin", 0x0000, 0x0080, CRC(9366263d) SHA1(ff5155498ed0b349ecc1ce98a39566b642201cf2) )
ROM_END
-ROM_START( twinbratb )
+ROM_START( twinbrata )
ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 Code */
ROM_LOAD16_BYTE( "2.bin", 0x00000, 0x20000, CRC(5e75f568) SHA1(f42d2a73d737e6b01dd049eea2a10fc8c8096d8f) )
ROM_LOAD16_BYTE( "3.bin", 0x00001, 0x20000, CRC(0e3fa9b0) SHA1(0148cc616eac84dc16415e1557ec6040d14392d4) )
@@ -385,7 +360,6 @@ DRIVER_INIT_MEMBER(stlforce_state, twinbrat)
}
-GAME( 1994, stlforce, 0, stlforce, stlforce, stlforce_state, stlforce, ROT0, "Electronic Devices Italy / Ecogames S.L. Spain", "Steel Force", MACHINE_SUPPORTS_SAVE )
-GAME( 1995, twinbrat, 0, twinbrat, stlforce, stlforce_state, twinbrat, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1995, twinbrata, twinbrat, twinbrat, stlforce, stlforce_state, twinbrat, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1995, twinbratb, twinbrat, twinbrat, stlforce, stlforce_state, twinbrat, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, stlforce, 0, stlforce, stlforce, stlforce_state, stlforce, ROT0, "Electronic Devices Italy / Ecogames S.L. Spain", "Steel Force", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, twinbrat, 0, twinbrat, stlforce, stlforce_state, twinbrat, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, twinbrata,twinbrat, twinbrat, stlforce, stlforce_state, twinbrat, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 2)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/stv.cpp b/src/mame/drivers/stv.cpp
index 5d779197bd4..192cbb18320 100644
--- a/src/mame/drivers/stv.cpp
+++ b/src/mame/drivers/stv.cpp
@@ -172,7 +172,7 @@ READ8_MEMBER(stv_state::critcrsh_ioga_r)
case 0x01:
case 0x03:
res = ioport(lgnames[offset >> 1])->read();
- res = bitswap<8>(res, 2, 3, 0, 1, 6, 7, 5, 4) & 0xf3;
+ res = BITSWAP8(res, 2, 3, 0, 1, 6, 7, 5, 4) & 0xf3;
res |= (ioport("PORTC")->read() & 0x10) ? 0x0 : 0x4; // x/y hit latch actually
break;
default: res = stv_ioga_r(space,offset); break;
@@ -1897,11 +1897,11 @@ DRIVER_INIT_MEMBER(stv_state,sanjeon)
{
src[x] = src[x]^0xff;
- src[x] = bitswap<8>(src[x],7,2,5,1, 3,6,4,0);
- src[x] = bitswap<8>(src[x],4,6,5,7, 3,2,1,0);
- src[x] = bitswap<8>(src[x],7,6,5,4, 2,3,1,0);
- src[x] = bitswap<8>(src[x],7,0,5,4, 3,2,1,6);
- src[x] = bitswap<8>(src[x],3,6,5,4, 7,2,1,0);
+ src[x] = BITSWAP8(src[x],7,2,5,1, 3,6,4,0);
+ src[x] = BITSWAP8(src[x],4,6,5,7, 3,2,1,0);
+ src[x] = BITSWAP8(src[x],7,6,5,4, 2,3,1,0);
+ src[x] = BITSWAP8(src[x],7,0,5,4, 3,2,1,6);
+ src[x] = BITSWAP8(src[x],3,6,5,4, 7,2,1,0);
}
diff --git a/src/mame/drivers/subsino.cpp b/src/mame/drivers/subsino.cpp
index f76bc13a099..4de5cf8ea5e 100644
--- a/src/mame/drivers/subsino.cpp
+++ b/src/mame/drivers/subsino.cpp
@@ -680,7 +680,7 @@ WRITE8_MEMBER(subsino_state::subsino_out_a_w)
machine().bookkeeping().coin_counter_w(2, data & 0x10 ); /* keyout */
machine().bookkeeping().coin_counter_w(3, data & 0x20 ); /* payout */
- m_hopper->motor_w(BIT(data, 5)); // hopper motor
+ m_hopper->write(space, 0, (data & 0x0020) ? 0x80 : 0); // hopper motor
// popmessage("Out A %02x",data);
}
diff --git a/src/mame/drivers/subsino2.cpp b/src/mame/drivers/subsino2.cpp
index 03ce8617aa3..02ea918099b 100644
--- a/src/mame/drivers/subsino2.cpp
+++ b/src/mame/drivers/subsino2.cpp
@@ -93,8 +93,7 @@ public:
m_oki(*this, "oki"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
- m_palette(*this, "palette"),
- m_hopper(*this, "hopper") { }
+ m_palette(*this, "palette") { }
layer_t m_layers[2];
uint8_t m_ss9601_byte_lo;
@@ -181,7 +180,6 @@ public:
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
- optional_device<ticket_dispenser_device> m_hopper;
private:
inline void ss9601_get_tile_info(layer_t *l, tile_data &tileinfo, tilemap_memory_index tile_index);
@@ -875,7 +873,7 @@ READ16_MEMBER(subsino2_state::bishjan_input_r)
return (res << 8) | // high byte
ioport("SYSTEM")->read() | // low byte
- (machine().device<ticket_dispenser_device>("hopper")->line_r() ? 0x00 : 0x04) // bit 2: hopper sensor
+ (machine().device<ticket_dispenser_device>("hopper")->read(space, 0) ? 0x00 : 0x04) // bit 2: hopper sensor
;
}
@@ -888,9 +886,9 @@ WRITE16_MEMBER(subsino2_state::bishjan_outputs_w)
case 0:
if (ACCESSING_BITS_0_7)
{
- // coin out BIT(data, 0)
- m_hopper->motor_w(BIT(data, 1)); // hopper
- machine().bookkeeping().coin_counter_w(0, BIT(data, 4));
+ // coin out data & 0x01;
+ machine().device<ticket_dispenser_device>("hopper")->write(space, 0, (data & 0x0002) ? 0x80 : 0); // hopper
+ machine().bookkeeping().coin_counter_w(0, data & 0x0010 );
}
break;
}
diff --git a/src/mame/drivers/sun2.cpp b/src/mame/drivers/sun2.cpp
index 5ad02d4b2d8..740804d1665 100644
--- a/src/mame/drivers/sun2.cpp
+++ b/src/mame/drivers/sun2.cpp
@@ -207,7 +207,7 @@ READ16_MEMBER( sun2_state::tl_mmu_r )
switch (offset & 7)
{
case 4:
- //printf("sun2: Read IDPROM @ %x (PC=%x)\n", offset<<1, m_maincpu->pc());
+ //printf("sun2: Read IDPROM @ %x (PC=%x)\n", offset<<1, m_maincpu->pc);
return m_idprom_ptr[(offset>>10) & 0x1f]<<8;
case 5:
@@ -215,7 +215,7 @@ READ16_MEMBER( sun2_state::tl_mmu_r )
return m_diagreg;
case 6:
- //printf("sun2: Read bus error @ PC %x\n", m_maincpu->pc());
+ //printf("sun2: Read bus error @ PC %x\n", m_maincpu->pc);
return m_buserror;
case 7:
@@ -325,7 +325,7 @@ READ16_MEMBER( sun2_state::tl_mmu_r )
if (!machine().side_effect_disabled()) printf("sun2: pagemap entry not valid!\n");
}
- if (!machine().side_effect_disabled()) printf("sun2: Unmapped read @ %08x (FC %d, mask %04x, PC=%x, seg %x)\n", offset<<1, fc, mem_mask, m_maincpu->pc(), offset>>15);
+ if (!machine().side_effect_disabled()) printf("sun2: Unmapped read @ %08x (FC %d, mask %04x, PC=%x, seg %x)\n", offset<<1, fc, mem_mask, m_maincpu->pc, offset>>15);
return 0xffff;
}
@@ -334,7 +334,7 @@ WRITE16_MEMBER( sun2_state::tl_mmu_w )
{
uint8_t fc = m_maincpu->get_fc();
- //printf("sun2: Write %04x (FC %d, mask %04x, PC=%x) to %08x\n", data, fc, mem_mask, m_maincpu->pc(), offset<<1);
+ //printf("sun2: Write %04x (FC %d, mask %04x, PC=%x) to %08x\n", data, fc, mem_mask, m_maincpu->pc, offset<<1);
if (fc == 3)
{
@@ -348,7 +348,7 @@ WRITE16_MEMBER( sun2_state::tl_mmu_w )
case 5:
// XOR to match Table 2-1 in the 2/50 Field Service Manual
- printf("sun2: CPU LEDs to %02x (PC=%x) => ", (data & 0xff) ^ 0xff, m_maincpu->pc());
+ printf("sun2: CPU LEDs to %02x (PC=%x) => ", (data & 0xff) ^ 0xff, m_maincpu->pc);
m_diagreg = data & 0xff;
for (int i = 0; i < 8; i++)
{
@@ -396,11 +396,11 @@ WRITE16_MEMBER( sun2_state::tl_mmu_w )
m_pagemap[page] &= 0x0000ffff;
m_pagemap[page] |= (data<<16);
}
- //printf("entry now %08x (adr %08x PC=%x)\n", m_pagemap[page], (m_pagemap[page] & 0xfffff) << 11, m_maincpu->pc());
+ //printf("entry now %08x (adr %08x PC=%x)\n", m_pagemap[page], (m_pagemap[page] & 0xfffff) << 11, m_maincpu->pc);
return;
case 2: // segment map
- //printf("sun2: Write %02x to segment map at %x (entry %d, user ctx %d PC=%x)\n", data & 0xff, offset<<1, offset>>14, m_context & 7, m_maincpu->pc());
+ //printf("sun2: Write %02x to segment map at %x (entry %d, user ctx %d PC=%x)\n", data & 0xff, offset<<1, offset>>14, m_context & 7, m_maincpu->pc);
m_segmap[m_context & 7][offset >> 14] = data & 0xff;
return;
@@ -452,7 +452,7 @@ WRITE16_MEMBER( sun2_state::tl_mmu_w )
if (!machine().side_effect_disabled()) printf("sun2: pagemap entry not valid!\n");
}
- printf("sun2: Unmapped write %04x (FC %d, mask %04x, PC=%x) to %08x\n", data, fc, mem_mask, m_maincpu->pc(), offset<<1);
+ printf("sun2: Unmapped write %04x (FC %d, mask %04x, PC=%x) to %08x\n", data, fc, mem_mask, m_maincpu->pc, offset<<1);
}
// BW2 video control
diff --git a/src/mame/drivers/sun3.cpp b/src/mame/drivers/sun3.cpp
index 868bf01ff74..ec0835abfa9 100644
--- a/src/mame/drivers/sun3.cpp
+++ b/src/mame/drivers/sun3.cpp
@@ -308,7 +308,7 @@ READ32_MEMBER( sun3_state::ram_r )
if (!m_bInBusErr)
{
- //printf("ram_r: bus error on timeout, access to invalid addr %08x, PC=%x\n", offset<<2, m_maincpu->pc());
+ //printf("ram_r: bus error on timeout, access to invalid addr %08x, PC=%x\n", offset<<2, m_maincpu->pc);
//fflush(stdout);
m_buserr = BE_TIMEOUT;
m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE);
@@ -381,7 +381,7 @@ WRITE32_MEMBER( sun3_state::ram_w )
if (!m_bInBusErr)
{
- //printf("ram_w: bus error on timeout, access to invalid addr %08x, PC=%x\n", offset<<2, m_maincpu->pc());
+ //printf("ram_w: bus error on timeout, access to invalid addr %08x, PC=%x\n", offset<<2, m_maincpu->pc);
fflush(stdout);
m_buserr = BE_TIMEOUT;
m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE);
@@ -432,22 +432,22 @@ READ32_MEMBER( sun3_state::tl_mmu_r )
return 0;
case 8: // cache tags
- //printf("sun3: read cache tags @ %x, PC = %x\n", offset, m_maincpu->pc());
+ //printf("sun3: read cache tags @ %x, PC = %x\n", offset, m_maincpu->pc);
return m_cache_tags[(offset & 0x3fff) >> 2];
case 9: // cache data
- //printf("sun3: read cache data @ %x, PC = %x\n", offset, m_maincpu->pc());
+ //printf("sun3: read cache data @ %x, PC = %x\n", offset, m_maincpu->pc);
return m_cache_data[(offset & 0x3fff)];
case 10: // flush cache
return 0xffffffff;
case 11: // block copy
- printf("sun3: read block copy @ %x, PC = %x\n", offset, m_maincpu->pc());
+ printf("sun3: read block copy @ %x, PC = %x\n", offset, m_maincpu->pc);
return 0xffffffff;
case 15: // UART bypass
- //printf("sun3: read UART bypass @ %x, PC = %x, mask = %08x\n", offset, m_maincpu->pc(), mem_mask);
+ //printf("sun3: read UART bypass @ %x, PC = %x, mask = %08x\n", offset, m_maincpu->pc, mem_mask);
return 0xffffffff;
}
}
@@ -513,7 +513,7 @@ READ32_MEMBER( sun3_state::tl_mmu_r )
}
else
{
-// if (!machine().side_effect_disabled()) printf("sun3: pagemap entry not valid! (PC=%x)\n", m_maincpu->pc());
+// if (!machine().side_effect_disabled()) printf("sun3: pagemap entry not valid! (PC=%x)\n", m_maincpu->pc);
m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE);
m_maincpu->set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE);
m_buserr = BE_INVALID;
@@ -521,7 +521,7 @@ READ32_MEMBER( sun3_state::tl_mmu_r )
return 0xffffffff;
}
- if (!machine().side_effect_disabled()) logerror("sun3: Unmapped read @ %08x (FC %d, mask %08x, PC=%x, seg %x)\n", offset<<2, fc, mem_mask, m_maincpu->pc(), offset>>15);
+ if (!machine().side_effect_disabled()) logerror("sun3: Unmapped read @ %08x (FC %d, mask %08x, PC=%x, seg %x)\n", offset<<2, fc, mem_mask, m_maincpu->pc, offset>>15);
return 0xffffffff;
}
@@ -530,7 +530,7 @@ WRITE32_MEMBER( sun3_state::tl_mmu_w )
{
uint8_t fc = m_maincpu->get_fc();
- //printf("sun3: Write %08x (FC %d, mask %08x, PC=%x) to %08x\n", data, fc, mem_mask, m_maincpu->pc(), offset<<1);
+ //printf("sun3: Write %08x (FC %d, mask %08x, PC=%x) to %08x\n", data, fc, mem_mask, m_maincpu->pc, offset<<1);
if (fc == 3) // control space
{
@@ -549,11 +549,11 @@ WRITE32_MEMBER( sun3_state::tl_mmu_w )
//printf("sun3: Write %04x to page map at %x (entry %d), ", data, offset<<2, page);
COMBINE_DATA(&m_pagemap[page]);
- //printf("entry now %08x (adr %08x PC=%x mask %x)\n", m_pagemap[page], (m_pagemap[page] & 0xfffff) << 13, m_maincpu->pc(), mem_mask);
+ //printf("entry now %08x (adr %08x PC=%x mask %x)\n", m_pagemap[page], (m_pagemap[page] & 0xfffff) << 13, m_maincpu->pc, mem_mask);
return;
case 2: // segment map
- //printf("sun3: Write %02x to segment map at %x (entry %d, user ctx %d PC=%x mask %x)\n", (data>>24) & 0xff, offset<<2, (offset & ~0x3c000000)>>15, m_context & 7, m_maincpu->pc(), mem_mask);
+ //printf("sun3: Write %02x to segment map at %x (entry %d, user ctx %d PC=%x mask %x)\n", (data>>24) & 0xff, offset<<2, (offset & ~0x3c000000)>>15, m_context & 7, m_maincpu->pc, mem_mask);
m_segmap[m_context & 7][(offset >> 15) & 0x7ff] = (data>>24) & 0xff;
//printf("segment map[%d][%d] now %x\n", m_context & 7, (offset & ~0x3c000000) >> 15, m_segmap[m_context & 7][(offset & ~0x3c000000) >> 15] = (data>>24) & 0xff);
return;
@@ -564,7 +564,7 @@ WRITE32_MEMBER( sun3_state::tl_mmu_w )
return;
case 4: // enable reg
- //printf("sun3: Write %x to enable, PC=%x\n", data, m_maincpu->pc());
+ //printf("sun3: Write %x to enable, PC=%x\n", data, m_maincpu->pc);
COMBINE_DATA(&m_enable);
return;
@@ -578,7 +578,7 @@ WRITE32_MEMBER( sun3_state::tl_mmu_w )
case 7: // diagnostic reg
m_diag = data >> 24;
#if 0
- printf("sun3: CPU LEDs to %02x (PC=%x) => ", ((data>>24) & 0xff) ^ 0xff, m_maincpu->pc());
+ printf("sun3: CPU LEDs to %02x (PC=%x) => ", ((data>>24) & 0xff) ^ 0xff, m_maincpu->pc);
for (int i = 0; i < 8; i++)
{
if (m_diag & (1<<i))
@@ -595,12 +595,12 @@ WRITE32_MEMBER( sun3_state::tl_mmu_w )
return;
case 8: // cache tags
- //printf("sun3: %08x to cache tags @ %x, PC = %x, mask = %08x\n", data, offset, m_maincpu->pc(), mem_mask);
+ //printf("sun3: %08x to cache tags @ %x, PC = %x, mask = %08x\n", data, offset, m_maincpu->pc, mem_mask);
m_cache_tags[(offset & 0x3fff) >> 2] = data;
return;
case 9: // cache data
- //printf("sun3: %08x to cache data @ %x, PC = %x, mask = %08x\n", data, offset, m_maincpu->pc(), mem_mask);
+ //printf("sun3: %08x to cache data @ %x, PC = %x, mask = %08x\n", data, offset, m_maincpu->pc, mem_mask);
m_cache_data[(offset & 0x3fff)] = data;
return;
@@ -608,11 +608,11 @@ WRITE32_MEMBER( sun3_state::tl_mmu_w )
return;
case 11: // block copy
- printf("sun3: %08x to block copy @ %x, PC = %x\n", data, offset, m_maincpu->pc());
+ printf("sun3: %08x to block copy @ %x, PC = %x\n", data, offset, m_maincpu->pc);
return;
case 15: // UART bypass
- //printf("sun3: %08x to UART bypass @ %x, PC = %x\n", data, offset, m_maincpu->pc());
+ //printf("sun3: %08x to UART bypass @ %x, PC = %x\n", data, offset, m_maincpu->pc);
return;
}
}
@@ -626,7 +626,7 @@ WRITE32_MEMBER( sun3_state::tl_mmu_w )
if ((!(m_pagemap[entry] & PM_WRITEMASK)) ||
((m_pagemap[entry] & PM_SYSMASK) && (fc < M68K_FC_SUPERVISOR_DATA)))
{
- //printf("sun3: write protect MMU error (PC=%x)\n", m_maincpu->pc());
+ //printf("sun3: write protect MMU error (PC=%x)\n", m_maincpu->pc);
m_buserr = BE_PROTERR;
m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE);
m_maincpu->set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE);
@@ -671,7 +671,7 @@ WRITE32_MEMBER( sun3_state::tl_mmu_w )
return;
}
- logerror("sun3: Unmapped write %04x (FC %d, mask %04x, PC=%x) to %08x\n", data, fc, mem_mask, m_maincpu->pc(), offset<<2);
+ logerror("sun3: Unmapped write %04x (FC %d, mask %04x, PC=%x) to %08x\n", data, fc, mem_mask, m_maincpu->pc, offset<<2);
}
READ32_MEMBER(sun3_state::parity_r)
@@ -783,7 +783,7 @@ WRITE32_MEMBER(sun3_state::irqctrl_w)
READ8_MEMBER(sun3_state::rtc7170_r)
{
- //printf("read 7170 @ %x, PC=%x\n", offset, m_maincpu->pc());
+ //printf("read 7170 @ %x, PC=%x\n", offset, m_maincpu->pc);
return 0xff;
}
@@ -803,7 +803,7 @@ WRITE8_MEMBER(sun3_state::rtc7170_w)
READ32_MEMBER(sun3_state::ecc_r)
{
- //printf("read ECC @ %x, PC=%x\n", offset, m_maincpu->pc());
+ //printf("read ECC @ %x, PC=%x\n", offset, m_maincpu->pc);
// fefc34a
int mbram = (m_ram_size / (1024*1024));
int beoff = (mbram / 32) * 0x10;
diff --git a/src/mame/drivers/suna8.cpp b/src/mame/drivers/suna8.cpp
index 0d580f9f19e..3652152451e 100644
--- a/src/mame/drivers/suna8.cpp
+++ b/src/mame/drivers/suna8.cpp
@@ -76,7 +76,7 @@ DRIVER_INIT_MEMBER(suna8_state,hardhead)
int table = ((i & 0x0c00) >> 10) | ((i & 0x4000) >> 12);
if (swaptable[table])
- rom[i] = bitswap<8>(rom[i], 7,6,5,3,4,2,1,0) ^ 0x58;
+ rom[i] = BITSWAP8(rom[i], 7,6,5,3,4,2,1,0) ^ 0x58;
}
m_bank0d->set_base(memregion("maincpu")->base());
@@ -118,15 +118,15 @@ uint8_t *suna8_state::brickzn_decrypt()
if (data_swap)
{
- x = bitswap<8>(x, 7,6,5,4,3,2,0,1);
- RAM[i] = bitswap<8>(x, 7,2,3,4,5,6,1,0) ^ 0x10;
+ x = BITSWAP8(x, 7,6,5,4,3,2,0,1);
+ RAM[i] = BITSWAP8(x, 7,2,3,4,5,6,1,0) ^ 0x10;
}
if (opcode_swap)
x ^= 0x80;
if (opcode_swap || data_swap)
- x = bitswap<8>(x, 7,2,3,4,5,6,1,0) ^ 0x10;
+ x = BITSWAP8(x, 7,2,3,4,5,6,1,0) ^ 0x10;
decrypt[i] = x;
@@ -255,7 +255,7 @@ rom13: 0?, 1y, 2n, 3n ?,?,?,? (palettes)
int addr = i;
if (swaptable[(i & 0xff000) >> 12])
- addr = (addr & 0xf0000) | bitswap<16>(addr, 15,14,13,12,11,10,9,8,6,7,5,4,3,2,1,0);
+ addr = (addr & 0xf0000) | BITSWAP16(addr, 15,14,13,12,11,10,9,8,6,7,5,4,3,2,1,0);
RAM[i] = decrypt[addr];
}
@@ -277,9 +277,9 @@ rom13: 0?, 1y, 2n, 3n ?,?,?,? (palettes)
x = RAM[i];
- x = bitswap<8>(x, 7,6,5,3,4,2,1,0) ^ 0x41 ^ xortable[table];
+ x = BITSWAP8(x, 7,6,5,3,4,2,1,0) ^ 0x41 ^ xortable[table];
if (swaptable[table])
- x = bitswap<8>(x, 5,6,7,4,3,2,1,0);
+ x = BITSWAP8(x, 5,6,7,4,3,2,1,0);
decrypt[i] = x;
}
@@ -290,7 +290,7 @@ rom13: 0?, 1y, 2n, 3n ?,?,?,? (palettes)
static const uint8_t swaptable[8] = { 1,1,0,1,0,1,1,0 };
if (swaptable[(i & 0x7000) >> 12])
- RAM[i] = bitswap<8>(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x41;
+ RAM[i] = BITSWAP8(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x41;
}
m_bank1->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
@@ -335,7 +335,7 @@ DRIVER_INIT_MEMBER(suna8_state,starfigh)
int addr = i;
if (swaptable[(i & 0xff000) >> 12])
- addr = bitswap<24>(addr, 23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,6,7,5,4,3,2,1,0);
+ addr = BITSWAP24(addr, 23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,6,7,5,4,3,2,1,0);
RAM[i] = decrypt[addr];
}
@@ -357,9 +357,9 @@ DRIVER_INIT_MEMBER(suna8_state,starfigh)
x = RAM[i];
- x = bitswap<8>(x, 5,6,7,3,4,2,1,0) ^ 0x45 ^ xortable[table];
+ x = BITSWAP8(x, 5,6,7,3,4,2,1,0) ^ 0x45 ^ xortable[table];
if (swaptable[table])
- x = bitswap<8>(x, 5,6,7,4,3,2,1,0) ^ 0x04;
+ x = BITSWAP8(x, 5,6,7,4,3,2,1,0) ^ 0x04;
decrypt[i] = x;
}
@@ -370,7 +370,7 @@ DRIVER_INIT_MEMBER(suna8_state,starfigh)
static const uint8_t swaptable[8] = { 1,1,0,1,0,1,1,0 };
if (swaptable[(i & 0x7000) >> 12])
- RAM[i] = bitswap<8>(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x45;
+ RAM[i] = BITSWAP8(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x45;
}
@@ -420,7 +420,7 @@ DRIVER_INIT_MEMBER(suna8_state,sparkman)
int addr = i;
if (swaptable[(i & 0xff000) >> 12])
- addr = bitswap<24>(addr, 23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,7,8,6,5,4,3,2,1,0);
+ addr = BITSWAP24(addr, 23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,7,8,6,5,4,3,2,1,0);
RAM[i] = decrypt[addr];
}
@@ -442,9 +442,9 @@ DRIVER_INIT_MEMBER(suna8_state,sparkman)
x = RAM[i];
- x = bitswap<8>(x, 5,6,7,3,4,2,1,0) ^ 0x44 ^ xortable[table];
+ x = BITSWAP8(x, 5,6,7,3,4,2,1,0) ^ 0x44 ^ xortable[table];
if (swaptable[table])
- x = bitswap<8>(x, 5,6,7,4,3,2,1,0) ^ 0x04;
+ x = BITSWAP8(x, 5,6,7,4,3,2,1,0) ^ 0x04;
decrypt[i] = x;
}
@@ -455,7 +455,7 @@ DRIVER_INIT_MEMBER(suna8_state,sparkman)
static const uint8_t swaptable[8] = { 1,1,1,0,1,1,0,1 };
if (swaptable[(i & 0x7000) >> 12])
- RAM[i] = bitswap<8>(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x44;
+ RAM[i] = BITSWAP8(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x44;
}
// !!!!!! PATCHES !!!!!!
@@ -785,7 +785,7 @@ WRITE8_MEMBER(suna8_state::brickzn_multi_w)
56 coin in OK?
70 monster hit NO? 58?
*/
- uint8_t remap = (m_remap_sound ? bitswap<8>(data, 7,6,3,4,5,2,1,0) : data);
+ uint8_t remap = (m_remap_sound ? BITSWAP8(data, 7,6,3,4,5,2,1,0) : data);
m_soundlatch->write(space, 0, remap);
diff --git a/src/mame/drivers/superqix.cpp b/src/mame/drivers/superqix.cpp
index 3808243b2d8..68e2598cbd3 100644
--- a/src/mame/drivers/superqix.cpp
+++ b/src/mame/drivers/superqix.cpp
@@ -423,7 +423,7 @@ READ8_MEMBER(superqix_state_base::nmi_ack_r)
READ8_MEMBER(superqix_state::bootleg_in0_r)
{
- return bitswap<8>(ioport("DSW1")->read(), 0,1,2,3,4,5,6,7);
+ return BITSWAP8(ioport("DSW1")->read(), 0,1,2,3,4,5,6,7);
}
WRITE8_MEMBER(superqix_state::bootleg_flipscreen_w)
@@ -1727,7 +1727,7 @@ DRIVER_INIT_MEMBER(superqix_state_base, perestro)
memcpy(temp,&src[i],16);
for (j = 0;j < 16;j++)
{
- src[i+j] = temp[bitswap<8>(j,7,6,5,4,3,2,0,1)];
+ src[i+j] = temp[BITSWAP8(j,7,6,5,4,3,2,0,1)];
}
}
@@ -1738,7 +1738,7 @@ DRIVER_INIT_MEMBER(superqix_state_base, perestro)
memcpy(temp,&src[i],16);
for (j = 0;j < 16;j++)
{
- src[i+j] = temp[bitswap<8>(j,7,6,5,4,0,1,2,3)];
+ src[i+j] = temp[BITSWAP8(j,7,6,5,4,0,1,2,3)];
}
}
@@ -1749,7 +1749,7 @@ DRIVER_INIT_MEMBER(superqix_state_base, perestro)
memcpy(temp,&src[i],16);
for (j = 0;j < 16;j++)
{
- src[i+j] = temp[bitswap<8>(j,7,6,5,4,1,0,3,2)];
+ src[i+j] = temp[BITSWAP8(j,7,6,5,4,1,0,3,2)];
}
}
}
diff --git a/src/mame/drivers/supertnk.cpp b/src/mame/drivers/supertnk.cpp
index f1bb64dda51..729b9d52a32 100644
--- a/src/mame/drivers/supertnk.cpp
+++ b/src/mame/drivers/supertnk.cpp
@@ -489,7 +489,7 @@ DRIVER_INIT_MEMBER(supertnk_state,supertnk)
for (offs = 0; offs < len; offs++)
{
- rom[offs] = bitswap<8>(rom[offs],0,1,2,3,4,5,6,7);
+ rom[offs] = BITSWAP8(rom[offs],0,1,2,3,4,5,6,7);
}
}
diff --git a/src/mame/drivers/supracan.cpp b/src/mame/drivers/supracan.cpp
index 8d33114b3be..99014c2c1ab 100644
--- a/src/mame/drivers/supracan.cpp
+++ b/src/mame/drivers/supracan.cpp
@@ -1093,7 +1093,7 @@ WRITE16_MEMBER( supracan_state::supracan_pram_w )
// swap address around so that 64x64 tile can be decoded as 8x8 tiles..
void supracan_state::write_swapped_byte( int offset, uint8_t byte )
{
- int swapped_offset = bitswap<32>(offset, 31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,2,1,0,6,5,4,3);
+ int swapped_offset = BITSWAP32(offset, 31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,2,1,0,6,5,4,3);
m_vram_addr_swapped[swapped_offset] = byte;
}
diff --git a/src/mame/drivers/surpratk.cpp b/src/mame/drivers/surpratk.cpp
index 2505a9faf6a..17a94814974 100644
--- a/src/mame/drivers/surpratk.cpp
+++ b/src/mame/drivers/surpratk.cpp
@@ -188,7 +188,7 @@ static MACHINE_CONFIG_START( surpratk )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 2*8, 30*8-1 )
+ 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_SCREEN_PALETTE("palette")
diff --git a/src/mame/drivers/swtpc.cpp b/src/mame/drivers/swtpc.cpp
index cd7acfc2461..b5626475ebc 100644
--- a/src/mame/drivers/swtpc.cpp
+++ b/src/mame/drivers/swtpc.cpp
@@ -16,7 +16,8 @@
Note: All commands must be in uppercase. See the SWTBUG manual.
ToDo:
- - Add more SS-50 interface slot options
+ - Add more SS-50 interface slot options (in particular, MIKBUG
+ needs MP-C for I/O slot #1)
- Emulate MP-A2 revision of CPU board, with four 2716 ROM sockets
and allowance for extra RAM boards at A000-BFFF and C000-DFFF
@@ -181,7 +182,7 @@ static MACHINE_CONFIG_DERIVED( swtpcm, swtpc )
MCFG_DEVICE_CLOCK(XTAL_1_7971MHz)
MCFG_DEVICE_MODIFY("io1")
- MCFG_SLOT_DEFAULT_OPTION("mpc")
+ //MCFG_SLOT_DEFAULT_OPTION("mpc")
MACHINE_CONFIG_END
/* ROM definition */
@@ -199,4 +200,4 @@ ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
COMP( 1977, swtpc, 0, 0, swtpc, swtpc, swtpc_state, 0, "Southwest Technical Products Corporation", "SWTPC 6800 Computer System (with SWTBUG)", MACHINE_NO_SOUND_HW )
-COMP( 1975, swtpcm, swtpc, 0, swtpcm, swtpc, swtpc_state, 0, "Southwest Technical Products Corporation", "SWTPC 6800 Computer System (with MIKBUG)", MACHINE_NO_SOUND_HW )
+COMP( 1975, swtpcm, swtpc, 0, swtpcm, swtpc, swtpc_state, 0, "Southwest Technical Products Corporation", "SWTPC 6800 Computer System (with MIKBUG)", MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/swtpc09.cpp b/src/mame/drivers/swtpc09.cpp
index 4f94d66128c..2ef045486fa 100644
--- a/src/mame/drivers/swtpc09.cpp
+++ b/src/mame/drivers/swtpc09.cpp
@@ -161,7 +161,7 @@ SLOT_INTERFACE_END
/* MPU09, MPID, MPS2 DMF2 */
static MACHINE_CONFIG_START( swtpc09_base )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_4MHz)
+ MCFG_CPU_ADD("maincpu", M6809, 1000000)
MCFG_CPU_PROGRAM_MAP(mp09_mem)
MCFG_DEVICE_ADD("bankdev", ADDRESS_MAP_BANK, 0)
@@ -232,7 +232,7 @@ MACHINE_CONFIG_END
/* MPU09, MPID, MPS2 DMF3 */
static MACHINE_CONFIG_DERIVED( swtpc09d3, swtpc09_base )
MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_CLOCK(XTAL_8MHz)
+ MCFG_CPU_CLOCK(2000000)
MCFG_DEVICE_MODIFY("pia")
MCFG_DEVICE_CLOCK(2000000)
diff --git a/src/mame/drivers/system16.cpp b/src/mame/drivers/system16.cpp
index a28dfe8717a..61320395e2d 100644
--- a/src/mame/drivers/system16.cpp
+++ b/src/mame/drivers/system16.cpp
@@ -3947,7 +3947,7 @@ DRIVER_INIT_MEMBER(segas1x_bootleg_state,beautyb)
{
rom[x] = rom[x] ^ 0x2400;
- if (x & 8) rom[x] = bitswap<16>(rom[x],15,14,10,12, 11,13,9,8,
+ if (x & 8) rom[x] = BITSWAP16(rom[x],15,14,10,12, 11,13,9,8,
7,6,5,4, 3,2,1,0 );
}
diff --git a/src/mame/drivers/taito_l.cpp b/src/mame/drivers/taito_l.cpp
index c8a92b41c96..526f35a2b6b 100644
--- a/src/mame/drivers/taito_l.cpp
+++ b/src/mame/drivers/taito_l.cpp
@@ -2443,7 +2443,7 @@ DRIVER_INIT_MEMBER(taitol_1cpu_state, plottinga)
{
u8 tab[256];
for (unsigned i = 0; i < sizeof(tab); i++)
- tab[i] = bitswap<8>(i, 0, 1, 2, 3, 4, 5, 6, 7);
+ tab[i] = BITSWAP8(i, 0, 1, 2, 3, 4, 5, 6, 7);
for (unsigned i = 0; i < m_main_prg.length(); i++)
m_main_prg[i] = tab[m_main_prg[i]];
diff --git a/src/mame/drivers/taitojc.cpp b/src/mame/drivers/taitojc.cpp
index 9fa681bfbde..124b5e007e8 100644
--- a/src/mame/drivers/taitojc.cpp
+++ b/src/mame/drivers/taitojc.cpp
@@ -1509,10 +1509,10 @@ ROM_END
ROM_START( sidebs2ja ) /* Side by Side 2 Evoluzione Ver 2.4 J */
ROM_REGION(0x200000, "maincpu", 0) /* 68040 code */
- ROM_LOAD32_BYTE( "e38-23+.ic36", 0x000000, 0x80000, CRC(b3d8e2d9) SHA1(6de6a51c3d9ace532fa03517bab93101b5a3eaae) ) /* Actually labeled E38-23* */
- ROM_LOAD32_BYTE( "e38-24+.ic37", 0x000001, 0x80000, CRC(2a47d80d) SHA1(41b889e4a1397c7f0d4f6ef136ed8abfd7e1ed86) ) /* Actually labeled E38-24* */
- ROM_LOAD32_BYTE( "e38-25+.ic38", 0x000002, 0x80000, CRC(f1a8a4df) SHA1(e4cf75969fb0503df2290522194b097f5cb983a3) ) /* Actually labeled E38-25* */
- ROM_LOAD32_BYTE( "e38-26+.ic39", 0x000003, 0x80000, CRC(b550fbf2) SHA1(a0a461af7e71c6ad6468cfdee2bc7161ae31bbfb) ) /* Actually labeled E38-26* */
+ ROM_LOAD32_BYTE( "e38-23+.ic36", 0x000000, 0x80000, CRC(b3d8e2d9) SHA1(6de6a51c3d9ace532fa03517bab93101b5a3eaae) ) /* Actual label E38-23* */
+ ROM_LOAD32_BYTE( "e38-24+.ic37", 0x000001, 0x80000, CRC(2a47d80d) SHA1(41b889e4a1397c7f0d4f6ef136ed8abfd7e1ed86) ) /* Actual label E38-24* */
+ ROM_LOAD32_BYTE( "e38-25+.ic38", 0x000002, 0x80000, CRC(f1a8a4df) SHA1(e4cf75969fb0503df2290522194b097f5cb983a3) ) /* Actual label E38-25* */
+ ROM_LOAD32_BYTE( "e38-26+.ic39", 0x000003, 0x80000, CRC(b550fbf2) SHA1(a0a461af7e71c6ad6468cfdee2bc7161ae31bbfb) ) /* Actual label E38-26* */
ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 Code */
ROM_LOAD16_BYTE( "e38-19.ic30", 0x100001, 0x040000, CRC(3f50cb7b) SHA1(76af65c9b74ede843a3182f79cecda8c3e3febe6) )
@@ -1991,64 +1991,7 @@ ROM_START( landgearja ) /* Landing Gear Ver 3.0 J, is there an alternate set wit
ROM_LOAD( "e17-32.ic96", 0x0000, 0x0bac, CRC(1d590ca3) SHA1(733e9e34642c1e03fd880fda198b98927c1bb81d) )
ROM_END
-ROM_START( dangcurv ) /* Dangerous Curves Ver 2.9 O */
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68040 code */
- ROM_LOAD32_BYTE( "e09-32-1+.ic36", 0x000000, 0x80000, CRC(82c0af83) SHA1(307e2dd441116ffaad0d5783cd139bde8fc23460) ) /* Actually labeled E09 32-1* */
- ROM_LOAD32_BYTE( "e09-33-1+.ic37", 0x000001, 0x80000, CRC(be6eca0b) SHA1(edb4ad0d379132e64c1238191ab17bd4400f3322) ) /* Actually labeled E09 33-1* */
- ROM_LOAD32_BYTE( "e09-34-1+.ic38", 0x000002, 0x80000, CRC(553de745) SHA1(474e96c810fee8097059e201b95810b3235c6cad) ) /* Actually labeled E09 34-1* */
- ROM_LOAD32_BYTE( "e09-35-1+.ic39", 0x000003, 0x80000, CRC(a60273fd) SHA1(511191506f04320775787e294a59a94c07364006) ) /* Actually labeled E09 35-1* */
-
- ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "e09-27.ic30", 0x100001, 0x40000, CRC(6d54839c) SHA1(a28c9b0727128b82bb0fa71dc951e3f03ee45e1b) )
- ROM_LOAD16_BYTE( "e09-28.ic31", 0x100000, 0x40000, CRC(566d7d83) SHA1(92661ccb631f843bf704c50d54fae28f6b5b272b) )
-
- ROM_REGION( 0x4000, "dsp", ROMREGION_ERASE00 ) /* TMS320C51 internal rom */
- ROM_LOAD16_WORD( "e07-11.ic29", 0x0000, 0x4000, NO_DUMP )
-
- ROM_REGION( 0x010000, "sub", 0 ) /* MC68HC11M0 code */
- ROM_LOAD( "e09-29.ic65", 0x000000, 0x010000, CRC(80ac1428) SHA1(5a2a1e60a11ecdb8743c20ddacfb61f9fd00f01c) )
-
- ROM_REGION( 0x1800000, "gfx1", 0 )
- ROM_LOAD32_WORD( "e09-05.ic9", 0x0800002, 0x200000, CRC(a948782f) SHA1(2a2b0d2955e036ddf424c54131435a20dbba3dd4) )
- ROM_LOAD32_WORD( "e09-13.ic22", 0x0800000, 0x200000, CRC(985859e2) SHA1(8af9a73eba2151a5ef60799682fe667663a42743) )
- ROM_LOAD32_WORD( "e09-06.ic10", 0x0c00002, 0x200000, CRC(218dcb5b) SHA1(72aedd2890e076540195d738c76ba446769c8e89) )
- ROM_LOAD32_WORD( "e09-14.ic23", 0x0c00000, 0x200000, CRC(6d123616) SHA1(01ac1e920f7c4a03adf365c8a7831b8385f0b78b) )
- ROM_LOAD32_WORD( "e09-07.ic11", 0x1000002, 0x200000, CRC(37fd7efc) SHA1(24a275d302ec8940479d15f1aeb96a288868bd41) )
- ROM_LOAD32_WORD( "e09-15.ic24", 0x1000000, 0x200000, CRC(0d773f3b) SHA1(f867a4d5956c2ebfa9858499d9716b4dc723d76b) )
- ROM_LOAD32_WORD( "e09-08.ic12", 0x1400002, 0x200000, CRC(5c080485) SHA1(c950cd00df5b6d2d0a119ba318fa8b0a3f471b29) )
- ROM_LOAD32_WORD( "e09-16.ic25", 0x1400000, 0x200000, CRC(35cb8346) SHA1(c2ecedd3c2a28213ef83e776f3007c974128189b) )
-
- ROM_REGION( 0x1000000, "gfx2", 0 ) /* only accessible to the TMS */
- ROM_LOAD( "e09-01.ic5", 0x0000000, 0x200000, CRC(22a6a53d) SHA1(6efa89151cd5ec43ab9bfa9b92694eb0018dd227) )
- ROM_LOAD( "e09-02.ic6", 0x0200000, 0x200000, CRC(405e2969) SHA1(376b9dd548d876af6798553a6da5deed4de00b76) )
- ROM_LOAD( "e09-03.ic7", 0x0400000, 0x200000, CRC(15327754) SHA1(bf08ab80875b400700241a66715e229dae6752d1) )
- ROM_LOAD( "e09-04.ic8", 0x0600000, 0x200000, CRC(fd598d6e) SHA1(679d9d64a0cd031a6c8cb5e170b77fc5811b6d73) )
- ROM_LOAD( "e09-09.ic18", 0x0800000, 0x200000, CRC(a527b387) SHA1(790240b4dfcdf2bf70edb943ec7aeb2f0d8cdfa9) )
- ROM_LOAD( "e09-10.ic19", 0x0a00000, 0x200000, CRC(4de6253c) SHA1(33517c0895b7ee04f4a84074d0b7bf42b53d5816) )
- ROM_LOAD( "e09-11.ic20", 0x0c00000, 0x200000, CRC(18cc0ba7) SHA1(626929a501def6f1b8bd6a468786efb0b0dda9fa) )
- ROM_LOAD( "e09-12.ic21", 0x0e00000, 0x200000, CRC(3273e438) SHA1(e9581d52f5db1c1924a860464579332a2f23e713) )
-
- ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 )
- ROM_LOAD16_BYTE( "e09-17.ic32", 0x000000, 0x200000, CRC(a8a6512e) SHA1(71bd3ccd65b731270b92da334b9fb99c28e267fe) )
- ROM_LOAD16_BYTE( "e09-18.ic33", 0x400000, 0x200000, CRC(bdf1f5eb) SHA1(a568a99a90e0afbcd26ddd320f515ed62cf0db1a) )
- ROM_LOAD16_BYTE( "e09-19.ic34", 0x800000, 0x200000, CRC(3626c7ed) SHA1(7535f0457b3d9fe1d54712a26322d6144b9e7de6) )
- ROM_LOAD16_BYTE( "e09-20.ic35", 0xc00000, 0x200000, CRC(9652a5c4) SHA1(2933e4e8e57ff618ce21721036d96347471c5539) )
-
- ROM_REGION( 0x1000, "pals", 0 ) /* PALCE 16V8 (unused now) */
- ROM_LOAD( "e07-02.ic4", 0x0000, 0x0117, CRC(21b3b349) SHA1(2c468a355caeb541fc649842f228fdc14b01afad) )
- ROM_LOAD( "e07-03.ic50", 0x0000, 0x0117, CRC(af68d73a) SHA1(11c9a6eee715066dc06766cc89774081ffedab3b) )
- ROM_LOAD( "e07-04.ic115", 0x0000, 0x0117, CRC(98383e84) SHA1(446e7a38f933b55706de71884f764c512912f571) )
- ROM_LOAD( "e07-05.ic22", 0x0000, 0x0117, CRC(3fe21bb8) SHA1(744dcfef2b2dbb2aa4b69d47e03cec7881e4cd4b) )
- ROM_LOAD( "e07-06.ic37", 0x0000, 0x0117, CRC(5cbeb11c) SHA1(e8cb4898d1285b72ae7ce003bfac33897417bb91) )
- ROM_LOAD( "e07-07.ic49", 0x0000, 0x0117, CRC(8914317b) SHA1(8b782ff4f2783d8531d0d9abe0215ecc10cd1f49) )
- ROM_LOAD( "e07-08.ic65", 0x0000, 0x0117, CRC(1831ddf3) SHA1(96bc0eb4b49c6d646e91630bb174f75c5d29337a) )
- ROM_LOAD( "e07-09.ic82", 0x0000, 0x0117, CRC(6ab127fb) SHA1(9beb74436968854fedacea915587e8fdffaec6c8) )
- ROM_LOAD( "e07-10.ic116", 0x0000, 0x0117, CRC(24d7939c) SHA1(fd3d87471252805de01c7c0abd60e55669885de0) )
- ROM_LOAD( "e09-21.ic69", 0x0000, 0x0117, CRC(ab2c7402) SHA1(df8b63a67bf693f9023794ad4e787e3248d10b7e) )
- ROM_LOAD( "e09-22.ic73", 0x0000, 0x0117, CRC(d43972cc) SHA1(ed9454d1a225a5fb6fefc0ae1aebe2b439ed460f) )
-ROM_END
-
-ROM_START( dangcurvj ) /* Dangerous Curves Ver 2.2 J */
+ROM_START( dangcurv )
ROM_REGION( 0x200000, "maincpu", 0 ) /* 68040 code */
ROM_LOAD32_BYTE( "e09-23.ic36", 0x000000, 0x80000, CRC(b4cdadd6) SHA1(84bd1d055ff15afb5438cd5151abf78b0000cebc) )
ROM_LOAD32_BYTE( "e09-24.ic37", 0x000001, 0x80000, CRC(fb2fc795) SHA1(2f58d043ab9fc0269a5b6827009777cd7ab832fc) )
@@ -2093,8 +2036,7 @@ ROM_START( dangcurvj ) /* Dangerous Curves Ver 2.2 J */
ROM_END
-GAME( 1995, dangcurv, 0, taitojc, dangcurv, taitojc_state, dangcurv, ROT0, "Taito", "Dangerous Curves (Ver 2.9 O)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_TIMING ) // DANGEROUS CURVES VER 2.9 O 1995.08.24 17:45
-GAME( 1995, dangcurvj, dangcurv, taitojc, dangcurv, taitojc_state, dangcurv, ROT0, "Taito", "Dangerous Curves (Ver 2.2 J)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_TIMING ) // DANGEROUS CURVES VER 2.2 J 1995.07.20 17:45
+GAME( 1995, dangcurv, 0, taitojc, dangcurv, taitojc_state, dangcurv, ROT0, "Taito", "Dangerous Curves (Ver 2.2 J)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_TIMING ) // DANGEROUS CURVES VER 2.2 J 1995.07.20 17:45
GAME( 1995, landgear, 0, taitojc, landgear, taitojc_state, taitojc, ROT0, "Taito", "Landing Gear (Ver 4.2 O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_TIMING ) // LANDING GEAR VER 4.2 O Feb 8 1996 09:46:22
GAME( 1995, landgearj, landgear, taitojc, landgear, taitojc_state, taitojc, ROT0, "Taito", "Landing Gear (Ver 4.2 J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_TIMING ) // LANDING GEAR VER 4.2 J Feb 8 1996 09:46:22
GAME( 1995, landgeara, landgear, taitojc, landgear, taitojc_state, taitojc, ROT0, "Taito", "Landing Gear (Ver 3.1 O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_TIMING ) // LANDING GEAR VER 3.1 O Feb 8 1996 09:46:22
diff --git a/src/mame/drivers/taitotz.cpp b/src/mame/drivers/taitotz.cpp
index ae4bedc7ca1..7a04f0da8e0 100644
--- a/src/mame/drivers/taitotz.cpp
+++ b/src/mame/drivers/taitotz.cpp
@@ -2949,9 +2949,9 @@ ROM_START( styphp )
ROM_END
GAME( 1999, taitotz, 0, taitotz, taitotz, taitotz_state, 0, ROT0, "Taito", "Type Zero BIOS", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT)
-GAME( 1998, batlgear, taitotz, taitotz, batlgr2, taitotz_state, batlgear, ROT0, "Taito", "Battle Gear (Ver 2.40 A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
GAME( 1999, landhigh, taitotz, landhigh, landhigh, taitotz_state, landhigh, ROT0, "Taito", "Landing High Japan (Ver 2.01 OK)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
GAME( 1999, landhigha, landhigh, landhigh, landhigh, taitotz_state, landhigha,ROT0, "Taito", "Landing High Japan (Ver 2.02 O)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 1999, batlgear, taitotz, taitotz, batlgr2, taitotz_state, batlgear, ROT0, "Taito", "Battle Gear (Ver 2.40 A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
GAME( 1999, pwrshovl, taitotz, taitotz, pwrshovl, taitotz_state, pwrshovl, ROT0, "Taito", "Power Shovel ni Norou!! - Power Shovel Simulator (v2.07J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 1999/8/5 19:13:35
GAME( 1999, pwrshovla, pwrshovl, taitotz, pwrshovl, taitotz_state, pwrshovl, ROT0, "Taito", "Power Shovel ni Norou!! - Power Shovel Simulator (v2.07J, alt)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // seem to be some differences in drive content, but identifies as the same revision, is it just user data changes??
GAME( 2000, batlgr2, taitotz, taitotz, batlgr2, taitotz_state, batlgr2, ROT0, "Taito", "Battle Gear 2 (v2.04J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/tatsumi.cpp b/src/mame/drivers/tatsumi.cpp
index 2600373ed22..9b6c962078b 100644
--- a/src/mame/drivers/tatsumi.cpp
+++ b/src/mame/drivers/tatsumi.cpp
@@ -159,42 +159,42 @@
/***************************************************************************/
-READ16_MEMBER(cyclwarr_state::cyclwarr_sprite_r)
+READ16_MEMBER(tatsumi_state::cyclwarr_sprite_r)
{
return m_spriteram[offset];
}
-WRITE16_MEMBER(cyclwarr_state::cyclwarr_sprite_w)
+WRITE16_MEMBER(tatsumi_state::cyclwarr_sprite_w)
{
COMBINE_DATA(&m_spriteram[offset]);
}
-WRITE16_MEMBER(cyclwarr_state::bigfight_a20000_w)
+WRITE16_MEMBER(tatsumi_state::bigfight_a20000_w)
{
COMBINE_DATA(&m_bigfight_a20000[offset]);
}
-WRITE16_MEMBER(cyclwarr_state::bigfight_a40000_w)
+WRITE16_MEMBER(tatsumi_state::bigfight_a40000_w)
{
COMBINE_DATA(&m_bigfight_a40000[offset]);
}
-WRITE16_MEMBER(cyclwarr_state::bigfight_a60000_w)
+WRITE16_MEMBER(tatsumi_state::bigfight_a60000_w)
{
COMBINE_DATA(&m_bigfight_a60000[offset]);
}
-WRITE16_MEMBER(cyclwarr_state::io1_byte_smear_w)
+WRITE16_MEMBER(tatsumi_state::io1_byte_smear_w)
{
m_io[0]->write(space, offset, data & 0xff);
}
-WRITE16_MEMBER(cyclwarr_state::io2_byte_smear_w)
+WRITE16_MEMBER(tatsumi_state::io2_byte_smear_w)
{
m_io[1]->write(space, offset, data & 0xff);
}
-WRITE16_MEMBER(cyclwarr_state::cyclwarr_sound_w)
+WRITE16_MEMBER(tatsumi_state::cyclwarr_sound_w)
{
m_soundlatch->write(space, 0, data >> 8);
m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
@@ -202,11 +202,11 @@ WRITE16_MEMBER(cyclwarr_state::cyclwarr_sound_w)
/***************************************************************************/
-static ADDRESS_MAP_START( apache3_v30_map, AS_PROGRAM, 16, apache3_state )
+static ADDRESS_MAP_START( apache3_v30_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x00000, 0x03fff) AM_RAM
AM_RANGE(0x04000, 0x07fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x08000, 0x08fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
- AM_RANGE(0x0c000, 0x0dfff) AM_RAM_WRITE(text_w) AM_SHARE("videoram")
+ AM_RANGE(0x0c000, 0x0dfff) AM_RAM_WRITE(roundup5_text_w) AM_SHARE("videoram")
AM_RANGE(0x0e800, 0x0e803) AM_WRITENOP // CRT
AM_RANGE(0x0f000, 0x0f001) AM_READ_PORT("DSW")
AM_RANGE(0x0f000, 0x0f001) AM_WRITENOP // todo
@@ -216,7 +216,7 @@ static ADDRESS_MAP_START( apache3_v30_map, AS_PROGRAM, 16, apache3_state )
AM_RANGE(0xa0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( apache3_68000_map, AS_PROGRAM, 16, apache3_state )
+static ADDRESS_MAP_START( apache3_68000_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0x80000, 0x83fff) AM_RAM AM_SHARE("68k_ram")
AM_RANGE(0x90000, 0x93fff) AM_RAM AM_SHARE("spriteram")
@@ -228,7 +228,7 @@ static ADDRESS_MAP_START( apache3_68000_map, AS_PROGRAM, 16, apache3_state )
AM_RANGE(0xe0000, 0xe7fff) AM_READWRITE(apache3_z80_r, apache3_z80_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( apache3_v20_map, AS_PROGRAM, 8, apache3_state )
+static ADDRESS_MAP_START( apache3_v20_map, AS_PROGRAM, 8, tatsumi_state )
AM_RANGE(0x00000, 0x01fff) AM_RAM
AM_RANGE(0x04000, 0x04003) AM_DEVREADWRITE("ppi", i8255_device, read, write)
AM_RANGE(0x06000, 0x06001) AM_READ_PORT("IN0") // esw
@@ -238,16 +238,16 @@ static ADDRESS_MAP_START( apache3_v20_map, AS_PROGRAM, 8, apache3_state )
AM_RANGE(0xf0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( apache3_z80_map, AS_PROGRAM, 8, apache3_state )
+static ADDRESS_MAP_START( apache3_z80_map, AS_PROGRAM, 8, tatsumi_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("apache3_z80_ram")
AM_RANGE(0x8000, 0xffff) AM_WRITE(apache3_road_x_w)
ADDRESS_MAP_END
/*****************************************************************/
-static ADDRESS_MAP_START( roundup5_v30_map, AS_PROGRAM, 16, roundup5_state )
+static ADDRESS_MAP_START( roundup5_v30_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x00000, 0x07fff) AM_RAM
- AM_RANGE(0x08000, 0x0bfff) AM_RAM_WRITE(text_w) AM_SHARE("videoram")
+ AM_RANGE(0x08000, 0x0bfff) AM_RAM_WRITE(roundup5_text_w) AM_SHARE("videoram")
AM_RANGE(0x0c000, 0x0c003) AM_WRITE(roundup5_crt_w)
AM_RANGE(0x0d000, 0x0d001) AM_READ_PORT("DSW")
AM_RANGE(0x0d400, 0x0d40f) AM_WRITEONLY AM_SHARE("ru5_unknown0")
@@ -261,7 +261,7 @@ static ADDRESS_MAP_START( roundup5_v30_map, AS_PROGRAM, 16, roundup5_state )
AM_RANGE(0x80000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( roundup5_68000_map, AS_PROGRAM, 16, roundup5_state )
+static ADDRESS_MAP_START( roundup5_68000_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0x80000, 0x83fff) AM_RAM AM_SHARE("68k_ram")
AM_RANGE(0x90000, 0x93fff) AM_RAM AM_SHARE("spriteram")
@@ -273,7 +273,7 @@ static ADDRESS_MAP_START( roundup5_68000_map, AS_PROGRAM, 16, roundup5_state )
AM_RANGE(0xe0000, 0xe0001) AM_WRITE(roundup5_e0000_w) AM_SHARE("ru5_e0000_ram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( roundup5_z80_map, AS_PROGRAM, 8, roundup5_state )
+static ADDRESS_MAP_START( roundup5_z80_map, AS_PROGRAM, 8, tatsumi_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xffef) AM_RAM
AM_RANGE(0xfff0, 0xfff1) AM_READ(tatsumi_hack_ym2151_r) AM_DEVWRITE("ymsnd", ym2151_device, write)
@@ -284,7 +284,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( cyclwarr_68000a_map, AS_PROGRAM, 16, cyclwarr_state )
+static ADDRESS_MAP_START( cyclwarr_68000a_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_SHARE("cw_cpua_ram")
AM_RANGE(0x03e000, 0x03efff) AM_RAM
AM_RANGE(0x040000, 0x04ffff) AM_RAM AM_SHARE("cw_cpub_ram")
@@ -305,7 +305,7 @@ static ADDRESS_MAP_START( cyclwarr_68000a_map, AS_PROGRAM, 16, cyclwarr_state )
AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cyclwarr_68000b_map, AS_PROGRAM, 16, cyclwarr_state )
+static ADDRESS_MAP_START( cyclwarr_68000b_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_SHARE("cw_cpub_ram")
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE(cyclwarr_videoram1_r, cyclwarr_videoram1_w)
@@ -324,7 +324,7 @@ static ADDRESS_MAP_START( cyclwarr_68000b_map, AS_PROGRAM, 16, cyclwarr_state )
AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cyclwarr_z80_map, AS_PROGRAM, 8, cyclwarr_state )
+static ADDRESS_MAP_START( cyclwarr_z80_map, AS_PROGRAM, 8, tatsumi_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xffef) AM_RAM
AM_RANGE(0xfff0, 0xfff1) AM_READ(tatsumi_hack_ym2151_r) AM_DEVWRITE("ymsnd", ym2151_device, write)
@@ -335,7 +335,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( bigfight_68000a_map, AS_PROGRAM, 16, cyclwarr_state )
+static ADDRESS_MAP_START( bigfight_68000a_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_SHARE("cw_cpua_ram")
AM_RANGE(0x03e000, 0x03efff) AM_RAM
@@ -358,7 +358,7 @@ static ADDRESS_MAP_START( bigfight_68000a_map, AS_PROGRAM, 16, cyclwarr_state )
AM_RANGE(0x200000, 0x27ffff) AM_ROMBANK("bank1") /* CPU B ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bigfight_68000b_map, AS_PROGRAM, 16, cyclwarr_state )
+static ADDRESS_MAP_START( bigfight_68000b_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_SHARE("cw_cpub_ram")
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE(cyclwarr_videoram1_r, cyclwarr_videoram1_w)
AM_RANGE(0x090000, 0x09ffff) AM_READWRITE(cyclwarr_videoram0_r, cyclwarr_videoram0_w)
@@ -823,22 +823,22 @@ GFXDECODE_END
/******************************************************************************/
-INTERRUPT_GEN_MEMBER(tatsumi_state::v30_interrupt)
+INTERRUPT_GEN_MEMBER(tatsumi_state::roundup5_interrupt)
{
device.execute().set_input_line_and_vector(0, HOLD_LINE, 0xc8/4); /* VBL */
}
-WRITE_LINE_MEMBER(apache3_state::apache3_68000_reset)
+WRITE_LINE_MEMBER(tatsumi_state::apache3_68000_reset)
{
m_subcpu2->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
}
-MACHINE_RESET_MEMBER(apache3_state,apache3)
+MACHINE_RESET_MEMBER(tatsumi_state,apache3)
{
m_subcpu2->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); // TODO
/* Hook the RESET line, which resets the Z80 */
- m_subcpu->set_reset_callback(write_line_delegate(FUNC(apache3_state::apache3_68000_reset),this));
+ m_subcpu->set_reset_callback(write_line_delegate(FUNC(tatsumi_state::apache3_68000_reset),this));
}
@@ -847,29 +847,29 @@ static MACHINE_CONFIG_START( apache3 )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", V30, CLOCK_1 / 2)
MCFG_CPU_PROGRAM_MAP(apache3_v30_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, v30_interrupt)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, roundup5_interrupt)
MCFG_CPU_ADD("sub", M68000, CLOCK_2 / 4)
MCFG_CPU_PROGRAM_MAP(apache3_68000_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", apache3_state, irq4_line_hold)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, irq4_line_hold)
MCFG_CPU_ADD("audiocpu", V20, CLOCK_1 / 2)
MCFG_CPU_PROGRAM_MAP(apache3_v20_map)
MCFG_CPU_ADD("sub2", Z80, CLOCK_2 / 8)
MCFG_CPU_PROGRAM_MAP(apache3_z80_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", apache3_state, irq0_line_hold)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, irq0_line_hold)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_MACHINE_RESET_OVERRIDE(apache3_state, apache3)
+ MCFG_MACHINE_RESET_OVERRIDE(tatsumi_state,apache3)
MCFG_DEVICE_ADD("ppi", I8255, 0)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(CLOCK_2 / 8, 400, 0, 320, 280, 0, 240) // TODO: Hook up CRTC
- MCFG_SCREEN_UPDATE_DRIVER(apache3_state, screen_update_apache3)
+ MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_apache3)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", apache3)
MCFG_PALETTE_ADD("palette", 1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */
@@ -883,7 +883,7 @@ static MACHINE_CONFIG_START( apache3 )
bit 0: 3.9kOhm resistor
*/
- MCFG_VIDEO_START_OVERRIDE(apache3_state, apache3)
+ MCFG_VIDEO_START_OVERRIDE(tatsumi_state,apache3)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -903,7 +903,7 @@ static MACHINE_CONFIG_START( roundup5 )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", V30, CLOCK_1 / 2)
MCFG_CPU_PROGRAM_MAP(roundup5_v30_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, v30_interrupt)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, roundup5_interrupt)
MCFG_CPU_ADD("sub", M68000, CLOCK_2 / 4)
MCFG_CPU_PROGRAM_MAP(roundup5_68000_map)
@@ -923,7 +923,7 @@ static MACHINE_CONFIG_START( roundup5 )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(roundup5_state, screen_update_roundup5)
+ MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_roundup5)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", roundup5)
MCFG_PALETTE_ADD("palette", 1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */
@@ -931,7 +931,7 @@ static MACHINE_CONFIG_START( roundup5 )
MCFG_PALETTE_MEMBITS(8)
MCFG_PALETTE_ENDIANNESS(ENDIANNESS_BIG)
- MCFG_VIDEO_START_OVERRIDE(roundup5_state,roundup5)
+ MCFG_VIDEO_START_OVERRIDE(tatsumi_state,roundup5)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -951,11 +951,11 @@ static MACHINE_CONFIG_START( cyclwarr )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, CLOCK_2 / 4)
MCFG_CPU_PROGRAM_MAP(cyclwarr_68000a_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", cyclwarr_state, irq5_line_hold)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, irq5_line_hold)
MCFG_CPU_ADD("sub", M68000, CLOCK_2 / 4)
MCFG_CPU_PROGRAM_MAP(cyclwarr_68000b_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", cyclwarr_state, irq5_line_hold)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, irq5_line_hold)
MCFG_CPU_ADD("audiocpu", Z80, CLOCK_1 / 4)
MCFG_CPU_PROGRAM_MAP(cyclwarr_z80_map)
@@ -973,7 +973,7 @@ static MACHINE_CONFIG_START( cyclwarr )
MCFG_CXD1095_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_CXD1095_IN_PORTC_CB(IOPORT("P3"))
MCFG_CXD1095_IN_PORTD_CB(IOPORT("P4"))
- MCFG_CXD1095_OUT_PORTE_CB(WRITE8(cyclwarr_state, cyclwarr_control_w))
+ MCFG_CXD1095_OUT_PORTE_CB(WRITE8(tatsumi_state, cyclwarr_control_w))
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -981,13 +981,13 @@ static MACHINE_CONFIG_START( cyclwarr )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(cyclwarr_state, screen_update_cyclwarr)
+ MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_cyclwarr)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", cyclwarr)
MCFG_PALETTE_ADD("palette", 8192 + 8192)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
- MCFG_VIDEO_START_OVERRIDE(cyclwarr_state, cyclwarr)
+ MCFG_VIDEO_START_OVERRIDE(tatsumi_state,cyclwarr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1009,11 +1009,11 @@ static MACHINE_CONFIG_START( bigfight )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, CLOCK_2 / 4)
MCFG_CPU_PROGRAM_MAP(bigfight_68000a_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", cyclwarr_state, irq5_line_hold)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, irq5_line_hold)
MCFG_CPU_ADD("sub", M68000, CLOCK_2 / 4)
MCFG_CPU_PROGRAM_MAP(bigfight_68000b_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", cyclwarr_state, irq5_line_hold)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, irq5_line_hold)
MCFG_CPU_ADD("audiocpu", Z80, CLOCK_1 / 4)
MCFG_CPU_PROGRAM_MAP(cyclwarr_z80_map)
@@ -1031,7 +1031,7 @@ static MACHINE_CONFIG_START( bigfight )
MCFG_CXD1095_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_CXD1095_IN_PORTC_CB(IOPORT("P3"))
MCFG_CXD1095_IN_PORTD_CB(IOPORT("P4"))
- MCFG_CXD1095_OUT_PORTE_CB(WRITE8(cyclwarr_state, cyclwarr_control_w))
+ MCFG_CXD1095_OUT_PORTE_CB(WRITE8(tatsumi_state, cyclwarr_control_w))
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1039,13 +1039,13 @@ static MACHINE_CONFIG_START( bigfight )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(cyclwarr_state, screen_update_bigfight)
+ MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_bigfight)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", cyclwarr)
MCFG_PALETTE_ADD("palette", 8192 + 8192)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
- MCFG_VIDEO_START_OVERRIDE(cyclwarr_state, bigfight)
+ MCFG_VIDEO_START_OVERRIDE(tatsumi_state,bigfight)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1357,7 +1357,7 @@ ROM_END
/***************************************************************************/
-DRIVER_INIT_MEMBER(apache3_state,apache3)
+DRIVER_INIT_MEMBER(tatsumi_state,apache3)
{
uint8_t *dst = memregion("gfx1")->base();
uint8_t *src1 = memregion("gfx2")->base();
@@ -1381,17 +1381,10 @@ DRIVER_INIT_MEMBER(apache3_state,apache3)
tatsumi_reset();
- m_apache3_adc = 0;
- m_apache3_rot_idx = 0;
-
- save_item(NAME(m_apache3_adc));
- save_item(NAME(m_apache3_rot_idx));
- save_item(NAME(m_apache3_rotate_ctrl));
-
// TODO: ym2151_set_port_write_handler for CT1/CT2 outputs
}
-DRIVER_INIT_MEMBER(roundup5_state,roundup5)
+DRIVER_INIT_MEMBER(tatsumi_state,roundup5)
{
uint8_t *dst = memregion("gfx1")->base();
uint8_t *src1 = memregion("gfx2")->base();
@@ -1416,7 +1409,7 @@ DRIVER_INIT_MEMBER(roundup5_state,roundup5)
tatsumi_reset();
}
-DRIVER_INIT_MEMBER(cyclwarr_state,cyclwarr)
+DRIVER_INIT_MEMBER(tatsumi_state,cyclwarr)
{
uint8_t *dst = memregion("gfx1")->base();
uint8_t *src1 = memregion("gfx2")->base();
@@ -1456,9 +1449,9 @@ DRIVER_INIT_MEMBER(cyclwarr_state,cyclwarr)
/* http://www.tatsu-mi.co.jp/game/trace/index.html */
/* ** 1987 grayout - Gray Out (not dumped yet) */
-GAME( 1988, apache3, 0, apache3, apache3, apache3_state, apache3, ROT0, "Tatsumi", "Apache 3", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1988, apache3a, apache3, apache3, apache3, apache3_state, apache3, ROT0, "Tatsumi (Kana Corporation license)", "Apache 3 (Kana Corporation license)", MACHINE_IMPERFECT_GRAPHICS )
-GAMEL(1989, roundup5, 0, roundup5, roundup5, roundup5_state, roundup5, ROT0, "Tatsumi", "Round Up 5 - Super Delta Force", MACHINE_IMPERFECT_GRAPHICS, layout_roundup5 )
-GAME( 1991, cyclwarr, 0, cyclwarr, cyclwarr, cyclwarr_state, cyclwarr, ROT0, "Tatsumi", "Cycle Warriors (rev C)", MACHINE_IMPERFECT_GRAPHICS ) // Rev C & B CPU code
-GAME( 1991, cyclwarra, cyclwarr, cyclwarr, cyclwarb, cyclwarr_state, cyclwarr, ROT0, "Tatsumi", "Cycle Warriors (rev B)", MACHINE_IMPERFECT_GRAPHICS ) // Rev B & A CPU code
-GAME( 1992, bigfight, 0, bigfight, bigfight, cyclwarr_state, cyclwarr, ROT0, "Tatsumi", "Big Fight - Big Trouble In The Atlantic Ocean", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1988, apache3, 0, apache3, apache3, tatsumi_state, apache3, ROT0, "Tatsumi", "Apache 3", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1988, apache3a, apache3, apache3, apache3, tatsumi_state, apache3, ROT0, "Tatsumi (Kana Corporation license)", "Apache 3 (Kana Corporation license)", MACHINE_IMPERFECT_GRAPHICS )
+GAMEL(1989, roundup5, 0, roundup5, roundup5, tatsumi_state, roundup5, ROT0, "Tatsumi", "Round Up 5 - Super Delta Force", MACHINE_IMPERFECT_GRAPHICS, layout_roundup5 )
+GAME( 1991, cyclwarr, 0, cyclwarr, cyclwarr, tatsumi_state, cyclwarr, ROT0, "Tatsumi", "Cycle Warriors (rev C)", MACHINE_IMPERFECT_GRAPHICS ) // Rev C & B CPU code
+GAME( 1991, cyclwarra, cyclwarr, cyclwarr, cyclwarb, tatsumi_state, cyclwarr, ROT0, "Tatsumi", "Cycle Warriors (rev B)", MACHINE_IMPERFECT_GRAPHICS ) // Rev B & A CPU code
+GAME( 1992, bigfight, 0, bigfight, bigfight, tatsumi_state, cyclwarr, ROT0, "Tatsumi", "Big Fight - Big Trouble In The Atlantic Ocean", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/tavernie.cpp b/src/mame/drivers/tavernie.cpp
index 9a0f0477f1a..afa3ca22b92 100644
--- a/src/mame/drivers/tavernie.cpp
+++ b/src/mame/drivers/tavernie.cpp
@@ -288,7 +288,7 @@ void tavernie_state::kbd_put(u8 data)
static MACHINE_CONFIG_START( cpu09 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_4MHz)
+ MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz)
MCFG_CPU_PROGRAM_MAP(cpu09_mem)
MCFG_MACHINE_RESET_OVERRIDE(tavernie_state, cpu09)
diff --git a/src/mame/drivers/tcl.cpp b/src/mame/drivers/tcl.cpp
index d0fed6c6e3a..e97a409d942 100644
--- a/src/mame/drivers/tcl.cpp
+++ b/src/mame/drivers/tcl.cpp
@@ -166,7 +166,7 @@ ROM_START( tcl )
ROM_LOAD( "tcl_pr3.9e", 0x200, 0x100, CRC(50ec383b) SHA1(ae95b92bd3946b40134bcdc22708d5c6b0f4c23e) )
ROM_END
-#define ROL(x,n) (bitswap<8>((x),(7+8-n)&7,(6+8-n)&7,(5+8-n)&7,(4+8-n)&7,(3+8-n)&7,(2+8-n)&7,(1+8-n)&7,(0+8-n)&7))
+#define ROL(x,n) (BITSWAP8((x),(7+8-n)&7,(6+8-n)&7,(5+8-n)&7,(4+8-n)&7,(3+8-n)&7,(2+8-n)&7,(1+8-n)&7,(0+8-n)&7))
#define WRITEDEST( n ) \
dest[idx]=n; \
diff --git a/src/mame/drivers/tec1.cpp b/src/mame/drivers/tec1.cpp
index 2a914bd4f1d..1425c2b85db 100644
--- a/src/mame/drivers/tec1.cpp
+++ b/src/mame/drivers/tec1.cpp
@@ -145,7 +145,7 @@ WRITE8_MEMBER( tec1_state::tec1_segment_w )
d1 segment f
d0 segment a */
- m_segment = bitswap<8>(data, 4, 2, 1, 6, 7, 5, 3, 0);
+ m_segment = BITSWAP8(data, 4, 2, 1, 6, 7, 5, 3, 0);
}
WRITE8_MEMBER( tec1_state::tec1_digit_w )
diff --git a/src/mame/drivers/techno.cpp b/src/mame/drivers/techno.cpp
index e2b245a6cfd..eba5c5ef94b 100644
--- a/src/mame/drivers/techno.cpp
+++ b/src/mame/drivers/techno.cpp
@@ -90,12 +90,12 @@ ADDRESS_MAP_END
WRITE16_MEMBER( techno_state::disp1_w )
{
- output().set_digit_value(m_digit, bitswap<16>(data, 12, 10, 8, 14, 13, 9, 11, 15, 7, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(m_digit, BITSWAP16(data, 12, 10, 8, 14, 13, 9, 11, 15, 7, 6, 5, 4, 3, 2, 1, 0));
}
WRITE16_MEMBER( techno_state::disp2_w )
{
- output().set_digit_value(m_digit+30, bitswap<16>(data, 12, 10, 8, 14, 13, 9, 11, 15, 7, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(m_digit+30, BITSWAP16(data, 12, 10, 8, 14, 13, 9, 11, 15, 7, 6, 5, 4, 3, 2, 1, 0));
}
WRITE16_MEMBER( techno_state::sound_w )
diff --git a/src/mame/drivers/tek440x.cpp b/src/mame/drivers/tek440x.cpp
index babe0752852..4096b6ca375 100644
--- a/src/mame/drivers/tek440x.cpp
+++ b/src/mame/drivers/tek440x.cpp
@@ -53,7 +53,7 @@
#include "speaker.h"
-#define VIDEO_CLOCK XTAL_25_2MHz
+#define VIDEO_CLOCK 25200000
class tek440x_state : public driver_device
{
@@ -188,7 +188,7 @@ INPUT_PORTS_END
static MACHINE_CONFIG_START( tek4404 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M68010, XTAL_40MHz / 4) // MC68010L10
+ MCFG_CPU_ADD("maincpu", M68010, 16666666)
MCFG_CPU_PROGRAM_MAP(maincpu_map)
MCFG_CPU_ADD("fdccpu", M6502, 1000000)
@@ -209,7 +209,7 @@ static MACHINE_CONFIG_START( tek4404 )
MCFG_MOS6551_XTAL(XTAL_1_8432MHz)
MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_DEVICE_ADD("timer", AM9513, XTAL_40MHz / 4 / 10) // from CPU E output
+ MCFG_DEVICE_ADD("timer", AM9513, 16666666 / 10) // from CPU E output
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("aica", mos6551_device, write_rxd))
diff --git a/src/mame/drivers/thomson.cpp b/src/mame/drivers/thomson.cpp
index 3195b00baff..8b5e9086f6d 100644
--- a/src/mame/drivers/thomson.cpp
+++ b/src/mame/drivers/thomson.cpp
@@ -623,8 +623,8 @@ static MACHINE_CONFIG_START( to7 )
MCFG_MACHINE_RESET_OVERRIDE( thomson_state, to7 )
/* cpu */
- MCFG_CPU_ADD("maincpu", MC6809E, 1000000)
- MCFG_CPU_PROGRAM_MAP(to7)
+ MCFG_CPU_ADD ( "maincpu", M6809, 1000000 )
+ MCFG_CPU_PROGRAM_MAP ( to7)
MCFG_INPUT_MERGER_ANY_HIGH("mainirq")
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", M6809_IRQ_LINE))
diff --git a/src/mame/drivers/ti74.cpp b/src/mame/drivers/ti74.cpp
index 23fa326b0ea..180ef4d8f0a 100644
--- a/src/mame/drivers/ti74.cpp
+++ b/src/mame/drivers/ti74.cpp
@@ -572,7 +572,7 @@ static MACHINE_CONFIG_START( ti95 )
MCFG_GENERIC_EXTENSIONS("bin,rom,256")
MCFG_GENERIC_LOAD(ti74_state, ti74_cartridge)
- MCFG_SOFTWARE_LIST_ADD("cart_list", "ti95_cart")
+ //MCFG_SOFTWARE_LIST_ADD("cart_list", "ti95_cart")
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ticalc1x.cpp b/src/mame/drivers/ticalc1x.cpp
index 00b78aaee1b..5e058597450 100644
--- a/src/mame/drivers/ticalc1x.cpp
+++ b/src/mame/drivers/ticalc1x.cpp
@@ -98,7 +98,7 @@ WRITE16_MEMBER(cmulti8_state::write_r)
WRITE16_MEMBER(cmulti8_state::write_o)
{
// O0-O7: digit segments
- m_o = bitswap<8>(data,0,4,5,6,7,1,2,3);
+ m_o = BITSWAP8(data,0,4,5,6,7,1,2,3);
prepare_display();
}
@@ -719,7 +719,7 @@ WRITE16_MEMBER(ti1000_state::write_o)
// O0-O3,O5(?): input mux
// O0-O7: digit segments
m_inp_mux = (data & 0xf) | (data >> 1 & 0x10);
- m_o = bitswap<8>(data,7,4,3,2,1,0,6,5);
+ m_o = BITSWAP8(data,7,4,3,2,1,0,6,5);
}
READ8_MEMBER(ti1000_state::read_k)
@@ -984,7 +984,7 @@ public:
WRITE16_MEMBER(lilprof78_state::write_r)
{
// update leds state
- u8 seg = bitswap<8>(m_o,7,4,3,2,1,0,6,5) & 0x7f;
+ u8 seg = BITSWAP8(m_o,7,4,3,2,1,0,6,5) & 0x7f;
u16 r = (data & 7) | (data << 1 & 0x1f0);
set_display_segmask(0x1ff, 0x7f);
display_matrix(7, 9, seg, r, false);
@@ -993,7 +993,7 @@ WRITE16_MEMBER(lilprof78_state::write_r)
m_display_state[3] = (r != 0 && m_o & 0x80) ? 0x41 : 0;
// 6th digit is a custom 7seg for math symbols (see wizatron_state write_r)
- m_display_state[6] = bitswap<8>(m_display_state[6],7,6,1,4,2,3,5,0);
+ m_display_state[6] = BITSWAP8(m_display_state[6],7,6,1,4,2,3,5,0);
display_update();
}
@@ -1108,7 +1108,7 @@ WRITE16_MEMBER(dataman_state::write_r)
WRITE16_MEMBER(dataman_state::write_o)
{
// O0-O6: digit segments A-G
- m_o = bitswap<8>(data,7,1,6,5,4,3,2,0) & 0x7f;
+ m_o = BITSWAP8(data,7,1,6,5,4,3,2,0) & 0x7f;
prepare_display();
}
@@ -1297,7 +1297,7 @@ WRITE16_MEMBER(ti30_state::write_o)
// O0-O2,O4-O7: input mux
// O0-O7: digit segments
m_inp_mux = (data & 7) | (data >> 1 & 0x78);
- m_o = bitswap<8>(data,7,5,2,1,4,0,6,3);
+ m_o = BITSWAP8(data,7,5,2,1,4,0,6,3);
}
READ8_MEMBER(ti30_state::read_k)
diff --git a/src/mame/drivers/tickee.cpp b/src/mame/drivers/tickee.cpp
index b5abef3de74..b4c4a60ed92 100644
--- a/src/mame/drivers/tickee.cpp
+++ b/src/mame/drivers/tickee.cpp
@@ -49,7 +49,6 @@ public:
m_oki(*this, "oki"),
m_screen(*this, "screen"),
m_tlc34076(*this, "tlc34076"),
- m_ticket(*this, "ticket%u", 1),
m_vram(*this, "vram"),
m_control(*this, "control") { }
@@ -57,7 +56,6 @@ public:
optional_device<okim6295_device> m_oki;
required_device<screen_device> m_screen;
required_device<tlc34076_device> m_tlc34076;
- optional_device_array<ticket_dispenser_device, 2> m_ticket;
required_shared_ptr<uint16_t> m_vram;
optional_shared_ptr<uint16_t> m_control;
@@ -338,8 +336,8 @@ WRITE16_MEMBER(tickee_state::tickee_control_w)
if (offset == 3)
{
- m_ticket[0]->motor_w(BIT(data, 3));
- m_ticket[1]->motor_w(BIT(data, 2));
+ machine().device<ticket_dispenser_device>("ticket1")->write(space, 0, (data & 8) << 4);
+ machine().device<ticket_dispenser_device>("ticket2")->write(space, 0, (data & 4) << 5);
}
if (olddata != m_control[offset])
diff --git a/src/mame/drivers/tispeak.cpp b/src/mame/drivers/tispeak.cpp
index ad22a585acc..3fc841eabe3 100644
--- a/src/mame/drivers/tispeak.cpp
+++ b/src/mame/drivers/tispeak.cpp
@@ -585,7 +585,7 @@ WRITE16_MEMBER(tispeak_state::snspell_write_o)
// reorder opla to led14seg, plus DP as d14 and AP as d15:
// note: lantutor and snread VFD has an accent triangle instead of DP, and no AP
// E,D,C,G,B,A,I,M,L,K,N,J,[AP],H,F,[DP] (sidenote: TI KLMN = MAME MLNK)
- m_plate = bitswap<16>(data,12,15,10,7,8,9,11,6,13,3,14,0,1,2,4,5);
+ m_plate = BITSWAP16(data,12,15,10,7,8,9,11,6,13,3,14,0,1,2,4,5);
prepare_display();
}
@@ -602,7 +602,7 @@ WRITE16_MEMBER(tispeak_state::snmath_write_o)
{
// reorder opla to led14seg, plus DP as d14 and CT as d15:
// [DP],D,C,H,F,B,I,M,L,K,N,J,[CT],E,G,A (sidenote: TI KLMN = MAME MLNK)
- m_plate = bitswap<16>(data,12,0,10,7,8,9,11,6,3,14,4,13,1,2,5,15);
+ m_plate = BITSWAP16(data,12,0,10,7,8,9,11,6,3,14,4,13,1,2,5,15);
prepare_display();
}
@@ -636,7 +636,8 @@ WRITE16_MEMBER(tispeak_state::snspellc_write_r)
WRITE16_MEMBER(tispeak_state::snspellc_write_o)
{
// O3210: TMS5100 CTL8124
- m_tms5100->ctl_w(space, 0, bitswap<4>(data,3,0,1,2));
+ m_o = BITSWAP8(data,7,6,5,4,3,0,1,2);
+ m_tms5100->ctl_w(space, 0, m_o & 0xf);
}
READ8_MEMBER(tispeak_state::snspellc_read_k)
@@ -688,7 +689,7 @@ void tispeak_state::k28_prepare_display(u8 old, u8 data)
WRITE16_MEMBER(tispeak_state::k28_write_r)
{
// R1234: TMS5100 CTL8421
- m_tms5100->ctl_w(space, 0, bitswap<4>(data,1,2,3,4));
+ m_tms5100->ctl_w(space, 0, BITSWAP8(data,0,0,0,0,1,2,3,4) & 0xf);
// R0: TMS5100 PDC pin
m_tms5100->pdc_w(data & 1);
diff --git a/src/mame/drivers/tispellb.cpp b/src/mame/drivers/tispellb.cpp
index 1c73e9d6692..a34da8e9603 100644
--- a/src/mame/drivers/tispellb.cpp
+++ b/src/mame/drivers/tispellb.cpp
@@ -150,7 +150,7 @@ void tispellb_state::prepare_display()
WRITE16_MEMBER(tispellb_state::main_write_o)
{
// reorder opla to led14seg, plus DP as d14 and AP as d15, same as snspell
- m_plate = bitswap<16>(data,12,15,10,7,8,9,11,6,13,3,14,0,1,2,4,5);
+ m_plate = BITSWAP16(data,12,15,10,7,8,9,11,6,13,3,14,0,1,2,4,5);
prepare_display();
}
@@ -199,7 +199,7 @@ WRITE16_MEMBER(tispellb_state::sub_write_o)
READ8_MEMBER(tispellb_state::rev1_ctl_r)
{
// main CTL3210 <- sub O6043
- return bitswap<4>(m_sub_o,6,0,4,3);
+ return BITSWAP8(m_sub_o,7,5,2,1,6,0,4,3) & 0xf;
}
WRITE16_MEMBER(tispellb_state::sub_write_r)
diff --git a/src/mame/drivers/tmnt.cpp b/src/mame/drivers/tmnt.cpp
index 282073276e3..e351f646682 100644
--- a/src/mame/drivers/tmnt.cpp
+++ b/src/mame/drivers/tmnt.cpp
@@ -4098,7 +4098,7 @@ static void chunky_to_planar(memory_region *rgn)
for (int i = 0; i < len; i++)
{
uint32_t data = little_endianize_int32(ROM[i]);
- data = bitswap<32>(data,31,27,23,19,15,11,7,3,30,26,22,18,14,10,6,2,29,25,21,17,13,9,5,1,28,24,20,16,12,8,4,0);
+ data = BITSWAP32(data,31,27,23,19,15,11,7,3,30,26,22,18,14,10,6,2,29,25,21,17,13,9,5,1,28,24,20,16,12,8,4,0);
ROM[i] = little_endianize_int32(data);
}
}
@@ -4120,9 +4120,9 @@ DRIVER_INIT_MEMBER(tmnt_state, mia)
int B = A & 0x3ff00;
if ((A & 0x3c000) == 0x3c000)
- B |= bitswap<8>(A,7,6,4,2,1,0,5,3);
+ B |= BITSWAP8(A,7,6,4,2,1,0,5,3);
else
- B |= bitswap<8>(A,6,4,2,1,0,7,5,3);
+ B |= BITSWAP8(A,6,4,2,1,0,7,5,3);
gfxdata[A] = temp[B];
}
diff --git a/src/mame/drivers/toaplan2.cpp b/src/mame/drivers/toaplan2.cpp
index 11128be90ef..0c4f7cf758e 100644
--- a/src/mame/drivers/toaplan2.cpp
+++ b/src/mame/drivers/toaplan2.cpp
@@ -18,7 +18,6 @@ Supported games:
Name Board No Maker Game name
----------------------------------------------------------------------------
tekipaki TP-020 Toaplan Teki Paki
- tekipakit TP-020 Toaplan Teki Paki (location test)
ghox TP-021 Toaplan Ghox (Spinner with single up/down axis control)
ghoxj TP-021 Toaplan Ghox (8-Way Joystick controls)
dogyuun TP-022 Toaplan Dogyuun
@@ -473,10 +472,10 @@ DRIVER_INIT_MEMBER(toaplan2_state,pipibibsbl)
for (int i = 0; i < (0x040000/2); i += 4)
{
- ROM[i+0] = bitswap<16>(ROM[i+0],0x1,0x5,0x6,0x7,0x8,0x2,0x0,0x9,0xe,0xd,0x4,0x3,0xf,0xa,0xb,0xc);
- ROM[i+1] = bitswap<16>(ROM[i+1],0x5,0x3,0x1,0xf,0xd,0xb,0x9,0x0,0x2,0x4,0x6,0x8,0xa,0xc,0xe,0x7);
- ROM[i+2] = bitswap<16>(ROM[i+2],0xc,0xd,0xe,0xf,0x8,0x9,0xa,0xb,0x3,0x2,0x1,0x0,0x7,0x6,0x5,0x4);
- ROM[i+3] = bitswap<16>(ROM[i+3],0x8,0x9,0xa,0xb,0xc,0xd,0xe,0xf,0x3,0x2,0x1,0x0,0x7,0x6,0x5,0x4);
+ ROM[i+0] = BITSWAP16(ROM[i+0],0x1,0x5,0x6,0x7,0x8,0x2,0x0,0x9,0xe,0xd,0x4,0x3,0xf,0xa,0xb,0xc);
+ ROM[i+1] = BITSWAP16(ROM[i+1],0x5,0x3,0x1,0xf,0xd,0xb,0x9,0x0,0x2,0x4,0x6,0x8,0xa,0xc,0xe,0x7);
+ ROM[i+2] = BITSWAP16(ROM[i+2],0xc,0xd,0xe,0xf,0x8,0x9,0xa,0xb,0x3,0x2,0x1,0x0,0x7,0x6,0x5,0x4);
+ ROM[i+3] = BITSWAP16(ROM[i+3],0x8,0x9,0xa,0xb,0xc,0xd,0xe,0xf,0x3,0x2,0x1,0x0,0x7,0x6,0x5,0x4);
}
}
@@ -596,7 +595,7 @@ WRITE8_MEMBER(toaplan2_state::pwrkick_coin_w)
machine().bookkeeping().coin_counter_w(0, (data & 2) >> 1 ); // medal
machine().bookkeeping().coin_counter_w(1, (data & 8) >> 3 ); // 10 yen
machine().bookkeeping().coin_counter_w(2, (data & 1) ); // 100 yen
- m_hopper->motor_w(BIT(data, 7));
+ m_hopper->write(space, 0, data & 0x80);
}
WRITE8_MEMBER(toaplan2_state::pwrkick_coin_lockout_w)
@@ -4069,10 +4068,10 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( batrider )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16MHz , 32MHz Oscillator (verified) */
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16MHz , 32MHz Oscillator */
MCFG_CPU_PROGRAM_MAP(batrider_68k_mem)
- MCFG_CPU_ADD("audiocpu", Z80, XTAL_32MHz/6) /* 5.333MHz , 32MHz Oscillator (verified) */
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_32MHz/8) /* 4MHz , 32MHz Oscillator */
MCFG_CPU_PROGRAM_MAP(batrider_sound_z80_mem)
MCFG_CPU_IO_MAP(batrider_sound_z80_port)
@@ -4109,7 +4108,7 @@ static MACHINE_CONFIG_START( batrider )
MCFG_GENERIC_LATCH_8_ADD("soundlatch3")
MCFG_GENERIC_LATCH_8_ADD("soundlatch4")
- MCFG_YM2151_ADD("ymsnd", XTAL_32MHz/8) /* 4MHz , 32MHz Oscillator (verified) */
+ MCFG_YM2151_ADD("ymsnd", XTAL_32MHz/8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_OKIM6295_ADD("oki1", XTAL_32MHz/10, PIN7_HIGH)
@@ -4183,7 +4182,6 @@ MACHINE_CONFIG_END
***************************************************************************/
/* -------------------------- Toaplan games ------------------------- */
-
ROM_START( tekipaki )
ROM_REGION( 0x040000, "maincpu", 0 ) /* Main 68K code */
ROM_LOAD16_BYTE( "tp020-1.bin", 0x000000, 0x010000, CRC(d8420bd5) SHA1(30c1ad9e053cd7e79adb42aa428ebee28e144755) )
@@ -4198,19 +4196,6 @@ ROM_START( tekipaki )
ROM_END
-ROM_START( tekipakit ) /* Location Test version */
- ROM_REGION( 0x040000, "maincpu", 0 ) /* Main 68K code */
- ROM_LOAD16_BYTE( "e.e5", 0x000000, 0x010000, CRC(89affc73) SHA1(3930bf0c2528de28dcb0cf2cd537adb62a2172e3) ) /* hand written "E" 27C512 chip */
- ROM_LOAD16_BYTE( "o.e6", 0x000001, 0x010000, CRC(a2244558) SHA1(5291cfbea4d4d1c45d6d4bd21b3c466459a0fa17) ) /* hand written "O" 27C512 chip */
-
- ROM_REGION( 0x8000, "audiocpu", 0 ) /* Sound HD647180 code */
- ROM_LOAD( "hd647180.020", 0x00000, 0x08000, CRC(d5157c12) SHA1(b2c6c087bb539456a9e562d0b40f05dde26cacd3) )
-
- ROM_REGION( 0x100000, "gp9001", 0 )
- ROM_LOAD( "0-1_4.4_cb45.a16", 0x000000, 0x080000, CRC(35e14729) SHA1(8c929604953b78c6e72744a38e06a988510193a5) ) /* hand written "0-1 4/4 CB45" 27C402 chip */
- ROM_LOAD( "3-4_4.4_547d.a15", 0x080000, 0x080000, CRC(41975fcc) SHA1(f850d5a9638d41bb69f204a9cd54e2fd693b57ef) ) /* hand written "3-4 4/4 547D" 27C402 chip */
-ROM_END
-
ROM_START( ghox ) /* Spinner with single axis (up/down) controls */
ROM_REGION( 0x040000, "maincpu", 0 ) /* Main 68K code */
@@ -5585,7 +5570,6 @@ ROM_END
// ( YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS )
GAME( 1991, tekipaki, 0, tekipaki, tekipaki, toaplan2_state, 0, ROT0, "Toaplan", "Teki Paki", MACHINE_SUPPORTS_SAVE )
-GAME( 1991, tekipakit, tekipaki, tekipaki, tekipaki, toaplan2_state, 0, ROT0, "Toaplan", "Teki Paki (location test)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, ghox, 0, ghox, ghox, toaplan2_state, 0, ROT270, "Toaplan", "Ghox (spinner)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, ghoxj, ghox, ghox, ghox, toaplan2_state, 0, ROT270, "Toaplan", "Ghox (joystick)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/toki.cpp b/src/mame/drivers/toki.cpp
index 5d82724f2e3..31e6ccd013c 100644
--- a/src/mame/drivers/toki.cpp
+++ b/src/mame/drivers/toki.cpp
@@ -959,7 +959,7 @@ DRIVER_INIT_MEMBER(toki_state,toki)
memcpy(&buffer[0],ROM,0x20000);
for( i = 0; i < 0x20000; i++ )
{
- ROM[i] = buffer[bitswap<24>(i,23,22,21,20,19,18,17,16,13,14,15,12,11,10,9,8,7,6,5,4,3,2,1,0)];
+ ROM[i] = buffer[BITSWAP24(i,23,22,21,20,19,18,17,16,13,14,15,12,11,10,9,8,7,6,5,4,3,2,1,0)];
}
}
@@ -1014,7 +1014,7 @@ DRIVER_INIT_MEMBER(toki_state,jujuba)
for (i = 0; i < 0x60000/2; i++)
{
- prgrom[i] = bitswap<16>(prgrom[i],15,12,13,14,
+ prgrom[i] = BITSWAP16(prgrom[i],15,12,13,14,
11,10, 9, 8,
7, 6, 5, 3,
4, 2, 1, 0);
@@ -1029,7 +1029,7 @@ DRIVER_INIT_MEMBER(toki_state,jujuba)
memcpy(&buffer[0],ROM,0x20000);
for( i = 0; i < 0x20000; i++ )
{
- ROM[i] = buffer[bitswap<24>(i,23,22,21,20,19,18,17,16,13,14,15,12,11,10,9,8,7,6,5,4,3,2,1,0)];
+ ROM[i] = buffer[BITSWAP24(i,23,22,21,20,19,18,17,16,13,14,15,12,11,10,9,8,7,6,5,4,3,2,1,0)];
}
}
}
diff --git a/src/mame/drivers/tonton.cpp b/src/mame/drivers/tonton.cpp
index d0b6373ed78..b21cd11c0de 100644
--- a/src/mame/drivers/tonton.cpp
+++ b/src/mame/drivers/tonton.cpp
@@ -43,7 +43,6 @@ public:
required_device<v9938_device> m_v9938;
DECLARE_WRITE8_MEMBER(tonton_outport_w);
- DECLARE_WRITE8_MEMBER(hopper_w);
DECLARE_WRITE8_MEMBER(ay_aout_w);
DECLARE_WRITE8_MEMBER(ay_bout_w);
virtual void machine_start() override;
@@ -68,6 +67,7 @@ WRITE8_MEMBER(tonton_state::tonton_outport_w)
{
machine().bookkeeping().coin_counter_w(offset, data & 0x01);
machine().bookkeeping().coin_lockout_global_w(data & 0x02); /* Coin Lock */
+ m_hopper->write(space, 0, (data & 0x02)); /* Hopper Motor */
// if(data & 0xfe)
// logerror("%02x %02x\n",data,offset);
@@ -75,11 +75,6 @@ WRITE8_MEMBER(tonton_state::tonton_outport_w)
logerror("tonton_outport_w %02X @ %04X\n", data, space.device().safe_pc());
}
-WRITE8_MEMBER(tonton_state::hopper_w)
-{
- m_hopper->motor_w(BIT(data, 1));
-}
-
/*************************************************
* Memory Map *
@@ -96,7 +91,7 @@ static ADDRESS_MAP_START( tonton_io, AS_IO, 8, tonton_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x00, 0x00) AM_WRITE(tonton_outport_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
- AM_RANGE(0x01, 0x01) AM_WRITE(hopper_w)
+ AM_RANGE(0x01, 0x01) AM_WRITENOP // write the same to outport 00h
AM_RANGE(0x02, 0x02) AM_READ_PORT("DSW1")
AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW2")
AM_RANGE(0x88, 0x8b) AM_DEVREADWRITE( "v9938", v9938_device, read, write )
@@ -230,7 +225,7 @@ static MACHINE_CONFIG_START( tonton )
MCFG_V99X8_INTERRUPT_CALLBACK(INPUTLINE("maincpu", 0))
MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9938", MAIN_CLOCK)
- MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW )
+ MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/tourvis.cpp b/src/mame/drivers/tourvis.cpp
index 781a7e81f1e..21ea16d8104 100644
--- a/src/mame/drivers/tourvis.cpp
+++ b/src/mame/drivers/tourvis.cpp
@@ -14,7 +14,125 @@
By now, six known BIOS versions, U4-52 (dumped from a board with-subboard PCB),
U4-55 (dumped from an integrated PCB) and U4-60 (dumped from a board with-subboard PCB).
- Known games list can be found in hash/pce_tourvision.xml.
+ Known games (followed by game ID, some are duplicate):
+
+ 1943 Kai (65)
+ Adventure Island (64)
+ Aero Blaster (32)
+ After Burner II (46)
+ Alice in Wonderland (61)
+ Ankoku Densetsu (Legendary Axe II) (33)
+ Armed-F (?)
+ Ballistix (186)
+ Barunba (39)
+ Batman (30)
+ Be Ball (93)
+ * Blodia
+ Bomberman (71)
+ Bomberman 93 (204)
+ Bull Fight (185)
+ Burning Angels (49)
+ Cadash (203)
+ Chozetsurinjin Beraboh Man (Super Foolish Man) (27)
+ Chuka Taisen (37)
+ Columns (90)
+ Coryoon (43)
+ * Cross Wiber
+ Cyber Core (13)
+ Daisempuu (3)
+ Dead Moon (?)
+ Devil Crash (47)
+ Die Hard (73)
+ Dodge Ball (194)
+ Doraemon Meikyuu Daisakusen (20)
+ Doreamon - Nobita's Dorabian Night (Doraemon II, 43)
+ Down Load (43)
+ Dragon Egg! (98)
+ Dragon Saber (65)
+ Dragon Spirit (?)
+ Drop Rock Hora Hora (12)
+ Dungeon Explorer (209)
+ * F1 Triple Battle
+ Fighting Run (195)
+ Final Blaster (29)
+ Final Lap Twin (79)
+ Final Match Tennis (62)
+ Formation Soccer (1)
+ Gomola Speed (27)
+ Gradius (187)
+ Gunhed (148)
+ Hana Taka Daka (Super Long Nose Goblin) (6)
+ * Hatris
+ Hit The Ice (97)
+ Image Fight (99)
+ Jackie Chan (54)
+ Jinmu Densho (19)
+ Kato & Ken (42)
+ Kiki Kaikai (120)
+ Knight Rider Special (193)
+ Legend Of Hero Tomna (56)
+ Makyo Densetsu - The Legendary Axe (40)
+ Mashin Eiyuden Wataru (27)
+ Mesopotamia (197)
+ Mizubaku Daibouken Liquid Kids (10) (marketed as "Parasol Stars II")
+ Mr. Heli (23)
+ Ninja Ryukenden (10)
+ Operation Wolf (26)
+ Ordyne (94)
+ Out Run (38)
+ Override (53)
+ Pac-Land (16)
+ * Paranoia (18)
+ * PC Genjin
+ PC Genjin 2 (84)
+ PC Denjin Punkic Cyborg (201)
+ Power Drift (200)
+ Power Eleven (83)
+ * Power Golf
+ Power League IV (?)
+ Power Sports (199)
+ Power Tennis (183)
+ Pro Yakyuu World Stadium '91 (192)
+ Psycho Chaser (14)
+ Puzzle Boy (57)
+ Puzznic (69)
+ R-Type II (61)
+ * Rabio Lepus Special
+ Raiden (111)
+ Rastan Saga II (33, possibly incorrect riser)
+ Saigo no Nindou (44)
+ Salamander (184)
+ Shinobi (5)
+ Side Arms (2)
+ Skweek (89)
+ Sokoban World (66)
+ Soldier Blade (23)
+ Son Son II (80)
+ Special Criminal Investigation (58)
+ Spin Pair (50)
+ Super Star Soldier (42)
+ Super Volley ball (9)
+ Tatsujin (31)
+ Terra Cresta II (27)
+ The NewZealand Story (11)
+ Thunder Blade (34)
+ * Tiger Road
+ * Titan
+ Toilet Kids (196)
+ Toy Shop Boys (51)
+ Tricky (42)
+ * TV Sports
+ USA Pro Basketball (?)
+ Veigues (40)
+ Vigilante (8)
+ Volfied (68)
+ W-Ring (21)
+ Winning Shot (28)
+ World Jockey (202)
+ Xevious (?)
+
+ Rumored games:
+ * Parasol Stars - often been mentioned, but still not confirmed, for Tourvision. For now it's been added from its NEC PC-Engine dump, which it would be likely identical.
* Denotes Not Dumped
@@ -205,13 +323,11 @@ public:
DECLARE_WRITE8_MEMBER(tourvision_i8155_b_w);
DECLARE_WRITE8_MEMBER(tourvision_i8155_c_w);
DECLARE_WRITE_LINE_MEMBER(tourvision_timer_out);
-
- DECLARE_DEVICE_IMAGE_LOAD_MEMBER(tourvision_cart);
-
-private:
required_device<cpu_device> m_subcpu;
required_device<generic_slot_device> m_cart;
uint32_t m_rom_size;
+
+ DECLARE_DEVICE_IMAGE_LOAD_MEMBER(tourvision_cart);
};
DEVICE_IMAGE_LOAD_MEMBER( tourvision_state, tourvision_cart )
@@ -457,4 +573,4 @@ ROM_START(tourvis)
ROM_END
-GAME( 19??, tourvis, 0, tourvision, tourvision, tourvision_state, pce_common, ROT0, "bootleg (Tourvision)", "Tourvision PCE bootleg", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING )
+GAME( 19??, tourvis, 0, tourvision, tourvision, tourvision_state, pce_common, ROT0, "bootleg (Tourvision)", "Tourvision PCE bootleg", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/toypop.cpp b/src/mame/drivers/toypop.cpp
index 20dbcc9b7ae..285facb2257 100644
--- a/src/mame/drivers/toypop.cpp
+++ b/src/mame/drivers/toypop.cpp
@@ -653,7 +653,7 @@ INTERRUPT_GEN_MEMBER(namcos16_state::slave_vblank_irq)
}
static MACHINE_CONFIG_START( liblrabl )
- MCFG_CPU_ADD("maincpu", MC6809E, MASTER_CLOCK/4)
+ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4)
MCFG_CPU_PROGRAM_MAP(master_liblrabl_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos16_state, master_scanline, "screen", 0, 1)
@@ -661,7 +661,7 @@ static MACHINE_CONFIG_START( liblrabl )
MCFG_CPU_PROGRAM_MAP(slave_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos16_state, slave_vblank_irq)
- MCFG_CPU_ADD("audiocpu", MC6809E, MASTER_CLOCK/4)
+ MCFG_CPU_ADD("audiocpu", M6809, MASTER_CLOCK/4)
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT_DRIVER(namcos16_state, irq0_line_hold, 60)
diff --git a/src/mame/drivers/tp84.cpp b/src/mame/drivers/tp84.cpp
index b0cb4e71096..ef213ea248a 100644
--- a/src/mame/drivers/tp84.cpp
+++ b/src/mame/drivers/tp84.cpp
@@ -331,11 +331,11 @@ INTERRUPT_GEN_MEMBER(tp84_state::sub_vblank_irq)
static MACHINE_CONFIG_START( tp84 )
/* basic machine hardware */
- MCFG_CPU_ADD("cpu1", MC6809E, XTAL_18_432MHz/12) /* verified on pcb */
+ MCFG_CPU_ADD("cpu1",M6809, XTAL_18_432MHz/12) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(tp84_cpu1_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", tp84_state, main_vblank_irq)
- MCFG_CPU_ADD("sub", MC6809E, XTAL_18_432MHz/12) /* verified on pcb */
+ MCFG_CPU_ADD("sub", M6809, XTAL_18_432MHz/12) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(cpu2_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", tp84_state, sub_vblank_irq)
diff --git a/src/mame/drivers/trackfld.cpp b/src/mame/drivers/trackfld.cpp
index 36cdc4f07c4..89f355859f2 100644
--- a/src/mame/drivers/trackfld.cpp
+++ b/src/mame/drivers/trackfld.cpp
@@ -963,7 +963,7 @@ INTERRUPT_GEN_MEMBER(trackfld_state::yieartf_timer_irq)
static MACHINE_CONFIG_START( yieartf )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MASTER_CLOCK/6/2) /* a guess for now */
+ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/6/2) /* a guess for now */
MCFG_CPU_PROGRAM_MAP(yieartf_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", trackfld_state, vblank_irq)
MCFG_CPU_PERIODIC_INT_DRIVER(trackfld_state, yieartf_timer_irq, 480)
@@ -1047,7 +1047,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mastkin, trackfld )
/* basic machine hardware */
- MCFG_CPU_REPLACE("maincpu", MC6809E, MASTER_CLOCK/6/2) /* a guess for now */
+ MCFG_CPU_REPLACE("maincpu", M6809, MASTER_CLOCK/6/2) /* a guess for now */
MCFG_CPU_PROGRAM_MAP(mastkin_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", trackfld_state, vblank_irq)
@@ -1574,7 +1574,7 @@ DRIVER_INIT_MEMBER(trackfld_state, trackfldnz)
/* decrypt program rom */
for (i = 0x6000; i < 0x10000; i++)
- ROM[i] = bitswap<8>(ROM[i], 6, 7, 5, 4, 3, 2, 1, 0);
+ ROM[i] = BITSWAP8(ROM[i], 6, 7, 5, 4, 3, 2, 1, 0);
}
DRIVER_INIT_MEMBER(trackfld_state,atlantol)
@@ -1627,13 +1627,13 @@ DRIVER_INIT_MEMBER(trackfld_state,wizzquiz)
/* decrypt program rom */
for (i = 0; i < 0x2000; i++)
- ROM[i] = bitswap<8>(ROM[i],0,1,2,3,4,5,6,7);
+ ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7);
ROM = memregion("user1")->base();
/* decrypt questions roms */
for (i = 0; i < 0x40000; i++)
- ROM[i] = bitswap<8>(ROM[i],0,1,2,3,4,5,6,7);
+ ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7);
membank("bank1")->configure_entries(0, 8, ROM, 0x8000);
}
diff --git a/src/mame/drivers/travrusa.cpp b/src/mame/drivers/travrusa.cpp
index cb068c27f03..19f2bd3e96b 100644
--- a/src/mame/drivers/travrusa.cpp
+++ b/src/mame/drivers/travrusa.cpp
@@ -587,8 +587,8 @@ DRIVER_INIT_MEMBER(travrusa_state,motorace)
/* The first CPU ROM has the address and data lines scrambled */
for (A = 0; A < 0x2000; A++)
{
- j = bitswap<16>(A,15,14,13,9,7,5,3,1,12,10,8,6,4,2,0,11);
- rom[j] = bitswap<8>(buffer[A],2,7,4,1,6,3,0,5);
+ j = BITSWAP16(A,15,14,13,9,7,5,3,1,12,10,8,6,4,2,0,11);
+ rom[j] = BITSWAP8(buffer[A],2,7,4,1,6,3,0,5);
}
}
@@ -599,7 +599,7 @@ DRIVER_INIT_MEMBER(travrusa_state,shtridra)
/* D3/D4 and D5/D6 swapped */
for (A = 0; A < 0x2000; A++)
- rom[A] = bitswap<8>(rom[A],7,5,6,3,4,2,1,0);
+ rom[A] = BITSWAP8(rom[A],7,5,6,3,4,2,1,0);
}
READ8_MEMBER(travrusa_state::shtridrb_port11_r)
diff --git a/src/mame/drivers/trvquest.cpp b/src/mame/drivers/trvquest.cpp
index 8e2079cdaf9..49c05ddde00 100644
--- a/src/mame/drivers/trvquest.cpp
+++ b/src/mame/drivers/trvquest.cpp
@@ -200,17 +200,17 @@ static MACHINE_CONFIG_START( trvquest )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* via */
- MCFG_DEVICE_ADD("via6522_0", VIA6522, XTAL_6MHz/4)
+ MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(gameplan_state, video_data_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(gameplan_state, gameplan_video_command_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, video_command_trigger_w))
- MCFG_DEVICE_ADD("via6522_1", VIA6522, XTAL_6MHz/4)
+ MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(IOPORT("IN0"))
MCFG_VIA6522_READPB_HANDLER(IOPORT("IN1"))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, trvquest_coin_w))
- MCFG_DEVICE_ADD("via6522_2", VIA6522, XTAL_6MHz/4)
+ MCFG_DEVICE_ADD("via6522_2", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(IOPORT("UNK"))
MCFG_VIA6522_READPB_HANDLER(IOPORT("DSW"))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, trvquest_misc_w))
diff --git a/src/mame/drivers/tsispch.cpp b/src/mame/drivers/tsispch.cpp
index ac131b6956d..d118f933ae7 100644
--- a/src/mame/drivers/tsispch.cpp
+++ b/src/mame/drivers/tsispch.cpp
@@ -270,19 +270,19 @@ DRIVER_INIT_MEMBER(tsispch_state,prose2k)
uint16_t byte23t;
for (int i = 0; i < 0x600; i+= 3)
{
- byte1t = bitswap<8>(dspsrc[0+i], 0, 1, 2, 3, 4, 5, 6, 7);
+ byte1t = BITSWAP8(dspsrc[0+i], 0, 1, 2, 3, 4, 5, 6, 7);
// here's where things get disgusting: if the first byte was an OP or RT, do the following:
if ((byte1t&0x80) == 0x00) // op or rt instruction
{
- byte23t = bitswap<16>( (((uint16_t)dspsrc[1+i]<<8)|dspsrc[2+i]), 8, 9, 10, 15, 11, 12, 13, 14, 0, 1, 2, 3, 4, 5, 6, 7);
+ byte23t = BITSWAP16( (((uint16_t)dspsrc[1+i]<<8)|dspsrc[2+i]), 8, 9, 10, 15, 11, 12, 13, 14, 0, 1, 2, 3, 4, 5, 6, 7);
}
else if ((byte1t&0xC0) == 0x80) // jp instruction
{
- byte23t = bitswap<16>( (((uint16_t)dspsrc[1+i]<<8)|dspsrc[2+i]), 8, 9, 15, 15, 15, 10, 11, 12, 13, 14, 0, 1, 2, 3, 6, 7);
+ byte23t = BITSWAP16( (((uint16_t)dspsrc[1+i]<<8)|dspsrc[2+i]), 8, 9, 15, 15, 15, 10, 11, 12, 13, 14, 0, 1, 2, 3, 6, 7);
}
else // ld instruction
{
- byte23t = bitswap<16>( (((uint16_t)dspsrc[1+i]<<8)|dspsrc[2+i]), 8, 9, 10, 11, 12, 13, 14, 0, 1, 2, 3, 3, 4, 5, 6, 7);
+ byte23t = BITSWAP16( (((uint16_t)dspsrc[1+i]<<8)|dspsrc[2+i]), 8, 9, 10, 11, 12, 13, 14, 0, 1, 2, 3, 3, 4, 5, 6, 7);
}
*dspprg = byte1t<<24 | byte23t<<8;
diff --git a/src/mame/drivers/tutankhm.cpp b/src/mame/drivers/tutankhm.cpp
index 5bf8cd01d1f..50507d7aba8 100644
--- a/src/mame/drivers/tutankhm.cpp
+++ b/src/mame/drivers/tutankhm.cpp
@@ -225,7 +225,7 @@ MACHINE_RESET_MEMBER(tutankhm_state,tutankhm)
static MACHINE_CONFIG_START( tutankhm )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_18_432MHz/12) /* 1.5 MHz ??? */
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_18_432MHz/12) /* 1.5 MHz ??? */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", tutankhm_state, tutankhm_interrupt)
diff --git a/src/mame/drivers/tv950.cpp b/src/mame/drivers/tv950.cpp
index e66e45239aa..5730eb940fd 100644
--- a/src/mame/drivers/tv950.cpp
+++ b/src/mame/drivers/tv950.cpp
@@ -318,11 +318,13 @@ ROM_START( tv950 )
ROM_REGION(0x10000, "user1", 0)
// came with "tv950.zip"
- ROM_LOAD( "180000-43i.a25", 0x0000, 0x1000, CRC(ac6f0bfc) SHA1(2a3863700405fbb9e510613559d78fceee3544e8) )
- ROM_LOAD( "180000-44i.a20", 0x0000, 0x1000, CRC(db91a727) SHA1(e94724ed1a563fb846f4203ae6523ee6b4c6577f) )
+ ROM_LOAD( "tv-043h.rom", 0x0000, 0x1000, CRC(89b826be) SHA1(fd5575be04317682d0c9062702b5932b46f89926) )
+ ROM_LOAD( "tv-044h.rom", 0x0000, 0x1000, CRC(24b0383d) SHA1(71cabb7f3da8652a36afdf3d505ab8a41651e801) )
+ ROM_LOAD( "180000-43i_a25_05ce.bin", 0x0000, 0x1000, CRC(ac6f0bfc) SHA1(2a3863700405fbb9e510613559d78fceee3544e8) )
+ ROM_LOAD( "180000-44i_a20_689e.bin", 0x0000, 0x1000, CRC(db91a727) SHA1(e94724ed1a563fb846f4203ae6523ee6b4c6577f) )
// came with "tv950kbd.zip"
- ROM_LOAD( "1800000-003a.a32", 0x0000, 0x1000, CRC(eaef0138) SHA1(7198851299fce07c95d18e32cbfbe936c0dbec2a) )
- ROM_LOAD( "1800000-002a.a33", 0x0000, 0x1000, CRC(856dd85c) SHA1(e2570017e098b0e1ead7749e9c2ac40be2367433) )
+ ROM_LOAD( "tv950_a32_1800000-003a.bin", 0x0000, 0x1000, CRC(eaef0138) SHA1(7198851299fce07c95d18e32cbfbe936c0dbec2a) )
+ ROM_LOAD( "tv950_a33_1800000-002a.bin", 0x0000, 0x1000, CRC(856dd85c) SHA1(e2570017e098b0e1ead7749e9c2ac40be2367433) )
ROM_END
/* Driver */
diff --git a/src/mame/drivers/twinkle.cpp b/src/mame/drivers/twinkle.cpp
index 85dbd059fea..5326a791d83 100644
--- a/src/mame/drivers/twinkle.cpp
+++ b/src/mame/drivers/twinkle.cpp
@@ -9,7 +9,7 @@ driver by smf and R. Belmont
TODO:
dvd check for bmiidx, bmiidxa, bmiidxc & bmiidxca
-The first 128k of RF5C400 bank 0 is uploaded by the 68000, the rest is unused. It may be using 16J & 18J
+finish sound board emulation and remove response hle
emulate dvd player and video mixing
16seg led font
@@ -28,14 +28,14 @@ beatmania IIDX + DDR Club Kit(newer) 1999 896 JA BBM *? *
beatmania IIDX Substream 1999 *? GC983 A04 *? ?
beatmania IIDX Club Version 2 1999 GE984 A01(BM) *? *984 A02 ?
+ GE984 A01(DDR)
-beatmania IIDX 2nd Style 1999 GC985 A01 GC985 A04 *? *985 HDD A01
-beatmania IIDX 3rd Style 2000 GC992-JA A01 GC992-JA A04 *? *992 HDD A01
-beatmania IIDX 3rd Style(newer) 2000 GC992-JA C01 GC992-JA A04 *? *992 HDD A01
-beatmania IIDX 4th Style 2000 A03 JA A01 A03 JA A02 A03 A03 JA A03
-beatmania IIDX 5th Style 2001 A17 JA A01 A17 JA A02 A17 *A17 JA A03
-beatmania IIDX 6th Style 2001 B4U JA A01 B4U JA A02 *? B4U JA A03
-beatmania IIDX 6th Style(newer) 2001 B4U JA B01 B4U JA A02 *? B4U JA A03
-beatmania IIDX 7th Style 2002 B44 JA A01 B44 JA A02 *? B44 JA A03
+beatmania IIDX 2nd Style 1999 GC985 A01 GC985 A04 * *985 HDD A01
+beatmania IIDX 3rd Style 2000 GC992-JA A01 GC992-JA A04 * *992 HDD A01
+beatmania IIDX 3rd Style(newer) 2000 GC992-JA C01 GC992-JA A04 * *992 HDD A01
+beatmania IIDX 4th Style 2000 A03 JA A01 A03 JA A02 *A03 A03 JA A03
+beatmania IIDX 5th Style 2001 A17 JA A01 A17 JA A02 * *A17 JA A03
+beatmania IIDX 6th Style 2001 B4U JA A01 B4U JA A02 * B4U JA A03
+beatmania IIDX 6th Style(newer) 2001 B4U JA B01 B4U JA A02 * B4U JA A03
+beatmania IIDX 7th Style 2002 B44 JA A01 B44 JA A02 * B44 JA A03
beatmania IIDX 8th Style 2002 C44 JA A01 C44 JA A02 *C44 C44 JA A03
* = Not dumped.
@@ -247,8 +247,6 @@ Notes:
#include "sound/rf5c400.h"
#include "speaker.h"
-#include "bmiidx.lh"
-
class twinkle_state : public driver_device
{
public:
@@ -258,8 +256,6 @@ public:
m_ata(*this, "ata"),
m_waveram(*this, "rfsnd"),
m_spu_ata_dma(0),
- m_spu_ata_dmarq(0),
- m_wave_bank(0),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu")
{
@@ -267,22 +263,20 @@ public:
required_device<am53cf96_device> m_am53cf96;
required_device<ata_interface_device> m_ata;
- required_shared_ptr<uint16_t> m_waveram;
+ required_region_ptr<uint16_t> m_waveram;
uint16_t m_spu_ctrl; // SPU board control register
uint8_t m_spu_shared[0x400]; // SPU/PSX shared dual-ported RAM
uint32_t m_spu_ata_dma;
int m_spu_ata_dmarq;
- uint32_t m_wave_bank;
int m_io_offset;
int m_output_last[ 0x100 ];
+ int m_last_io_offset;
uint8_t m_sector_buffer[ 4096 ];
DECLARE_WRITE8_MEMBER(twinkle_io_w);
DECLARE_READ8_MEMBER(twinkle_io_r);
DECLARE_WRITE16_MEMBER(twinkle_output_w);
- DECLARE_WRITE16_MEMBER(led_w);
- DECLARE_WRITE16_MEMBER(key_led_w);
DECLARE_WRITE16_MEMBER(serial_w);
DECLARE_WRITE8_MEMBER(shared_psx_w);
DECLARE_READ8_MEMBER(shared_psx_r);
@@ -293,8 +287,6 @@ public:
DECLARE_WRITE16_MEMBER(twinkle_waveram_w);
DECLARE_READ16_MEMBER(shared_68k_r);
DECLARE_WRITE16_MEMBER(shared_68k_w);
- DECLARE_WRITE16_MEMBER(spu_led_w);
- DECLARE_WRITE16_MEMBER(spu_wavebank_w);
DECLARE_READ16_MEMBER(unk_68k_r);
DECLARE_WRITE_LINE_MEMBER(spu_ata_irq);
DECLARE_WRITE_LINE_MEMBER(spu_ata_dmarq);
@@ -312,6 +304,8 @@ public:
int m_output_clock;
};
+/* RTC */
+
#define LED_A1 0x0001
#define LED_A2 0x0002
#define LED_B 0x0004
@@ -338,24 +332,23 @@ public:
static const uint16_t asciicharset[]=
{
-// 0
- 0, // (default on boot)
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
-// 0x10
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_J | LED_M, // 0
+ LED_B | LED_C, // 1
+ LED_A1 | LED_A2 | LED_B | LED_D1 | LED_D2 | LED_E | LED_G1 | LED_G2, // 2
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_G2, // 3
+ LED_B | LED_C | LED_F | LED_G1 | LED_G2 , // 4
+ LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_F | LED_G1 | LED_K, // 5
+ LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2, // 6
+ LED_A1 | LED_A2 | LED_B | LED_C, // 7
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // 8
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_F, // 9
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_E | LED_F, // A
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_G2 | LED_I | LED_L, // B
+ LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F, // C
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_I | LED_L, // D
+ LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2, // E
+ LED_A1 | LED_A2 | LED_E | LED_F | LED_G1, // F
+// 16
0,
0,
0,
@@ -372,64 +365,63 @@ static const uint16_t asciicharset[]=
0,
0,
0,
-// 0x20
+// 32
0, // space
- LED_D2 | LED_A2 | LED_I | LED_J, // !
- LED_I | LED_B, // "
+ 0, // !
+ 0, // "
0, // #
0, // $
0, // %
- LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_H | LED_J | LED_M | LED_K | LED_C, // &
+ 0, // &
0, // '
- LED_J | LED_K, // (
- LED_H | LED_M, // )
- LED_G1 | LED_G2 | LED_H | LED_I | LED_J | LED_K | LED_L | LED_M, // *
+ 0, // (
+ 0, // )
+ 0, // *
0, // +
0, // ,
- LED_G1 | LED_G2, // -
+ 0, // -
0, // .
- LED_J | LED_M, // /
-// 0x30
+ 0, // /
+// 48
LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_J | LED_M, // 0
LED_B | LED_C, // 1
- LED_A1 | LED_A2 | LED_B | LED_D1 | LED_D2 | LED_E | LED_G1 | LED_G2, // 2
- LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_G1 | LED_G2, // 3
+ LED_A1 | LED_A2 | LED_B | LED_D1 | LED_D2 | LED_E | LED_G1 | LED_G2, // 2
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_G2, // 3
LED_B | LED_C | LED_F | LED_G1 | LED_G2 , // 4
- LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_F | LED_G1 | LED_G2, // 5
- LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2, // 6
- LED_A1 | LED_A2 | LED_B | LED_C | LED_F, // 7
- LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2, // 8
- LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_F | LED_G1 | LED_G2, // 9
+ LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_F | LED_G1 | LED_K, // 5
+ LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // 6
+ LED_A1 | LED_A2 | LED_B | LED_C, // 7
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // 8
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_F, // 9
0, // :
0, // ;
0, // <
0, // =
0, // >
- LED_A1 | LED_A2 | LED_J | LED_D2, // ?
-// 0x40
+ 0, // ?
+// 64
0, // @
- LED_A1 | LED_A2 | LED_B | LED_C | LED_E | LED_F | LED_G1 | LED_G2, // A
- LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_J | LED_K, // B
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_E | LED_F, // A
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_G2 | LED_I | LED_L, // B
LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F, // C
- LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_G1 | LED_G2, // D
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_I | LED_L, // D
LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2, // E
- LED_A1 | LED_A2 | LED_E | LED_F | LED_G1 | LED_G2, // F
+ LED_A1 | LED_A2 | LED_E | LED_F | LED_G1, // F
LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_G2, // G
LED_B | LED_C | LED_E | LED_F | LED_G1 | LED_G2, // H
- LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_I | LED_L, // I
- LED_A1 | LED_A2 | LED_I | LED_L | LED_D2, // J
+ LED_I | LED_L, // I
+ LED_B | LED_C | LED_D1 | LED_D2 | LED_E, // J
LED_E | LED_F | LED_G1 | LED_J | LED_K, // K
LED_D1 | LED_D2 | LED_E | LED_F, // L
LED_B | LED_C | LED_E | LED_F | LED_H | LED_J, // M
LED_B | LED_C | LED_E | LED_F | LED_H | LED_K, // N
LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // O
-// 0x50
- LED_A1 | LED_A2 | LED_B | LED_E | LED_F | LED_G1 | LED_G2, // P
+ LED_A1 | LED_A2 | LED_B | LED_E | LED_F, // P
LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_K, // Q
- LED_A1 | LED_A2 | LED_B | LED_E | LED_F | LED_K | LED_G1 | LED_G2, // R
+ LED_A1 | LED_A2 | LED_B | LED_E | LED_F | LED_K, // R
LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_F | LED_G1 | LED_G2, // S
LED_A1 | LED_A2 | LED_I | LED_L, // T
- LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // U
+ LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // O
LED_E | LED_F | LED_M | LED_J, // V
LED_B | LED_C | LED_E | LED_F | LED_M | LED_K, // W
LED_H | LED_J | LED_K | LED_M, // X
@@ -440,35 +432,33 @@ static const uint16_t asciicharset[]=
0, // ]
0, // ^
0, // _
-// 0x60
0, // `
- 0, // a
- 0, // b
- 0, // c
- 0, // d
- 0, // e
- 0, // f
- LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2 | LED_H | LED_I | LED_J | LED_K | LED_L | LED_M, // g (16 seg led test)
- 0, // h
- 0, // i
- 0, // j
- 0, // k
- 0, // l
- LED_D2, // m (".")
- 0, // n
- 0, // o
-// 0x70
- 0, // p
- LED_J, // q ("'")
- 0, // r
- 0, // s
- 0, // t
- LED_M, // u (",")
- 0, // v
- 0, // w
- 0, // x
- 0, // y
- 0, // z
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_E | LED_F, // A
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_G2 | LED_I | LED_L, // B
+ LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F, // C
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_I | LED_L, // D
+ LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2, // E
+ LED_A1 | LED_A2 | LED_E | LED_F | LED_G1, // F
+ LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_G2, // G
+ LED_B | LED_C | LED_E | LED_F | LED_G1 | LED_G2, // H
+ LED_I | LED_L, // I
+ LED_B | LED_C | LED_D1 | LED_D2 | LED_E, // J
+ LED_E | LED_F | LED_G1 | LED_J | LED_K, // K
+ LED_D1 | LED_D2 | LED_E | LED_F, // L
+ LED_B | LED_C | LED_E | LED_F | LED_H | LED_J, // M
+ LED_B | LED_C | LED_E | LED_F | LED_H | LED_K, // N
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // O
+ LED_A1 | LED_A2 | LED_B | LED_E | LED_F, // P
+ LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_K, // Q
+ LED_A1 | LED_A2 | LED_B | LED_E | LED_F | LED_K, // R
+ LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_F | LED_G1 | LED_G2, // S
+ LED_A1 | LED_A2 | LED_I | LED_L, // T
+ LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // O
+ LED_E | LED_F | LED_M | LED_J, // V
+ LED_B | LED_C | LED_E | LED_F | LED_M | LED_K, // W
+ LED_H | LED_J | LED_K | LED_M, // X
+ LED_H | LED_J | LED_L, // Y
+ LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_J | LED_M, // Z
0, // {
0, // |
0, // }
@@ -494,25 +484,9 @@ WRITE8_MEMBER(twinkle_state::twinkle_io_w)
case 0x1f:
case 0x27:
case 0x2f:
- if (data != 0xff)
- {
- osd_printf_warning("unknown io %02x = %02x\n", m_io_offset, data);
- }
- break;
-
case 0x37:
- output().set_value("1p", (~data >> 0) & 1);
- output().set_value("2p", (~data >> 1) & 1);
- output().set_value("vefx", (~data >> 2) & 1);
- output().set_value("effect", (~data >> 3) & 1);
- output().set_value("credit", (~data >> 4) & 1);
-
- if ((data & 0xe0) != 0xe0)
- {
- osd_printf_warning("unknown io %02x = %02x\n", m_io_offset, data);
- }
- break;
+ /* led */
case 0x3f:
case 0x47:
case 0x4f:
@@ -522,7 +496,7 @@ WRITE8_MEMBER(twinkle_state::twinkle_io_w)
case 0x6f:
case 0x77:
case 0x7f:
- output().set_indexed_value( "led", ( m_io_offset - 0x3f ) / 8, asciicharset[ ( data ^ 0xff ) & 0x7f ] );
+ output().set_indexed_value( "led", ( m_io_offset - 7 ) / 8, asciicharset[ ( data ^ 0xff ) & 0x7f ] );
break;
case 0x87:
@@ -543,7 +517,7 @@ WRITE8_MEMBER(twinkle_state::twinkle_io_w)
if( ( data & 0xf8 ) != 0xf8 )
{
- osd_printf_warning("unknown io %02x = %02x\n", m_io_offset, data);
+ printf("%02x = %02x\n", m_io_offset, data );
}
break;
@@ -594,7 +568,10 @@ READ8_MEMBER(twinkle_state::twinkle_io_r)
break;
default:
- osd_printf_warning("unknown io 0x%02x\n", m_io_offset);
+ if( m_last_io_offset != m_io_offset )
+ {
+ m_last_io_offset = m_io_offset;
+ }
break;
}
break;
@@ -618,7 +595,7 @@ WRITE16_MEMBER(twinkle_state::twinkle_output_w)
/* data */
break;
case 0x08:
- // overlay enable?
+ /* ?? */
break;
case 0x10:
{
@@ -665,45 +642,6 @@ WRITE16_MEMBER(twinkle_state::twinkle_output_w)
}
}
-WRITE16_MEMBER(twinkle_state::led_w)
-{
- output().set_indexed_value("main_led", 0, (~data >> 0) & 1);
- output().set_indexed_value("main_led", 1, (~data >> 1) & 1);
- output().set_indexed_value("main_led", 2, (~data >> 2) & 1);
- output().set_indexed_value("main_led", 3, (~data >> 3) & 1);
- output().set_indexed_value("main_led", 4, (~data >> 4) & 1);
- output().set_indexed_value("main_led", 5, (~data >> 5) & 1);
- output().set_indexed_value("main_led", 6, (~data >> 6) & 1);
- output().set_indexed_value("main_led", 7, (~data >> 7) & 1);
- output().set_indexed_value("main_led", 8, (~data >> 8) & 1);
-
- if ((data & 0xfe00) != 0xfe00)
- {
- osd_printf_warning("led_w unknown %04x\n", data);
- }
-}
-
-WRITE16_MEMBER(twinkle_state::key_led_w)
-{
- // words are written using a byte write
- output().set_indexed_value("key1-", 1, (data >> 0) & 1);
- output().set_indexed_value("key1-", 2, (data >> 1) & 1);
- output().set_indexed_value("key1-", 3, (data >> 2) & 1);
- output().set_indexed_value("key1-", 4, (data >> 3) & 1);
- output().set_indexed_value("key1-", 5, (data >> 4) & 1);
- output().set_indexed_value("key1-", 6, (data >> 5) & 1);
- output().set_indexed_value("key1-", 7, (data >> 6) & 1);
- output().set_indexed_value("key2-", 1, (data >> 7) & 1);
- output().set_indexed_value("key2-", 2, (data >> 8) & 1);
- output().set_indexed_value("key2-", 3, (data >> 9) & 1);
- output().set_indexed_value("key2-", 4, (data >> 10) & 1);
- output().set_indexed_value("key2-", 5, (data >> 11) & 1);
- output().set_indexed_value("key2-", 6, (data >> 12) & 1);
- output().set_indexed_value("key2-", 7, (data >> 13) & 1);
- output().set_value("unknown3", (data >> 14) & 1);
- output().set_value("unknown4", (data >> 15) & 1);
-}
-
WRITE16_MEMBER(twinkle_state::serial_w)
{
int _do = ( data >> 4 ) & 1;
@@ -765,9 +703,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, twinkle_state )
AM_RANGE(0x1f218000, 0x1f218003) AM_DEVWRITE8("watchdog", watchdog_timer_device, reset_w, 0x000000ff) /* LTC1232 */
AM_RANGE(0x1f220000, 0x1f220003) AM_WRITE8(twinkle_io_w, 0x00ff00ff)
AM_RANGE(0x1f220004, 0x1f220007) AM_READ8(twinkle_io_r, 0x00ff00ff)
- AM_RANGE(0x1f230000, 0x1f230003) AM_WRITE16(led_w, 0x0000ffff)
+ AM_RANGE(0x1f230000, 0x1f230003) AM_WRITENOP
AM_RANGE(0x1f240000, 0x1f240003) AM_READ_PORT("IN6")
- AM_RANGE(0x1f250000, 0x1f250003) AM_WRITE16(key_led_w, 0x0000ffff)
+ AM_RANGE(0x1f250000, 0x1f250003) AM_WRITENOP
AM_RANGE(0x1f260000, 0x1f260003) AM_WRITE16(serial_w, 0x0000ffff)
AM_RANGE(0x1f270000, 0x1f270003) AM_WRITE_PORT("OUTSEC")
AM_RANGE(0x1f280000, 0x1f280003) AM_READ_PORT("INSEC")
@@ -826,8 +764,7 @@ WRITE16_MEMBER(twinkle_state::spu_ata_dma_low_w)
WRITE16_MEMBER(twinkle_state::spu_ata_dma_high_w)
{
- m_spu_ata_dma = (m_spu_ata_dma & 0xffff) | ((uint32_t)data << 16);
- //printf("DMA now %x\n", m_spu_ata_dma);
+ m_spu_ata_dma = (m_spu_ata_dma & 0xffff) | (data << 16);
}
WRITE_LINE_MEMBER(twinkle_state::spu_ata_dmarq)
@@ -844,10 +781,17 @@ WRITE_LINE_MEMBER(twinkle_state::spu_ata_dmarq)
{
uint16_t data = m_ata->read_dma();
//printf("spu_ata_dmarq %08x %04x\n", m_spu_ata_dma * 2, data);
- m_waveram[m_wave_bank+m_spu_ata_dma] = data; //(data >> 8) | (data << 8);
- m_spu_ata_dma++;
+ //waveram[m_spu_ata_dma++] = (data >> 8) | (data << 8);
// bp 4a0e ;bmiidx4 checksum
// bp 4d62 ;bmiidx4 dma
+
+ // $$$HACK - game DMAs nothing useful to 0x400000 but all sound plays are 0x400000 or above
+ // so limit sound RAM to 4MB (there's 6 MB on the board) and let the 5c400's address masking
+ // work for us until we figure out what's actually going on.
+ if (m_spu_ata_dma < 0x200000)
+ {
+ m_waveram[m_spu_ata_dma++] = data;
+ }
}
m_ata->write_dmack(CLEAR_LINE);
@@ -855,26 +799,14 @@ WRITE_LINE_MEMBER(twinkle_state::spu_ata_dmarq)
}
}
-WRITE16_MEMBER(twinkle_state::spu_wavebank_w)
-{
- //printf("%x to wavebank_w, mask %04x\n", data, mem_mask);
-
- // banks are fairly clearly 8MB, so there's 3 of them in the 24 MB of RAM.
- // the games load up the full 24MB of RAM 8 MB at a time, first to bank 1,
- // then to bank 2, and finally to bank 3.
- //
- // neither the 68k nor DMA access wave RAM when the bank is 0.
- m_wave_bank = data * (4*1024*1024);
-}
-
READ16_MEMBER(twinkle_state::twinkle_waveram_r)
{
- return m_waveram[offset+m_wave_bank];
+ return m_waveram[offset];
}
WRITE16_MEMBER(twinkle_state::twinkle_waveram_w)
{
- COMBINE_DATA(&m_waveram[offset+m_wave_bank]);
+ COMBINE_DATA(&m_waveram[offset]);
}
READ16_MEMBER(twinkle_state::shared_68k_r)
@@ -893,38 +825,27 @@ WRITE16_MEMBER(twinkle_state::shared_68k_w)
m_spu_shared[offset] = data & 0xff;
}
-WRITE16_MEMBER(twinkle_state::spu_led_w)
+READ16_MEMBER(twinkle_state::unk_68k_r)
{
- // upper 8 bits are occassionally written as all zeros
- output().set_indexed_value("spu_led", 0, (~data >> 0) & 1);
- output().set_indexed_value("spu_led", 1, (~data >> 1) & 1);
- output().set_indexed_value("spu_led", 2, (~data >> 2) & 1);
- output().set_indexed_value("spu_led", 3, (~data >> 3) & 1);
- output().set_indexed_value("spu_led", 4, (~data >> 4) & 1);
- output().set_indexed_value("spu_led", 5, (~data >> 5) & 1);
- output().set_indexed_value("spu_led", 6, (~data >> 6) & 1);
- output().set_indexed_value("spu_led", 7, (~data >> 7) & 1);
+ return 0xffff; // must return 0xff for 68000 POST to complete properly
}
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, twinkle_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAM
- AM_RANGE(0x200000, 0x200001) AM_READ_PORT("SPU_DSW")
- AM_RANGE(0x220000, 0x220001) AM_WRITE(spu_led_w)
+ AM_RANGE(0x200000, 0x200001) AM_READ(unk_68k_r)
+ // 220000 = LEDs?
AM_RANGE(0x230000, 0x230003) AM_WRITE(twinkle_spu_ctrl_w)
- AM_RANGE(0x240000, 0x240003) AM_WRITE(spu_ata_dma_low_w) AM_READNOP
- AM_RANGE(0x250000, 0x250003) AM_WRITE(spu_ata_dma_high_w) AM_READNOP
- AM_RANGE(0x260000, 0x260001) AM_WRITE(spu_wavebank_w) AM_READNOP
+ AM_RANGE(0x240000, 0x240003) AM_WRITE(spu_ata_dma_low_w)
+ AM_RANGE(0x250000, 0x250003) AM_WRITE(spu_ata_dma_high_w)
+ // 260000 = ???
AM_RANGE(0x280000, 0x280fff) AM_READWRITE(shared_68k_r, shared_68k_w)
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("ata", ata_interface_device, read_cs0, write_cs0)
// 34000E = ???
AM_RANGE(0x34000e, 0x34000f) AM_WRITENOP
AM_RANGE(0x400000, 0x400fff) AM_DEVREADWRITE("rfsnd", rf5c400_device, rf5c400_r, rf5c400_w)
- AM_RANGE(0x800000, 0xffffff) AM_READWRITE(twinkle_waveram_r, twinkle_waveram_w)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START(rf5c400_map, 0, 16, twinkle_state)
- AM_RANGE(0x0000000, 0x1ffffff) AM_RAM AM_SHARE("rfsnd")
+ AM_RANGE(0x800000, 0xbfffff) AM_READWRITE(twinkle_waveram_r, twinkle_waveram_w )
+ AM_RANGE(0xfe0000, 0xffffff) AM_RAM // ...and the RAM test checks this last 128k (mirror of the work RAM at 0x100000?)
ADDRESS_MAP_END
/* SCSI */
@@ -1072,8 +993,7 @@ static MACHINE_CONFIG_START( twinkle )
MCFG_SOUND_ROUTE( 0, "speakerleft", 0.75 )
MCFG_SOUND_ROUTE( 1, "speakerright", 0.75 )
- MCFG_RF5C400_ADD("rfsnd", XTAL_33_8688MHz/2);
- MCFG_DEVICE_ADDRESS_MAP(0, rf5c400_map)
+ MCFG_RF5C400_ADD("rfsnd", 32000000/2)
MCFG_SOUND_ROUTE(0, "speakerleft", 1.0)
MCFG_SOUND_ROUTE(1, "speakerright", 1.0)
MACHINE_CONFIG_END
@@ -1135,16 +1055,6 @@ static INPUT_PORTS_START( twinkle )
PORT_START("OUTSEC")
PORT_START("INSEC")
-
- PORT_START("SPU_DSW")
- PORT_DIPUNKNOWN_DIPLOC( 0x01, IP_ACTIVE_LOW, "SPU DSW:1" )
- PORT_DIPUNKNOWN_DIPLOC( 0x02, IP_ACTIVE_LOW, "SPU DSW:2" )
- PORT_DIPUNKNOWN_DIPLOC( 0x04, IP_ACTIVE_LOW, "SPU DSW:3" )
- PORT_DIPUNKNOWN_DIPLOC( 0x08, IP_ACTIVE_LOW, "SPU DSW:4" )
- PORT_DIPUNKNOWN_DIPLOC( 0x10, IP_ACTIVE_LOW, "SPU DSW:5" )
- PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "SPU DSW:6" )
- PORT_DIPUNKNOWN_DIPLOC( 0x40, IP_ACTIVE_LOW, "SPU DSW:7" )
- PORT_DIPUNKNOWN_DIPLOC( 0x80, IP_ACTIVE_LOW, "SPU DSW:8" )
INPUT_PORTS_END
static INPUT_PORTS_START( twinklex )
@@ -1175,7 +1085,9 @@ INPUT_PORTS_END
ROM_LOAD( "863a03.7b", 0x000000, 0x080000, CRC(81498f73) SHA1(3599b40a5872eab3a00d345287635355fcb25a71) )\
\
ROM_REGION32_LE( 0x080000, "audiocpu", 0 )\
- ROM_LOAD16_WORD_SWAP( "863a05.2x", 0x000000, 0x080000, CRC(6f42a09e) SHA1(cab5209f90f47b9ee6e721479913ad74e3ba84b1) )
+ ROM_LOAD16_WORD_SWAP( "863a05.2x", 0x000000, 0x080000, CRC(6f42a09e) SHA1(cab5209f90f47b9ee6e721479913ad74e3ba84b1) )\
+\
+ ROM_REGION16_LE(0x400000, "rfsnd", ROMREGION_ERASE00)
ROM_START( gq863 )
TWINKLE_BIOS
@@ -1217,7 +1129,7 @@ ROM_START( bmiidx2 )
TWINKLE_BIOS
ROM_REGION( 0x100, "security", 0 )
- ROM_LOAD( "985a02", 0x000000, 0x000100, BAD_DUMP CRC(a290f534) SHA1(e7089f5f9c4c90d6c082539f3d839ac7798a27e4) )
+ ROM_LOAD( "985a02", 0x000000, 0x000100, BAD_DUMP CRC(a35143a9) SHA1(1c0feeab60d9dc50dc4b9a2f3dac73ca619e74b0) )
DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
DISK_IMAGE_READONLY( "gc985a01", 0, SHA1(0b783f11317f64552ebf3323459139529e7f315f) )
@@ -1233,7 +1145,7 @@ ROM_START( bmiidx3 )
TWINKLE_BIOS
ROM_REGION( 0x100, "security", 0 )
- ROM_LOAD( "992a02", 0x000000, 0x000100, BAD_DUMP CRC(4b35d2ad) SHA1(4a9015e7f11d1aab9f79f070af9906e71eb4eb6d) )
+ ROM_LOAD( "992a02", 0x000000, 0x000100, BAD_DUMP CRC(51f24913) SHA1(574b555e3d0c234011198d218d7ae5e95091acb1) )
DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
DISK_IMAGE_READONLY( "gc992-jac01", 0, SHA1(c02d6e58439be678ec0d7171eae2dfd53a21acc7) )
@@ -1249,7 +1161,7 @@ ROM_START( bmiidx3a )
TWINKLE_BIOS
ROM_REGION( 0x100, "security", 0 )
- ROM_LOAD( "992a02", 0x000000, 0x000100, BAD_DUMP CRC(4b35d2ad) SHA1(4a9015e7f11d1aab9f79f070af9906e71eb4eb6d) )
+ ROM_LOAD( "992a02", 0x000000, 0x000100, BAD_DUMP CRC(51f24913) SHA1(574b555e3d0c234011198d218d7ae5e95091acb1) )
DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
DISK_IMAGE_READONLY( "gc992-jaa01", 0, BAD_DUMP SHA1(7e5389735dff379bb286ba3744edf59b7dfcc74b) )
@@ -1265,7 +1177,7 @@ ROM_START( bmiidx4 )
TWINKLE_BIOS
ROM_REGION( 0x100, "security", 0 )
- ROM_LOAD( "a03", 0x000000, 0x000100, CRC(056816a5) SHA1(125d24d1c22b8d3da6fe53f519c8d83eba627e9f) )
+ ROM_LOAD( "a03", 0x000000, 0x000100, BAD_DUMP CRC(8860cfb6) SHA1(85a5b27f24d4baa7960e692b91c0cf3dc5388e72) )
DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
DISK_IMAGE_READONLY( "a03jaa01", 0, SHA1(f54fc778c2187ccd950402a159babef956b71492) )
@@ -1281,7 +1193,7 @@ ROM_START( bmiidx5 )
TWINKLE_BIOS
ROM_REGION( 0x100, "security", 0 )
- ROM_LOAD( "a17", 0x000000, 0x000100, CRC(8eef340e) SHA1(631521baf9ec5db111e62cf0439ae31400447a57) )
+ ROM_LOAD( "a17", 0x000000, 0x000100, BAD_DUMP CRC(9428afb0) SHA1(ba907d3361256b022583d6a42fe223e90590e3c6) )
DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
DISK_IMAGE_READONLY( "a17jaa01", 0, SHA1(5ac46973b42b2c66ae63297d1a7fd69b33ef4d1d) )
@@ -1297,7 +1209,7 @@ ROM_START( bmiidx6 )
TWINKLE_BIOS
ROM_REGION( 0x100, "security", 0 )
- ROM_LOAD( "b4u", 0x000000, 0x000100, BAD_DUMP CRC(1076cd8d) SHA1(e4bdadbf675221cc0170e5d4a37fe1f439c2e72b) )
+ ROM_LOAD( "b4u", 0x000000, 0x000100, BAD_DUMP CRC(0ab15633) SHA1(df004ff41f35b16089f69808ccf53a5e5cc13ac3) )
DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
DISK_IMAGE_READONLY( "b4ujab01", 0, SHA1(aaae77f473c4a44ce6838da3ef6dab27e4afa0e4) )
@@ -1313,7 +1225,7 @@ ROM_START( bmiidx6a )
TWINKLE_BIOS
ROM_REGION( 0x100, "security", 0 )
- ROM_LOAD( "b4u", 0x000000, 0x000100, BAD_DUMP CRC(1076cd8d) SHA1(e4bdadbf675221cc0170e5d4a37fe1f439c2e72b) )
+ ROM_LOAD( "b4u", 0x000000, 0x000100, BAD_DUMP CRC(0ab15633) SHA1(df004ff41f35b16089f69808ccf53a5e5cc13ac3) )
DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
DISK_IMAGE_READONLY( "b4ujaa01", 0, BAD_DUMP SHA1(d8f5d56b8728bea761dc4cdbc04851094d276bd6) )
@@ -1329,7 +1241,7 @@ ROM_START( bmiidx7 )
TWINKLE_BIOS
ROM_REGION( 0x100, "security", 0 )
- ROM_LOAD( "b44", 0x000000, 0x000100, BAD_DUMP CRC(4168dcdf) SHA1(66ef68783a69b04af6bc85cef90a36085dfee612) )
+ ROM_LOAD( "b44", 0x000000, 0x000100, BAD_DUMP CRC(5baf4761) SHA1(aa7e07eb2cada03b85bdf11ac6a3de65f4253eef) )
DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
DISK_IMAGE_READONLY( "b44jaa01", 0, SHA1(57fb0312d8102e959658e48a97e46aa16e592b60) )
@@ -1345,7 +1257,7 @@ ROM_START( bmiidx8 )
TWINKLE_BIOS
ROM_REGION( 0x100, "security", 0 )
- ROM_LOAD( "c44", 0x000000, 0x000100, BAD_DUMP CRC(198de0a2) SHA1(9526e98aaeb7ab3198e7a63715c4fc2d7c9d6021) )
+ ROM_LOAD( "c44", 0x000000, 0x000100, BAD_DUMP CRC(04c22349) SHA1(d1cb78911cb1ca660d393a81ed3ed07b24c51525) )
DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
DISK_IMAGE_READONLY( "c44jaa01", 0, BAD_DUMP SHA1(8b544c81bc56b19e4aa1649e68824811d6d51ce5) )
@@ -1421,20 +1333,20 @@ ROM_START( bmiidxc2 )
DISK_IMAGE_READONLY( "983hdda01", 0, SHA1(bcbbf55acf8bebc5773ffc5769420a0129f4da57) )
ROM_END
-GAMEL( 1999, gq863, 0, twinkle, twinkle, twinkle_state, 0, ROT0, "Konami", "Twinkle System", MACHINE_IS_BIOS_ROOT, layout_bmiidx )
-
-GAMEL( 1999, bmiidx, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX (863 JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx )
-GAMEL( 1999, bmiidxa, bmiidx, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX (863 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx )
-GAMEL( 1999, bmiidxc, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX with DDR 2nd Club Version (896 JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx )
-GAMEL( 1999, bmiidxca, bmiidxc, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX with DDR 2nd Club Version (896 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx )
-GAMEL( 1999, bmiidxs, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX Substream (983 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx )
-GAMEL( 1999, bmiidxc2, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX Substream with DDR 2nd Club Version 2 (984 A01 BM)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS, layout_bmiidx )
-GAMEL( 1999, bmiidx2, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 2nd style (GC985 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx )
-GAMEL( 2000, bmiidx3, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 3rd style (GC992 JAC)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx )
-GAMEL( 2000, bmiidx3a, bmiidx3, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 3rd style (GC992 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx )
-GAMEL( 2000, bmiidx4, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 4th style (GCA03 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS, layout_bmiidx )
-GAMEL( 2001, bmiidx5, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 5th style (GCA17 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx )
-GAMEL( 2001, bmiidx6, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 6th style (GCB4U JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS, layout_bmiidx )
-GAMEL( 2001, bmiidx6a, bmiidx6, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 6th style (GCB4U JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS, layout_bmiidx )
-GAMEL( 2002, bmiidx7, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 7th style (GCB44 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS, layout_bmiidx )
-GAMEL( 2002, bmiidx8, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 8th style (GCC44 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS, layout_bmiidx )
+GAME( 1999, gq863, 0, twinkle, twinkle, twinkle_state, 0, ROT0, "Konami", "Twinkle System", MACHINE_IS_BIOS_ROOT )
+
+GAME( 1999, bmiidx, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX (863 JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 1999, bmiidxa, bmiidx, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX (863 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 1999, bmiidxc, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX with DDR 2nd Club Version (896 JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 1999, bmiidxca, bmiidxc, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX with DDR 2nd Club Version (896 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 1999, bmiidxs, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX Substream (983 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 1999, bmiidxc2, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX Substream with DDR 2nd Club Version 2 (984 A01 BM)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 1999, bmiidx2, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 2nd style (GC985 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 2000, bmiidx3, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 3rd style (GC992 JAC)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 2000, bmiidx3a, bmiidx3, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 3rd style (GC992 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 2000, bmiidx4, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 4th style (GCA03 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 2001, bmiidx5, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 5th style (GCA17 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 2001, bmiidx6, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 6th style (GCB4U JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 2001, bmiidx6a, bmiidx6, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 6th style (GCB4U JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 2002, bmiidx7, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 7th style (GCB44 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 2002, bmiidx8, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 8th style (GCC44 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/twins.cpp b/src/mame/drivers/twins.cpp
index 66d96567f0b..2f8dc45249f 100644
--- a/src/mame/drivers/twins.cpp
+++ b/src/mame/drivers/twins.cpp
@@ -154,13 +154,13 @@ WRITE16_MEMBER(twins_state::twins_pal_w)
dat = m_paletteram[m_paloff];
r = dat & 0x1f;
- r = bitswap<8>(r,7,6,5,0,1,2,3,4);
+ r = BITSWAP8(r,7,6,5,0,1,2,3,4);
g = (dat>>5) & 0x1f;
- g = bitswap<8>(g,7,6,5,0,1,2,3,4);
+ g = BITSWAP8(g,7,6,5,0,1,2,3,4);
b = (dat>>10) & 0x1f;
- b = bitswap<8>(b,7,6,5,0,1,2,3,4);
+ b = BITSWAP8(b,7,6,5,0,1,2,3,4);
m_palette->set_pen_color(m_paloff, pal5bit(r),pal5bit(g),pal5bit(b));
diff --git a/src/mame/drivers/v6809.cpp b/src/mame/drivers/v6809.cpp
index c09bd486b81..c9a27f1ea2f 100644
--- a/src/mame/drivers/v6809.cpp
+++ b/src/mame/drivers/v6809.cpp
@@ -127,6 +127,10 @@ static ADDRESS_MAP_START(v6809_mem, AS_PROGRAM, 8, v6809_state)
AM_RANGE(0xf800, 0xffff) AM_ROM
ADDRESS_MAP_END
+static ADDRESS_MAP_START(v6809_io, AS_PROGRAM, 8, v6809_state)
+ AM_RANGE(0x0064, 0x0064) AM_WRITENOP
+ADDRESS_MAP_END
+
/* Input ports */
static INPUT_PORTS_START( v6809 )
@@ -276,8 +280,9 @@ SLOT_INTERFACE_END
static MACHINE_CONFIG_START( v6809 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_16MHz / 4) // divided by 4 again internally
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_16MHz / 4)
MCFG_CPU_PROGRAM_MAP(v6809_mem)
+ MCFG_CPU_IO_MAP(v6809_io)
MCFG_MACHINE_RESET_OVERRIDE(v6809_state, v6809)
/* video hardware */
diff --git a/src/mame/drivers/vaportra.cpp b/src/mame/drivers/vaportra.cpp
index 2fee7ce3501..97b54521db3 100644
--- a/src/mame/drivers/vaportra.cpp
+++ b/src/mame/drivers/vaportra.cpp
@@ -864,7 +864,7 @@ DRIVER_INIT_MEMBER(vaportra_state,vaportra)
uint8_t *RAM = memregion("maincpu")->base();
for (int i = 0x00000; i < 0x80000; i++)
- RAM[i] = bitswap<8>(RAM[i],0,6,5,4,3,2,1,7);
+ RAM[i] = BITSWAP8(RAM[i],0,6,5,4,3,2,1,7);
}
/******************************************************************************/
diff --git a/src/mame/drivers/vboy.cpp b/src/mame/drivers/vboy.cpp
index 3aabbdaa6df..de760174e13 100644
--- a/src/mame/drivers/vboy.cpp
+++ b/src/mame/drivers/vboy.cpp
@@ -62,7 +62,7 @@
m_font[((woffs) + 0x4000)] = dat; /* normal */ \
m_font[((woffs) + 0x8000) ^ 7] = dat; /* flip y */ \
m_font[((woffs) + 0xc000) ^ 7] = dat; /* flip y */ \
- dat = bitswap<16>(dat,1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14); \
+ dat = BITSWAP16(dat,1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14); \
m_font[((woffs) + 0x10000)] = dat; /* flip x */ \
m_font[((woffs) + 0x14000)] = dat; /* flip x */ \
m_font[((woffs) + 0x18000) ^ 7] = dat; /* flip x+y */ \
diff --git a/src/mame/drivers/vcs80.cpp b/src/mame/drivers/vcs80.cpp
index 701887f9e91..2fbbcf7fa48 100644
--- a/src/mame/drivers/vcs80.cpp
+++ b/src/mame/drivers/vcs80.cpp
@@ -178,7 +178,7 @@ WRITE8_MEMBER( vcs80_state::pio_pb_w )
*/
- uint8_t led_data = bitswap<8>(data & 0x7f, 7, 5, 6, 4, 3, 2, 1, 0);
+ uint8_t led_data = BITSWAP8(data & 0x7f, 7, 5, 6, 4, 3, 2, 1, 0);
int digit = m_keylatch;
/* skip middle digit */
diff --git a/src/mame/drivers/vectrex.cpp b/src/mame/drivers/vectrex.cpp
index e6cfc5927bc..7b8adbec7a7 100644
--- a/src/mame/drivers/vectrex.cpp
+++ b/src/mame/drivers/vectrex.cpp
@@ -97,7 +97,7 @@ SLOT_INTERFACE_END
static MACHINE_CONFIG_START( vectrex )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_6MHz) // 68A09
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_6MHz / 4)
MCFG_CPU_PROGRAM_MAP(vectrex_map)
/* video hardware */
@@ -114,13 +114,13 @@ static MACHINE_CONFIG_START( vectrex )
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ADD("ay8912", AY8912, XTAL_6MHz / 4)
+ MCFG_SOUND_ADD("ay8912", AY8912, 1500000)
MCFG_AY8910_PORT_A_READ_CB(IOPORT("BUTTONS"))
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(vectrex_state, vectrex_psg_port_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2)
/* via */
- MCFG_DEVICE_ADD("via6522_0", VIA6522, XTAL_6MHz / 4)
+ MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(vectrex_state, vectrex_via_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(vectrex_state, vectrex_via_pb_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(vectrex_state, v_via_pa_w))
diff --git a/src/mame/drivers/vega.cpp b/src/mame/drivers/vega.cpp
index fe0fa326fb1..5f0b3bd8991 100644
--- a/src/mame/drivers/vega.cpp
+++ b/src/mame/drivers/vega.cpp
@@ -506,7 +506,7 @@ void vega_state::draw_tilemap(screen_device& screen, bitmap_ind16& bitmap, const
int flip=BIT(id,5);
- int num=(bitswap<8>( ((id>>2) &7), 7,6,5,4,3,0,1,2 ));
+ int num=(BITSWAP8( ((id>>2) &7), 7,6,5,4,3,0,1,2 ));
int bank=id&3;
@@ -556,7 +556,7 @@ uint32_t vega_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bit
for(x=0;x<40;++x)
{
int character=m_txt_ram[idx];
- //int color=bitswap<8>(color_lookup[character],7,6,5,4,0,1,2,3)>>1;
+ //int color=BITSWAP8(color_lookup[character],7,6,5,4,0,1,2,3)>>1;
int color=color_lookup[character]&0xf;
/*
bit 0 - unknown
@@ -565,7 +565,7 @@ uint32_t vega_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bit
bit 3 - red
*/
- color=bitswap<8>(color,7,6,5,4,0,1,2,3)&0x7;
+ color=BITSWAP8(color,7,6,5,4,0,1,2,3)&0x7;
color^=0xf;
diff --git a/src/mame/drivers/vegas.cpp b/src/mame/drivers/vegas.cpp
index 6386a709f5d..2bffc4526f1 100644
--- a/src/mame/drivers/vegas.cpp
+++ b/src/mame/drivers/vegas.cpp
@@ -344,9 +344,6 @@ public:
optional_device<ns16550_device> m_uart2;
optional_ioport_array<8> m_io_analog;
int m_a2d_shift;
- int8_t m_wheel_force;
- int m_wheel_offset;
- bool m_wheel_calibrated;
uint8_t m_vblank_state;
uint8_t m_cpuio_data[4];
uint8_t m_sio_reset_ctrl;
@@ -405,7 +402,6 @@ public:
DECLARE_READ32_MEMBER(unknown_r);
DECLARE_READ8_MEMBER(parallel_r);
DECLARE_WRITE8_MEMBER(parallel_w);
- DECLARE_WRITE8_MEMBER(mpsreset_w);
DECLARE_WRITE32_MEMBER(i40_w);
DECLARE_CUSTOM_INPUT_MEMBER(i40_r);
DECLARE_CUSTOM_INPUT_MEMBER(keypad_r);
@@ -457,7 +453,6 @@ void vegas_state::machine_start()
save_item(NAME(m_i40_data));
save_item(NAME(m_keypad_select));
save_item(NAME(m_gear));
- save_item(NAME(m_wheel_calibrated));
}
@@ -477,9 +472,6 @@ void vegas_state::machine_reset()
m_i40_data = 0;
m_keypad_select = 0;
m_gear = 1;
- m_wheel_force = 0;
- m_wheel_offset = 0;
- m_wheel_calibrated = false;
}
/*************************************
@@ -884,34 +876,13 @@ WRITE32_MEMBER( vegas_state::analog_port_w )
{
uint32_t shift_data = data >> m_a2d_shift;
int index = shift_data & 0x7;
- uint8_t currValue = m_io_analog[index].read_safe(0);
- if (!m_wheel_calibrated && ((m_wheel_force > 20) || (m_wheel_force < -20))) {
- if (m_wheel_force > 0 && m_wheel_offset < 128)
- m_wheel_offset++;
- else if (m_wheel_offset > -128)
- m_wheel_offset--;
- int tmpVal = int(currValue) + m_wheel_offset;
- if (tmpVal < m_io_analog[index]->field(0xff)->minval())
- m_pending_analog_read = m_io_analog[index]->field(0xff)->minval();
- else if (tmpVal > m_io_analog[index]->field(0xff)->maxval())
- m_pending_analog_read = m_io_analog[index]->field(0xff)->maxval();
- else
- m_pending_analog_read = tmpVal;
- }
- else {
- m_pending_analog_read = currValue;
- }
- // Declare calibration finished as soon as non-middle value is detected, ie the user has turned the wheel
- if (!m_wheel_calibrated && currValue != 0 && (currValue > (0x80 + 0x10) || currValue < (0x80 - 0x10))) {
- m_wheel_calibrated = true;
- //osd_printf_info("wheel calibration comlete wheel: %02x\n", currValue);
- }
- //logerror("analog_port_w: wheel_force: %i read: %i\n", m_wheel_force, m_pending_analog_read);
+ m_pending_analog_read = (m_io_analog[index].read_safe(0));
//logerror("%08X: analog_port_w = %08X & %08X index = %d\n", machine().device("maincpu")->safe_pc(), data, mem_mask, index);
if (m_sio_irq_enable & 0x02) {
m_sio_irq_state |= 0x02;
update_sio_irqs();
}
+
}
@@ -978,14 +949,6 @@ WRITE8_MEMBER(vegas_state::parallel_w)
}
/*************************************
-* MPS Reset
-*************************************/
-WRITE8_MEMBER(vegas_state::mpsreset_w)
-{
- logerror("%06X: mpsreset_w %08x = %02x\n", machine().device("maincpu")->safe_pc(), offset, data);
-}
-
-/*************************************
* Optical 49 Way Joystick I40 Board
*************************************/
WRITE32_MEMBER(vegas_state::i40_w)
@@ -1045,21 +1008,19 @@ CUSTOM_INPUT_MEMBER(vegas_state::i40_r)
*************************************/
WRITE32_MEMBER(vegas_state::wheel_board_w)
{
+ //logerror("wheel_board_w: data = %08x\n", data);
/* two writes in pairs. bit 11 high, bit 10 flag, flag off first, on second. arg remains the same. */
bool valid = (data & (1 << 11));
bool flag = (data & (1 << 10));
uint8_t op = (data >> 8) & 0x3;
uint8_t arg = data & 0xff;
- //logerror("wheel_board_w: data = %08x op: %02x arg: %02x\n", data, op, arg);
-
if (valid && flag)
{
switch (op)
{
case 0x0:
machine().output().set_value("wheel", arg); // target wheel angle. signed byte.
- m_wheel_force = int8_t(~arg);
break;
case 0x1:
@@ -1667,7 +1628,7 @@ static ADDRESS_MAP_START(vegas_cs8_map, AS_PROGRAM, 32, vegas_state)
AM_RANGE(0x01000000, 0x0100001f) AM_DEVREADWRITE8("uart1", ns16550_device, ins8250_r, ins8250_w, 0xff) // Serial ttyS01 (TL16C552 CS0)
AM_RANGE(0x01400000, 0x0140001f) AM_DEVREADWRITE8("uart2", ns16550_device, ins8250_r, ins8250_w, 0xff) // Serial ttyS02 (TL16C552 CS1)
AM_RANGE(0x01800000, 0x0180001f) AM_READWRITE8(parallel_r, parallel_w, 0xff) // Parallel UART (TL16C552 CS2)
- AM_RANGE(0x01c00000, 0x01c00003) AM_WRITE8(mpsreset_w, 0xff) // MPS Reset
+ //AM_RANGE(0x01c00000, 0x0180001f) AM_READWRITE8(parallel_r, parallel_w, 0xff) // MPS Reset
ADDRESS_MAP_END
/*************************************
@@ -2306,8 +2267,6 @@ DRIVER_INIT_MEMBER(vegas_state,warfa)
{
/* speedups */
m_maincpu->mips3drc_add_hotspot(0x8009436C, 0x0C031663, 250); /* confirmed */
- // TODO: For some reason game hangs if ethernet is on
- m_ethernet->set_link_connected(false);
}
diff --git a/src/mame/drivers/vic20.cpp b/src/mame/drivers/vic20.cpp
index 2d5846e80c5..86db0c42385 100644
--- a/src/mame/drivers/vic20.cpp
+++ b/src/mame/drivers/vic20.cpp
@@ -789,6 +789,23 @@ WRITE_LINE_MEMBER(vic20_state::write_user_cassette_switch)
static MACHINE_CONFIG_START( vic20 )
// devices
+ MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, 0)
+ MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via1_pa_r))
+ MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(vic20_state, via1_pa_w))
+ MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vic20_state, via1_pb_w))
+ MCFG_VIA6522_CB1_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_b))
+ MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(PET_DATASSETTE_PORT_TAG, pet_datassette_port_device, motor_w))
+ MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_m))
+ MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(M6502_TAG, M6502_NMI_LINE))
+
+ MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, 0)
+ MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via2_pa_r))
+ MCFG_VIA6522_READPB_HANDLER(READ8(vic20_state, via2_pb_r))
+ MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vic20_state, via2_pb_w))
+ MCFG_VIA6522_CA2_HANDLER(WRITELINE(vic20_state, via2_ca2_w))
+ MCFG_VIA6522_CB2_HANDLER(WRITELINE(vic20_state, via2_cb2_w))
+ MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(M6502_TAG, M6502_IRQ_LINE))
+
MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c1530", DEVWRITELINE(M6522_2_TAG, via6522_device, write_ca1))
MCFG_CBM_IEC_ADD("c1541")
MCFG_CBM_IEC_BUS_SRQ_CALLBACK(DEVWRITELINE(M6522_2_TAG, via6522_device, write_cb1))
@@ -837,23 +854,6 @@ static MACHINE_CONFIG_DERIVED( ntsc, vic20 )
MCFG_CPU_PROGRAM_MAP(vic20_mem)
MCFG_M6502_DISABLE_DIRECT() // address decoding is 100% dynamic, no RAM/ROM banks
- MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, MOS6560_CLOCK)
- MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via1_pa_r))
- MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(vic20_state, via1_pa_w))
- MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vic20_state, via1_pb_w))
- MCFG_VIA6522_CB1_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_b))
- MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(PET_DATASSETTE_PORT_TAG, pet_datassette_port_device, motor_w))
- MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_m))
- MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(M6502_TAG, M6502_NMI_LINE))
-
- MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, MOS6560_CLOCK)
- MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via2_pa_r))
- MCFG_VIA6522_READPB_HANDLER(READ8(vic20_state, via2_pb_r))
- MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vic20_state, via2_pb_w))
- MCFG_VIA6522_CA2_HANDLER(WRITELINE(vic20_state, via2_ca2_w))
- MCFG_VIA6522_CB2_HANDLER(WRITELINE(vic20_state, via2_cb2_w))
- MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(M6502_TAG, M6502_IRQ_LINE))
-
// video/sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_MOS6560_ADD(M6560_TAG, SCREEN_TAG, MOS6560_CLOCK, vic_videoram_map, vic_colorram_map)
@@ -884,23 +884,6 @@ static MACHINE_CONFIG_DERIVED( pal, vic20 )
MCFG_CPU_PROGRAM_MAP(vic20_mem)
MCFG_M6502_DISABLE_DIRECT() // address decoding is 100% dynamic, no RAM/ROM banks
- MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, MOS6561_CLOCK)
- MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via1_pa_r))
- MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(vic20_state, via1_pa_w))
- MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vic20_state, via1_pb_w))
- MCFG_VIA6522_CB1_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_b))
- MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(PET_DATASSETTE_PORT_TAG, pet_datassette_port_device, motor_w))
- MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_m))
- MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(M6502_TAG, M6502_NMI_LINE))
-
- MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, MOS6561_CLOCK)
- MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via2_pa_r))
- MCFG_VIA6522_READPB_HANDLER(READ8(vic20_state, via2_pb_r))
- MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vic20_state, via2_pb_w))
- MCFG_VIA6522_CA2_HANDLER(WRITELINE(vic20_state, via2_ca2_w))
- MCFG_VIA6522_CB2_HANDLER(WRITELINE(vic20_state, via2_cb2_w))
- MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(M6502_TAG, M6502_IRQ_LINE))
-
// video/sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_MOS6561_ADD(M6560_TAG, SCREEN_TAG, MOS6561_CLOCK, vic_videoram_map, vic_colorram_map)
diff --git a/src/mame/drivers/vt240.cpp b/src/mame/drivers/vt240.cpp
index c9f5e21aeae..6e088eac2f7 100644
--- a/src/mame/drivers/vt240.cpp
+++ b/src/mame/drivers/vt240.cpp
@@ -338,7 +338,7 @@ READ8_MEMBER(vt240_state::char_buf_r)
WRITE8_MEMBER(vt240_state::char_buf_w)
{
- m_char_buf[m_char_idx++] = bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7);
+ m_char_buf[m_char_idx++] = BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7);
m_char_idx &= 0xf;
}
@@ -370,7 +370,7 @@ WRITE8_MEMBER(vt240_state::vom_w)
if(!BIT(m_reg0, 2))
{
m_vom[offset] = data;
- data = ~bitswap<8>(data, 1, 0, 3, 2, 5, 4, 7, 6);
+ data = ~BITSWAP8(data, 1, 0, 3, 2, 5, 4, 7, 6);
m_palette->set_pen_color(offset, pal2bit(data >> 6), pal2bit(data >> 6), pal2bit(data >> 6));
m_palette->set_pen_color((offset + 16), pal2bit(data >> 0), pal2bit(data >> 2), pal2bit(data >> 4));
}
@@ -410,7 +410,7 @@ WRITE16_MEMBER(vt240_state::vram_w)
{
if(BIT(m_reg0, 6))
{
- chr = bitswap<8>(m_vpat, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx);
+ chr = BITSWAP8(m_vpat, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx, m_patidx);
if(m_patcnt-- == 0)
{
m_patcnt = m_patmult;
@@ -494,7 +494,7 @@ WRITE16_MEMBER(vt240_state::vram_w)
WRITE8_MEMBER(vt240_state::mask_w)
{
- m_mask = bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7);
+ m_mask = BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7);
}
READ8_MEMBER(vt240_state::nvr_store_r)
diff --git a/src/mame/drivers/wacky_gator.cpp b/src/mame/drivers/wacky_gator.cpp
index ded61a8c7af..45fc413448f 100644
--- a/src/mame/drivers/wacky_gator.cpp
+++ b/src/mame/drivers/wacky_gator.cpp
@@ -109,7 +109,7 @@ WRITE8_MEMBER(wackygtr_state::status_lamps_w)
set_lamps(0, data & 0x3f);
machine().bookkeeping().coin_counter_w(0, BIT(data, 6));
- m_ticket->motor_w(BIT(data, 7));
+ m_ticket->write(space, 0, data & 0x80);
}
WRITE8_MEMBER(wackygtr_state::sample_ctrl_w)
@@ -273,7 +273,7 @@ ADDRESS_MAP_END
static MACHINE_CONFIG_START( wackygtr )
- MCFG_CPU_ADD("maincpu", MC6809, XTAL_3_579545MHz) // HD68B09P
+ MCFG_CPU_ADD("maincpu", M6809E, XTAL_3_579545MHz) // HD68B09P
MCFG_CPU_PROGRAM_MAP(program_map)
MCFG_CPU_PERIODIC_INT_DRIVER(wackygtr_state, irq0_line_assert, 50) // FIXME
diff --git a/src/mame/drivers/wallc.cpp b/src/mame/drivers/wallc.cpp
index 7aadabad847..99576cc3165 100644
--- a/src/mame/drivers/wallc.cpp
+++ b/src/mame/drivers/wallc.cpp
@@ -438,7 +438,7 @@ DRIVER_INIT_MEMBER(wallc_state, wallc)
for (i=0; i<0x2000*2; i++)
{
c = ROM[ i ] ^ 0x55 ^ 0xff; /* NOTE: this can be shortened but now it fully reflects what the bigger module really does */
- c = bitswap<8>(c, 4,2,6,0,7,1,3,5); /* also swapped inside of the bigger module */
+ c = BITSWAP8(c, 4,2,6,0,7,1,3,5); /* also swapped inside of the bigger module */
ROM[ i ] = c;
}
}
@@ -455,12 +455,12 @@ DRIVER_INIT_MEMBER(wallc_state, wallca)
if(i & 0x100)
{
c = ROM[ i ] ^ 0x4a;
- c = bitswap<8>(c, 4,7,1,3,2,0,5,6);
+ c = BITSWAP8(c, 4,7,1,3,2,0,5,6);
}
else
{
c = ROM[ i ] ^ 0xa5;
- c = bitswap<8>(c, 0,2,3,6,1,5,7,4);
+ c = BITSWAP8(c, 0,2,3,6,1,5,7,4);
}
ROM[ i ] = c;
diff --git a/src/mame/drivers/wecleman.cpp b/src/mame/drivers/wecleman.cpp
index 46cb033f29f..b16c15053ed 100644
--- a/src/mame/drivers/wecleman.cpp
+++ b/src/mame/drivers/wecleman.cpp
@@ -1386,7 +1386,7 @@ void wecleman_state::bitswap(uint8_t *src,size_t len,int _14,int _13,int _12,int
for (i = 0;i < len;i++)
{
src[i] =
- buffer[::bitswap<24>(i,23,22,21,_14,_13,_12,_11,_10,_f,_e,_d,_c,_b,_a,_9,_8,_7,_6,_5,_4,_3,_2,_1,_0)];
+ buffer[BITSWAP24(i,23,22,21,_14,_13,_12,_11,_10,_f,_e,_d,_c,_b,_a,_9,_8,_7,_6,_5,_4,_3,_2,_1,_0)];
}
}
@@ -1412,7 +1412,7 @@ DRIVER_INIT_MEMBER(wecleman_state,wecleman)
/* TODO: could be wrong, colors have to be fixed. */
/* The only certain thing is that 87 must convert to f0 */
/* otherwise stray lines appear, made of pens 7 & 8 */
- RAM[i] = ::bitswap<8>(RAM[i],7,0,1,2,3,4,5,6);
+ RAM[i] = BITSWAP8(RAM[i],7,0,1,2,3,4,5,6);
}
bitswap(memregion("gfx1")->base(), memregion("gfx1")->bytes(),
diff --git a/src/mame/drivers/white_mod.cpp b/src/mame/drivers/white_mod.cpp
index 6722aaa2a45..e39d9801121 100644
--- a/src/mame/drivers/white_mod.cpp
+++ b/src/mame/drivers/white_mod.cpp
@@ -45,7 +45,7 @@ DRIVER_INIT_MEMBER(whitestar_mod_state,whitestar_mod)
static MACHINE_CONFIG_START( whitestar_mod )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, 2000000)
+ MCFG_CPU_ADD("maincpu", M6809, 2000000)
MCFG_CPU_PROGRAM_MAP(whitestar_mod_map)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/whitestar.cpp b/src/mame/drivers/whitestar.cpp
index f10b1317953..2136791f2b0 100644
--- a/src/mame/drivers/whitestar.cpp
+++ b/src/mame/drivers/whitestar.cpp
@@ -115,7 +115,7 @@ INTERRUPT_GEN_MEMBER(whitestar_state::whitestar_firq_interrupt)
static MACHINE_CONFIG_START( whitestar )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, 2000000)
+ MCFG_CPU_ADD("maincpu", M6809, 2000000)
MCFG_CPU_PROGRAM_MAP(whitestar_map)
MCFG_CPU_PERIODIC_INT_DRIVER(whitestar_state, whitestar_firq_interrupt, 976) // value taken from PinMAME
diff --git a/src/mame/drivers/wico.cpp b/src/mame/drivers/wico.cpp
index b7362edd9cc..149c4d56a3d 100644
--- a/src/mame/drivers/wico.cpp
+++ b/src/mame/drivers/wico.cpp
@@ -385,7 +385,7 @@ READ8_MEMBER( wico_state::lampst_r )
j = m_shared_ram[0x7f9 + i];
else
j = 0;
- output().set_digit_value(i * 10 + (m_shared_ram[0x96] & 7), bitswap<16>(j, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(i * 10 + (m_shared_ram[0x96] & 7), BITSWAP16(j, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 5, 4, 3, 2, 1, 0));
}
return 0xff;
}
@@ -430,9 +430,9 @@ void wico_state::machine_reset()
static MACHINE_CONFIG_START( wico )
/* basic machine hardware */
- MCFG_CPU_ADD("ccpu", MC6809E, XTAL_10MHz / 8) // MC68A09EP @ U51
+ MCFG_CPU_ADD("ccpu", M6809, 10000000 / 8)
MCFG_CPU_PROGRAM_MAP(ccpu_map)
- MCFG_CPU_ADD("hcpu", MC6809E, XTAL_10MHz / 8) // MC68A09EP @ U24
+ MCFG_CPU_ADD("hcpu", M6809, 10000000 / 8)
MCFG_CPU_PROGRAM_MAP(hcpu_map)
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", wico_state, irq_housekeeping, attotime::from_hz(120)) // zero crossing
MCFG_TIMER_DRIVER_ADD_PERIODIC("firq", wico_state, firq_housekeeping, attotime::from_hz(750)) // time generator
@@ -444,7 +444,7 @@ static MACHINE_CONFIG_START( wico )
/* Sound */
MCFG_FRAGMENT_ADD( genpin_audio )
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("sn76494", SN76494, XTAL_10MHz / 64)
+ MCFG_SOUND_ADD("sn76494", SN76494, 10000000 / 64)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/williams.cpp b/src/mame/drivers/williams.cpp
index 4e5bcd76e76..2368d868229 100644
--- a/src/mame/drivers/williams.cpp
+++ b/src/mame/drivers/williams.cpp
@@ -1436,7 +1436,7 @@ GFXDECODE_END
static MACHINE_CONFIG_START( williams )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MASTER_CLOCK/3/4)
+ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/3/4)
MCFG_CPU_PROGRAM_MAP(williams_map)
MCFG_CPU_ADD("soundcpu", M6808, SOUND_CLOCK) // internal clock divider of 4, effective frequency is 894.886kHz
@@ -1542,7 +1542,7 @@ static MACHINE_CONFIG_DERIVED( lottofun, williams )
/* pia */
MCFG_DEVICE_MODIFY("pia_0")
- MCFG_PIA_WRITEPB_HANDLER(DEVWRITELINE("ticket", ticket_dispenser_device, motor_w)) MCFG_DEVCB_BIT(7)
+ MCFG_PIA_WRITEPB_HANDLER(DEVWRITE8("ticket", ticket_dispenser_device, write))
MCFG_PIA_CA2_HANDLER(WRITELINE(williams_state, lottofun_coin_lock_w))
MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(70), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH)
@@ -1650,7 +1650,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( williams2 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, MASTER_CLOCK/3/4)
+ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/3/4)
MCFG_CPU_PROGRAM_MAP(williams2_d000_ram_map)
MCFG_CPU_ADD("soundcpu", M6808, MASTER_CLOCK/3) /* yes, this is different from the older games */
@@ -2003,36 +2003,6 @@ ROM_START( defence )
ROM_LOAD( "defcmnda.snd", 0xf800, 0x0800, CRC(f122d9c9) SHA1(70092fc354a2efbe7365be922fa36309b50d5c6f) )
ROM_END
-// The dumps of ROMs 1, 2, 3 were bad, but the dumper observed that using the defenderb ROMs the emulation behaves identically to the PCB.
-// A redump is definitely needed:
-// 1.bin [1/2] wb01.bin [1/2] IDENTICAL
-// 2.bin [1/2] defeng02.bin [1/2] IDENTICAL
-// 1.bin [2/2] wb01.bin [1/2] IDENTICAL
-// 2.bin [2/2] defeng02.bin [1/2] IDENTICAL
-// 3ojo.bin [2/2] wb03.bin [1/2] IDENTICAL
-// 3ojo.bin [1/2] defend.11 2.197266%
-// For now we use the defenderb ones.
-// PCBs: FAMARESA 590-001, 590-002, 590-003, 590-004
-ROM_START( attackf )
- ROM_REGION( 0x19000, "maincpu", 0 )
- ROM_LOAD( "1.bin", 0x0d000, 0x1000, BAD_DUMP CRC(0ee1019d) SHA1(a76247e825b8267abfd195c12f96348fe10d4cbc) )
- ROM_LOAD( "2.bin", 0x0e000, 0x1000, BAD_DUMP CRC(d184ab6b) SHA1(ed61a95b04f6162aedba8a72bc46005b77283955) )
- ROM_LOAD( "3ojo.bin", 0x0f000, 0x1000, BAD_DUMP CRC(a732d649) SHA1(b681882c02c5870ad613edc77255969a5f796422) )
- ROM_LOAD( "9.bin", 0x10000, 0x0800, CRC(f57caa62) SHA1(c8c91b96fd3bc98eddcc1503159050dae5755001) )
- ROM_LOAD( "12.bin", 0x10800, 0x0800, CRC(eb73d8a1) SHA1(f26007839a9eff6c7f77768da150fa26b8c96643) )
- ROM_LOAD( "8.bin", 0x11000, 0x0800, CRC(17f7abde) SHA1(6959ed471687174a3fdc3f980ca7bd993b23d54f) )
- ROM_LOAD( "11.bin", 0x11800, 0x0800, CRC(5ca4e860) SHA1(031188c009b8fca92703a0cc0c2bb44976212ae9) )
- ROM_LOAD( "7.bin", 0x12000, 0x0800, CRC(545c3326) SHA1(98199df5206c261061b0108c68ab9128fa0779eb) )
- ROM_LOAD( "10.bin", 0x12800, 0x0800, CRC(3940d731) SHA1(c867efa48e3ed6a6c3ddcd519aba1fe0a1712400) )
- ROM_LOAD( "6.bin", 0x16000, 0x0800, CRC(3af34c05) SHA1(71f3ced06a373fa4805c856bd9fc97760787a920) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "13.bin", 0xf800, 0x0800, CRC(fefd5b48) SHA1(ceb0d18483f0691978c604db94417e6941ad7ff2) )
-
- ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "decoder.1", 0x0000, 0x0200, CRC(8dd98da5) SHA1(da979604f7a2aa8b5a6d4a5debd2e80f77569e35) ) // not dumped from this PCB, believed to match
-ROM_END
-
ROM_START( mayday )
ROM_REGION( 0x19000, "maincpu", 0 )
ROM_LOAD( "ic03-3.bin", 0x0d000, 0x1000, CRC(a1ff6e62) SHA1(c3c60ce94c6bdc4b07e45f386eff9a4aa4816953) )
@@ -2081,6 +2051,8 @@ ROM_START( maydayb )
ROM_LOAD( "rom8-sos.bin",0x1800, 0x0800, CRC(6a9b383f) SHA1(10e71a3bb9492b6c34ff06760dd55c442611ca75) ) // FIXED BITS (xxxxxx1x)
ROM_END
+
+
ROM_START( batlzone )
ROM_REGION( 0x19000, "maincpu", 0 )
ROM_LOAD( "43-2732.rom.bin", 0x0d000, 0x1000, CRC(244334f8) SHA1(ac625a1858c372db6a748ef8aa504569aef6cad7) )
@@ -3047,7 +3019,7 @@ DRIVER_INIT_MEMBER(williams_state,defndjeu)
/* apply simple decryption by swapping bits 0 and 7 */
for (i = 0xd000; i < 0x19000; i++)
- rom[i] = bitswap<8>(rom[i],0,6,5,4,3,2,1,7);
+ rom[i] = BITSWAP8(rom[i],0,6,5,4,3,2,1,7);
}
@@ -3212,7 +3184,6 @@ GAME( 1980, zero2, defender, defender, defender, williams_state, defn
GAME( 1980, defcmnd, defender, defender, defender, williams_state, defender, ROT0, "bootleg", "Defense Command (Defender bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, defence, defender, defender, defender, williams_state, defender, ROT0, "bootleg (Outer Limits)", "Defence Command (Defender bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, startrkd, defender, defender, defender, williams_state, defender, ROT0, "bootleg", "Star Trek (Defender bootleg)", MACHINE_SUPPORTS_SAVE )
-GAME( 1980, attackf, defender, defender, defender, williams_state, defender, ROT0, "bootleg (Famare SA)", "Attack (Defender bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1980, mayday, 0, defender, mayday, williams_state, mayday, ROT0, "Hoei", "Mayday (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // \ original by Hoei, which one of these 3 sets is bootleg/licensed/original is unknown
GAME( 1980, maydaya, mayday, defender, mayday, williams_state, mayday, ROT0, "Hoei", "Mayday (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // > these games have an unemulated protection chip of some sort which is hacked around in /machine/williams.cpp "mayday_protection_r" function
diff --git a/src/mame/drivers/wink.cpp b/src/mame/drivers/wink.cpp
index af611ebee0c..6ea8c59db63 100644
--- a/src/mame/drivers/wink.cpp
+++ b/src/mame/drivers/wink.cpp
@@ -437,19 +437,19 @@ DRIVER_INIT_MEMBER(wink_state,wink)
memcpy(&buffer[0],ROM,0x8000);
for (i = 0x0000; i <= 0x1fff; i++)
- ROM[i] = buffer[bitswap<16>(i,15,14,13, 11,12, 7, 9, 8,10, 6, 4, 5, 1, 2, 3, 0)];
+ ROM[i] = buffer[BITSWAP16(i,15,14,13, 11,12, 7, 9, 8,10, 6, 4, 5, 1, 2, 3, 0)];
for (i = 0x2000; i <= 0x3fff; i++)
- ROM[i] = buffer[bitswap<16>(i,15,14,13, 10, 7,12, 9, 8,11, 6, 3, 1, 5, 2, 4, 0)];
+ ROM[i] = buffer[BITSWAP16(i,15,14,13, 10, 7,12, 9, 8,11, 6, 3, 1, 5, 2, 4, 0)];
for (i = 0x4000; i <= 0x5fff; i++)
- ROM[i] = buffer[bitswap<16>(i,15,14,13, 7,10,11, 9, 8,12, 6, 1, 3, 4, 2, 5, 0)];
+ ROM[i] = buffer[BITSWAP16(i,15,14,13, 7,10,11, 9, 8,12, 6, 1, 3, 4, 2, 5, 0)];
for (i = 0x6000; i <= 0x7fff; i++)
- ROM[i] = buffer[bitswap<16>(i,15,14,13, 11,12, 7, 9, 8,10, 6, 4, 5, 1, 2, 3, 0)];
+ ROM[i] = buffer[BITSWAP16(i,15,14,13, 11,12, 7, 9, 8,10, 6, 4, 5, 1, 2, 3, 0)];
for (i = 0; i < 0x8000; i++)
- ROM[i] += bitswap<8>(i & 0xff, 7,5,3,1,6,4,2,0);
+ ROM[i] += BITSWAP8(i & 0xff, 7,5,3,1,6,4,2,0);
}
GAME( 1985, wink, 0, wink, wink, wink_state, wink, ROT0, "Midcoin", "Wink (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/witch.cpp b/src/mame/drivers/witch.cpp
index 0c7f4a46939..c220eed5371 100644
--- a/src/mame/drivers/witch.cpp
+++ b/src/mame/drivers/witch.cpp
@@ -450,7 +450,7 @@ READ8_MEMBER(witch_state::prot_read_700x)
Otherwise later in game some I/O (controls) reads are skipped.
*/
- switch(m_subcpu->pc())
+ switch(space.device().safe_pc())
{
case 0x23f:
case 0x246:
diff --git a/src/mame/drivers/wiz.cpp b/src/mame/drivers/wiz.cpp
index 256b9bb885a..9cb19c8cab0 100644
--- a/src/mame/drivers/wiz.cpp
+++ b/src/mame/drivers/wiz.cpp
@@ -1155,7 +1155,7 @@ DRIVER_INIT_MEMBER(wiz_state,stinger)
/* decode the opcodes */
tbl = swap_xor_table[row];
- m_decrypted_opcodes[a] = bitswap<8>(src, tbl[0], 6, tbl[1], 4, tbl[2], 2, 1, 0) ^ tbl[3];
+ m_decrypted_opcodes[a] = BITSWAP8(src, tbl[0], 6, tbl[1], 4, tbl[2], 2, 1, 0) ^ tbl[3];
}
}
}
diff --git a/src/mame/drivers/wpc_an.cpp b/src/mame/drivers/wpc_an.cpp
index 3d2475be108..636b35bbc12 100644
--- a/src/mame/drivers/wpc_an.cpp
+++ b/src/mame/drivers/wpc_an.cpp
@@ -199,8 +199,8 @@ void wpc_an_state::device_timer(emu_timer &timer, device_timer_id id, int param,
// update LED segments
for(x=0;x<16;x++)
{
- output().set_digit_value(x,bitswap<16>(m_wpc->get_alphanumeric(x), 15, 7, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
- output().set_digit_value(x+16,bitswap<16>(m_wpc->get_alphanumeric(20+x), 15, 7, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(x,BITSWAP16(m_wpc->get_alphanumeric(x), 15, 7, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
+ output().set_digit_value(x+16,BITSWAP16(m_wpc->get_alphanumeric(20+x), 15, 7, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0));
}
m_wpc->reset_alphanumeric();
m_vblank_count++;
@@ -317,7 +317,7 @@ DRIVER_INIT_MEMBER(wpc_an_state,wpc_an)
static MACHINE_CONFIG_START( wpc_an_base )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_8MHz / 4) // 68B09E
+ MCFG_CPU_ADD("maincpu", M6809, 2000000)
MCFG_CPU_PROGRAM_MAP(wpc_an_map)
MCFG_WMS_WPC_ADD("wpc")
diff --git a/src/mame/drivers/x1.cpp b/src/mame/drivers/x1.cpp
index bbbb229a2fa..afc1194e709 100644
--- a/src/mame/drivers/x1.cpp
+++ b/src/mame/drivers/x1.cpp
@@ -1697,7 +1697,7 @@ READ8_MEMBER( x1_state::x1_io_r )
else if(offset >= 0x4000 && offset <= 0xffff) { return m_gfx_bitmap_ram[offset-0x4000+(m_scrn_reg.gfx_bank*0xc000)]; }
else
{
- //logerror("(PC=%06x) Read i/o address %04x\n",m_maincpu->pc(),offset);
+ //logerror("(PC=%06x) Read i/o address %04x\n",space.device().safe_pc(),offset);
}
return 0xff;
}
@@ -1740,7 +1740,7 @@ WRITE8_MEMBER( x1_state::x1_io_w )
else if(offset >= 0x4000 && offset <= 0xffff) { m_gfx_bitmap_ram[offset-0x4000+(m_scrn_reg.gfx_bank*0xc000)] = data; }
else
{
- //logerror("(PC=%06x) Write %02x at i/o address %04x\n",m_maincpu->pc(),data,offset);
+ //logerror("(PC=%06x) Write %02x at i/o address %04x\n",space.device().safe_pc(),data,offset);
}
}
@@ -1787,7 +1787,7 @@ READ8_MEMBER( x1_state::x1turbo_io_r )
else if(offset >= 0x4000 && offset <= 0xffff) { return m_gfx_bitmap_ram[offset-0x4000+(m_scrn_reg.gfx_bank*0xc000)]; }
else
{
- //logerror("(PC=%06x) Read i/o address %04x\n",m_maincpu->pc(),offset);
+ //logerror("(PC=%06x) Read i/o address %04x\n",space.device().safe_pc(),offset);
}
return 0xff;
}
@@ -1843,7 +1843,7 @@ WRITE8_MEMBER( x1_state::x1turbo_io_w )
else if(offset >= 0x4000 && offset <= 0xffff) { m_gfx_bitmap_ram[offset-0x4000+(m_scrn_reg.gfx_bank*0xc000)] = data; }
else
{
- //logerror("(PC=%06x) Write %02x at i/o address %04x\n",m_maincpu->pc(),data,offset);
+ //logerror("(PC=%06x) Write %02x at i/o address %04x\n",space.device().safe_pc(),data,offset);
}
}
diff --git a/src/mame/drivers/x68k.cpp b/src/mame/drivers/x68k.cpp
index 010709f2301..19da99f1a6e 100644
--- a/src/mame/drivers/x68k.cpp
+++ b/src/mame/drivers/x68k.cpp
@@ -829,7 +829,7 @@ WRITE16_MEMBER(x68k_state::x68k_sysport_w)
COMBINE_DATA(&m_sysport.sram_writeprotect);
break;
default:
-// logerror("SYS: [%08x] Wrote %04x to invalid or unimplemented system port %04x\n",m_maincpu->pc(),data,offset);
+// logerror("SYS: [%08x] Wrote %04x to invalid or unimplemented system port %04x\n",space.device().safe_pc(),data,offset);
break;
}
}
@@ -968,6 +968,7 @@ void x68k_state::set_bus_error(uint32_t address, bool write, uint16_t mem_mask)
address++;
m_bus_error = true;
m_maincpu->set_buserror_details(address, write, m_maincpu->get_fc());
+ m_maincpu->mmu_tmp_buserror_address = address; // Hack for x68030
m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE);
m_maincpu->set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE);
m_bus_error_timer->adjust(m_maincpu->cycles_to_attotime(16)); // let rmw cycles complete
diff --git a/src/mame/drivers/xexex.cpp b/src/mame/drivers/xexex.cpp
index 815578c6ef3..4757bfbaf6b 100644
--- a/src/mame/drivers/xexex.cpp
+++ b/src/mame/drivers/xexex.cpp
@@ -224,7 +224,7 @@ WRITE16_MEMBER(xexex_state::spriteram_mirror_w)
READ16_MEMBER(xexex_state::xexex_waitskip_r)
{
- if (m_maincpu->pc() == 0x1158)
+ if (space.device().safe_pc() == 0x1158)
{
space.device().execute().spin_until_trigger(m_resume_trigger);
m_suspension_active = 1;
diff --git a/src/mame/drivers/xmen.cpp b/src/mame/drivers/xmen.cpp
index aca0f39192b..212c25e53cb 100644
--- a/src/mame/drivers/xmen.cpp
+++ b/src/mame/drivers/xmen.cpp
@@ -36,7 +36,7 @@ likewise a 2 screen game
WRITE16_MEMBER(xmen_state::eeprom_w)
{
- logerror("%06x: write %04x to 108000\n", m_maincpu->pc(),data);
+ logerror("%06x: write %04x to 108000\n",space.device().safe_pc(),data);
if (ACCESSING_BITS_0_7)
{
/* bit 0 = coin counter */
diff --git a/src/mame/drivers/xtheball.cpp b/src/mame/drivers/xtheball.cpp
index 56209fdd64d..e0551653dc0 100644
--- a/src/mame/drivers/xtheball.cpp
+++ b/src/mame/drivers/xtheball.cpp
@@ -10,7 +10,6 @@
#include "emu.h"
#include "cpu/tms34010/tms34010.h"
-#include "machine/74259.h"
#include "machine/ticket.h"
#include "machine/nvram.h"
#include "machine/watchdog.h"
@@ -29,7 +28,6 @@ public:
m_maincpu(*this, "maincpu"),
m_watchdog(*this, "watchdog"),
m_tlc34076(*this, "tlc34076"),
- m_ticket(*this, "ticket"),
m_vram_bg(*this, "vrabg"),
m_vram_fg(*this, "vrafg"),
m_analog_x(*this, "ANALOGX"),
@@ -38,18 +36,16 @@ public:
required_device<cpu_device> m_maincpu;
required_device<watchdog_timer_device> m_watchdog;
required_device<tlc34076_device> m_tlc34076;
- required_device<ticket_dispenser_device> m_ticket;
required_shared_ptr<uint16_t> m_vram_bg;
required_shared_ptr<uint16_t> m_vram_fg;
- bool m_foreground_mode;
-
required_ioport m_analog_x;
required_ioport m_analog_y;
- DECLARE_WRITE_LINE_MEMBER(start_lamp_w);
- DECLARE_WRITE_LINE_MEMBER(foreground_mode_w);
+ uint8_t m_bitvals[32];
+
+ DECLARE_WRITE16_MEMBER(bit_controls_w);
DECLARE_READ16_MEMBER(analogx_r);
DECLARE_READ16_MEMBER(analogy_watchdog_r);
@@ -63,7 +59,7 @@ public:
void xtheball_state::machine_start()
{
- save_item(NAME(m_foreground_mode));
+ save_item(NAME(m_bitvals));
}
/*************************************
@@ -80,8 +76,8 @@ TMS340X0_SCANLINE_RGB32_CB_MEMBER(xtheball_state::scanline_update)
int coladdr = params->coladdr;
int x;
- /* bit stored at 3040130 controls which foreground mode to use */
- if (!m_foreground_mode)
+ /* bit value 0x13 controls which foreground mode to use */
+ if (!m_bitvals[0x13])
{
/* mode 0: foreground is the same as background */
uint16_t *srcfg = &m_vram_fg[(params->rowaddr << 8) & 0xff00];
@@ -150,14 +146,65 @@ TMS340X0_FROM_SHIFTREG_CB_MEMBER(xtheball_state::from_shiftreg)
*
*************************************/
-WRITE_LINE_MEMBER(xtheball_state::start_lamp_w)
-{
- output().set_led_value(0, state);
-}
-
-WRITE_LINE_MEMBER(xtheball_state::foreground_mode_w)
+WRITE16_MEMBER(xtheball_state::bit_controls_w)
{
- m_foreground_mode = state;
+ uint8_t *bitvals = m_bitvals;
+ if (ACCESSING_BITS_0_7)
+ {
+ if (bitvals[offset] != (data & 1))
+ {
+ logerror("%08x:bit_controls_w(%x,%d)\n", space.device().safe_pc(), offset, data & 1);
+
+ switch (offset)
+ {
+ case 7:
+ machine().device<ticket_dispenser_device>("ticket")->write(space, 0, data << 7);
+ break;
+
+ case 8:
+ output().set_led_value(0, data & 1);
+ break;
+ }
+ }
+ bitvals[offset] = data & 1;
+ }
+// popmessage("%d%d%d%d-%d%d%d%d--%d%d%d%d-%d%d%d%d",
+/*
+ bitvals[0],
+ bitvals[1],
+ bitvals[2],
+ bitvals[3],
+ bitvals[4], // meter
+ bitvals[5],
+ bitvals[6], // tickets
+ bitvals[7], // tickets
+ bitvals[8], // start lamp
+ bitvals[9], // lamp
+ bitvals[10], // lamp
+ bitvals[11], // lamp
+ bitvals[12], // lamp
+ bitvals[13], // lamp
+ bitvals[14], // lamp
+ bitvals[15] // lamp
+*/
+/* bitvals[16],
+ bitvals[17],
+ bitvals[18],
+ bitvals[19], // video foreground control
+ bitvals[20],
+ bitvals[21],
+ bitvals[22],
+ bitvals[23],
+ bitvals[24],
+ bitvals[25],
+ bitvals[26],
+ bitvals[27],
+ bitvals[28],
+ bitvals[29],
+ bitvals[30],
+ bitvals[31]
+*/
+// );
}
@@ -194,10 +241,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xtheball_state )
AM_RANGE(0x01000000, 0x010fffff) AM_RAM AM_SHARE("vrabg")
AM_RANGE(0x02000000, 0x020fffff) AM_RAM AM_SHARE("vrafg")
AM_RANGE(0x03000000, 0x030000ff) AM_DEVREADWRITE8("tlc34076", tlc34076_device, read, write, 0x00ff)
- AM_RANGE(0x03020000, 0x0302005f) AM_UNMAP // looks like a CRTC of some sort
- AM_RANGE(0x03040000, 0x0304007f) AM_DEVWRITE8("latch1", ls259_device, write_d0, 0x00ff)
+ AM_RANGE(0x03040000, 0x030401ff) AM_WRITE(bit_controls_w)
AM_RANGE(0x03040080, 0x0304008f) AM_READ_PORT("DSW")
- AM_RANGE(0x03040080, 0x030400ff) AM_DEVWRITE8("latch2", ls259_device, write_d0, 0x00ff)
AM_RANGE(0x03040100, 0x0304010f) AM_READ(analogx_r)
AM_RANGE(0x03040110, 0x0304011f) AM_READ_PORT("COIN1")
AM_RANGE(0x03040130, 0x0304013f) AM_READ_PORT("SERVICE2")
@@ -205,8 +250,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xtheball_state )
AM_RANGE(0x03040150, 0x0304015f) AM_READ_PORT("BUTTON1")
AM_RANGE(0x03040160, 0x0304016f) AM_READ_PORT("SERVICE")
AM_RANGE(0x03040170, 0x0304017f) AM_READ_PORT("SERVICE1")
- AM_RANGE(0x03040100, 0x0304017f) AM_DEVWRITE8("latch3", ls259_device, write_d0, 0x00ff)
- AM_RANGE(0x03040180, 0x0304018f) AM_READ(analogy_watchdog_r) AM_WRITENOP
+ AM_RANGE(0x03040180, 0x0304018f) AM_READ(analogy_watchdog_r)
AM_RANGE(0x03060000, 0x0306000f) AM_DEVWRITE8("dac", dac_byte_interface, write, 0xff00)
AM_RANGE(0x04000000, 0x057fffff) AM_ROM AM_REGION("user2", 0)
AM_RANGE(0xc0000000, 0xc00001ff) AM_DEVREADWRITE("maincpu", tms34010_device, io_register_r, io_register_w)
@@ -307,18 +351,6 @@ static MACHINE_CONFIG_START( xtheball )
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_DEVICE_ADD("latch1", LS259, 0) // exact type uncertain
- MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(DEVWRITELINE("ticket", ticket_dispenser_device, motor_w))
- // Q4 = meter, Q6 = tickets, Q7 = tickets?
-
- MCFG_DEVICE_ADD("latch2", LS259, 0) // exact type uncertain
- MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(xtheball_state, start_lamp_w))
- // Q0 = start lamp, Q1-Q7 = more lamps?
-
- MCFG_DEVICE_ADD("latch3", LS259, 0) // exact type uncertain
- MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(xtheball_state, foreground_mode_w))
- // Q3 = video foreground control?
-
MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH)
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/xyonix.cpp b/src/mame/drivers/xyonix.cpp
index 24aca691bb6..6b674a975af 100644
--- a/src/mame/drivers/xyonix.cpp
+++ b/src/mame/drivers/xyonix.cpp
@@ -86,7 +86,7 @@ void xyonix_state::handle_coins(int coin)
READ8_MEMBER(xyonix_state::io_r)
{
- int regPC = m_maincpu->pc();
+ int regPC = space.device().safe_pc();
if (regPC == 0x27ba)
return 0x88;
@@ -137,7 +137,7 @@ READ8_MEMBER(xyonix_state::io_r)
WRITE8_MEMBER(xyonix_state::io_w)
{
- //logerror ("xyonix_port_e0_w %02x - PC = %04x\n", data, m_maincpu->pc());
+ //logerror ("xyonix_port_e0_w %02x - PC = %04x\n", data, space.device().safe_pc());
m_e0_data = data;
}
diff --git a/src/mame/drivers/yiear.cpp b/src/mame/drivers/yiear.cpp
index 94b76900587..b6c36d83338 100644
--- a/src/mame/drivers/yiear.cpp
+++ b/src/mame/drivers/yiear.cpp
@@ -281,7 +281,7 @@ void yiear_state::machine_reset()
static MACHINE_CONFIG_START( yiear )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", MC6809E, XTAL_18_432MHz/12) /* verified on pcb */
+ MCFG_CPU_ADD("maincpu", M6809,XTAL_18_432MHz/12) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", yiear_state, yiear_vblank_interrupt)
MCFG_CPU_PERIODIC_INT_DRIVER(yiear_state, yiear_nmi_interrupt, 480) /* music tempo (correct frequency unknown) */
diff --git a/src/mame/drivers/yunsung8.cpp b/src/mame/drivers/yunsung8.cpp
index 53a77152b65..30837a49e7e 100644
--- a/src/mame/drivers/yunsung8.cpp
+++ b/src/mame/drivers/yunsung8.cpp
@@ -53,7 +53,7 @@ WRITE8_MEMBER(yunsung8_state::bankswitch_w)
membank("mainbank")->set_entry(data & 0x07);
if (data & ~0x37)
- logerror("CPU #0 - PC %04X: Bank %02X\n", m_maincpu->pc(), data);
+ logerror("CPU #0 - PC %04X: Bank %02X\n", space.device().safe_pc(), data);
}
READ8_MEMBER(yunsung8_state::sound_command_r)
diff --git a/src/mame/drivers/yuvomz80.cpp b/src/mame/drivers/yuvomz80.cpp
deleted file mode 100644
index cae1633cfb8..00000000000
--- a/src/mame/drivers/yuvomz80.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:
-
-// Skeleton driver for Yuvo / Yubis Z80 based medal games.
-
-#include "emu.h"
-#include "cpu/z80/z80.h"
-#include "machine/i8255.h"
-#include "sound/ymz280b.h"
-#include "speaker.h"
-
-/*
-This tries to document the available info, but even game titles should be taken with a grain of salt.
-YouTube video references:
-Hexa President: http://www.youtube.com/watch?v=5Ea5HxH2zwM&t=8s
-Golden Hexa: http://www.youtube.com/watch?v=3u1ccTo3SGI
-*/
-
-/*
-Golden Hexa by Yubis
-
-PCBs:
-
-Yuvo PCC116B - maincpu board
-- TMPZ84C00AP-8
-- 8 MHz XTAL
-- maincpu ROM
-- 2 x TMP82C55AN-2
-- 2 x 8 dips bank
-
-Yuvo PCO124B - sound board
-- TMPZ84C00AP-8
-- 8 MHz XTAL
-- audiocpu ROM
-- YMZ280B-F
-- sample ROMs
-
-Yuvo PCI117B - I/O board
-- connectors and ttl chips
-*/
-
-class yuvomz80_state : public driver_device
-{
-public:
- yuvomz80_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu")
- { }
-
-private:
- required_device<cpu_device> m_maincpu;
-};
-
-static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 8, yuvomz80_state )
- AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("maincpu", 0)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( io_map, AS_PROGRAM, 8, yuvomz80_state )
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( audio_mem_map, AS_PROGRAM, 8, yuvomz80_state )
- AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("audiocpu", 0)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( audio_io_map, AS_PROGRAM, 8, yuvomz80_state )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
-ADDRESS_MAP_END
-
-static INPUT_PORTS_START( goldhexa )
-INPUT_PORTS_END
-
-static MACHINE_CONFIG_START( yuvomz80 )
- MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz)
- MCFG_CPU_PROGRAM_MAP(mem_map)
- MCFG_CPU_IO_MAP(io_map)
-
- MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz)
- MCFG_CPU_PROGRAM_MAP(audio_mem_map)
- MCFG_CPU_IO_MAP(audio_io_map)
-
- MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
-
- MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
-
- MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_8MHz)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.00)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.00)
-MACHINE_CONFIG_END
-
-
-ROM_START( goldhexa )
- ROM_REGION(0x10000, "maincpu", 0)
- ROM_LOAD( "ghp_program_ver.1.02.ic8", 0x0000, 0x10000, CRC(a21a8cfd) SHA1(324f54ca6e17373138df2854f8c5e77cf78e9434) ) // 1111xxxxxxxxxxxx = 0xFF
-
- ROM_REGION(0x10000, "audiocpu", 0)
- ROM_LOAD( "hp-sp_ver.1.01.ic7", 0x0000, 0x2000, CRC(05133b91) SHA1(2fe931e55c503f15aedfb1c1ea14c257f57c564b) ) // 1xxxxxxxxxxxx = 0xFF
-
- ROM_REGION(0x100000, "ymz", 0)
- ROM_LOAD( "ghp_pcm-a_ver.1.01.ic12", 0x00000, 0x80000, CRC(08de888b) SHA1(a6b68accb136481f45b65eab33e0bab5212a1daf) )
- ROM_LOAD( "ghp_pcm-b_ver.1.01.ic13", 0x80000, 0x80000, CRC(161838c9) SHA1(52b9c324b01702c1164a462af371d82e8c2eea43) )
-ROM_END
-
-ROM_START( hexapres )
- ROM_REGION(0x10000, "maincpu", 0)
- ROM_LOAD( "hexapres.bin", 0x0000, 0x10000, NO_DUMP )
-
- ROM_REGION(0x10000, "audiocpu", 0)
- ROM_LOAD( "ghp_snd.bin", 0x0000, 0x10000, CRC(8933b6ea) SHA1(a66157f2b7407ab374db07bcda34f066740f14dc) )
-
- ROM_REGION(0x100000, "ymz", 0)
- ROM_LOAD( "ghp_voia.bin", 0x00000, 0x80000, CRC(cf3e4c43) SHA1(6d348054704d1d0082d6166701ab84cb162b3a26) )
- ROM_LOAD( "ghp_voib.bin", 0x80000, 0x80000, CRC(8be745fe) SHA1(840bbb212c8c519f2e4633f8db731fcf3f55635a) )
-ROM_END
-
-GAME( 200?, goldhexa, 0, yuvomz80, goldhexa, yuvomz80_state, 0, ROT0, "Yubis", "Golden Hexa", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 200?, hexapres, 0, yuvomz80, goldhexa, yuvomz80_state, 0, ROT0, "Yubis", "Hexa President", MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mame/drivers/z100.cpp b/src/mame/drivers/z100.cpp
index 622fe87d98a..5042eeaa6e6 100644
--- a/src/mame/drivers/z100.cpp
+++ b/src/mame/drivers/z100.cpp
@@ -616,9 +616,9 @@ WRITE8_MEMBER( z100_state::video_pia_A_w )
*/
m_vram_enable = ((data & 0x80) >> 7) ^ 1;
- m_gbank = bitswap<8>(((data & 0x70) >> 4) ^ 0x7,7,6,5,4,3,1,0,2);
+ m_gbank = BITSWAP8(((data & 0x70) >> 4) ^ 0x7,7,6,5,4,3,1,0,2);
m_flash = ((data & 8) >> 3) ^ 1;
- m_display_mask = bitswap<8>((data & 7) ^ 7,7,6,5,4,3,1,0,2);
+ m_display_mask = BITSWAP8((data & 7) ^ 7,7,6,5,4,3,1,0,2);
}
WRITE8_MEMBER( z100_state::video_pia_B_w )
diff --git a/src/mame/drivers/zapcomputer.cpp b/src/mame/drivers/zapcomputer.cpp
index 4987095d1b9..455531b56e9 100644
--- a/src/mame/drivers/zapcomputer.cpp
+++ b/src/mame/drivers/zapcomputer.cpp
@@ -63,7 +63,7 @@ uint8_t zapcomp_state::decode7seg(uint8_t data)
// Bit order for the FAIRCHILD FND-70
// 7-SEGMENT LCD: . g f e d c b a
- return bitswap<8>(patterns[data & 0x0F], 7, 3, 4, 2, 1, 0, 6, 5);
+ return BITSWAP8(patterns[data & 0x0F], 7, 3, 4, 2, 1, 0, 6, 5);
}
WRITE8_MEMBER( zapcomp_state::display_7seg_w )
diff --git a/src/mame/drivers/zn.cpp b/src/mame/drivers/zn.cpp
index e6874bfed50..2db94b3e55a 100644
--- a/src/mame/drivers/zn.cpp
+++ b/src/mame/drivers/zn.cpp
@@ -63,8 +63,6 @@ public:
m_vt83c461(*this, "ide"),
m_soundlatch(*this, "soundlatch"),
m_soundlatch16(*this, "soundlatch16"),
- m_bankedroms(*this, "bankedroms"),
- m_soundbank(*this, "soundbank"),
m_cat702_1_dataout(1),
m_cat702_2_dataout(1),
m_znmcu_dataout(1),
@@ -119,10 +117,6 @@ public:
DECLARE_WRITE16_MEMBER(vt83c461_32_w);
DECLARE_DRIVER_INIT(coh1000tb);
DECLARE_DRIVER_INIT(nbajamex);
- DECLARE_DRIVER_INIT(bam2);
- DECLARE_DRIVER_INIT(jdredd);
- DECLARE_DRIVER_INIT(coh1000w);
- DECLARE_DRIVER_INIT(primrag2);
DECLARE_MACHINE_RESET(coh1000c);
DECLARE_MACHINE_RESET(glpracr);
DECLARE_MACHINE_RESET(coh1000ta);
@@ -175,8 +169,6 @@ private:
optional_device<vt83c461_device> m_vt83c461;
optional_device<generic_latch_8_device> m_soundlatch;
optional_device<generic_latch_16_device> m_soundlatch16;
- optional_memory_bank m_bankedroms;
- optional_memory_bank m_soundbank;
int m_cat702_1_dataout;
int m_cat702_2_dataout;
@@ -529,12 +521,12 @@ READ16_MEMBER(zn_state::capcom_kickharness_r)
WRITE8_MEMBER(zn_state::bank_coh1000c_w)
{
- m_bankedroms->set_entry( data );
+ membank( "bankedroms" )->set_base( memregion( "maskroms" )->base() + 0x400000 + ( data * 0x400000 ) );
}
WRITE8_MEMBER(zn_state::qsound_bankswitch_w)
{
- m_soundbank->set_entry( data & 0x0f );
+ membank( "bank10" )->set_base( memregion( "audiocpu" )->base() + 0x10000 + ( ( data & 0x0f ) * 0x4000 ) );
}
INTERRUPT_GEN_MEMBER(zn_state::qsound_interrupt)
@@ -562,10 +554,7 @@ ADDRESS_MAP_END
MACHINE_RESET_MEMBER(zn_state,coh1000c)
{
- m_bankedroms->configure_entries(0, 16, memregion( "maskroms" )->base() + 0x400000, 0x400000 ); /* banked game rom */
- m_bankedroms->set_entry(0 );
- m_soundbank->configure_entries(0, 16, memregion("audiocpu")->base() + 0x8000, 0x4000 ); /* banked audio rom */
- m_soundbank->set_entry(0 );
+ membank("bankedroms")->set_base(memregion("maskroms")->base() + 0x400000 ); /* banked game rom */
}
MACHINE_RESET_MEMBER(zn_state,glpracr)
@@ -576,7 +565,7 @@ MACHINE_RESET_MEMBER(zn_state,glpracr)
static ADDRESS_MAP_START( qsound_map, AS_PROGRAM, 8, zn_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("soundbank") /* banked (contains music data) */
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank10") /* banked (contains music data) */
AM_RANGE(0xd000, 0xd002) AM_DEVWRITE("qsound", qsound_device, qsound_w)
AM_RANGE(0xd003, 0xd003) AM_WRITE(qsound_bankswitch_w)
AM_RANGE(0xd007, 0xd007) AM_DEVREAD("qsound", qsound_device, qsound_r)
@@ -595,7 +584,7 @@ static MACHINE_CONFIG_DERIVED( coh1000c, zn1_1mb_vram )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz)
MCFG_CPU_PROGRAM_MAP(qsound_map)
MCFG_CPU_IO_MAP(qsound_portmap)
- MCFG_CPU_PERIODIC_INT_DRIVER(zn_state, qsound_interrupt, 250) // measured (cps2.cpp)
+ MCFG_CPU_PERIODIC_INT_DRIVER(zn_state, qsound_interrupt, 250) // measured (cps2.c)
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000c)
@@ -615,7 +604,7 @@ static MACHINE_CONFIG_DERIVED( coh1002c, zn1_2mb_vram )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz)
MCFG_CPU_PROGRAM_MAP(qsound_map)
MCFG_CPU_IO_MAP(qsound_portmap)
- MCFG_CPU_PERIODIC_INT_DRIVER(zn_state, qsound_interrupt, 250) // measured (cps2.cpp)
+ MCFG_CPU_PERIODIC_INT_DRIVER(zn_state, qsound_interrupt, 250) // measured (cps2.c)
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000c)
@@ -772,7 +761,7 @@ static MACHINE_CONFIG_DERIVED(coh3002c, zn2)
MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz)
MCFG_CPU_PROGRAM_MAP(qsound_map)
MCFG_CPU_IO_MAP(qsound_portmap)
- MCFG_CPU_PERIODIC_INT_DRIVER(zn_state, qsound_interrupt, 250) // measured (cps2.cpp)
+ MCFG_CPU_PERIODIC_INT_DRIVER(zn_state, qsound_interrupt, 250) // measured (cps2.c)
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000c)
@@ -1007,12 +996,12 @@ WRITE8_MEMBER(zn_state::bank_coh1000t_w)
m_mb3773->write_line_ck((data & 0x20) >> 5);
- m_bankedroms->set_entry( data & 3 );
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() + ( ( data & 3 ) * 0x800000 ) );
}
WRITE8_MEMBER(zn_state::fx1a_sound_bankswitch_w)
{
- m_soundbank->set_entry( ( data - 1 ) & 0x07 );
+ membank( "bank10" )->set_base( memregion( "audiocpu" )->base() + 0x10000 + ( ( ( data - 1 ) & 0x07 ) * 0x4000 ) );
}
static ADDRESS_MAP_START(coh1000ta_map, AS_PROGRAM, 32, zn_state)
@@ -1026,15 +1015,11 @@ ADDRESS_MAP_END
MACHINE_RESET_MEMBER(zn_state,coh1000ta)
{
- m_bankedroms->configure_entries( 0, 4, memregion( "bankedroms" )->base(), 0x800000 ); /* banked game rom */
- m_bankedroms->set_entry( 0 );
-
- m_soundbank->configure_entries( 0, 8, memregion( "audiocpu" )->base() + 0x4000, 0x4000 );
- m_soundbank->set_entry( 0 );
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() );
}
static ADDRESS_MAP_START( fx1a_sound_map, AS_PROGRAM, 8, zn_state )
- AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("soundbank") /* Fallthrough */
+ AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10") /* Fallthrough */
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write)
@@ -1095,14 +1080,11 @@ DRIVER_INIT_MEMBER(zn_state,coh1000tb)
{
m_fx1b_fram = std::make_unique<uint8_t[]>(0x200);
machine().device<nvram_device>("fm1208s")->set_base(m_fx1b_fram.get(), 0x200);
-
- save_pointer(NAME(m_fx1b_fram.get()), 0x200);
}
MACHINE_RESET_MEMBER(zn_state,coh1000tb)
{
- m_bankedroms->configure_entries( 0, 4, memregion( "bankedroms" )->base(), 0x800000 ); /* banked game rom */
- m_bankedroms->set_entry( 0 );
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() ); /* banked game rom */
}
static MACHINE_CONFIG_DERIVED(coh1000tb, zn1_1mb_vram)
@@ -1358,11 +1340,6 @@ WRITE16_MEMBER(zn_state::vt83c461_32_w)
logerror( "unhandled 32 bit write %04x %04x %04x\n", offset, data, mem_mask );
}
-DRIVER_INIT_MEMBER(zn_state,primrag2)
-{
- save_item(NAME(m_vt83c461_latch));
-}
-
static ADDRESS_MAP_START(coh1000w_map, AS_PROGRAM, 32, zn_state)
AM_RANGE(0x1f000000, 0x1f1fffff) AM_ROM AM_REGION("roms", 0)
AM_RANGE(0x1f000000, 0x1f000003) AM_WRITENOP
@@ -1537,7 +1514,7 @@ WRITE8_MEMBER(zn_state::coh1002e_bank_w)
{
znsecsel_w( space, offset, data, mem_mask );
- m_bankedroms->set_entry( data & 3 );
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() + ( ( data & 3 ) * 0x800000 ) );
}
WRITE8_MEMBER(zn_state::coh1002e_sound_irq_w)
@@ -1556,8 +1533,7 @@ ADDRESS_MAP_END
MACHINE_RESET_MEMBER(zn_state,coh1002e)
{
- m_bankedroms->configure_entries( 0, 4, memregion( "bankedroms" )->base(), 0x800000 ); /* banked game rom */
- m_bankedroms->set_entry( 0 );
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() );
}
static ADDRESS_MAP_START( psarc_snd_map, AS_PROGRAM, 16, zn_state )
@@ -1642,12 +1618,12 @@ WRITE16_MEMBER(zn_state::bam2_mcu_w)
switch( offset )
{
case 0:
- m_bankedroms->set_entry( data & 0xf );
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() + ( ( data & 0xf ) * 0x400000 ) );
break;
case 1:
m_bam2_mcu_command = data;
- logerror("MCU command: %04x (PC %08x)\n", m_bam2_mcu_command, m_maincpu->pc());
+ logerror("MCU command: %04x (PC %08x)\n", m_bam2_mcu_command, space.device().safe_pc());
break;
}
}
@@ -1657,11 +1633,11 @@ READ16_MEMBER(zn_state::bam2_mcu_r)
switch (offset)
{
case 0:
- logerror("MCU port 0 read @ PC %08x mask %08x\n", m_maincpu->pc(), mem_mask);
+ logerror("MCU port 0 read @ PC %08x mask %08x\n", space.device().safe_pc(), mem_mask);
break;
case 2:
- logerror("MCU status read @ PC %08x mask %08x\n", m_maincpu->pc(), mem_mask);
+ logerror("MCU status read @ PC %08x mask %08x\n", space.device().safe_pc(), mem_mask);
switch (m_bam2_mcu_command)
{
@@ -1690,15 +1666,9 @@ static ADDRESS_MAP_START(bam2_map, AS_PROGRAM, 32, zn_state)
AM_IMPORT_FROM(zn_map)
ADDRESS_MAP_END
-DRIVER_INIT_MEMBER(zn_state,bam2)
-{
- save_item(NAME(m_bam2_mcu_command));
-}
-
MACHINE_RESET_MEMBER(zn_state,bam2)
{
- m_bankedroms->configure_entries( 0, 16, memregion( "bankedroms" )->base(), 0x400000 ); /* banked game rom */
- m_bankedroms->set_entry( 1 );
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() + 0x400000 );
}
static MACHINE_CONFIG_DERIVED( bam2, zn1_2mb_vram )
@@ -1943,7 +1913,7 @@ WRITE16_MEMBER(zn_state::nbajamex_bank_w)
m_maincpu->space(AS_PROGRAM).install_read_bank(0x1f200000, 0x1f7fffff, "bankedroms2");
membank( "bankedroms2" )->set_base( memregion( "bankedroms" )->base() + bankbase1);
}
- m_bankedroms->set_base( memregion( "bankedroms" )->base() + bankbase0);
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() + bankbase0);
}
else if (offset == 1)
{
@@ -2007,21 +1977,12 @@ DRIVER_INIT_MEMBER(zn_state,nbajamex)
{
m_nbajamex_sram = std::make_unique<uint8_t[]>(0x80000);
machine().device<nvram_device>("71256")->set_base(m_nbajamex_sram.get(), 0x8000);
-
- save_pointer(NAME(m_nbajamex_sram.get()), 0x80000);
-
- save_item(NAME(m_nbajamex_rombank));
}
MACHINE_RESET_MEMBER(zn_state,nbajamex)
{
- m_bankedroms->set_base( memregion( "bankedroms" )->base() );
-}
-
-DRIVER_INIT_MEMBER(zn_state,jdredd)
-{
- save_item(NAME(m_jdredd_gun_mux));
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() );
}
static ADDRESS_MAP_START(jdredd_map, AS_PROGRAM, 32, zn_state)
@@ -2187,7 +2148,7 @@ WRITE16_MEMBER(zn_state::coh1001l_latch_w)
WRITE8_MEMBER(zn_state::coh1001l_bank_w)
{
- m_bankedroms->set_entry( data & 3 );
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() + ( ( data & 3 ) * 0x800000 ) );
}
static ADDRESS_MAP_START(coh1001l_map, AS_PROGRAM, 32, zn_state)
@@ -2200,8 +2161,7 @@ ADDRESS_MAP_END
MACHINE_RESET_MEMBER(zn_state,coh1001l)
{
- m_bankedroms->configure_entries( 0, 4, memregion( "bankedroms" )->base(), 0x800000 ); /* banked game rom */
- m_bankedroms->set_entry( 0 );
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() ); /* banked rom */
}
static ADDRESS_MAP_START( atlus_snd_map, AS_PROGRAM, 16, zn_state )
@@ -2244,7 +2204,7 @@ Key: Mother KN01
WRITE8_MEMBER(zn_state::coh1002v_bank_w)
{
- m_bankedroms->set_entry( data );
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() + ( data * 0x100000 ) );
}
static ADDRESS_MAP_START(coh1002v_map, AS_PROGRAM, 32, zn_state)
@@ -2257,8 +2217,7 @@ ADDRESS_MAP_END
MACHINE_RESET_MEMBER(zn_state,coh1002v)
{
- m_bankedroms->configure_entries( 0, 24, memregion( "bankedroms" )->base(), 0x100000 ); /* banked game rom */
- m_bankedroms->set_entry( 0 );
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() ); /* banked rom */
}
static MACHINE_CONFIG_DERIVED( coh1002v, zn1_2mb_vram )
@@ -2429,7 +2388,7 @@ Notes:
WRITE8_MEMBER(zn_state::coh1002m_bank_w)
{
verboselog(1, "coh1002m_bank_w( %08x, %08x, %08x )\n", offset, data, mem_mask );
- m_bankedroms->set_entry( data );
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() + (data * 0x800000) );
}
static ADDRESS_MAP_START(coh1002m_map, AS_PROGRAM, 32, zn_state)
@@ -2441,8 +2400,7 @@ ADDRESS_MAP_END
MACHINE_RESET_MEMBER(zn_state,coh1002m)
{
- m_bankedroms->configure_entries( 0, 6, memregion( "bankedroms" )->base(), 0x800000 ); /* banked game rom */
- m_bankedroms->set_entry( 0 );
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() );
}
static MACHINE_CONFIG_DERIVED( coh1002m, zn1_2mb_vram )
@@ -2784,7 +2742,7 @@ ROM_START( coh1000c )
ROM_REGION32_LE( 0x80000, "countryrom", ROMREGION_ERASE00 )
ROM_REGION32_LE( 0x2400000, "maskroms", ROMREGION_ERASE00 )
- ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 )
+ ROM_REGION( 0x50000, "audiocpu", ROMREGION_ERASE00 )
ROM_REGION( 0x400000, "qsound", ROMREGION_ERASE00 )
ROM_REGION( 0x8, "cat702_2", 0 ) ROM_COPY( "cat702_1", 0x0, 0x0, 0x8 )
ROM_END
@@ -2802,8 +2760,9 @@ ROM_START( ts2 )
ROM_LOAD( "ts2-08m", 0x0800000, 0x400000, CRC(b1f7f115) SHA1(3f416d2aac07aa73a99593b5a21b047da60cea6a) )
ROM_LOAD( "ts2-10m.4k", 0x0c00000, 0x200000, CRC(ad90679a) SHA1(19dd30764f892ee7f89c78ccbccdaf4d6b0e6e09) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "ts2_02.2e", 0x00000, 0x20000, CRC(2f45c461) SHA1(513b6b9b5a2f7c567c30c958e0e13834cd9bd266) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ts2_02.2e", 0x00000, 0x08000, CRC(2f45c461) SHA1(513b6b9b5a2f7c567c30c958e0e13834cd9bd266) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "ts2-01m.3b", 0x0000000, 0x400000, CRC(d7a505e0) SHA1(f1b0cdea712101f695bd326eccd753eb79a07490) )
@@ -2827,8 +2786,9 @@ ROM_START( ts2a )
ROM_LOAD( "ts2-09m.3k", 0x0a00000, 0x200000, CRC(83f408de) SHA1(415787c4dca604dd5611e16936a0ffa981dedf78) )
ROM_LOAD( "ts2-10m.4k", 0x0c00000, 0x200000, CRC(ad90679a) SHA1(19dd30764f892ee7f89c78ccbccdaf4d6b0e6e09) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "ts2_02.2e", 0x00000, 0x20000, CRC(2f45c461) SHA1(513b6b9b5a2f7c567c30c958e0e13834cd9bd266) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ts2_02.2e", 0x00000, 0x08000, CRC(2f45c461) SHA1(513b6b9b5a2f7c567c30c958e0e13834cd9bd266) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "ts2-01m.3b", 0x0000000, 0x400000, CRC(d7a505e0) SHA1(f1b0cdea712101f695bd326eccd753eb79a07490) )
@@ -2850,8 +2810,9 @@ ROM_START( ts2j )
ROM_LOAD( "ts2-08m", 0x0800000, 0x400000, CRC(b1f7f115) SHA1(3f416d2aac07aa73a99593b5a21b047da60cea6a) )
ROM_LOAD( "ts2-10m.4k", 0x0c00000, 0x200000, CRC(ad90679a) SHA1(19dd30764f892ee7f89c78ccbccdaf4d6b0e6e09) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "ts2_02.2e", 0x00000, 0x20000, CRC(2f45c461) SHA1(513b6b9b5a2f7c567c30c958e0e13834cd9bd266) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ts2_02.2e", 0x00000, 0x08000, CRC(2f45c461) SHA1(513b6b9b5a2f7c567c30c958e0e13834cd9bd266) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "ts2-01m.3b", 0x0000000, 0x400000, CRC(d7a505e0) SHA1(f1b0cdea712101f695bd326eccd753eb79a07490) )
@@ -2875,9 +2836,10 @@ ROM_START( starglad )
ROM_LOAD( "ps1-09m.3k", 0x1000000, 0x400000, CRC(bd894812) SHA1(9f0c3365e685a53ae793f4a256a6c177a843a424) )
ROM_LOAD( "ps1-10m.4k", 0x1400000, 0x400000, CRC(ff80c18a) SHA1(8d01717eed6ec1f508fe7c445da941fb84ef7d22) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "ps1_02a.2e", 0x00000, 0x20000, CRC(b854df92) SHA1(ea71a613b5b19ec7e9c6e342e7743d320582a6bb) )
- ROM_LOAD( "ps1_03a.3e", 0x20000, 0x20000, CRC(a2562fbb) SHA1(3de02a4aa7ea620961ca2a5c331f38134033db79) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ps1_02a.2e", 0x00000, 0x08000, CRC(b854df92) SHA1(ea71a613b5b19ec7e9c6e342e7743d320582a6bb) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "ps1_03a.3e", 0x28000, 0x20000, CRC(a2562fbb) SHA1(3de02a4aa7ea620961ca2a5c331f38134033db79) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "ps1-01m.3b", 0x0000000, 0x400000, CRC(0bfb17aa) SHA1(cf4482785a2a33ad814c8b1461c5bc8e8e027895) )
@@ -2901,9 +2863,10 @@ ROM_START( stargladj )
ROM_LOAD( "ps1-09m.3k", 0x1000000, 0x400000, CRC(bd894812) SHA1(9f0c3365e685a53ae793f4a256a6c177a843a424) )
ROM_LOAD( "ps1-10m.4k", 0x1400000, 0x400000, CRC(ff80c18a) SHA1(8d01717eed6ec1f508fe7c445da941fb84ef7d22) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "ps1_02a.2e", 0x00000, 0x20000, CRC(b854df92) SHA1(ea71a613b5b19ec7e9c6e342e7743d320582a6bb) )
- ROM_LOAD( "ps1_03a.3e", 0x20000, 0x20000, CRC(a2562fbb) SHA1(3de02a4aa7ea620961ca2a5c331f38134033db79) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ps1_02a.2e", 0x00000, 0x08000, CRC(b854df92) SHA1(ea71a613b5b19ec7e9c6e342e7743d320582a6bb) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "ps1_03a.3e", 0x28000, 0x20000, CRC(a2562fbb) SHA1(3de02a4aa7ea620961ca2a5c331f38134033db79) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "ps1-01m.3b", 0x0000000, 0x400000, CRC(0bfb17aa) SHA1(cf4482785a2a33ad814c8b1461c5bc8e8e027895) )
@@ -2940,7 +2903,7 @@ ROM_START( glpracr )
ROM_LOAD( "gra-07m.5h", 0x0800000, 0x400000, CRC(acaefe3a) SHA1(32d596b0f975e1558fa7929c3166d8dad40a1c80) )
/* Sockets 2.2E, 3.3E are not populated, pcb verified */
- ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 64k for the audio CPU (+banks) */
+ ROM_REGION( 0x50000, "audiocpu", ROMREGION_ERASE00 ) /* 64k for the audio CPU (+banks) */
/* Socket 1.3B is not populated, pcb verified */
ROM_REGION( 0x400000, "qsound", ROMREGION_ERASE00 ) /* Q Sound Samples */
@@ -2962,7 +2925,7 @@ ROM_START( glpracrj )
ROM_LOAD( "gra-07m.5h", 0x0800000, 0x400000, CRC(acaefe3a) SHA1(32d596b0f975e1558fa7929c3166d8dad40a1c80) )
/* Sockets 2.2E, 3.3E are not populated, pcb verified */
- ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 64k for the audio CPU (+banks) */
+ ROM_REGION( 0x50000, "audiocpu", ROMREGION_ERASE00 ) /* 64k for the audio CPU (+banks) */
/* Socket 1.3B is not populated, pcb verified */
ROM_REGION( 0x400000, "qsound", ROMREGION_ERASE00 ) /* Q Sound Samples */
@@ -2986,9 +2949,10 @@ ROM_START( sfex )
ROM_LOAD( "sfe-09m.3k", 0x1000000, 0x400000, CRC(62c424cc) SHA1(ea19c49b486473b150dbf8541286e225655496db) )
ROM_LOAD( "sfe-10m.4k", 0x1400000, 0x400000, CRC(83791a8b) SHA1(534969797640834ca692c11d0ce7c3a060fc7e4b) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "sfe_02.2e", 0x00000, 0x20000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
- ROM_LOAD( "sfe_03.3e", 0x20000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfe_02.2e", 0x00000, 0x08000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfe_03.3e", 0x28000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "sfe-01m.3b", 0x0000000, 0x400000, CRC(f5afff0d) SHA1(7f9ac32ba0a3d9c6fef367e36a92d47c9ac1feb3) )
@@ -3012,9 +2976,10 @@ ROM_START( sfexu )
ROM_LOAD( "sfe-09m.3k", 0x1000000, 0x400000, CRC(62c424cc) SHA1(ea19c49b486473b150dbf8541286e225655496db) )
ROM_LOAD( "sfe-10m.4k", 0x1400000, 0x400000, CRC(83791a8b) SHA1(534969797640834ca692c11d0ce7c3a060fc7e4b) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "sfe_02.2e", 0x00000, 0x20000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
- ROM_LOAD( "sfe_03.3e", 0x20000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfe_02.2e", 0x00000, 0x08000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfe_03.3e", 0x28000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "sfe-01m.3b", 0x0000000, 0x400000, CRC(f5afff0d) SHA1(7f9ac32ba0a3d9c6fef367e36a92d47c9ac1feb3) )
@@ -3038,9 +3003,10 @@ ROM_START( sfexa )
ROM_LOAD( "sfe-09m.3k", 0x1000000, 0x400000, CRC(62c424cc) SHA1(ea19c49b486473b150dbf8541286e225655496db) )
ROM_LOAD( "sfe-10m.4k", 0x1400000, 0x400000, CRC(83791a8b) SHA1(534969797640834ca692c11d0ce7c3a060fc7e4b) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "sfe_02.2e", 0x00000, 0x20000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
- ROM_LOAD( "sfe_03.3e", 0x20000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfe_02.2e", 0x00000, 0x08000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfe_03.3e", 0x28000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "sfe-01m.3b", 0x0000000, 0x400000, CRC(f5afff0d) SHA1(7f9ac32ba0a3d9c6fef367e36a92d47c9ac1feb3) )
@@ -3064,9 +3030,10 @@ ROM_START( sfexj )
ROM_LOAD( "sfe-09m.3k", 0x1000000, 0x400000, CRC(62c424cc) SHA1(ea19c49b486473b150dbf8541286e225655496db) )
ROM_LOAD( "sfe-10m.4k", 0x1400000, 0x400000, CRC(83791a8b) SHA1(534969797640834ca692c11d0ce7c3a060fc7e4b) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "sfe_02.2e", 0x00000, 0x20000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
- ROM_LOAD( "sfe_03.3e", 0x20000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfe_02.2e", 0x00000, 0x08000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfe_03.3e", 0x28000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "sfe-01m.3b", 0x0000000, 0x400000, CRC(f5afff0d) SHA1(7f9ac32ba0a3d9c6fef367e36a92d47c9ac1feb3) )
@@ -3090,9 +3057,10 @@ ROM_START( sfexp )
ROM_LOAD( "sfp-09m.3k", 0x1000000, 0x400000, CRC(15f8b71e) SHA1(efb28fbe750f443550ee9718385355aae7e858c9) )
ROM_LOAD( "sfp-10m.4k", 0x1400000, 0x400000, CRC(c1ecf652) SHA1(616e14ff63d38272730c810b933a6b3412e2da17) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "sfe_02.2e", 0x00000, 0x20000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
- ROM_LOAD( "sfe_03.3e", 0x20000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfe_02.2e", 0x00000, 0x08000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfe_03.3e", 0x28000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "sfe-01m.3b", 0x0000000, 0x400000, CRC(f5afff0d) SHA1(7f9ac32ba0a3d9c6fef367e36a92d47c9ac1feb3) )
@@ -3116,9 +3084,10 @@ ROM_START( sfexpu1 )
ROM_LOAD( "sfp-09m.3k", 0x1000000, 0x400000, CRC(15f8b71e) SHA1(efb28fbe750f443550ee9718385355aae7e858c9) )
ROM_LOAD( "sfp-10m.4k", 0x1400000, 0x400000, CRC(c1ecf652) SHA1(616e14ff63d38272730c810b933a6b3412e2da17) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "sfe_02.2e", 0x00000, 0x20000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
- ROM_LOAD( "sfe_03.3e", 0x20000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfe_02.2e", 0x00000, 0x08000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfe_03.3e", 0x28000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "sfe-01m.3b", 0x0000000, 0x400000, CRC(f5afff0d) SHA1(7f9ac32ba0a3d9c6fef367e36a92d47c9ac1feb3) )
@@ -3142,9 +3111,10 @@ ROM_START( sfexpj )
ROM_LOAD( "sfp-09m.3k", 0x1000000, 0x400000, CRC(15f8b71e) SHA1(efb28fbe750f443550ee9718385355aae7e858c9) )
ROM_LOAD( "sfp-10m.4k", 0x1400000, 0x400000, CRC(c1ecf652) SHA1(616e14ff63d38272730c810b933a6b3412e2da17) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "sfe_02.2e", 0x00000, 0x20000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
- ROM_LOAD( "sfe_03.3e", 0x20000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfe_02.2e", 0x00000, 0x08000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfe_03.3e", 0x28000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "sfe-01m.3b", 0x0000000, 0x400000, CRC(f5afff0d) SHA1(7f9ac32ba0a3d9c6fef367e36a92d47c9ac1feb3) )
@@ -3168,9 +3138,10 @@ ROM_START( sfexpj1 )
ROM_LOAD( "sfp-09m.3k", 0x1000000, 0x400000, CRC(15f8b71e) SHA1(efb28fbe750f443550ee9718385355aae7e858c9) )
ROM_LOAD( "sfp-10m.4k", 0x1400000, 0x400000, CRC(c1ecf652) SHA1(616e14ff63d38272730c810b933a6b3412e2da17) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "sfe_02.2e", 0x00000, 0x20000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
- ROM_LOAD( "sfe_03.3e", 0x20000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfe_02.2e", 0x00000, 0x08000, CRC(1908475c) SHA1(99f68cff2d92f5697eec0846201f6fb317d5dc08) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfe_03.3e", 0x28000, 0x20000, CRC(95c1e2e0) SHA1(383bbe9613798a3ac6944d18768280a840994e40) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "sfe-01m.3b", 0x0000000, 0x400000, CRC(f5afff0d) SHA1(7f9ac32ba0a3d9c6fef367e36a92d47c9ac1feb3) )
@@ -3194,7 +3165,7 @@ ROM_START( coh3002c )
ROM_REGION32_LE( 0x80000, "countryrom", ROMREGION_ERASE00 )
ROM_REGION32_LE( 0x3000000, "maskroms", ROMREGION_ERASE00 )
- ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 )
+ ROM_REGION( 0x50000, "audiocpu", ROMREGION_ERASE00 )
ROM_REGION( 0x400000, "qsound", ROMREGION_ERASE00 )
ROM_REGION( 0x8, "cat702_2", 0 ) ROM_COPY( "cat702_1", 0x0, 0x0, 0x8 )
ROM_END
@@ -3217,9 +3188,10 @@ ROM_START( rvschool )
ROM_LOAD( "jst-12m.6k", 0x1c00000, 0x400000, CRC(43bd2ddd) SHA1(7f2976e394362cb648f620e430b3bf11b71485a6) )
ROM_LOAD( "jst-13m.7k", 0x2000000, 0x400000, CRC(6b443235) SHA1(c764d8b742aa1c46bc8d37f36e864ef50a1ff4e4) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "jst_02.2e", 0x00000, 0x20000, CRC(7809e2c3) SHA1(0216a665f7978bc8db3f7fdab038e1c7aa120844) )
- ROM_LOAD( "jst_03.3e", 0x20000, 0x20000, CRC(860ff24d) SHA1(eea72fa5eaf407a112a5b3daf60f7ac8ad191cc7) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "jst_02.2e", 0x00000, 0x08000, CRC(7809e2c3) SHA1(0216a665f7978bc8db3f7fdab038e1c7aa120844) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "jst_03.3e", 0x28000, 0x20000, CRC(860ff24d) SHA1(eea72fa5eaf407a112a5b3daf60f7ac8ad191cc7) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "jst-01m.3b", 0x0000000, 0x400000, CRC(9a7c98f9) SHA1(764c6c4f41047e1f36d2dceac4aa9b943a9d529a) )
@@ -3246,9 +3218,10 @@ ROM_START( rvschoolu )
ROM_LOAD( "jst-12m.6k", 0x1c00000, 0x400000, CRC(43bd2ddd) SHA1(7f2976e394362cb648f620e430b3bf11b71485a6) )
ROM_LOAD( "jst-13m.7k", 0x2000000, 0x400000, CRC(6b443235) SHA1(c764d8b742aa1c46bc8d37f36e864ef50a1ff4e4) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "jst_02.2e", 0x00000, 0x20000, CRC(7809e2c3) SHA1(0216a665f7978bc8db3f7fdab038e1c7aa120844) )
- ROM_LOAD( "jst_03.3e", 0x20000, 0x20000, CRC(860ff24d) SHA1(eea72fa5eaf407a112a5b3daf60f7ac8ad191cc7) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "jst_02.2e", 0x00000, 0x08000, CRC(7809e2c3) SHA1(0216a665f7978bc8db3f7fdab038e1c7aa120844) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "jst_03.3e", 0x28000, 0x20000, CRC(860ff24d) SHA1(eea72fa5eaf407a112a5b3daf60f7ac8ad191cc7) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "jst-01m.3b", 0x0000000, 0x400000, CRC(9a7c98f9) SHA1(764c6c4f41047e1f36d2dceac4aa9b943a9d529a) )
@@ -3275,9 +3248,10 @@ ROM_START( rvschoola )
ROM_LOAD( "jst-12m.6k", 0x1c00000, 0x400000, CRC(43bd2ddd) SHA1(7f2976e394362cb648f620e430b3bf11b71485a6) )
ROM_LOAD( "jst-13m.7k", 0x2000000, 0x400000, CRC(6b443235) SHA1(c764d8b742aa1c46bc8d37f36e864ef50a1ff4e4) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "jst_02.2e", 0x00000, 0x20000, CRC(7809e2c3) SHA1(0216a665f7978bc8db3f7fdab038e1c7aa120844) )
- ROM_LOAD( "jst_03.3e", 0x20000, 0x20000, CRC(860ff24d) SHA1(eea72fa5eaf407a112a5b3daf60f7ac8ad191cc7) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "jst_02.2e", 0x00000, 0x08000, CRC(7809e2c3) SHA1(0216a665f7978bc8db3f7fdab038e1c7aa120844) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "jst_03.3e", 0x28000, 0x20000, CRC(860ff24d) SHA1(eea72fa5eaf407a112a5b3daf60f7ac8ad191cc7) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "jst-01m.3b", 0x0000000, 0x400000, CRC(9a7c98f9) SHA1(764c6c4f41047e1f36d2dceac4aa9b943a9d529a) )
@@ -3304,9 +3278,10 @@ ROM_START( jgakuen )
ROM_LOAD( "jst-12m.6k", 0x1c00000, 0x400000, CRC(43bd2ddd) SHA1(7f2976e394362cb648f620e430b3bf11b71485a6) )
ROM_LOAD( "jst-13m.7k", 0x2000000, 0x400000, CRC(6b443235) SHA1(c764d8b742aa1c46bc8d37f36e864ef50a1ff4e4) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "jst_02.2e", 0x00000, 0x20000, CRC(7809e2c3) SHA1(0216a665f7978bc8db3f7fdab038e1c7aa120844) )
- ROM_LOAD( "jst_03.3e", 0x20000, 0x20000, CRC(860ff24d) SHA1(eea72fa5eaf407a112a5b3daf60f7ac8ad191cc7) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "jst_02.2e", 0x00000, 0x08000, CRC(7809e2c3) SHA1(0216a665f7978bc8db3f7fdab038e1c7aa120844) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "jst_03.3e", 0x28000, 0x20000, CRC(860ff24d) SHA1(eea72fa5eaf407a112a5b3daf60f7ac8ad191cc7) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "jst-01m.3b", 0x0000000, 0x400000, CRC(9a7c98f9) SHA1(764c6c4f41047e1f36d2dceac4aa9b943a9d529a) )
@@ -3333,9 +3308,10 @@ ROM_START( jgakuen1 )
ROM_LOAD( "jst-12m.6k", 0x1c00000, 0x400000, CRC(43bd2ddd) SHA1(7f2976e394362cb648f620e430b3bf11b71485a6) )
ROM_LOAD( "jst-13m.7k", 0x2000000, 0x400000, CRC(6b443235) SHA1(c764d8b742aa1c46bc8d37f36e864ef50a1ff4e4) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "jst_02.2e", 0x00000, 0x20000, CRC(7809e2c3) SHA1(0216a665f7978bc8db3f7fdab038e1c7aa120844) )
- ROM_LOAD( "jst_03.3e", 0x20000, 0x20000, CRC(860ff24d) SHA1(eea72fa5eaf407a112a5b3daf60f7ac8ad191cc7) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "jst_02.2e", 0x00000, 0x08000, CRC(7809e2c3) SHA1(0216a665f7978bc8db3f7fdab038e1c7aa120844) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "jst_03.3e", 0x28000, 0x20000, CRC(860ff24d) SHA1(eea72fa5eaf407a112a5b3daf60f7ac8ad191cc7) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "jst-01m.3b", 0x0000000, 0x400000, CRC(9a7c98f9) SHA1(764c6c4f41047e1f36d2dceac4aa9b943a9d529a) )
@@ -3364,8 +3340,9 @@ ROM_START( sfex2 )
ROM_LOAD( "ex2-08m.2k", 0x1800000, 0x800000, CRC(3194132e) SHA1(d1324fcf0a8528fc683791d6342697a7e08674f4) )
ROM_LOAD( "ex2-09m.3k", 0x2000000, 0x400000, CRC(075ae585) SHA1(6b88851db618fc3e96f1d740c46c1bc5be0ee21b) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "ex2_02.2e", 0x00000, 0x20000, CRC(9489875e) SHA1(1fc9985ff98232c63ea8d05a69f7d77cdf72919f) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ex2_02.2e", 0x00000, 0x08000, CRC(9489875e) SHA1(1fc9985ff98232c63ea8d05a69f7d77cdf72919f) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "ex2-01m.3a", 0x0000000, 0x400000, CRC(14a5bb0e) SHA1(dfe3c3a53bd4c58743d8039b5344d3afbe2a9c24) )
@@ -3388,8 +3365,9 @@ ROM_START( sfex2u1 )
ROM_LOAD( "ex2-08m.2k", 0x1800000, 0x800000, CRC(3194132e) SHA1(d1324fcf0a8528fc683791d6342697a7e08674f4) )
ROM_LOAD( "ex2-09m.3k", 0x2000000, 0x400000, CRC(075ae585) SHA1(6b88851db618fc3e96f1d740c46c1bc5be0ee21b) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "ex2_02.2e", 0x00000, 0x20000, CRC(9489875e) SHA1(1fc9985ff98232c63ea8d05a69f7d77cdf72919f) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ex2_02.2e", 0x00000, 0x08000, CRC(9489875e) SHA1(1fc9985ff98232c63ea8d05a69f7d77cdf72919f) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "ex2-01m.3a", 0x0000000, 0x400000, CRC(14a5bb0e) SHA1(dfe3c3a53bd4c58743d8039b5344d3afbe2a9c24) )
@@ -3412,8 +3390,9 @@ ROM_START( sfex2a )
ROM_LOAD( "ex2-08m.2k", 0x1800000, 0x800000, CRC(3194132e) SHA1(d1324fcf0a8528fc683791d6342697a7e08674f4) )
ROM_LOAD( "ex2-09m.3k", 0x2000000, 0x400000, CRC(075ae585) SHA1(6b88851db618fc3e96f1d740c46c1bc5be0ee21b) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "ex2_02.2e", 0x00000, 0x20000, CRC(9489875e) SHA1(1fc9985ff98232c63ea8d05a69f7d77cdf72919f) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ex2_02.2e", 0x00000, 0x08000, CRC(9489875e) SHA1(1fc9985ff98232c63ea8d05a69f7d77cdf72919f) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "ex2-01m.3a", 0x0000000, 0x400000, CRC(14a5bb0e) SHA1(dfe3c3a53bd4c58743d8039b5344d3afbe2a9c24) )
@@ -3436,8 +3415,9 @@ ROM_START( sfex2h )
ROM_LOAD( "ex2-08m.2k", 0x1800000, 0x800000, CRC(3194132e) SHA1(d1324fcf0a8528fc683791d6342697a7e08674f4) )
ROM_LOAD( "ex2-09m.3k", 0x2000000, 0x400000, CRC(075ae585) SHA1(6b88851db618fc3e96f1d740c46c1bc5be0ee21b) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "ex2_02.2e", 0x00000, 0x20000, CRC(9489875e) SHA1(1fc9985ff98232c63ea8d05a69f7d77cdf72919f) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ex2_02.2e", 0x00000, 0x08000, CRC(9489875e) SHA1(1fc9985ff98232c63ea8d05a69f7d77cdf72919f) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "ex2-01m.3a", 0x0000000, 0x400000, CRC(14a5bb0e) SHA1(dfe3c3a53bd4c58743d8039b5344d3afbe2a9c24) )
@@ -3460,8 +3440,9 @@ ROM_START( sfex2j )
ROM_LOAD( "ex2-08m.2k", 0x1800000, 0x800000, CRC(3194132e) SHA1(d1324fcf0a8528fc683791d6342697a7e08674f4) )
ROM_LOAD( "ex2-09m.3k", 0x2000000, 0x400000, CRC(075ae585) SHA1(6b88851db618fc3e96f1d740c46c1bc5be0ee21b) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "ex2_02.2e", 0x00000, 0x20000, CRC(9489875e) SHA1(1fc9985ff98232c63ea8d05a69f7d77cdf72919f) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ex2_02.2e", 0x00000, 0x08000, CRC(9489875e) SHA1(1fc9985ff98232c63ea8d05a69f7d77cdf72919f) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "ex2-01m.3a", 0x0000000, 0x400000, CRC(14a5bb0e) SHA1(dfe3c3a53bd4c58743d8039b5344d3afbe2a9c24) )
@@ -3484,9 +3465,10 @@ ROM_START( plsmaswd )
ROM_LOAD( "sg2-08m.2k", 0x1800000, 0x800000, CRC(9e169eee) SHA1(6141b1a7863fdfb200ca35d2893979a34dcc3f6c) )
ROM_LOAD( "sg2-09m.3k", 0x2000000, 0x400000, CRC(33f73d4c) SHA1(954695a43e77b58585409678bd87c76adac1d855) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "sg2_02.2e", 0x00000, 0x20000, CRC(415ee138) SHA1(626083c8705f012552691c450f95401ddc88065b) )
- ROM_LOAD( "sg2_03.3e", 0x20000, 0x20000, CRC(43806735) SHA1(88d389bcc79cbd4fa1f4b62008e171a897e77652) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sg2_02.2e", 0x00000, 0x08000, CRC(415ee138) SHA1(626083c8705f012552691c450f95401ddc88065b) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sg2_03.3e", 0x28000, 0x20000, CRC(43806735) SHA1(88d389bcc79cbd4fa1f4b62008e171a897e77652) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "sg2-01m.3a", 0x0000000, 0x400000, CRC(643ea27b) SHA1(40747432d5cfebac54d3824b6a6f26b5e7742fc1) )
@@ -3509,9 +3491,10 @@ ROM_START( plsmaswda )
ROM_LOAD( "sg2-08m.2k", 0x1800000, 0x800000, CRC(9e169eee) SHA1(6141b1a7863fdfb200ca35d2893979a34dcc3f6c) )
ROM_LOAD( "sg2-09m.3k", 0x2000000, 0x400000, CRC(33f73d4c) SHA1(954695a43e77b58585409678bd87c76adac1d855) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "sg2_02.2e", 0x00000, 0x20000, CRC(415ee138) SHA1(626083c8705f012552691c450f95401ddc88065b) )
- ROM_LOAD( "sg2_03.3e", 0x20000, 0x20000, CRC(43806735) SHA1(88d389bcc79cbd4fa1f4b62008e171a897e77652) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sg2_02.2e", 0x00000, 0x08000, CRC(415ee138) SHA1(626083c8705f012552691c450f95401ddc88065b) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sg2_03.3e", 0x28000, 0x20000, CRC(43806735) SHA1(88d389bcc79cbd4fa1f4b62008e171a897e77652) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "sg2-01m.3a", 0x0000000, 0x400000, CRC(643ea27b) SHA1(40747432d5cfebac54d3824b6a6f26b5e7742fc1) )
@@ -3534,9 +3517,10 @@ ROM_START( stargld2 )
ROM_LOAD( "sg2-08m.2k", 0x1800000, 0x800000, CRC(9e169eee) SHA1(6141b1a7863fdfb200ca35d2893979a34dcc3f6c) )
ROM_LOAD( "sg2-09m.3k", 0x2000000, 0x400000, CRC(33f73d4c) SHA1(954695a43e77b58585409678bd87c76adac1d855) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "sg2_02.2e", 0x00000, 0x20000, CRC(415ee138) SHA1(626083c8705f012552691c450f95401ddc88065b) )
- ROM_LOAD( "sg2_03.3e", 0x20000, 0x20000, CRC(43806735) SHA1(88d389bcc79cbd4fa1f4b62008e171a897e77652) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sg2_02.2e", 0x00000, 0x08000, CRC(415ee138) SHA1(626083c8705f012552691c450f95401ddc88065b) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sg2_03.3e", 0x28000, 0x20000, CRC(43806735) SHA1(88d389bcc79cbd4fa1f4b62008e171a897e77652) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "sg2-01m.3a", 0x0000000, 0x400000, CRC(643ea27b) SHA1(40747432d5cfebac54d3824b6a6f26b5e7742fc1) )
@@ -3556,8 +3540,9 @@ ROM_START( tgmj )
ROM_LOAD( "ate-05m.3h", 0x0000000, 0x400000, CRC(50977f5a) SHA1(78c2b1965957ff1756c25b76e549f11fc0001153) )
ROM_LOAD( "ate-06m.4h", 0x0400000, 0x400000, CRC(05973f16) SHA1(c9262e8de14c4a9489f7050316012913c1caf0ff) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "ate_02.2e", 0x00000, 0x20000, CRC(f4f6e82f) SHA1(ad6c49197a60f456367c9f78353741fb847819a1) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ate_02.2e", 0x00000, 0x08000, CRC(f4f6e82f) SHA1(ad6c49197a60f456367c9f78353741fb847819a1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "ate-01m.3a", 0x0000000, 0x400000, CRC(a21c6521) SHA1(560e4855f6e00def5277bdd12064b49e55c3b46b) )
@@ -3581,9 +3566,10 @@ ROM_START( techromn )
ROM_LOAD( "kio-09m.3k", 0x2000000, 0x800000, CRC(a34f2119) SHA1(50fa992eba5324a173fcc0923227c13cad4f97e5) )
ROM_LOAD( "kio-10m.4k", 0x2800000, 0x800000, CRC(7400037a) SHA1(d58641e1d6bf1c6ca04f6c98d6809edaa7df75d3) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "kio_02.2e", 0x00000, 0x20000, CRC(174309b3) SHA1(b35b9c3905d2fabaa8410f70f7b382e916c89733) )
- ROM_LOAD( "kio_03.3e", 0x20000, 0x20000, CRC(0b313ae5) SHA1(0ea39305ca30f376930e39b134fd1a52200624fa) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kio_02.2e", 0x00000, 0x08000, CRC(174309b3) SHA1(b35b9c3905d2fabaa8410f70f7b382e916c89733) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "kio_03.3e", 0x28000, 0x20000, CRC(0b313ae5) SHA1(0ea39305ca30f376930e39b134fd1a52200624fa) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "kio-01m.3a", 0x0000000, 0x400000, CRC(6dc5bd07) SHA1(e1755a48465f741691ea0fa1166cb2dc09210ed9) )
@@ -3607,9 +3593,10 @@ ROM_START( techromnu )
ROM_LOAD( "kio-09m.3k", 0x2000000, 0x800000, CRC(a34f2119) SHA1(50fa992eba5324a173fcc0923227c13cad4f97e5) )
ROM_LOAD( "kio-10m.4k", 0x2800000, 0x800000, CRC(7400037a) SHA1(d58641e1d6bf1c6ca04f6c98d6809edaa7df75d3) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "kio_02.2e", 0x00000, 0x20000, CRC(174309b3) SHA1(b35b9c3905d2fabaa8410f70f7b382e916c89733) )
- ROM_LOAD( "kio_03.3e", 0x20000, 0x20000, CRC(0b313ae5) SHA1(0ea39305ca30f376930e39b134fd1a52200624fa) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kio_02.2e", 0x00000, 0x08000, CRC(174309b3) SHA1(b35b9c3905d2fabaa8410f70f7b382e916c89733) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "kio_03.3e", 0x28000, 0x20000, CRC(0b313ae5) SHA1(0ea39305ca30f376930e39b134fd1a52200624fa) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "kio-01m.3a", 0x0000000, 0x400000, CRC(6dc5bd07) SHA1(e1755a48465f741691ea0fa1166cb2dc09210ed9) )
@@ -3633,9 +3620,10 @@ ROM_START( kikaioh )
ROM_LOAD( "kio-09m.3k", 0x2000000, 0x800000, CRC(a34f2119) SHA1(50fa992eba5324a173fcc0923227c13cad4f97e5) )
ROM_LOAD( "kio-10m.4k", 0x2800000, 0x800000, CRC(7400037a) SHA1(d58641e1d6bf1c6ca04f6c98d6809edaa7df75d3) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "kio_02.2e", 0x00000, 0x20000, CRC(174309b3) SHA1(b35b9c3905d2fabaa8410f70f7b382e916c89733) )
- ROM_LOAD( "kio_03.3e", 0x20000, 0x20000, CRC(0b313ae5) SHA1(0ea39305ca30f376930e39b134fd1a52200624fa) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kio_02.2e", 0x00000, 0x08000, CRC(174309b3) SHA1(b35b9c3905d2fabaa8410f70f7b382e916c89733) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "kio_03.3e", 0x28000, 0x20000, CRC(0b313ae5) SHA1(0ea39305ca30f376930e39b134fd1a52200624fa) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "kio-01m.3a", 0x0000000, 0x400000, CRC(6dc5bd07) SHA1(e1755a48465f741691ea0fa1166cb2dc09210ed9) )
@@ -3659,9 +3647,10 @@ ROM_START( sfex2p )
ROM_LOAD( "x2p-09m.3k", 0x2000000, 0x800000, CRC(344aa227) SHA1(69dc6f511939bf7fa25c2531ecf307a7565fe7a8) )
ROM_LOAD( "x2p-10m.4k", 0x2800000, 0x800000, CRC(2eef5931) SHA1(e5227529fb68eeb1b2f25813694173a75d906b52) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "x2p_02.2e", 0x00000, 0x20000, CRC(3705de5e) SHA1(847007ca271da64bf13ffbf496d4291429eee27a) )
- ROM_LOAD( "x2p_03.3e", 0x20000, 0x20000, CRC(6ae828f6) SHA1(41c54165e87b846a845da581f408b96979288158) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "x2p_02.2e", 0x00000, 0x08000, CRC(3705de5e) SHA1(847007ca271da64bf13ffbf496d4291429eee27a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "x2p_03.3e", 0x28000, 0x20000, CRC(6ae828f6) SHA1(41c54165e87b846a845da581f408b96979288158) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "x2p-01m.3a", 0x0000000, 0x400000, CRC(14a5bb0e) SHA1(dfe3c3a53bd4c58743d8039b5344d3afbe2a9c24) )
@@ -3685,9 +3674,10 @@ ROM_START( sfex2pa )
ROM_LOAD( "x2p-09m.3k", 0x2000000, 0x800000, CRC(344aa227) SHA1(69dc6f511939bf7fa25c2531ecf307a7565fe7a8) )
ROM_LOAD( "x2p-10m.4k", 0x2800000, 0x800000, CRC(2eef5931) SHA1(e5227529fb68eeb1b2f25813694173a75d906b52) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "x2p_02.2e", 0x00000, 0x20000, CRC(3705de5e) SHA1(847007ca271da64bf13ffbf496d4291429eee27a) )
- ROM_LOAD( "x2p_03.3e", 0x20000, 0x20000, CRC(6ae828f6) SHA1(41c54165e87b846a845da581f408b96979288158) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "x2p_02.2e", 0x00000, 0x08000, CRC(3705de5e) SHA1(847007ca271da64bf13ffbf496d4291429eee27a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "x2p_03.3e", 0x28000, 0x20000, CRC(6ae828f6) SHA1(41c54165e87b846a845da581f408b96979288158) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "x2p-01m.3a", 0x0000000, 0x400000, CRC(14a5bb0e) SHA1(dfe3c3a53bd4c58743d8039b5344d3afbe2a9c24) )
@@ -3711,9 +3701,10 @@ ROM_START( sfex2ph )
ROM_LOAD( "x2p-09m.3k", 0x2000000, 0x800000, CRC(344aa227) SHA1(69dc6f511939bf7fa25c2531ecf307a7565fe7a8) )
ROM_LOAD( "x2p-10m.4k", 0x2800000, 0x800000, CRC(2eef5931) SHA1(e5227529fb68eeb1b2f25813694173a75d906b52) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "x2p_02.2e", 0x00000, 0x20000, CRC(3705de5e) SHA1(847007ca271da64bf13ffbf496d4291429eee27a) )
- ROM_LOAD( "x2p_03.3e", 0x20000, 0x20000, CRC(6ae828f6) SHA1(41c54165e87b846a845da581f408b96979288158) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "x2p_02.2e", 0x00000, 0x08000, CRC(3705de5e) SHA1(847007ca271da64bf13ffbf496d4291429eee27a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "x2p_03.3e", 0x28000, 0x20000, CRC(6ae828f6) SHA1(41c54165e87b846a845da581f408b96979288158) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "x2p-01m.3a", 0x0000000, 0x400000, CRC(14a5bb0e) SHA1(dfe3c3a53bd4c58743d8039b5344d3afbe2a9c24) )
@@ -3737,9 +3728,10 @@ ROM_START( sfex2pj )
ROM_LOAD( "x2p-09m.3k", 0x2000000, 0x800000, CRC(344aa227) SHA1(69dc6f511939bf7fa25c2531ecf307a7565fe7a8) )
ROM_LOAD( "x2p-10m.4k", 0x2800000, 0x800000, CRC(2eef5931) SHA1(e5227529fb68eeb1b2f25813694173a75d906b52) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "x2p_02.2e", 0x00000, 0x20000, CRC(3705de5e) SHA1(847007ca271da64bf13ffbf496d4291429eee27a) )
- ROM_LOAD( "x2p_03.3e", 0x20000, 0x20000, CRC(6ae828f6) SHA1(41c54165e87b846a845da581f408b96979288158) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "x2p_02.2e", 0x00000, 0x08000, CRC(3705de5e) SHA1(847007ca271da64bf13ffbf496d4291429eee27a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "x2p_03.3e", 0x28000, 0x20000, CRC(6ae828f6) SHA1(41c54165e87b846a845da581f408b96979288158) )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "x2p-01m.3a", 0x0000000, 0x400000, CRC(14a5bb0e) SHA1(dfe3c3a53bd4c58743d8039b5344d3afbe2a9c24) )
@@ -3763,8 +3755,9 @@ ROM_START( strider2 )
ROM_LOAD( "hr2-09m.3k", 0x2000000, 0x800000, CRC(cdd43e6b) SHA1(346a83deadecd56428276acefc2ce95249a49921) )
ROM_LOAD( "hr2-10m.4k", 0x2800000, 0x400000, CRC(d95b3f37) SHA1(b6566c1184718f6c0986d13060894c0fb400c201) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "hr2_02.2e", 0x00000, 0x20000, CRC(acd8d385) SHA1(5edb61c3d66d2d09a28a71db52eee3a9f7db8c9d) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "hr2_02.2e", 0x00000, 0x08000, CRC(acd8d385) SHA1(5edb61c3d66d2d09a28a71db52eee3a9f7db8c9d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "hr2-01m.3a", 0x0000000, 0x200000, CRC(510a16d1) SHA1(05f10c2921a4d3b1fab4d0a4ea06351809bdbb07) )
@@ -3789,8 +3782,9 @@ ROM_START( strider2a )
ROM_LOAD( "hr2-09m.3k", 0x2000000, 0x800000, CRC(cdd43e6b) SHA1(346a83deadecd56428276acefc2ce95249a49921) )
ROM_LOAD( "hr2-10m.4k", 0x2800000, 0x400000, CRC(d95b3f37) SHA1(b6566c1184718f6c0986d13060894c0fb400c201) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "hr2_02.2e", 0x00000, 0x20000, CRC(acd8d385) SHA1(5edb61c3d66d2d09a28a71db52eee3a9f7db8c9d) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "hr2_02.2e", 0x00000, 0x08000, CRC(acd8d385) SHA1(5edb61c3d66d2d09a28a71db52eee3a9f7db8c9d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "hr2-01m.3a", 0x0000000, 0x200000, CRC(510a16d1) SHA1(05f10c2921a4d3b1fab4d0a4ea06351809bdbb07) )
@@ -3815,8 +3809,9 @@ ROM_START( shiryu2 )
ROM_LOAD( "hr2-09m.3k", 0x2000000, 0x800000, CRC(cdd43e6b) SHA1(346a83deadecd56428276acefc2ce95249a49921) )
ROM_LOAD( "hr2-10m.4k", 0x2800000, 0x400000, CRC(d95b3f37) SHA1(b6566c1184718f6c0986d13060894c0fb400c201) )
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
- ROM_LOAD( "hr2_02.2e", 0x00000, 0x20000, CRC(acd8d385) SHA1(5edb61c3d66d2d09a28a71db52eee3a9f7db8c9d) )
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "hr2_02.2e", 0x00000, 0x08000, CRC(acd8d385) SHA1(5edb61c3d66d2d09a28a71db52eee3a9f7db8c9d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
ROM_REGION( 0x400000, "qsound", 0 ) /* Q Sound Samples */
ROM_LOAD16_WORD_SWAP( "hr2-01m.3a", 0x0000000, 0x200000, CRC(510a16d1) SHA1(05f10c2921a4d3b1fab4d0a4ea06351809bdbb07) )
@@ -4398,8 +4393,9 @@ ROM_START( mgcldate )
ROM_LOAD( "e32-02.6", 0x0800000, 0x400000, CRC(61c8438c) SHA1(bdbe6079cc634c0cd6580f76619eb2944c9a31d9) )
ROM_LOAD( "e32-03.12", 0x0c00000, 0x200000, CRC(190d1618) SHA1(838a651d32752015baa7e8caea62fd739631b8be) )
- ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k for Z80 code */
- ROM_LOAD( "e32-07.22", 0x0000000, 0x020000, CRC(adf3feb5) SHA1(bae5bc3fad99a92a3492be1b775dab861007eb3b) ) // 0x4000 - 0x20000 banked
+ ROM_REGION( 0x2c000, "audiocpu", 0 ) /* 64k for Z80 code */
+ ROM_LOAD( "e32-07.22", 0x0000000, 0x004000, CRC(adf3feb5) SHA1(bae5bc3fad99a92a3492be1b775dab861007eb3b) )
+ ROM_CONTINUE( 0x0010000, 0x01c000 ) /* banked stuff */
ROM_REGION( 0x400000, "ymsnd", 0 )
ROM_LOAD( "e32-04.15", 0x0000000, 0x400000, CRC(c72f9eea) SHA1(7ab8b412a8ed00a42016acb7d13d3b074155780a) )
@@ -4418,8 +4414,9 @@ ROM_START( mgcldtex )
ROM_LOAD( "e32-02.6", 0x0800000, 0x400000, CRC(61c8438c) SHA1(bdbe6079cc634c0cd6580f76619eb2944c9a31d9) )
ROM_LOAD( "e32-03.12", 0x0c00000, 0x200000, CRC(190d1618) SHA1(838a651d32752015baa7e8caea62fd739631b8be) )
- ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k for Z80 code */
- ROM_LOAD( "e32-10.22", 0x0000000, 0x020000, CRC(adf3feb5) SHA1(bae5bc3fad99a92a3492be1b775dab861007eb3b) ) // 0x4000 - 0x20000 banked
+ ROM_REGION( 0x2c000, "audiocpu", 0 ) /* 64k for Z80 code */
+ ROM_LOAD( "e32-10.22", 0x0000000, 0x004000, CRC(adf3feb5) SHA1(bae5bc3fad99a92a3492be1b775dab861007eb3b) )
+ ROM_CONTINUE( 0x0010000, 0x01c000 ) /* banked stuff */
ROM_REGION( 0x400000, "ymsnd", 0 )
ROM_LOAD( "e32-04.15", 0x0000000, 0x400000, CRC(c72f9eea) SHA1(7ab8b412a8ed00a42016acb7d13d3b074155780a) )
@@ -4439,8 +4436,9 @@ ROM_START( psyforce )
ROM_LOAD( "e22-03.19", 0x0a00000, 0x200000, CRC(8372f839) SHA1(646b3919b6be63412c11850ec1524685abececc0) )
ROM_LOAD( "e22-04.21", 0x0c00000, 0x200000, CRC(397b71aa) SHA1(48743c362503c1d2dbeb3c8be4cb2aaaae015b88) )
- ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k for Z80 code */
- ROM_LOAD( "e22-07.22", 0x0000000, 0x020000, CRC(739af589) SHA1(dbb4d1c6d824a99ccf27168e2c21644e19811523) )// 0x4000 - 0x20000 banked
+ ROM_REGION( 0x2c000, "audiocpu", 0 ) /* 64k for Z80 code */
+ ROM_LOAD( "e22-07.22", 0x0000000, 0x004000, CRC(739af589) SHA1(dbb4d1c6d824a99ccf27168e2c21644e19811523) )
+ ROM_CONTINUE( 0x0010000, 0x01c000 ) /* banked stuff */
ROM_REGION( 0x200000, "ymsnd", 0 )
ROM_LOAD( "e22-01.15", 0x000000, 0x200000, CRC(808b8340) SHA1(d8bde850dd9b5b71e94ea707d2d728754f907977) )
@@ -4459,8 +4457,9 @@ ROM_START( psyforcej )
ROM_LOAD( "e22-03.19", 0x0a00000, 0x200000, CRC(8372f839) SHA1(646b3919b6be63412c11850ec1524685abececc0) )
ROM_LOAD( "e22-04.21", 0x0c00000, 0x200000, CRC(397b71aa) SHA1(48743c362503c1d2dbeb3c8be4cb2aaaae015b88) )
- ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k for Z80 code */
- ROM_LOAD( "e22-07.22", 0x0000000, 0x020000, CRC(739af589) SHA1(dbb4d1c6d824a99ccf27168e2c21644e19811523) )// 0x4000 - 0x20000 banked
+ ROM_REGION( 0x2c000, "audiocpu", 0 ) /* 64k for Z80 code */
+ ROM_LOAD( "e22-07.22", 0x0000000, 0x004000, CRC(739af589) SHA1(dbb4d1c6d824a99ccf27168e2c21644e19811523) )
+ ROM_CONTINUE( 0x0010000, 0x01c000 ) /* banked stuff */
ROM_REGION( 0x200000, "ymsnd", 0 )
ROM_LOAD( "e22-01.15", 0x000000, 0x200000, CRC(808b8340) SHA1(d8bde850dd9b5b71e94ea707d2d728754f907977) )
@@ -4479,8 +4478,9 @@ ROM_START( psyforcex )
ROM_LOAD( "e22-03.19", 0x0a00000, 0x200000, CRC(8372f839) SHA1(646b3919b6be63412c11850ec1524685abececc0) )
ROM_LOAD( "e22-04.21", 0x0c00000, 0x200000, CRC(397b71aa) SHA1(48743c362503c1d2dbeb3c8be4cb2aaaae015b88) )
- ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k for Z80 code */
- ROM_LOAD( "e22-07.22", 0x0000000, 0x020000, CRC(739af589) SHA1(dbb4d1c6d824a99ccf27168e2c21644e19811523) )// 0x4000 - 0x20000 banked
+ ROM_REGION( 0x2c000, "audiocpu", 0 ) /* 64k for Z80 code */
+ ROM_LOAD( "e22-07.22", 0x0000000, 0x004000, CRC(739af589) SHA1(dbb4d1c6d824a99ccf27168e2c21644e19811523) )
+ ROM_CONTINUE( 0x0010000, 0x01c000 ) /* banked stuff */
ROM_REGION( 0x200000, "ymsnd", 0 )
ROM_LOAD( "e22-01.15", 0x000000, 0x200000, CRC(808b8340) SHA1(d8bde850dd9b5b71e94ea707d2d728754f907977) )
@@ -4576,8 +4576,9 @@ ROM_START( sfchamp )
ROM_LOAD( "e18-04.19", 0x0a00000, 0x200000, CRC(fc3731da) SHA1(58948aad8d7bb7a8449d2bf12e9d5e6d7b4426b5) )
ROM_LOAD( "e18-05.21", 0x0c00000, 0x200000, CRC(2e984c50) SHA1(6d8255e38c67d68bf489c9885663ed2edf148188) )
- ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k for Z80 code */
- ROM_LOAD( "e18-09.22", 0x0000000, 0x020000, CRC(bb5a5319) SHA1(0bb700cafc157d3af663cc9bebb8167487ff2852) ) // 0x4000 - 0x20000 banked
+ ROM_REGION( 0x2c000, "audiocpu", 0 ) /* 64k for Z80 code */
+ ROM_LOAD( "e18-09.22", 0x0000000, 0x004000, CRC(bb5a5319) SHA1(0bb700cafc157d3af663cc9bebb8167487ff2852) )
+ ROM_CONTINUE( 0x0010000, 0x01c000 ) /* banked stuff */
ROM_REGION( 0x200000, "ymsnd", 0 )
ROM_LOAD( "e18-01.15", 0x0000000, 0x200000, CRC(dbd1408c) SHA1(ef81064f2f95e5ae25eb1f10d1e78f27f9e294f5) )
@@ -4597,8 +4598,9 @@ ROM_START( sfchampo )
ROM_LOAD( "e18-04.19", 0x0a00000, 0x200000, CRC(fc3731da) SHA1(58948aad8d7bb7a8449d2bf12e9d5e6d7b4426b5) )
ROM_LOAD( "e18-05.21", 0x0c00000, 0x200000, CRC(2e984c50) SHA1(6d8255e38c67d68bf489c9885663ed2edf148188) )
- ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k for Z80 code */
- ROM_LOAD( "e18-09.22", 0x0000000, 0x020000, CRC(bb5a5319) SHA1(0bb700cafc157d3af663cc9bebb8167487ff2852) ) // 0x4000 - 0x20000 banked
+ ROM_REGION( 0x2c000, "audiocpu", 0 ) /* 64k for Z80 code */
+ ROM_LOAD( "e18-09.22", 0x0000000, 0x004000, CRC(bb5a5319) SHA1(0bb700cafc157d3af663cc9bebb8167487ff2852) )
+ ROM_CONTINUE( 0x0010000, 0x01c000 ) /* banked stuff */
ROM_REGION( 0x200000, "ymsnd", 0 )
ROM_LOAD( "e18-01.15", 0x0000000, 0x200000, CRC(dbd1408c) SHA1(ef81064f2f95e5ae25eb1f10d1e78f27f9e294f5) )
@@ -4618,8 +4620,9 @@ ROM_START( sfchampu )
ROM_LOAD( "e18-04.19", 0x0a00000, 0x200000, CRC(fc3731da) SHA1(58948aad8d7bb7a8449d2bf12e9d5e6d7b4426b5) )
ROM_LOAD( "e18-05.21", 0x0c00000, 0x200000, CRC(2e984c50) SHA1(6d8255e38c67d68bf489c9885663ed2edf148188) )
- ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k for Z80 code */
- ROM_LOAD( "e18-09.22", 0x0000000, 0x020000, CRC(bb5a5319) SHA1(0bb700cafc157d3af663cc9bebb8167487ff2852) ) // 0x4000 - 0x20000 banked
+ ROM_REGION( 0x2c000, "audiocpu", 0 ) /* 64k for Z80 code */
+ ROM_LOAD( "e18-09.22", 0x0000000, 0x004000, CRC(bb5a5319) SHA1(0bb700cafc157d3af663cc9bebb8167487ff2852) )
+ ROM_CONTINUE( 0x0010000, 0x01c000 ) /* banked stuff */
ROM_REGION( 0x200000, "ymsnd", 0 )
ROM_LOAD( "e18-01.15", 0x0000000, 0x200000, CRC(dbd1408c) SHA1(ef81064f2f95e5ae25eb1f10d1e78f27f9e294f5) )
@@ -4639,8 +4642,9 @@ ROM_START( sfchampj )
ROM_LOAD( "e18-04.19", 0x0a00000, 0x200000, CRC(fc3731da) SHA1(58948aad8d7bb7a8449d2bf12e9d5e6d7b4426b5) )
ROM_LOAD( "e18-05.21", 0x0c00000, 0x200000, CRC(2e984c50) SHA1(6d8255e38c67d68bf489c9885663ed2edf148188) )
- ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k for Z80 code */
- ROM_LOAD( "e18-09.22", 0x0000000, 0x020000, CRC(bb5a5319) SHA1(0bb700cafc157d3af663cc9bebb8167487ff2852) ) // 0x4000 - 0x20000 banked
+ ROM_REGION( 0x2c000, "audiocpu", 0 ) /* 64k for Z80 code */
+ ROM_LOAD( "e18-09.22", 0x0000000, 0x004000, CRC(bb5a5319) SHA1(0bb700cafc157d3af663cc9bebb8167487ff2852) )
+ ROM_CONTINUE( 0x0010000, 0x01c000 ) /* banked stuff */
ROM_REGION( 0x200000, "ymsnd", 0 )
ROM_LOAD( "e18-01.15", 0x0000000, 0x200000, CRC(dbd1408c) SHA1(ef81064f2f95e5ae25eb1f10d1e78f27f9e294f5) )
@@ -5181,15 +5185,15 @@ GAME( 1999, strider2a, strider2, coh3002c, zn, zn_state, 0, ROT0, "Capc
GAME( 1999, shiryu2, strider2, coh3002c, zn, zn_state, 0, ROT0, "Capcom", "Strider Hiryu 2 (Japan 991213)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
/* Atari */
-GAME( 1996, coh1000w, 0, coh1000w, zn, zn_state, 0, ROT0, "Atari", "Atari PSX", MACHINE_IS_BIOS_ROOT )
-GAME( 1996, primrag2, coh1000w, coh1000w, primrag2, zn_state, primrag2, ROT0, "Atari", "Primal Rage 2 (Ver 0.36a)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // watchdog reset at startup
+GAME( 1996, coh1000w, 0, coh1000w, zn, zn_state, 0, ROT0, "Atari", "Atari PSX", MACHINE_IS_BIOS_ROOT )
+GAME( 1996, primrag2, coh1000w, coh1000w, primrag2, zn_state, 0, ROT0, "Atari", "Primal Rage 2 (Ver 0.36a)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // watchdog reset at startup
/* Acclaim */
GAME( 1995, coh1000a, 0, coh1000a, zn, zn_state, 0, ROT0, "Acclaim", "Acclaim PSX", MACHINE_IS_BIOS_ROOT )
GAME( 1996, nbajamex, coh1000a, nbajamex, nbajamex, zn_state, nbajamex, ROT0, "Acclaim", "NBA Jam Extreme (ver. 1.10I)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1996, nbajamexa, nbajamex, nbajamex, nbajamex, zn_state, nbajamex, ROT0, "Acclaim", "NBA Jam Extreme (ver. 1.04)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1996, jdredd, coh1000a, jdredd, jdredd, zn_state, jdredd, ROT0, "Acclaim", "Judge Dredd (Rev C Dec. 17 1997)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1996, jdreddb, jdredd, jdredd, jdredd, zn_state, jdredd, ROT0, "Acclaim", "Judge Dredd (Rev B Nov. 26 1997)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, jdredd, coh1000a, jdredd, jdredd, zn_state, 0, ROT0, "Acclaim", "Judge Dredd (Rev C Dec. 17 1997)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, jdreddb, jdredd, jdredd, jdredd, zn_state, 0, ROT0, "Acclaim", "Judge Dredd (Rev B Nov. 26 1997)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* Tecmo */
GAME( 1997, coh1002m, 0, coh1002m, zn, zn_state, 0, ROT0, "Tecmo", "TPS", MACHINE_IS_BIOS_ROOT )
@@ -5259,7 +5263,7 @@ GAME( 2000, brvbladea, brvblade, coh1002e, znt, zn_state, 0, ROT270, "Ei
GAME( 2000, brvbladej, brvblade, coh1002e, znt, zn_state, 0, ROT270, "Eighting / Raizing", "Brave Blade (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* Bust a Move 2 uses the PSARC95 bios and ET series security but the top board is completely different */
-GAME( 1999, bam2, coh1002e, bam2, zn, zn_state, bam2, ROT0, "Metro / Enix / Namco", "Bust a Move 2 - Dance Tengoku Mix (Japanese ROM ver. 1999/07/17 10:00:00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1999, bam2, coh1002e, bam2, zn, zn_state, 0, ROT0, "Metro / Enix / Namco", "Bust a Move 2 - Dance Tengoku Mix (Japanese ROM ver. 1999/07/17 10:00:00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
/* Atlus */
GAME( 1996, coh1001l, 0, coh1001l, zn, zn_state, 0, ROT0, "Atlus", "Atlus PSX", MACHINE_IS_BIOS_ROOT )